Adding New Languages
LSP
Zed uses the Language Server Protocol to provide language support. This means, in theory, we can support any language that has an LSP server.
Syntax Highlighting
Defining syntax highlighting rules
We use tree-sitter queries to match certain properties to highlight.
Simple Example:
Match a property identifier and highlight it using the identifier @property
. In the above example, weight
, underline
, and italic
would be highlighted.
Complex example:
Match a function return type, and highlight the type using the identifier @type.return
. In the above example, Partial
would be highlighted.
Example - Typescript
Here is an example portion of our highlights.scm
for TypeScript: