Atom lacks lot of features


#1

I was used to Jetbrains IDEs, like Rubymine or WebStrom, but i hated their look & feel, especially the editor font and the syntax colors.

Atom has an absolutely AWSOME UI, look & feel, fonts, syntax colors. I love it for that. So i tried it for several months to get used to it in order to completely replace my use of JetBrains IDEs.

But sadly, there is so many features missing, that i couldn’t complete with packages.

-The ctrl+click to go to definition / declaration, for instance, is crucial to me. It hugely speeds up code navigation. No reliable atom package covers this feature.

-Debug tools with breakpoints directly on the editor for node. Nothing reliable here too.

-No integrated git tools. Nothing reliable. I tried a couple packages, but nothing can compete with what JetBrains has. No integrated merge tool, i had to always have gitkraken opened in the background.

-Search ! No obvious shortcut to search the entire repo for a string. I had to right click on the folder each time and select Search in Directory…

I feel like the atom packages “store” is, like the google store, more quantity than quality.

I love Github, and when i saw the announcement for atom 1.0 i thought “this is the futur”.

Am still struggling with it though, am not yet completely despairing


#2

Like all stores this will always be true. I think it is closest to npm in that regard.

However, there are some good packages in the store. They may not be up to the quality you want but they are steadily improving. The api didn’t stabilize until 1.0 which was just a month ago or so. Jetbrains has been out for many years.

Atom’s strength is in it’s very easy customizing. I’ve written 20+ packages to get back features from webstorm that I cared about. I’ve found myself using about 10 of them. The rest were either replaced by something better or my workflow changed.

Have you ever worked in the node/browser environments? If so you will find it easy after the initial leaning curve of a day or so.


#3

Couldn’t agree more with @Turkish.
I’m using windows, Notepad++ and Eclipse has such features as:

  • Ctr+Click / F3 any hotkey goes to the declaration, doesnt matter if it is C/C++/Python/etc, in ATOM you can forget this feature… plus
  • You can not add search pathes to you “projects”, so it had the chance to resolve sources and headers in “lib” folders
  • Annoying linux like usage, folders open on selection (not double click), customizable packages are not working properly, due to community, this would be the basicest setting how to open folders. This is especially annoying when you single click on a file and want to search, the file tab is closed… so the devs should really decide how to use these features consistently.
  • Workspaces… does not really exist such as “project” you can create a project but the moment you close the editor you loose your folders “imported”. You can reopen the “workspace” folder again but then it will show you all the folders… totally inconsistent.
  • The whole idea of the packages corrupts the configurability, you never know if it is a “core” package and you should configure something in the package, or it is found under the settings, or maybe the config is under a custom package… I don’t know why you can not have a Config tab where all the installed packages are/can subsrice with their config and show the options for example.
  • Building… usually opens a windows with text output. Have you ever tried to copy text from that windows? Any text selection on any window (except the text editor) makes the selection crazy and selects EVERYTHING visible in the editor…
  • Some features can be accessed via settings, some feature can be accessed via menus, some with shortcuts, rest with the “command line”. Yes we use a command line under a graphical tool. This is such a hardcoded linux thinking in 2017 that i just dropped my mind.

I see an incredible potential in this editor, also the GUI is clean, responsive & fast, nice looking but for any productive use (at least for me) is questionable.

I personally only wanted to use the PlatformIO package, I struggled so much that I used the “export to eclipse” feature and used eclipse instead. And that was the time I noticed the huge amount of “eclipse” like packages you can install, seems people try to eclipsify the atom, probably for a reason (and not just the reson that they got used to eclipse).


#4

Serious question: why would you want to make two clicks where you only need one?

customizable packages are not working properly

Which ones?

This is especially annoying when you single click on a file and want to search, the file tab is closed…

By default, single-clicking on a file will open a pending tab. This is for quickly scanning through multiple files without cluttering up your tabs. Do you want to disable this?

Workspaces… does not really exist such as “project” you can create a project but the moment you close the editor you loose your folders “imported”. You can reopen the “workspace” folder again but then it will show you all the folders… totally inconsistent.

There are a number of packages that exist to make it easy to store and recall specific projects, like project-viewer and project-manager.

The whole idea of the packages corrupts the configurability, you never know if it is a “core” package and you should configure something in the package, or it is found under the settings, or maybe the config is under a custom package… I don’t know why you can not have a Config tab where all the installed packages are/can subsrice with their config and show the options for example.

It’s easy to look up which packages are core packages, through the Settings -> Packages view. From that same view, you can change the settings for individual packages by clicking on the card for that package (you can tell if packages have their own settings because they have a button with a gear icon, which goes to the same place as the package card).

Building… usually opens a windows with text output. Have you ever tried to copy text from that windows? Any text selection on any window (except the text editor) makes the selection crazy and selects EVERYTHING visible in the editor…

Building what? Atom doesn’t have the capability to build any code, so you have to use a package for that. Each package controls its own way of doing things, determined by the author. Which package are you using?

Some features can be accessed via settings, some feature can be accessed via menus, some with shortcuts, rest with the “command line”.

These aren’t so muddled as you make them out to be. Configurations and packages are managed through Settings. The default menus contain application-level commands and standard text operations–what most people expect to find in a text editor’s menu–plus a menu for all packages. You can change this if you want. Most built-in commands have keybindings associated, but not all. Atom has no command line by default. What I think you mean is the Command Palette.

Yes we use a command line under a graphical tool. This is such a hardcoded linux thinking in 2017 that i just dropped my mind.

You are perfectly free to bind any command in Atom to any keybinding, menu item, or toolbar button you desire.

And that was the time I noticed the huge amount of “eclipse” like packages you can install, seems people try to eclipsify the atom, probably for a reason (and not just the reson that they got used to eclipse).

Search for other editors, like vim and Sublime, and you’ll see that there’s nothing unique about Eclipse in this sense. There are Atom packages for introducing features and behaviors from a bunch of different origins. It’s not because people actually want to be using those other programs, but because Atom is so flexible that it allows people to make it behave like their preferred tools.


#5

folder open at double click:

  • once you have multiple projects you click somewhere on the “project” tab to scroll, even if you just have a few you open the folder you click on clutters your view. Previous editors offered the double click method, this worked fine, imho any deviation should be configurable minimum. I tried the chary-tree plugin, this only works with files but not folders, the other plugin that offered folders to open with double click just crashed the atom.
    I single click on a file and browse: it it is okay, I understand. but If you perform a search or any other operation (Go To declaration) that operation takes over the temporary tab and your file has to be reopened again, and when you do so you loose the information of the search… combined with double click the user would allow to keep the tabs he wants to.
    configuration: i’m aware of the packages menu, but you can not see all the configuration possibilities at once, you do not know where to look for setting the appearance unless you know which package does it
    building: when you attach a builder capable package to atom that will probably have a command line output, like a console, for that you need a new window i guess? (see platformIO builder or serial terminal). Assume you have a strange CPP build error and you want to copy that to google/stackoverflow. In such case, trying to copy from the window (at least on windows version) will select everything in the Atom editor (literally) and your clipboard will contain all the text from the opened and visible panels. So maybe it is just a text editor who cant currently coop with multiple windows being opened but people are using it for development, as an IDE with plugins and when using so, this is a valid bug.
    hotkeys: yes i would spend my time to create a hotkeys for all the “trivial” menus. I don’t think it is a valid argument to say we have graphical menus with options and a 2000page documentation describing additional command lines (or command palette if you prefer) commands.

Again I see a lot of great potential and great things here, but currently it is just a good looking demo. For development I can not use it. The problem is that for text editing there are simplier tools, for compilation there are highly customizable (with out-of-the box solutions) IDEs (like Eclipse). Placing the Atom somewhere between Notepad++ and Eclipse in my feeling. Maybe I just expect too much of this tool but with all those development packages available one would expect that “Hey! We have a brilliant new tool living in 2020!”, but in reality you have to make a hell lot of compromises to keep using the tool.


#6

I see that you have had a very specific bad experience with a package. I feel like the package is probably the reason why, not Atom, but if you tell me which one it is, I can take a look and see if I can identify anything.

I’ve been using process-palette to run scripts and things, and I haven’t had a problem copying its output.

yes i would spend my time to create a hotkeys for all the “trivial” menus.

The sarcasm is unnecessary. Don’t create hotkeys for trivial commands, just ones you want to use.

Again I see a lot of great potential and great things here, but currently it is just a good looking demo. For development I can not use it.

Atom is definitely not a demo and plenty of people use it for active development.

Placing the Atom somewhere between Notepad++ and Eclipse in my feeling.

You don’t need to rely on your feeling about it. Atom was specifically designed to be in between those two categories of software.


#7

Okay, thank you for your reply.

If you are interested in checking: use any ESP8266 or Arduino example.
Here in this case (any of the above) people usually use libraries, actually it doesnt have to be esp or arduino, I would say any bigger C/Cpp project requires similar basic features:

  • I would expect that once I have a library downloaded under my project\lib folder with sources and headers, the Atom parses those files as well and the go-to declaration/definition works as usualy.
  • I would expect that once I have a compilation error at a line I at least can copy, but better would be to be able to open the faulty source at the line it caused the failure.
  • I would also expect that upon search, the search-engine in the background knows the language and offers me the hits in a list of relevance, listing the first that matches the language syntax and sorts a hit at the end if it is not related (to source code)
  • I would expect that search does not take exactly as long as it was the first time, I don’t know how editors are dealing with it but for Atom there are packages to “boost” the search engine, from an editor it seemed a bit odd that the user has to build its basic feature list from scratch, I would also expect that once the search finds a function definition the go-to-declaration works, at least for that function.

#8

And how does Atom do this without knowing about the specific language you’re using? I don’t know much about C++ packages, but ide-cpp is based on Clangd, which says that it supports going to declarations.

I would expect that once I have a compilation error at a line I at least can copy, but better would be to be able to open the faulty source at the line it caused the failure.

Like I said, that’s under the control of the package you’re using to compile.

I would also expect that upon search, the search-engine in the background knows the language and offers me the hits in a list of relevance, listing the first that matches the language syntax and sorts a hit at the end if it is not related (to source code)

This sounds like a fantastic idea for a package.

I would expect that search does not take exactly as long as it was the first time, I don’t know how editors are dealing with it but for Atom there are packages to “boost” the search engine

If you have ideas about how to make the core find-and-replace package better, you should contribute them at the GitHub repo.

from an editor it seemed a bit odd that the user has to build its basic feature list from scratch

That’s literally one of the selling points of Atom. The head visionary at the dev team, @nathansobo, did a podcast interview all about it and one of the things that he wanted was a radically customizable editor that could be very different things to different people, unlike opinionated and monolithic IDEs such as NetBeans and Eclipse.