📜 ⬆️ ⬇️

IDE Atom from GitHub. Published roadmap to version 1.0


The Atom team posted a roadmap. This was first announced at discuss, then added to the FAQ and listed in the issues, because the news is quite official, although it is still not in the blog. On the screenshot list on the stabilization of the API.
UPD. From the interesting:


Prehistory


A week ago, one of the topics on discuss.atom.io was the idea of ​​publishing the Atom roadmap:
I can think about how to increase transparency:
  • or post the atommap
  • What are you doing?


My text is a free translation of notes and combining content from the original links into a more visual whole.
Original screen

Actually translation, with my inserts


We want to convey to everyone what we are working on and focused on. We have two tasks: fix the API and 1.0

Fixation API (API Freeze)


The purpose of fixing the API is to bring our publicly documented APIs into which we are ready to work until the next version. This will allow us to improve the API, based on the use of ready-made templates; flesh out the API that has grown organically, and in general is thorough cleaning it to lay a solid foundation.

Tasks


Plus marked implemented tasks.
+ Change the editor to support react.
+ Convert all documentation to atomdoc.
+ Edit documentation API.
+ Separate API into main and extended.
+ Convert all events to event-methods.
+ Add a view provider API.
+ Go through the API and make it more consistent / symmetrical.
(not sure about the correctness - original “Make a pass through the API and make APIs more consistent / symmetrical”)
+ New, less tangled command system.
- Update API configuration.
+ Widespread use of disposability. (Use disposables everywhere)
- Update project API to work with a variety of projects. (Now one project can work only with one repository in one directory)
- Convert an internal presentation into custom HTML Elements. In the API, there is a so-called. Shadow DOM which they plan to unify.
- Panel API is similar to provider API. These are two recently added and announced APIs for Atom`s workspace.
- Export only a single core classes. (The problem is that different packages can refer to several identical packages, each of which is loaded into memory, with all the consequences)
- Remove obsolete from packages. (Remove deprecations from packages)
- Give the user to use outdated. (Enable deprecations for users)

Hereinafter, the items marked (text in English) are not commented by the developers, so I additionally provide the original name. In the latter two, the removal of obsolete parameters in packages is probably implied.
')

Atom 1.0


When we fix the API, we will rapidly approach version 1.0. This will include many important things. The following tasks are currently published:
  1. Features
    1. Project in several directories
    2. System configuration for each project
    3. Area- specific configuration (Scoped config settings)
    4. Disable character cancellation
    5. Updating standard themes
    6. Windows installer / updater
    7. Exception user experience
    8. Update Settings Interface
    9. Working with indents and hyphens (the task has been started since November 2013, which was reopened in July 2014)
    10. Update tree-view. Implementing the “smart tabs” analog from sublime


  2. Performance
    1. Loading
    2. Search and replace
    3. Tab switching
    4. Autocomplete
    5. Set and move the cursor. (Typing and cursor movement)
    6. Extremely long file support
    7. Support for large files. Still only 2 megabytes.
      UPD. If there is a need to circumvent this limitation, correct the line directly in the debugger or the file app / src / project.js
      Project.prototype.buildBuffer = function(absoluteFilePath) { var buffer; if (fs.getSizeSync(absoluteFilePath) >= 2 * 1048576) { throw new Error("Atom can only handle files < 2MB for now."); } 

      For 10 megabytes, it works stably, when you try to open something bigger than other errors and the memory is disproportionately consumed.
      changed the maximum size




    8. Tree view (apparently not satisfied with its performance)

  3. Bugs (empty for now)
  4. Docs
    1. Updating and clarifying documentation

  5. API
    1. Get rid of obsolete APIs
    2. Services (in-package communication)
    3. Update components to view


None of the listed tasks has been solved, so I have designed them with a list.

Tracking our actions / status


We will assign to the modules with which we work the system of stickers.

When we are ready to work on something, we will add an on-deck sticker.
github.com/atom/atom/labels/on-deck



What we are working on is marked with an in-progress sticker:
github.com/atom/atom/labels/in-progress



When the module is on its way to implementation, it is marked with a shipping sticker:
github.com/atom/atom/labels/shipping
(now only "swam away")



In addition, you can follow us nathansobo , kevinsawicki , thedaniel and benogle on github and watch our actions.
We hope - this will give you an understanding of where we are and where we are going.

Sources



About Atom


Source: https://habr.com/ru/post/238779/


All Articles