A Sublime Text package for the friendly interactive shell.
It features a robust syntax highlighting scheme that mimics the native highlighting behaviour of fish.
The package currently supports up to fish version: 4.0
Note: ST3 support will cease in a future release. ST2 support is capped at fish 2.7 with a limited set of the following features.
cd /path/to/sublime/packages/directory
git clone https://github.com/Phidica/sublime-fish.git
mv sublime-fish fish
Open a .fish file and verify the selected syntax is "Fish".
Screenshots
As of release 3.0.0, a fish script (for example, fish-shell/share/functions/ls.fish) will look something like:
Figure 1: Default Monokai colour scheme
Figure 2: Example custom Monokai colour scheme formatting additional scopes
Exposed scopes
fish construct
Scope name
Unquoted string
meta.string.unquoted
Command name
meta.function-call.name
Parameters
meta.function-call.parameter.option/argument
File path (in argument)
meta.function-call.parameter.argument.path
File path (in redirection)
meta.function-call.operator.redirection.path
Redirection
meta.function-call.operator.redirection.{stdin,stdout,stderr}.{explicit,implicit} and keyword.operator.redirect.{truncate,append}
Job expansion
meta.function-call.parameter.argument.job-expansion and punctuation.definition.job
Process expansion
meta.function-call.parameter.argument.process-expansion and punctuation.definition.process
Variable expansion
meta.variable-expansion and punctuation.definition.variable
Command substitution
meta.parens.command-substitution and punctuation.section.parens.begin/end
Index expansion
meta.brackets.index-expansion and punctuation.section.brackets.begin/end
Brace expansion
meta.braces.brace-expansion and punctuation.section.braces.begin/separator/end
Wildcard expansion
meta.wildcard-expansion and keyword.operator.question-mark/single-star/double-star
Home directory expansion
keyword.operator.tilde
Branches and releases
Support for different ST major versions is separated between several branches:
master: Plugins compatible with ST4, and syntax provides highlighting for fish versions 2.7 and up.
st3: Plugins compatible with ST3 and above (via backwards compatibility features), and syntax provides highlighting for fish versions 2.7 and up.
st2: Plugins only compatible with ST2, syntax uses the more limited tmLanguage scheme instead of sublime-syntax, and provides highlighting for fish 2.7 only.
The particular fish major version supported by a tagged release is indicated by the version number:
The 2.x.x series (on st2 and st3) only supports fish 2.7.
The 3.x.x series (on st3 and master) includes support for fish 3.0 to 3.7.
The 4.x.x series (on st3 and master) includes support for fish 4.0 and beyond.
Contribution
Requirements:
PackageDev, only for ST2 development and changing the tmPreferences file.
ST2 development: The source file of the syntax is fish.YAML-tmLanguage. When editing this file, "compile" it with the PackageDev build system to automatically generate the fish.tmLanguage file which is used by Sublime Text 2.
ST3+ development: The source file of the syntax is fish.sublime-syntax.
The first Sublime Text fish syntax highlighter was by toru hamaguchi. When that project became unmaintained, @Phidica fully rewrote the schema and replaced the links on Package Control.