I'm one of the developers at Sublime HQ. We're all very excited about this release. If you have any questions you'd like to ask I'll do my best to answer them.
Are there any plans regarding first class support for LSP (or, more generally and perhaps more useful, first class support for extensions providing semantic knowledge about the code)?
I know that LSP plugin exists, but, anecdotally, folks are having trouble with it. Which i think is understandable https://lsp.sublimetext.io/features/ says Show Code Actions: UNBOUND, and this is the second most useful thing in LSP (the first is extend selection), it’s not that the plugin is wrong: it’s just that you can do only so much if the editor lacks first class UI/UX concepts for features, required to expose LSP to the user.
Just wanted to share my thoughts on why LSP as an open source plugin has more benefits than getting first class support from ST devs.
Cons of getting first class support from ST:
- ST is closed source. That would mean that the LSP source code would be closed source too and that would not allow other people to contribute to it.
- Implementing the LSP client in c++ won't make the user experience faster.
The speed mostly depends on the speed a language server returns a response to the LSP client.
- ST devs would shift focus on implementing the LSP spec which is mainly driven by Microsoft and the spec is somewhat driven by VS Code functionality. So ST would chase after offering the same functionality as VS Code, but then always be a step back.
Having LSP as a plugin allows the best for both ST users and ST devs.
It allows ST users to contribute to the LSP plugin, while ST devs can focus on making ST more awesome on their own way and adding new API-s.
All I can say is that LSP already has first class support, because the ST devs have specifically expanded the API to allow LSP to implement certain features. :)
Yeah, this is crucial to me. I was formerly a paid user of ST3 before switching to VSCode, but gave the ST4 beta a try a month or so ago. I couldn't get the LSP to work for me for Elixir, so I ended up back on VSCode for now.
I figured I'd wait until the non beta release, and try again.
The sort of minimal deal breaker level of support for me is being able to jump to definition. The symbols, if I understand correctly, are based on the syntax configuration, and for the common Elixir one, it includes the type definition line, each function head, and the callsites of the function, which makes it nearly useless for symbol navigation.
I figured LSP would help in this regard, but I couldn't make it work. The docs were vague, and I think I had to put some JSON configuration structure in some file, but nothing I tried I guess was the right file or right structure.
Still, I love everything else about Sublime and am excited now for multi-tab-select, so I'll probably give it one more try. Hopefully LSP is better integrated or documented by now.
I didn't have much to do with LSP or the plugins during development, but from what I've heard most of the work has already been done. LSP has had a ST4-specific branch for quite some time.
Let me also give an insight why keybindings are UNBOUND :)
Each person has different criteria of what is important,
Some people like code actions, some think it is the goto definition command, but almost all keybinding in LSP are UNBOUND. The main reason is to not cause conflicts with default keybindings.
Here is an example for code actions. Most editors use `ctrl+.` to trigger code actions,
but `ctrl+.` is a default ST keybinding used to go to the next modification in the code.
A lot of people consider it bad if a plugin overrides default keybindings,
so LSP lets the user decide what keybinding to assign to LSP commands.
As a developer, I tried to use a lot of code editors, my main criteria being performance, and I've stuck to ST since the first day I used it. Your editor is awesome and in term of perf you're far ahead. Thanks for your work, and also thanks a lot to adding the M1 support with ST4! I didn't expected it (ST3 works fine with Rosetta on M1) and it's much appreciated.
Thanks for introducing the multi select feature in text editing. There may have been other editors before which had but Sublime was where I first encountered this and where it felt natural.
It has saved me countless keystrokes!
I use VS Code now but it has started getting slower and it may be time to go back to sublime!
IMHO, VS Code makes for a fine cross-platform IDE (for those that like IDEs) but is a bit heavy-weight as a text editor.
I tend to use them both in different situations. If I want something that is FAST on very large files or projects, with superb language support for large numbers of languages and markdown - I use ST.
Yep, I switched to VSCode for general day-to-day coding, then to Jetbeans, but I still kept ST3 around for doing things with text. If I want to manipulate some text (even in large files) quickly, thats my goto tool.
New installs get ST3 installed by default, even if I don't have a plan to use it on that machine, I treat it as if it was a Notepad on windows back in the day.
I use sublime 3 pretty frequently, and am aware of this feature, but haven't experienced a moment where this was useful, or at least, not more useful than just running find-replace (which is fantastic on sublime with its pattern matching and speed and what not btw). How do you use this effectively?
2. Select other occurances of this something using CTRL + d
3. Move the cursors with the arrow keys, by using ALT + Arrow to jump to word boundaries HOME to jump to the beginning of the line for Ll lines that had a cursor on them, END to jump to the end, draw selections by holding SHIFT while doing any of that.
The thing is, when you got this it can be much faster than crafting up a regex in Search/Replace even if you are good with regexes.
I like the visual feedback with the multi select where I can select all the occurrences of a variable and then change the name at the same time without leaving the editor by just using the shortcut.
For find and replace, I have to leave the editor and go to a different tool window. Also, my regex skills are sometimes lacking when I want to find something on a deadline. I only use find and replace when I have to do the same refactor across files.
Hey there,
subl is absolutely the best when you quickly need to open and edit a huge file. You cannot, however, do that when the file only has 1 line. Do you think it might be possible to get that fixed at some point? Opening a 1 line 1GB file on a modern machine brings subl to a complete halt and regex editing is sheer impossible.
Not that any other editor but Vim seems to do this without issues, but it is one of the things the whole experience of Sublime leads me to believe would already be possible :)
So is your internal mem structure/unit of operation split on new line? Sounds like you need to refine that to include a max character count sub line structure.
Hi! I'm struggling with the same problems (Debugging huge ASM.js files).
The best modern, non-vim editor to handle such files I've found is Cuda Text: http://uvviewsoft.com/cudatext/
Absolutely top tier lightweight code editor for special tasks.
I didn't know about UltraEdit - just tested on my files that I work with: 50MiB of ASM.js code in ~20 lines.
UltraEdit is very sluggish - to the moment it's not usable to work with.
I did a very subjective comparison between few editors in terms of speed in working with such file (flow is: open, find, manually edit, save).
And in my eyes here is the result:
1. Cuda Text
2. Sublime 4
3. VS Code
6. UltraEdit
Please note: I only tested the workflow that I work on daily basis. I can see that UltraEdit can do much more that Cuda Text, and in different test cases probably it will be a much better choice. But not for me.
I concur with trzeci that UltraEdit is by far the slowest in editing large text files compared to the other contenders being discussed here. I was not aware of CudaText before but just gave it a try also and it seems fairly rock solid compared to ST.
Perhaps not super-common, but at work we have to deal with XML files that are 4-500MB in size that don't contain newline characters. Every now and then we have edit them.
It's at least something I'd expect a premium text editor to handle without issues.
It's common when working with big API responses which are indented using plugins after loading. Most APIs do not serve whitespace in their responses, so it's crucial that the editor won't freeze up on initial load.
Sublime can do big files without any issue, the specific use case here is if it all sits on a single line. Most XML/Json files are not single line, but yes it happens.
Sublime is awesome, thanks! I've purchased an upgrade straight away.
Can you pretty please fix the issue where files deleted/renamed outside sublime are shown as unsaved? It often ends up with a lot of wasted debugging time until I realise I'm working on the wrong file
Please show "filename (deleted)" on the title, instead of "filename •". Thanks!
This doesn't solve the issue. To make things clearer, here's how you replicate it:
* Open file1.txt in sublime. This shows up as "file1.txt" in Sublime.
* In the terminal: mv file1.txt file1a.txt
* Back in Sublime it will show "file1.txt •" as if it's modified and unsaved. Saving that file will now recreate that file, and you'll end up duplicating the file and editing the wrong file.
Instead, what should happen is when you delete/rename file1.txt it should show "file1.txt (deleted)"
Try the same thing in any other editor (e.g. VSCode), and it handles it correctly.
1) If the file was renamed and its contents changed - what should the editor do? Load the changes underneath the user? If yes: user #1 mad because now the only copy of file contents was wiped in OS, and now by the editor in what was originally a mistake. If no: user #2 mad because updating file outside of editor didn't update it within editor as they'd hoped.
2) If the file was only renamed - but renamed by mistake - to something generic or wrong: user #3 mad because original filename (which may also have been a location) is now lost.
In all cases, the optimum solution is to clearly indicate to the user that the file name or contents have changed, preserve both the contents and the filename/location, and give the user the option as to how to deal with this given their particular situation.
This should be a separate indication than that what seems to be currently offered which is to conflate user initiated changes, and OS initiated changes as the same thing. If this is the case, they are not the same thing, and this should be clearly reflected in the UI so that the user is alerted and can decide what to do.
Try renaming a file from the Finder currently open in Numbers (macOS). Notice how Numbers picks up the new name. So definitely possible, on macOS at least.
On MacOS the file name is only meta data, ie the file has an internal id that does not change, but on other platforms filesystems the filename might be the identifier.
If it's renamed in Linux the inode number will remain the same. (Good luck finding where the new file is, I guess Sublime would spot it if it's within the currently opened directory/project with inotify)
The problem is that you can’t distinguish between a file that exists (where saving would overwrite the file) and a file that doesn’t exist (where saving would create the file).
Are there any plans to open source the GUI system? It could be a hugely beneficial for a set of cross platform apps.
Thanks a lot for creating this piece of software art. I’m a user since the v1 and no matter what the editor du jour is, I always fallback to ST and Vim.
This question has been asked a lot, so thankfully I've got an easy answer: You don't actually want to build on top of our UI toolkit. We make breaking changes all the time, there's very little documentation and no release cycle at all. This isn't a problem for us as we have in-house knowledge and can fix any breakages trivially, but you don't want every open source project to have to maintain it's own fork of a UI toolkit.
I completely support this. I write a ton of open-source software, and have many published packages.
Each one that I publish is a Responsibility. Like a parent that has children, the package is no longer “completely mine.” All changes and fixes are made, keeping in mind that someone may be dependent upon my work.
I’ve been writing SDKs -literally- my entire career (I can link to my very first engineering project, in 1987, where I designed a hardware system, and a companion SDK).
A perfectly legitimate reason for keeping code private, is that I am not willing to support it for any use, other than my own personal use.
There is no obligation to support the code at all though. You can release it once, say it’s unsupported, and let the community pick up maintenance / forks if there’s enough interest. Otherwise, no harm done.
In practice it doesn't work this way. Saying it is "unsupported" does not mean people will respect that boundary, nor will it prevent people from contacting you expecting your time and attention, which is what actually happens. There is significant overhead to open sourcing software.
Even for code I didn't publish (like corporate SDK internals), I have been contacted (which took some work, because my employer did not like customers interacting with Engineering), and told (not "asked" -told) to make changes to our corporate, closed-source SDK to suit some rando's tinkering around (also, for extra credit, said rando hadn't even purchased one of our cameras).
Even open-sourcing has its caveats.
Anyone that has spent any time at all, on most tech forums, have seen the "Open Source Holy Wars" being fought.
I tend to use the MIT license. I won't go into the reasons why. I write OSS, and I support it. I choose to do so under MIT.
In the past, I have been contacted (I make it easy to get in touch with me), and told that I was a "corporate shill" for not using GPL.
That's always a great way to start the day.
Also, our corporation had to fend off a few legal threats, because some of our software looked vaguely like some GPL stuff (I guarantee it wasn't -they were anal about the GPL), so zealots would sometimes throw sueballs (or vague threats, thereof) at us.
At least the patent trolls would do a little bit of homework before attacking us. These folks wouldn't even bother wondering if they might be mistaken before unleashing the hounds.
Someone should make sourceavailable.com - A service that automatically pulls my private repos from GitHub and makes it available as open source to other programmers. A read only version of GitHub, without the isssue/PR overhead.
Some people did close the issues and store them in a directory as plaintext on the repo. Want to report a bug ? make a PR. the extra little friction was added so that you need to spend a little time (and having spent that little time you might as well research a bit your bug or read the doc). Bonus point, your project is now completely portable.
> and let the community pick up maintenance / forks if there’s enough interest.
This almost never happen, even when the interest is very high...
I love open source and free software, but we should face that this point is more a fantasy than a real thing.
I would say, it depends on the codebase and documentation. Taking up a abandoned mess of undocumented spaghetti code? No thank you. And most "open sourced" repositories are like this.
But the ones that have at least rudimentary documenation, something a new maintainer has something to work with - those are the few ones, that might be picked up by some community. Rare, yes - because there is not much fun in writing documentation on your personal pet project in your free time. But it might be still worth it.
You could extent your UI toolkit and profit from it. make it open source and make it free for open source projects and with fee for commercial projects.
It's very beautiful and sleek UI and the market of UI are lacking in this area. a lot of people demand this UI toolkit and asking you to release it is a prove that it will be a successful product.
I love Sublime, I've paid for every version and I did the same for my devs for many years (when I had a company cc!). I would just like to say remote editing is the only thing I use vscode for. If ST had remote editing I and probably a lot of other people would use it more.
I remote edit with ST. I choose File | Open to get the native Open dialog, type 'sftp://my.dev.server' and press Enter. Username and password logs me in. Then I navigate to the folder I want, and open a file or folder in ST.
I don't use VS Code. How do you do it there that is so much better?
For one off things, it's easy enough to just use something like WinSCP or ssh + vim. Having to count on a remote environment having all of the X client software installed to do X forwarding and sublime text to boot is going to leave a lot of people disappointed. If subl supported remote editing out of the box the presence of any extra software beyond, say SSH, becomes something no one needs to care about. Bonus, your local install is already configured and setup exactly the way you like it.
I've loved Sublime for years, and it's always the first software I install on a new machine. I even voted with my pocket by buying a license.
However, since we started using Yarn workspaces (for JS), I've needed to switch to VSCode because its auto-import is just so much better, and it's one of those things that's hard to go back from, once you're used to it. Sublime text already indexes my code for search, which can probably be used for path suggestions / automatic imports without affecting performance too much maybe? I dunno.
I wouldn't mind it being a plugin either (before Yarn workspaces, I'd use FuzzyFilePath plugin which worked pretty well). But native support would mean the performance would be on par with what I've come to expect from Sublime Text :)
I don't have any questions, but I would like to thank you and the rest of the team at Sublime HQ for developing such terrific products. I've used Sublime for various purposes for about 7 years now and just purchased, I think, my third license for it. And if I had to label any of my dev tools as a "must-have" for the way I want to work, I would probably put Sublime Merge first.
ST4 has a number of performance improvements in relation to large files, but we don't plan on not loading the whole file into memory as this is a core assumption in the entire UI stack.
Congratulations on the new release though, it's been my favorite editor for years. Just a heads up, when you upgrade an existing license, the instructions say to click on Help > Enter License, but you have to remove the current license before you can enter a new one.
Yup! I just ran into that too. Also, it looks like I could have upgraded my existing license for $70 via going that route, instead of buying a new one for $80. (Np for me, I'm a huge fan, but for other existing users check out "Help" menu before buying a new license)
You could use philosopher John Perry's method. Put every activity on a To Do list, ordered by importance. Procrastination is doing lower-down items instead of higher-up items. Perry has the top of his list filled with so many awesome items that even things lower down are still well worth doing.
So, it sounds like you could add more awesome things to do to the top of your list, until your procrastination becomes things like..watching Sublime tutorials. He explains his method in detail on this page:
Folding code with curly braces doesn't "eat" the brace. It's indent-based, not syntax based. There is a 2 or 3 years old issue on their github, and they don't plan to fix. A little annoying for a paying editor.
I'am using it since 2 years, and i planned to pay the license as soon as a have a stable income.
For me it's the best second editor, i always have it open when i do an operation. I have different main tool / editor open but always sublime text as a second tool.
Thanks for this release! I use ST every day and I love it: the speed, the efficiency, everything.
The one thing I miss, though, is manipulating files from the left panel (moving files especially). I know there is a plug-in doing that (Side Bar) but it lacks drag-and-drop support.
I was surprised to see "By default, GPU rendering is enabled on Mac, and disabled on Windows and Linux". Is there any reason I shouldn't manually enable GPU rendering on Windows/Linux?
Windows and Linux have a much larger variety in hardware and drivers and much lower prevalence of high-dpi monitors. So we felt that for now it would be better to leave it disabled by default. This may change in the future.
Can you at least turn it on this time? I stopped using ST because scrolling was so incredibly choppy on linux. It always lagged a second behind and felt so unresponsive.
Edit: just read the patch notes, the ans is yes. Awesome!
You can use it however you like, but the moment I get to so many tabs open I can't read the titles of all of them is the moment I know I have too many tabs open and just start closing old ones, likely with "close others" action.
You have ctrl tab and alt-# but once tab names are no longer visible/readable I don't see the reason to keep so many open. I think the filetree view is exactly how 100s of files should be organized for finding a file you can't remember the name of or ctrl-p for quickly opening a file you do
You have ctrl tab and alt-# but once tab names are no longer visible/readable I don't see the reason to keep so many open
I make extensive use of layouts with several panes, bookmarks and, for longer files, opening multiple views into the same file and code folding. I find these tools particularly helpful when editing or reviewing sets of related files. This happens a lot for me: application code and its tests, front-end and back-end code either side of an API, code defining types/constants/interfaces and code using them, or sometimes larger numbers of related files when these kinds of pairings multiply. As long as everything stays open, ST preserves all of that display context independently for each file/view. Closing and reopening would lose that context every time.
I tend to open multiple windows instead. Though, to be fair, I usually do that on a per project basis. I try to close tabs once I realize I'm not going to be using them in the near future.
Basically the exact opposite of my browser habits, where I easily have 100 tabs open at any time, lol.
Arm64 builds are available to download just like any other version. The port was done on a RPI 4, but it's also been tested on a PinePhone and a Nintendo Switch.
Is there a reason why ST re-indexes everything on every update? (I'm fairly sure it didn't used to).
My workflow involves keeping 9 sublime projects open most of the time (damn microservices), and restarting sublime after an update makes my computer very slow (not unusable, not noticeably laggy) for 5-10mins each time.
Relatedly, sublime has an excellent changelog window, but it only shows up after you've already updated! It would be really nice if I could see the changelog before I decide whether to update or not...
When the syntax definitions change, the symbols that need to get indexed change as well. Hence the project needs to be re-indexed. There are settings for controlling how many resources the indexer is allowed to use.
We only ship downloads from sublimetext.com. Any other avenues like homebrew, flatpak, etc. are supplied by third parties with no relation to us. Sublime Text on macOS has its down update mechanism that you may prefer over homebrew.
Thank your for bringing into the world this beautiful tool. I paid for ST2, ST3 and SM and it brought a lot of joy into my work. I'm more into VSCode now (ST python editing experience has been lagging behind), but I keep ST close for out of project editing.
I hope one day you will release your UI toolkit. Since it's crossplateform, fast, and plug into Python, it could be a wonderful alternative to PyQT, wxWidget and the like, and we really need something in the Python world.
> I hope one day you will release your UI toolkit. Since it's crossplateform, fast, and plug into Python, it could be a wonderful alternative to PyQT, wxWidget and the like, and we really need something in the Python world.
Note our UI toolkit is really adjacent to python - there's no integration there at all. See here for my answer in relation to releasing/open sourcing our UI toolkit: https://news.ycombinator.com/item?id=27230608.
> Note you can upgrade to the bundle from either a Sublime Text or Sublime Merge license.
Right now I have a ST3 license and would like to upgrade it to both ST4 and Sublime Merge.
If one upgrades to a bundle now, will it be possible in the future to upgrade the bundle license to a single product one? Or is the only option to buy a new single product license instead?
(I’m ok with it either way, I just want to find out so I can plan better.)
Regarding the licence upgrade options: Are there any solutions for users owning a single licence for both Sublime Text 3 and Sublime Merge? My Sublime Merge licence for example is still valid for 2 years from now. If I try to upgrade my current licence and want to bundle them together it says the price is 152 USD. Any options for users like me to not make them pay twice when choosing the bundle licence?
I am wondering if it's possible for Python plugin to add custom UI elements?
For example, if I am using Julia/R I want side panel that shows all my current variables in memory. Is Sublime plugin system capable of adding UI components such as variable/plot viewer and add custom interactions to those UI panels(i.e. zoom/rotation for plots)?
About Sublime Text says that I have a Single User License registered. Is it going to prompt me to upgrade, or am I grandfathered in some way? I bought this Sublime 3 license in Feb 2018. Just trying to understand what's going on. The app itself is great so far, especially the GPU performance.
Your license is still valid for all versions released before Feb 2021 (3 years after purchase). Once you update to a version released after that date you will see a "LICENSE UPGRADE REQUIRED" in the title bar. Under `Help > Upgrade License` you can then purchase an upgrade. There is also a popup prompting for an upgrade if you've entered an "expired" license anew.
Newer licenses don't work on ST2 for technical reasons, but I'm sure we can work something out if you contact our sales support (bottom of this page: https://www.sublimehq.com/sales_faq)
I can't really say one way or another. Given that we can't feasibly test on the large variety of ARM devices out there I think it will depend on how maintenance free the ARM Linux builds are and how much people ask for a ARM Windows build.
Do you expect that working with Python codebases will get better with this release? I mean it in the context of code completion and other "intelligence" features.
It's by no means ST for terminals but Micro is well worth a look if you haven't seen it. It has sane keyboard shortcuts, nice syntax highlighting, mouse and multi-cursor support.
Could it be that you‘ve already been using the new GPU rendering in SublimeMerge but not ST3?
That would explain the visual corruption issues I sometimes have with Merge but not ST3. In Merge some actions, sometimes (mostly in the settings) corrupt the application window (sometimes also after minimizing and sleep) on my MacBook. To me it looked like a rendering/GPU issue. It looks like blocks of pixels having different colors, lines shifted, etc.
Yes we've been shipping the hardware accelerated rendering with Sublime Merge for some time now. A bug report would be welcome (Under Help > Report a Bug)
I can see personal licenses get the 3 years worth of updates that you've mentioned elsewhere in the comments here. However, business licenses get 1 year of use before it expires, but I can't tell if that includes upgrades from ST3 to ST4. Can you clarify what the status is for that?
Business licenses follow the traditional subscription model. The licenses don't expire, but they do get revoked once the business either revokes them or stops paying. Because of this there is no upgrade from ST3 to ST4 - it's simply included in the subscription.
Would you ever consider a licensing model similar to Cockroach DBs BSL where older versions fall into the public domain/are open sourced once they're no longer revenue generating? Or perhaps once a new major version is out?
Is there a way to go back to the trapezoid-style tab UI instead of the rounded new Chrome tab UI? I didn't see it in any of the preinstalled themes but maybe there's a flag somewhere.
We do not have any plan to do this, though there are some features we're looking at for improving existing terminal packages.
I personally wouldn't ever use a embedded terminal, as their user interaction inherently conflicts with the rest of the application. ctrl+w for instance needs to both close files/tabs as well as delete a word in the terminal.
That kind of feature requires integrating a TypeScript compiler, akin to an IDE. Sublime Text is first and foremost a text editor and such doesn't have that kind of information. You may want to look at plugins like LSP for that.
Oh interesting. I had previously read a limitation of changing the title bar to use a dark theme was based on sticking to win32. Sounds like that hurdle was overcome in a different way - either way I'm appreciative.
I've been using Sublime Text long before I started working. I use it for any code or text related functionality. Of course it's also used internally by everyone working on our products.
I've always been a big fan of using snippets and auto-completing based on open buffers in a project instead of using LSPs.
I haven't used ST in a while but decided to install ST4 to try it out.
I opened a Flask application that uses SQLAlchemy. I opened a Python file and typed User. and then it showed me a list of fields and methods on my User model without having the User model open in a buffer.
I did the same thing in an Elixir project and after installing the Elixir package it worked for project specific "things" in my app. Like after typing UserView. it showed me only functions available in that view. Likewise it did the same thing with context modules, it picked up all functions inside of a specific module.
In both cases as I started typing "User" it showed me options to pick from. In both cases it also listed out the number of definitions for a specific "thing" and lets you quickly jump to a specific one. If you mouse over a function it brings up the list to pick a definition / reference. There's also key binds to bring up a CTRL+p'ish feeling menu to see and preview the file where something is being used.
It's not as good as a LSP but it's definitely a few notches above what I've seen in other editors and the best part about it is not needing to configure multiple LSPs and it's lightning fast.
How does it compare to the autocomplete in IntelliJ/Webstorm/Phpstorm? The amazing autocomplete is most of what keeps me on Jetbrains, but their software is soooo slow.
IntelliJ's autocomplete is much better, but it's doing some heavy lifting to get such good results.
I haven't gone crazy testing ST4 btw, I played with it for like 20 minutes. It felt like it was maybe 65% between ST3's auto-complete and what you'd get with a LSP back-end using VSCode. Meaning it's closer to VSCode than it is than ST3, but not as good as a LSP, but there's also no effort to get it set up so it's a reasonable trade off if you're someone like me who just wants pretty good auto complete without configuring a million tools to run in the background.
I haven't tried TabNine but according to its home page it doesn't support Elixir. It also requires a monthly subscription (the daily limit would be consumed in about 5-10 minutes of coding). I don't mind paying for things but at this time I'm not interested in subscribing to more services.
YCM feels more like a LSP client than buffer / project level auto-complete. AFAIK it requires you to have a language's runtime specifically installed which is a deal breaker for me. Most of my apps run in Docker and I don't have local copies of any runtimes installed.
ST4 works wonderfully in this case because it parses everything out based on syntax highlighting rules.
I feel bad using VSCode after years of supporting Sublime (by purchasing a license). However the one case where I do use sublime repeatedly? When I need to open an editor QUICKLY. It boots faster than VSCode, and frankly, it finally broke me of my constant habit of VIMming now that I have it on my mac, win and linux boxes. I am eager to try V4, but I'm so deep in VSCode now, I don't know if I can find my way out! I can even cross compile C and debug in VSCode!
To me, VSCode competes with IDEs, Sublime competes with text editors. Startup speed accounts for a solid 95% of that distinction. If I need to make a quick edit to a file or write down a temporary (but reasonably persistent) note, the only tools I've tried that let me do that in less than 3 seconds are Sublime, Notepad, and Notepad++. Among those choices, Sublime is the clear winner in overall usefulness and functionality.
Not just startup speed, but speed/efficiency, period. I use Sublime a lot to manipulate decently large csv, json, etc. files. Multi-cursor text wrangling still works well even with 10s of thousands of cursors, VSCode chokes hard way before that.
Very true, the more features a product has the slower it opens. That middle ground is why I don't use VSCode
If I want the best IDE, its something from JetBrains. It's definitely the slowest to open up, about 9 seconds on my machine, and I wouldn't think of opening a multi GB json file in it, but past that initial open its just as fast as sublime (again on my machine).
If I want the fastest text wrangler or dealing with a massive file, its Sublime. Having used all 3, VSCode just leaves me wishing I opened one of the others.
The best thing about VScode is that it is a really good (just not the best) IDE that is also free
Is VSCode still fast after you add enough plugins to make it reach feature parity with IntelliJ?
I've tried VSCode a few times through the years, but it always seemed like I needed at least a dozen plugins to get all the features I have out-of-the-box with PhpStorm. I guess it's a philosophical difference between modular components and a big ol' monolith (though, beneath the hood, IntelliJ IS modular... most of their software is just a branded collection of plugins, though all the major ones are first-party instead of community-driven like in VSCode).
you're comparing a text/code editor with a full fledge IDE. VSCode is _not_ an IDE, it is a glorified text editor with an amazing plugin system. if you need an IDE for what you do, use PHPStorm. I myself still use Visual Studio for a lot of the stuff that I do in .Net as I find I need the features it has.
I mean, let's be honest, the difference is getting blurrier and blurrier as "text editors" gain more features over time. And workflows, too, aren't that clear-cut... is it wrong for a "text editor" to include built-in autocomplete or git support? What about project-wide regexp search, or is that a better tool for grep? Etc.
At the end of the day, I don't care what a program is classified as, only if it can do what I need it to do. Like many here, I've used Sublime for its speed on simple edits and other editors/IDEs for more complex dev work. That's fine. But VSCode occupies that in-between space, offering a mix of performance and features.
The holy grail for me would be something like PHPStorm but with better performance. I wonder if Java has something to do with it, vs it being built as a native OS app? I don't remember Visual Studio (the full IDE, not VSCode) being this slow, ever, even on old Windows 95 machines. And even back then it was pretty feature-complete too, especially compared to VSCode if not IntelliJ.
I guess my underlying question is whether it's really impossible for an IDE to be both fast and featureful.
Actually uses a real backend neovim instance. Can’t get better vim support than that! I find it a god-send when working in VSCode as the Vim key map alternative was slow, buggy, didn’t have full support.
I actually battle vscode every freakin day over autocomplete. It's really bad if you're writing php and happen to have a // phpcs somewhere, it'll convert <?php to <?phpcs which makes no damn sense.
For my use case, autocomplete of any kind is useless, so I turn it all off. When "in the zone" anything that distracts from getting ideas out of my head as quickly as possible is annoying. Also, zen-mode, FTW.
Sometimes after I type a variable name (the whole word, not partial) it autocorrects it into something else. I am in the habit of hitting Esc after each word now.
I don't understand the startup time issue. Tools I use regularly like VS Code, IntelliJ, etc. are constantly running on my machine. I pay their startup cost once per reboot. Once they're running, they open files* as fast as Sublime for me. There maybe other use cases, but startup time feels pointless to me.
*files of sizes I work work. I don't care about gigabyte-sized files; if I do, vim or my existing ST3 license are good enough.
There's very rarely a good reason to do so. The vast majority of times when I find people saying that they use a tool for its startup time, it's not because they actually have a good reason for not keeping their editor running (e.g. memory usage), but instead because they just don't want to.
Agreed, it's nice and fast. Sublime is my go to for notes, storing quick tidbits, quick macros (this has saved me lots of time), data editing, little bits of quick code, and SQL scratch pad. There is probably a ton more I could be using it for.
For me, I use Goland and Pycharm as IDE, and VS Code as editor. I also used Sublime, but found that VS Code somehow surpassed it, and startup speed is also very fine (if you have strong computer :-)).
Same. I don’t tend to need an IDE all that often. More often I want to read code and I need something that opens up FAST with good support for a WIDE variety of languages out of the box. ST ticks that box for me.
My favourite aspect of sublime is that the "sessions" are so reliable.
I often just open it to jot something down, and before I know it I have 15-20 notes on separate pages, I'll consolidate and save them to a file somewhere or delete them if necessary.
It's just a super reliable scratchpad and a versatile modern textfile editor.
This is exactly how I use Sublime Text. It's probably a workable development environment, but there are too many solid alternatives for that purpose for me. But as far as a quick text or code editor, there is nothing else I'd rather use.
I can relate. Huge fan of ST. I switched to VSC because of some integrations that were not available on ST. I hated it, it was only out of necessity. Everything on VSC just felt... sluggish, compared to ST. There's this barely noticeable input lag. Autocomplete seems to lag ever so slightly. The startup is just a smidge too slow. And so on in all dimensions.
Alas, now I'm used to it, and I can't go back because of the same integrations that made me switch in the first place, and new ones I've found since. All the crispness and snappiness is gone in favor of deep features. I accidentally became an IDE-guy.
Yeah, it's rough. A good thing about VSC is that it's atleast as configurable as ST is, though. You can disable a lot of functionality if you just take the time to read up on the config. You'll never make it as smooth as ST, but it's worth it to reduce the friction. If you're forced to use it, might as well make it as decent as possible.
You almost definitely speak the truth, but that kind of attitude towards performance is why so many apps are so awful to use now. Especially if you can’t afford the newest Mac.
The one I’m using is $1000. That’s a bit pricey, but strikes me as reasonable value for money. Especially since this is the best performing laptop I’ve ever used.
I get what you’re saying though. Many folks might only have budgets in the range of $500-800. With any luck, other manufacturers get their shit together.
Some people have budgets of $0; they have to use the device they're using currently. I'm already feeling empathy for them in a year or two once all their apps are written by software engineers on Apple silicon Macs who don't test performance on older hardware…
Sublime Text can (and is) used by many people who pay nothing for it. And, to be clear, I was talking about apps in general, not just Sublime Text–which is one of the few apps I trust to not fall victim to the issues I described.
That is true, but it's possible to avoid using those. What you can't avoid using the actual OS itself. Try booting into Yosemite sometime and comparing your computer's idle resource usage to the latest Big Sur and you'll see what I mean: try as I might, I cannot get the computer to use less than 5% CPU usage, while this used to be trivial.
M1 macs are the first Apple devices where I feel you're getting excellent value for money and they are super affordable for what they are.
These are professional tools, you're going to need to invest into hardware to get a good experience - if you value your time at all you'll be spending a good ammount of money on a laptop, high quality chair, good desk, monitor and peripheral.
If you're an amateur or a student then you can afford to wait.
It's like me complaining that my amateur drill overheats on hard surfaces and I can't drill through stuff realiably without cracks - if I need to do a few holes here and there the cheap stuff will do, if I do this for a living I'm expected to have gear that will save me time and improve my results.
Performance is a feature, and it doesn't rank very high past some critical threshold (which is why people switched to VSCode - other features matter more)
Vscode existed long before m1 macs. I think designing software that only has acceptable performance on hardware that doesn't even exist yet is where the contention lies. That's hyperbole but I think what is being discussed is more the tendency of developers to be lazy when it comes to performance because the latest and greatest hardware makes their software snappy.
For people not fortunate enough to own an M1, it’s a slow to start typical Electron app. Don’t get me wrong, I love and use VS Code. But performance isn’t in the same league.
Sublime Text basically does what you describe above on ANY hardware.
Anecdotal, but on my Intel/Windows laptop, VSCode opens instantly and has my sizable project loaded in <1s.
I have one Electon app that I wrote myself and it's pretty fast as well even though it deals with a boatload of things, and I didn't really put any special effort in to achieve that.
Both on my current laptop (which is admittedly a 10th gen i7) and my older one (8th gen i5).
Not to say that Sublime doesn't load faster. I'd almost be surprised if it doesn't. But the whole "Electron apps are slow" trope really needs to go.
It doesn't open instantly on my work (Windows) desktop. But then I don't care as I generally open it and leave it open all day.
Same with Spacemacs. because of the way processes are more expensive on Windows, Emacs/Spacemacs is many order of magnitude slower than it is on *nix (the other places I use it). I tolerate it as I can't live without magit and Org and other staples.
I find the crappy Slack app (another Electron app) is also slow to open, load and update. So much so, I prefer to use their web client in a browser.
Anecdotal, also, but that's two Electron apps which are sluggish on fairly recent (3 years) hardware.
I mean... I would hope pretty much anything opens ~instantly on the most absolute cutting edge custom-designed SoC from one of the richest companies in the world. hahah ;)
On M1, Sublime is still faster than VSCode to open. The bouncing icon is not even done bouncing back down that the whole project is open in Sublime.
Yes still very fast in Vs Studio, but there's always something nice about Sublime being able to get to a file so quickly.
macOS does a notarization check with Apple servers the first time, can take a while. On subsequent runs the certificate is cached, so should be much quicker.
I don't think sublime really compares to IDE's like vscode and jetbrains products.
It sorta is in just the text editing realm similar to vim and emacs. Sure it can do more but I feel like it's not fair to compare it. That said sublime text is probably the only text editor I ever used that comes even close to competing with vim and emacs for text editing.
Do you actually ever need to open a new editor? Why not just start whatever editor you want when you boot up, and then open files in it?
You probably don't shut down and start up your web browser every time you want to open a new site, so why would you do the analogue with your text editor?
> Do you actually ever need to open a new editor? Why not just start whatever editor you want when you boot up, and then open files in it?
Speaking only for myself and not the GP: due to a lifelong habit of putting things away when I'm finished with them, I always close windows and quit applications when I'm done using them for my current task.
> You probably don't shut down and start up your web browser every time you want to open a new site
Not literally every time I visit a new site, but yes, I quit my browser every time I'm finished with my current browsing session, even if I might end up launching it again in 10 minutes for a different reason.
> due to a lifelong habit of putting things away when I'm finished with them, I always close windows and quit applications when I'm done using them for my current task
...but that's not a need - that's a preference, a habit, with no root in any utility or tradeoff.
> but yes, I quit my browser every time I'm finished with my current browsing session
That puts you in the minority of tech users, at least, if not computer users in general.
> That puts you in the minority of tech users, at least, if not computer users in general.
Is that an anecdote or is that assertion derived from some study?
I, too, close all windows/processes when I'm through with use. The overwhelming majority of people I've worked with have all done the same; of course that is anecdotal.
I solved this need long ago with BBEdit (hi Rich!): I leave it running all the time. It is the only application that starts with my user login, and it is always available.
I don't get really get this "quickly" thing. I just checked, on my 2014 MBP my VSCode takes < 3 seconds to open a project from shutdown, including opening 14 files. Checking Sublime Text 3 it's faster (1.5 seconds?) but 3 seconds it's not enough for me to care.
I tested "Visual Studio". It takes ~10-12 seconds. For some reason VSC code fits within my threshold of "fast enough I don't feel like I had to wait at all" where as visual studio feels like I'm waiting. I guess your threshold is lower than mine though.
I'm one of the developers at Sublime HQ. We're all very excited about this release. If you have any questions you'd like to ask I'll do my best to answer them.