
Sublime Text 3.1 Released - indentit
https://www.sublimetext.com/blog/articles/sublime-text-3-point-1
======
robinhood
Sublime is just such a great editor. I came from Vim and was so pleased to
find out about it. My languages of choices are PHP and HTML/CSS/Js with VueJS,
and I've tried all the major editors out there. Nothing beats Sublime
performance. Moreover, while VSCode has nice enhancements, for the languages
I'm working on, I don't feel it has anything to bring that would beat Sublime.
Sublime is just so damn fast and has great plugins. The killer feature is the
lack of battery consumption - I work mostly on battery and VSCode/Atom are
just CPU drainers.

~~~
mercer
Sublime is weirdly frustrating to me. I keep wanting to switch to VSCode (and
occasionally Atom), but then I keep returning to Sublime. The main reason is
that on my 4+ year old laptop, the difference in memory use and speed matters
enough.

I had the same experience with Firefox. I switched to it about two weeks ago
and really tried, but it just 'feels' clunkier than Chrome. What frustrates me
is that I can't tell if that's actually the case, or if it's just that I'm
used to Chrome.

At least with Sublime the difference in performance is clear enough.

~~~
bsg75
What are the reasons for wanting to switch if Sublime's performance is better
for your case?

~~~
mercer
VSCode has a ton of features that I like, so if not for performance I'd
probably use that for most of my day to day work.

------
denisw
Sublime Text is a really nice and performant text editor, but one thing I
unfortunately just can't get past is how excluding files from fuzzy-finding
(Cmd+P) is handled. Files like .gitignore are not respected, so I need to
kinda-replicate what is in .gitignore for every project in Sublime-specific
project files. I thought I'd write a plugin for that, but it's not even
possible to completely model .gitignore exclusions using Sublime's system
because that's not powerful enough [1]. Lastly, excluded folders and files are
removed _completely_ from the sidebar instead of, say, being greyed out like
in Atom or VS Code. This means that if I do need to look into, say, a file
inside node_modules/, I have to open it through other means.

[1]: [https://forum.sublimetext.com/t/make-include-exclude-
pattern...](https://forum.sublimetext.com/t/make-include-exclude-patterns-
good-enough-for-gitignore/36326)

~~~
wbond
Some of the changes in this build augmented the existing options for filtering
files and folders. In addition to completely removing node_modules, you can
cause it to be ignored from Goto Anything by marking it as "binary", or
exclude it from indexing if you don't want Goto Definition and Goto References
to show for that. 3.1 also adds the ability to specify all of these filtering
options per-folder. See
[https://www.sublimetext.com/docs/3/projects.html](https://www.sublimetext.com/docs/3/projects.html)
for the details.

My plan is to get .gitignore working natively in a future dev build. I have
definitely heard the request from a number of users, and I can appreciate why
people would want that option.

~~~
dserodio
Please add support for .ignore (used by ripgrep and ack) too.

~~~
wbond
Opening an issue at
[https://github.com/SublimeTextIssues/Core/issues](https://github.com/SublimeTextIssues/Core/issues)
is the best way to make sure this comment doesn't fall through the cracks of
my memory. :-)

------
sundvor
These are some great improvements and I'm glad to see features being released
more often now.

------
pawurb
I just published a screencast showing my workflow productivity tips and tools
when working with Sublime Text [https://pawelurbanek.com/rails-workflow-
tools](https://pawelurbanek.com/rails-workflow-tools)

------
simplify
To balance out the negativity: I absolutely love sublime text. It runs
beautifully on my 7 year old laptop, unlike other newer text editors that
don't care as much about performance.

------
shurcooL
Is it just me, or does the About dialog show "Version 3.0, Build 3170" instead
of 3.1?

Edit: Not just me.
[https://twitter.com/amenthes_de/status/993467306201309185](https://twitter.com/amenthes_de/status/993467306201309185)

~~~
shurcooL
Update: It's fixed in 3.1.1.

------
Yaggo
I'm very disappointed that the Mac version still cannot restore its windows
onto correct virtual desktops after restart.

~~~
saagarjha
I have it assigned to a desktop, so it does for me. I see how that's not a
solution for everyone, though.

~~~
Yaggo
Well, if you assign all your Sublime windows to single desktop (built-in
feature in macOS), the problem does not even exist in the first place.

~~~
saagarjha
Yes, that’s what I said. Though, to be fair, I’ve seen applications that
normally respect spaces get tripped up occasionally between restarts.

------
teilo
I tried to go back to Sublime when I started doing Elixir development. Did the
rounds: Atom, VSCode, IntelliJIdea. They were all frustrating to me.

I finally took the time to properly setup neovim, and switched to VimR. I was
using vim bindings in all of the above anyway, so what was the point if trying
to make these CPU-heavy beasts something they were not?

They all take a lot of work to setup correctly if you are using anything
outside the norm. Yeah, getting neovim to that point was more work, but not
that much more. And it's fast, and the damn bindings always work because they
aren't bindings.

------
kmfrk
Can someone explain to me how the new `embed` pattern
[[https://www.sublimetext.com/docs/3/syntax.html#match_pattern...](https://www.sublimetext.com/docs/3/syntax.html#match_patterns)]
works compared to `push` for syntaxes with a side-by-side example?

It looks like I'm supposed to use embed for syntax scopes like p-lang
highlights, but the docs don't really provide a good example of how it's meant
to be used.

~~~
wbond
So embed is designed for embedding one syntax within another. Such as the
script tag in HTML, or fenced code blocks in Markdown. Previously to embed
another language, you would have to use a with_prototype that would prepend a
pop pattern to escape the nested contexts once you reached the end marker,
whether is be a close script tag or three backticks. Typically this would be a
lookahead that would pop.

However, when using with_prototype, you are create a complete transitive set
of new contexts that all include the prepended match rules. This also means
that new regex patterns have to be compiled for each of those contexts. This
leads to higher memory usage, potentially in multiple places. For instance,
the HTML syntax can have CSS embedded in a style tag, or a style attribute,
both with different end markers. So two complete sets of the CSS syntax had to
be copied into the HTML syntax.

With the embed action, the escape pattern is scanned for first. Once found,
the embedded context is then used to highlight the text up until the escape,
at which point the syntax pops any number of contexts up to where the
embedding happened. This means that we don't have to compile new contexts
since the escape is matched separately before the regular matching.

This, combined with optimizing our syntax definition memory layouts and de-
duping our regex pattern cache is the majority of the memory savings we
managed to accomplish in this dev cycle.

------
sexy_seedbox
Good time to ask now: what's a good light colour scheme/theme for ST3? I find
the most of the popular ones lacking contrast.

~~~
hit8run
You can try out the new Celeste Theme. I personally also like Espresso Soda
and Katzenmilch for lightness. There's also an XCodeish theme available or the
Base16 ones are also great.

~~~
joshschreuder
Is the Celeste theme inspired by the game?

------
ld00d
I keep trying other editors but spend most of the time just trying to get them
working like ST.

------
sus_007
Is it just me, or the link is actually dead ?

Edit: I'm sorry, it's fine.

~~~
tqkxzugoaupvwqr
Link works for me.

------
wongarsu
Ligature support looks nice. What are some good programming fonts that provide
good ligatures?

~~~
s_trumpet
Hasklig and Fira Code are nice, although Hasklig doesn't have many non-Haskell
ligatures.

~~~
joshschreuder
Yeah I've been using Hasklig for a while now, really like it.

Before that I was using Ubuntu Mono and always found it really hard to find a
good font that was just the right thickness. A lot of the other ligature fonts
like Fira Code just aren't right for me.

------
lists
Was crossing my fingers that there'd be support for relative line numbers but
alas...

------
dancsi
Does somebody know which color scheme are they using in these screenshots?

~~~
wbond
The dark color scheme is Mariana. The light one is Celeste. Both are included
with the editor.

------
RazrFalcon
Glad that they have a lot of HiDPI fixes, but it still unusable on linux...
[0]

[0]:
[https://github.com/SublimeTextIssues/Core/issues/2028](https://github.com/SublimeTextIssues/Core/issues/2028)

~~~
c0nfused
in a related issue they seem to think it is a an issue with libcario and
nvidia drivers:

[https://github.com/SublimeTextIssues/Core/issues/803#issueco...](https://github.com/SublimeTextIssues/Core/issues/803#issuecomment-353606018)

I haven't had the issue though I do see a resource spike.

~~~
RazrFalcon
Yes. I have nVidia and it's a total pain. Not only with sublime.

------
constantlm
I honestly thought Sublime Text went to join Textmate in the editor afterlife.

~~~
zhdc1
What are you using? I've always felt that Sublime Text has had a pretty decent
update schedule. I like it myself, but if there are any better editors out
there (besides the usual Vim, Emacs, Nano, &c...), I'd definitely appreciate a
recommendation : )

~~~
Cthulhu_
VS Code here too, but, I do miss the snappiness of Sublime, e.g. in startup.
VS Code feels like half an IDE in terms of startup time.

I still fire up intellij IDEA from time to time though, it's a huuuge
difference. That one has noticeable typing lag and such too, very annoying :/.

If there's an IDEA developer here, please make it so that the editor and
typing rendering thing is NEVER blocked by ANYTHING, EVER. I'm noticing it's
trying to do some work (autocomplete? error detection?) while I type and it's
causing notable delays in typing and rendering.

~~~
waivek
If I remember correctly, IDEA has a zero latency typing mode:

[https://pavelfatin.com/typing-with-pleasure/](https://pavelfatin.com/typing-
with-pleasure/)

~~~
Avamander
It's enabled by-default now.

------
Cub3
Unfortunately I've moved on, took far too long for this to come out

~~~
dpark
What are you talking about? It’s been ~7 months since 3.0.

And Dev builds have been coming out every couple weeks if you desperately need
frequent refreshes for some reason.
[https://www.sublimetext.com/3dev](https://www.sublimetext.com/3dev)

~~~
Cthulhu_
7 months for a minor version is a long time considering VS Code has done
monthly releases with huge changelogs in that period:
[https://code.visualstudio.com/updates](https://code.visualstudio.com/updates)

~~~
dpark
VS code has had a lot of catching up to do. I’d expect them to be shipping
more changes.

The “minor version” statement is kind of strange. Would calling this 4.0 make
it better?

What is Sublime text missing that’s taken too long to deliver? If it does
everything you want and is actively supported/developed, the fact that they
ship big version bumps infrequently shouldn’t matter.

------
simias
With the wealth of high quality and extremely portable code editors out there
I never understood how one could justify using a proprietary closed source
editor. Want to code on NetBSD? Woops. Oh the devs moved on and do not offer
support anymore, nor will they publish the source? Well better trash 10 years
of scripts and muscle memory and move on to something else then. Or maybe
you'd just like to be able to fork it to tweak something?

Closed source IDEs I sort of understand because they're generally tied to a
certain environment and can offer functionality not easily emulated in open
source offerings. For simple code editors I really don't see the point though,
especially since the feature list doesn't seem to offer anything significant
that's not already available (sometimes for decades) in open source
alternatives. What am I missing?

~~~
eterm
Closed source projects tend to be more stable.

Not in the literal doesn't crash sense, but in the sense that they're less
likely to be distracted by flavour-of-the-month features and have a consistent
vision of what they want from an editor.

I've been using sublime for many years and I've never had to re-learn what I'm
doing.

~~~
reificator
Yeah but with something like VS Code you have the best of both worlds.

You get corporate backing, they're writing it because they need a decent
Microsoft/Azure stack editor available on all platforms. They're getting
something out of it and are likely to be working on it for awhile. Plus with
such a heavy extension focus they're unlikely to flat out ruin the core
editing experience itself.

But if they did something out of left field or abandon it entirely, the
community can pick it up where it is and run with it.

~~~
sundvor
Even on a very capable PC Sublime Text still runs circles around Code for raw
performance.

On one hand I'm glad that Code has copied most of Sublime Text's features as
it makes it easier to use code for eg Typescript Dev (the out of the box
experience for that is arguably better in Code), but on the other hand it does
also feel like they just ripped off ST devs' work.

~~~
reificator
... Alright, I'll take the bait.

> _Even on a very capable PC Sublime Text still runs circles around Code for
> raw performance._

If this were an issue in my day-to-day I wouldn't be recommending it. VS Code
performance is fine, even when searching through large logfiles.

> _on the other hand it does also feel like they just ripped off ST devs '
> work._

Are you comparing the products out of the box, or are you comparing Sublime
with ton of extensions installed?

When I posted my first comment in this thread, the headline was that ligature
support is finally stable. That wasn't even available in an unstable form
until several months, maybe a year, after it was in VS Code.

VS Code comes with a built-in terminal, Sublime struggles to do this even with
extensions.

VS Code has VCS support built-in, throw in Git Lens and Sublime plugins don't
even come close.

Speaking of Git Lens, the Code Lens feature in general is really convenient
for a surprising number of things. Chasing references is what it does by
default but I really like having a little complexity indicator above
functions.

VS Code has a builtin debugger with language plugins for all sorts of
environments. One interface to learn, rather than jumping between them.

VS Code intellisense is far smarter in my experience than you can get in
Sublime with any plugins. Bonus is that you get Emmet builtin, but that's
available everywhere.

And don't forget that VS Code is where the language server protocol comes
from, so new languages can support a variety of editors with a single server,
often times written with the same codebase that compiles/interprets that
language.

You can use whatever editor you want, it doesn't bother me. I like Sublime,
I've purchased multiple personal licenses and don't regret the investment. But
to say that VS Code is just a ripoff of Sublime is unreasonable.

~~~
sundvor
I'm comparing out of the box. I didn't mean all of it was copied, but that
some of the _core_ features of Sublime were. Eg ctrl+P to get into the quick
search, the multi line editing.

I use Code myself as well and it does do extensions / language support such as
Typescript much, much better, but that is kind of besides my point.

~~~
reificator
I mean, Chrome Dev Tools uses that key combo as well, I wouldn't say it's
ripping anyone off.

Vim and emacs, as well as other editors through the years have had multi-line
editing in various ways. Sublime didn't rip them off when it did the same
thing.

Editors sharing ideas is only a good thing, it's not a zero-sum game.

