Sublime Text Syntax Definition Rewrite

Benjamin Schaaf ben.schaaf at gmail.com
Thu Feb 28 00:30:24 UTC 2019


Hello all,

I've recently gotten a massive rewrite of the D syntax 
highlighting merged into the Sublime Text default packages. This 
has since been deployed in the most recent development version 
3192 (license required) and will be shipping with the next stable.

Anyone trying Sublime Text has probably noticed the poor D 
support. Here's a very incomplete list of everything that's been 
fixed/improved:

* Functions, classes, interfaces, enums, structs, unions, 
templates and aliases are now properly indexed, making GoTo 
Definition work properly
* Function/Template calls are properly marked, making GoTo 
Reference work properly
* Nested comments now work as expected
* Shebangs are properly highlighted
* Ligatures are now properly supported
* `..` no longer highlights as a floating point
* Strings are now properly highlighted, including postfixes and 
delimited strings
* Token strings actually highlight tokens now
* Attributes, including UDAs, are highlighted properly
* Automatic indentation is no longer broken (Typing `} catch...` 
would re-indent the line)
* Arguments are highlighted as actual arguments
* Contracts are properly highlighted now

You can find the pr here: 
https://github.com/sublimehq/Packages/pull/1850

If you do find a bug with the syntax highlighting or just 
something that could be done better please leave a bug report on 
the repository, I'll be maintaining it for the foreseeable future:
https://github.com/sublimehq/Packages/issues

If you don't have a license you can still use the new syntax 
highlighting before the next stable build by cloning the 
repository and symlinking the `D` folder into your Sublime Text 
"Packages" directory (Details in the README).
You can download Sublime Text here: https://www.sublimetext.com/3

Hope you enjoy!
---------------

Full disclosure: I work for Sublime HQ. Though I'd love to, we 
don't use D internally for anything.


More information about the Digitalmars-d-announce mailing list