Snippets

Use the snippets: configure snippets action to create a new snippets file or edit a existing snippets file for a specified scope.

The snippets are located in ~/.config/zed/snippets directory to which you can navigate to with the snippets: open folder action.

Example configuration

{
  // Each snippet must have a name and body, but the prefix and description are optional.
  // The prefix is used to trigger the snippet, but when omitted then the name is used.
  // Use placeholders like $1, $2 or ${1:defaultValue} to define tab stops.
  // The $0 determines the final cursor position.
  // Placeholders with the same value are linked.
  "Log to console": {
    "prefix": "log",
    "body": ["console.info(\"Hello, ${1:World}!\")", "$0"],
    "description": "Logs to console"
  }
}

Scopes

The scope is determined by the language name in lowercase e.g. python.json for Python, shell script.json for Shell Script, but there are some exceptions to this rule:

ScopeFilename
Globalsnippets.json
JSXjavascript.json
Plain Textplaintext.json

To create JSX snippets you have to use javascript.json snippets file, instead of jsx.json, but this does not apply to TSX and Typescript which follow the above rule.

Known Limitations

  • Only the first prefix is used when an list of prefixes is passed in.
  • Currently only the json snippet file format is supported, even though the simple-completion-language-server supports both json and toml file formats.

See also

For more configuration information, see the simple-completion-language-server instructions.