Home

Awesome

Friendly Interactive Shell (fish)

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: 3.7

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.

Features

Installation

Via Package Control

Install Package Control, then go to Command Palette (Ctrl+Shift+P) > Package Control: Install Package > fish.

Manual

Clone the repository to your Packages directory and rename it to fish.

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:

Screenshot of text in Monokai

Figure 1: Default Monokai colour scheme

Screenshot of text in custom Monokai

Figure 2: Example custom Monokai colour scheme formatting additional scopes

Exposed scopes

fish constructScope name
Unquoted stringmeta.string.unquoted
Command namemeta.function-call.name
Parametersmeta.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
Redirectionmeta.function-call.operator.redirection.{stdin,stdout,stderr}.{explicit,implicit} and keyword.operator.redirect.{truncate,append}
Job expansionmeta.function-call.parameter.argument.job-expansion and punctuation.definition.job
Process expansionmeta.function-call.parameter.argument.process-expansion and punctuation.definition.process
Variable expansionmeta.variable-expansion and punctuation.definition.variable
Command substitutionmeta.parens.command-substitution and punctuation.section.parens.begin/end
Index expansionmeta.brackets.index-expansion and punctuation.section.brackets.begin/end
Brace expansionmeta.braces.brace-expansion and punctuation.section.braces.begin/separator/end
Wildcard expansionmeta.wildcard-expansion and keyword.operator.question-mark/single-star/double-star
Home directory expansionkeyword.operator.tilde

Branches and releases

Support for different ST major versions is separated between several branches:

The particular fish major version supported by a tagged release is indicated by the version number:

Contribution

Requirements:

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.

Guide for contributing is located here.

History

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.