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.
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.
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.
Or are the majority of the user-facing improvements to the LSP plugin still to come, based on the foundational work that just rolled out?
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.
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. :)
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.
Hope the explanation helps.
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.
Wonderful piece of software.
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.
1. Select something at one line
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.
Is this a common operation for a text editor?
It's at least something I'd expect a premium text editor to handle without issues.
or give UltraEdit a try. it opens huge files with ease.
Absolutely top tier lightweight code editor for special tasks.
worth a look if you do this a lot.
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.
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!
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).
* 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.
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.
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.
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.
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.
However, what about just releasing a zip file with the sources and linking it on your downloads page?
Code should be easy to read/download on https://sourceavailable.com/username/repo
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.
The current Rsubl implementation kinda works. But is a bit hacky for reliable everyday work.
Once again, love sublime, just a suggestion :)
I don't use VS Code. How do you do it there that is so much better?
If you decide to add it, please make it flexible enough to configure all options OpenSSH provides.
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 :)
Thank you so much!
However, opening big files doesn't work too well, it seems the program wants to load the whole file in memory. Any change on that front?
I've been using Sublime for years now and yet I barely use most of its "well known features" and I feel ashamed of myself.
I know there are tutorials out there, but I am a chronic procrastinator and I just can't bring myself to watch them while at home.
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:
I love this editor, but this detail annoys me:
https://i.imgur.com/wu6ZfSa.png
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.
Here is the github issue: https://github.com/sublimehq/sublime_text/issues/101
Maybe they fixed it and I did not look up new settings?
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 keeping a 32 bit version also.
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.
Any plan to have it natively in the future?
Edit: just read the patch notes, the ans is yes. Awesome!
My only complain with Sublime is that if I have 100s of unnamed tabs opened, it gets very difficult to find a particular tab.
I wish there was somewhat better tab organisation possible. Maybe there are some plug-ins, I did check last time when I was frustrated with it.
Does anyone else face this issue or have I been using it wrong?
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
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.
Basically the exact opposite of my browser habits, where I easily have 100 tabs open at any time, lol.
BTW: Thanks for a great Editor.
https://github.com/matias-pizarro/freebsd-custom-ports/tree/...
https://github.com/matias-pizarro/freebsd-custom-ports/tree/...
Hopefully soon these will get added to the official ports repo and you can find them there:
That would make my little embedded dev station just perfect! Would migrate it all to that new Pi 400.
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 will ST4 show up on Homebrew?
https://formulae.brew.sh/cask/sublime-text
Thanks for taking the time to answer questions
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.
Good luck to ST4.
> 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.)
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)?
Mind sharing how you do this in R? Thanks!
my day job has a fixed list of binaries that are permitted to run (by digest)... 2 is on the list, and 4 isn't
(quite happily using 4 now at home!)
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.
Edit: ctrl+tab saves, but mouse clicking a tab loses
How can I open find results in a split view?
How can I open definitions and references in split views without using the mouse to hover and click?
Edit: F12 and shift+F12.
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.
I was an avid user (and paying customer!) of ST1 and ST2. Somewhere along the way I switched to VS Code. Why should I use ST4 over VS Code today?
Are you talking about cold boot or huge log files?
The only place for me code breaks down is with long jsons/js files that haven't beet prettified and are a long long string.
I noticed that you can only see the type of a type
Are there any plans for some kind of combo deal now that Sublime Text and Sublime Merge licenses are aligned?
It looks great.
Here's a reference to the discussion on the 'dark theme': https://forum.sublimetext.com/t/support-dark-theme-on-window...