tree-sitter-scaf
Tree-sitter grammar for syntax highlighting and code navigation.
scaf provides excellent editor support through tree-sitter grammar, LSP, and editor plugins.
tree-sitter-scaf
Tree-sitter grammar for syntax highlighting and code navigation.
scaf-lsp
Language server providing diagnostics, hover info, and more.
scaf.nvim
Neovim plugin with tree-sitter, LSP, and neotest integration.
The fastest way to get started with Neovim:
-- lazy.nvim{ "rlch/scaf.nvim", dependencies = { "nvim-treesitter/nvim-treesitter" }, config = function() require("scaf").setup({}) end,}Then run :TSInstall scaf.
See Neovim setup for full details.
Any editor supporting tree-sitter or LSP can use:
Full scaf DSL highlighting:
query, test, group, setup, etc.)$param)Query bodies are highlighted using their dialect:
The dialect is determined from the database in .scaf.yaml:
neo4j: → Cypher highlightingpostgres: / mysql: / sqlite: → SQL highlightingThe language server provides:
Run tests directly from Neovim:
| Editor | Requirements |
|---|---|
| Neovim | >= 0.9.0, nvim-treesitter |
| VS Code | (Planned) |
| Emacs | tree-sitter support |
| Helix | tree-sitter built-in |
| Zed | tree-sitter built-in |
:set ft? should show scaf:TSInstall scafscaf-lsp is in PATH: which scaf-lsp:LspLog in Neovimrequire("scaf").start_lsp().scaf.yaml database setting (e.g., neo4j: for Cypher):lua require("scaf").clear_cache()