Sublime Forum

Sublime Text 3 Meta, and how it can stay ahead of Atom

#1

Disclaimer: This is not going to be an Sublime Text 3 vs Atom war thread :smile: I LOVE Sublime, and have no intentions of switching over. I’ve messed with Atom, and it feels very sluggish due to it being developed on web technology. Sublime is fast and mature in comparison, and has native binaries for each platform. Enough said :smile:

My point of this thread is to highlight a few suggestions I have for Sublime.

  1. Web Presence - One thing Atom has going for it is http://atom.io. Atom’s website is beautiful, modern and fresh. Especially it’s “Discuss” message board. Though functional, I feel like Sublime’s phpBB is very dated feeling. It may be shallow, but I feel a lot of people will take Atom more seriously just because of it’s already strong web front.

  2. Package Control - Atom has package control built into both it’s command palette and it’s website. I love Will Bond’s package control; There’s absolutely nothing wrong with it. But since most people consider Package Control an essential, it’s nice that Atom has a package manager as a native feature both in the app and on the website. Maybe there is possibility of closer integration/linking with Will Bond’s website and the official Sublime website?

  3. Extendability - Atom totes being more hackable. Everything about it’s UI is rendered through web technology and can be changed with a stylesheet. While this is also it’s downfall (speed-wise), I feel Sublime could offer a bit more in terms of how it handles extendability (sidebar, etc).

  4. Menu Structure - I am getting a bit nitpicky now, but one of the things I like about Atom is it’s “Packages” menu in the menu bar up top. In Sublime, as I install more packages, my menus get messier and messier. Some packages like to put their stuff under the “Tools” menu (some at top of Tools, some at bottom), some packages put their stuff under the “View” menu, etc. It’s gotten a little chaotic. This is really the fault of the package developers, not Sublime itself. However, Atom is encouraging devs to put their stuff in the “Packages” menu. It’s a first-level menu, not a sub-menu, so I think it’s more obvious that installed packages go there, and not everywhere else. This might make for a more organized menu structure in the long run.

  5. Plugin Host Crash Debugging - Every time someone else’s package causes ST3 to crash, I curse at both Sublime and at the package developer. It’s really not Sublime’s fault, but I would love a bit more feedback about which of my 20 installed packages is causing the crash. I don’t know how Atom compares in this regard, but I know it uses the Chromium dev panel, so in theory you should be able to see which scripts error out? When I open Sublime’s console after a plugin crash, I usually have no clue what’s going on. If anyone has any tips, please share :smile:

If anyone else has any suggestions, please keep it constructive! Sublime is developed by mainly one guy, and he’s done an incredible job (if you are reading this, thank you)!

1 Like

#2
  1. yepp, i hope package control will get included into sublime 3 final

  2. a few more api would help really good, but with latest addition of icons in sidebar i can forsee a lot development on that one, i would also love so see bracket-style QuickEdits (opening a small editor, showing only specified portion of a file, inline - scrolls with other content) which would be scriptable, so one can edit css rules, and dig deeper in nested C functions

  3. i actually prefer sublimes way of doing things, that way subl-hg(mercurial integration) is in tools while origami(makes multiples view-panes management easy) is under view - yet there shoul be some common guidline where to place commands (yet i actually almost never use the menu, i CTRL+SHIFT+P myself through the day)

  4. all my yes! maybe it could be done in same way chrome handels its plugins, we would have like 20 plugin-container running, but plugin would crash independently

0 Likes

#3

how does Atom compare with Brackets in this regard?

I love Sublime but I sometimes use Brackets to reverse-engineer some clients websites.

an informative review of Atom here:
gnuu.org/2014/03/10/my-week-with … om-editor/

0 Likes

#4

re 1), Discourse? Hell yes, I love it. and it would have a notification system where you don’t have to check 2 web pages or lavishly subscribe to a thread. It could even have email notifications - finally.

re 2), yes and no. I think it’s fine like it is now, but there should definitely be a possibility to contribute to the standard packages.

re 3), This is why Github chose to use web technology for Atom: it’s easy to edit and provides almost indefinite ways of configuring the UI. If Sublime was to provide something like this, it’d have to be at a far lower level and would likely involve a lot of additional code and caring. Yes, it would be awesome, but I don’t see it beneficial enough currently. There are existing UI elements in ST currently that could use only a bit attention with huge outcome, such as the sidebar or statusbar.

re 4), I actually kind of like that idea. I should test that with one of my packages and insert eventhing it does there, plus settings stuff with a separator. It gives a good overview on what a package can do for when you don’t want to use the command palette for some reason and the menu bar is empty enough. Furthermore it could reduce the procedure of browsing a package’s settings by one level.

0 Likes

#5

Well said. I notice in Atom, the sidebar colours folders and files by their Git status. I find this overview in the sidebar really handy, because GitGutter for Sublime only shows Git status by line.

Also, other UI elements could use some extra extendability love, like the minimap. Atom already has these: https://atom.io/packages/search?q=minimap, and more specifically this: https://atom.io/packages/minimap-find-and-replace …The Sublime minimap is pretty cool, but it could be even more useful.

Man, the hackability of Atom has me very jealous. The performance issues VS a native app like Sublime still keep me from jumping ship though <3

0 Likes

#6

I smell an intitiative?

Navigating the Preferences > Package Control > [Package] for settings is quite annoying and I would much prefer menu entries for discovering functionality of new packages than keybindings. (Commands are also OK, but not as effective for discoverability.)

0 Likes

#7

I agree. That said, I think that it is important to have both organized menu structure AND command palette options, for everything a package has to offer.

0 Likes

#8

i would love to move this functionality from the gutter to line numbers

0 Likes

#9

[quote]That said, I think that it is important to have both organized menu structure AND command palette options, for everything a package has to offer.
[/quote]

Yes, definitely. I should mention that in the unofficial docs for creating a package too.

You mean you would like the line numbers to be colored? Not sure I like that. It works great as is now and I’d rather have this: f.cloud.github.com/assets/67137 … 33ad23.png

0 Likes

#10

I’d like both :smile:

0 Likes

#11

That looks spiffy :smile:

0 Likes

#12

yeah, the lines to show changes in current file (actullay the ability to assign scopes to line numbers, and maybe ability to create own gutters: as now i have 4 plugin fighting in the gutter bracketHighlighter, Linter, changesSinceOpenedandLastSaved (notepad++ like) and breakpoints - its a mess!)
and of course the sidebar to show status of all files (defined by a plugin too, so its not only git or hg but i can also add dropbox or googledrive sync status there, would be cool to ba able to show multiple informations that way eg add a small avatar if i am in a collaborative editing session)

0 Likes

#13

I agree Sublime needs better management for the the gutter etc. With that said, at least with BracketHighlighter (BH), you can turn off the the brackets in the gutter if the battle of icons is too much. In BH, you can specify your icons as “none” in the settings file to not show them github.com/facelessuser/Bracket … ight-style. Not everyone will like the icons, so you can make the highlighting as subtle or unsubtle as you like.

0 Likes

#14

actually i am quite happy BH wins this battle

0 Likes

#15

Yup, Sublime needs to have minimap and tree view support for git color coding, that’s a HUGE advantage Atom has over Sublime. If Atom was a little faster Sublime would have a problem.

0 Likes

#16

[quote=“JerseyMilker”]
5) Plugin Host Crash Debugging - Every time someone else’s package causes ST3 to crash, I curse at both Sublime and at the package developer. It’s really not Sublime’s fault, but I would love a bit more feedback about which of my 20 installed packages is causing the crash. I don’t know how Atom compares in this regard, but I know it uses the Chromium dev panel, so in theory you should be able to see which scripts error out? When I open Sublime’s console after a plugin crash, I usually have no clue what’s going on. If anyone has any tips, please share :smile:[/quote]

Yes that would be a great feature. For now, here’s what I do:

  • If you just installed or updated a new plugin and it was working before, that’s most likely your culprit. Check out the GitHub repo and see if anyone else is having the same issue.

  • Try opening the debugger and crossing your fingers you can get a glimpse of an error message when you reproduce the crash.

  • Resort to one-by-one trial and error, starting by enabling the most “sketchy” plugins first. Sketchy meaning it is relatively new and therefore may not have had time to work out all the bugs, has not been updated in awhile so some new ST update may have broken compatibility, or just seems not well-done somehow. Do this by copying the list of installed packages out of the Packages/Users/Package Control.sublime-settings
    file and paste them into the ignored_packages setting in your main user settings file (usually it’s just got vintage in there). Then you can delete them one by one to enable them. This is especially useful if ST crashes before you can even tell PC to disable/uninstall a package. This tip taken from my answer on SO.

0 Likes