ElixirSyntax
The most powerful Elixir for the most Sublime experience.
Details
Installs
- Total 5K
- Win 950
- Mac 3K
- Linux 2K
Jun 3 | Jun 2 | Jun 1 | May 31 | May 30 | May 29 | May 28 | May 27 | May 26 | May 25 | May 24 | May 23 | May 22 | May 21 | May 20 | May 19 | May 18 | May 17 | May 16 | May 15 | May 14 | May 13 | May 12 | May 11 | May 10 | May 9 | May 8 | May 7 | May 6 | May 5 | May 4 | May 3 | May 2 | May 1 | Apr 30 | Apr 29 | Apr 28 | Apr 27 | Apr 26 | Apr 25 | Apr 24 | Apr 23 | Apr 22 | Apr 21 | Apr 20 | Apr 19 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 2 | 1 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 2 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
Mac | 0 | 3 | 2 | 1 | 1 | 0 | 0 | 3 | 3 | 2 | 1 | 1 | 1 | 0 | 0 | 0 | 2 | 2 | 0 | 1 | 0 | 2 | 1 | 1 | 1 | 2 | 0 | 1 | 1 | 4 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 2 | 2 | 1 | 1 | 2 | 1 | 3 | 1 |
Linux | 1 | 0 | 1 | 3 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 2 | 2 | 1 | 0 | 2 | 1 | 2 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 2 | 0 | 2 | 1 | 2 | 2 | 2 | 0 | 1 | 1 | 0 | 0 | 1 | 2 | 0 | 2 |
Readme
- Source
- raw.githubusercontent.com
ElixirSyntax
ElixirSyntax was initially based on the Elixir.tmbundle package but has been rewritten since, providing more accurate syntax matching as well as better syntax highlighting.
Features
- Working
Goto Definition
command. - HTML template highlighting:
- HEEx:
- Surface:
- LiveView:
- HEEx:
- Full PCRE syntax highlighting:
- Type highlighting:
- Theme adaptations for Mariana and Monokai.
- Palette commands:
ElixirSyntax: ...
,Mix Test: ...
,Mix Format: ...
- Build commands:
mix format
,mix test
,elixir $file
- Snippets for
IO.inspect
,tap
andthen
.
Some syntax highlighting features are not immediately evident. Among them are:
The fragment
and sql
functions
SQL syntax is highlighted inside Ecto's fragment
macro.
Add an sql
macro/function to your project to enjoy SQL highlighting anywhere it's used.
The JSON ~j
and ~J
sigils (Jason
)
Embed JSON strings in your Elixir code. Notice the interpolated Elixir code is colored correctly.
The YAML ~y
and ~Y
sigils (YamlElixir
)
Testing
Build-files as well as commands are provided for calling mix test
. The predefined shortcuts can be changed via Preferences > Package Settings > ElixirSyntax > Key Bindings
.
Tip: To run specific tests in the current file, mark them with multiple cursors and/or spanning selections and press Alt+Shift+T
or choose Mix Test: Selection(s)
from the palette.
ElixirSyntax stores a per-project JSON settings file in the root folder that contains both the mix.exs
file and the _build/
folder. They override the general settings below.
General settings example (via Preferences > Package Settings > ElixirSyntax > Settings
):
{
"mix_test": {
"output": "tab",
"output_mode": null,
"output_scroll_time": 2,
"args": ["--coverage"],
"seed": null
}
}
When a mix test
command is run the first time, a mix_test.repeat.json
file is stored in the _build/
folder to remember the command arguments. By pressing Alt+Shift+R
or running Mix Test: Repeat
from the palette you can repeat the previously executed tests.
Formatting
Use the default shortcut Alt+Shift+F
or the palette command Mix Format: File
to format your Elixir code. Format the whole project via Mix Format: Project / Folder
. Configure auto-formatting on save via the palette command Mix Format: Toggle Auto-Formatting
or via the menu Preferences > Package Settings > ElixirSyntax > Settings
. There is no per-project auto-format setting yet.
{
"mix_format": {
"on_save": true
}
}
Palette commands
ElixirSyntax: Settings
ElixirSyntax: Open Hex Docs
ElixirSyntax: Search Hex Packages
Mix Test: Settings
Mix Test: All
Mix Test: File
Mix Test: Selection(s)
Mix Test: Failed
Mix Test: Repeat
Mix Test: Set --seed
Mix Test: Toggle --stale Flag
Mix Test: Switch to Code or Test
Mix Test: Show Panel
Mix Format: File
Mix Format: Project / Folder
Mix Format: Toggle Auto-Formatting
Recommended packages
- LSP and LSP-elixir for intelligent code completion and additional snippet suggestions.
Changes
See CHANGELOG.md for the list of releases and noteworthy changes.
FAQ
- How to color unused variables, e.g.
_opts
, differently?
You can customize the color of unused variable names by extending your color scheme, targeting the variable.parameter.unused
and variable.other.unused
scopes:
{
"rules": [
{
"name": "Unused variables",
"scope": "variable.parameter.unused, variable.other.unused",
"foreground": "#8c8cff"
}
]
}
More details at Sublime Text Docs
Contributors/Maintainers
- @azizk rewrote the whole syntax definition with an extensive test-suite and added a wealth of new features. ⭐
- @princemaple initially brought the tm-syntax to sublime-syntax and made some improvements.