mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-25 10:56:19 +04:00
494306ad7a
After the incremental parsing rewrite for injections (which was released in 22.03 https://helix-editor.com/news/release-22-03-highlights/#incremental-injection-parsing-rewrite), we can now do combined injections which lets us pull in some templating grammars. The most notable of those is embedded-template - a pretty straightforward grammar that covers ERB and EJS. The grammar and highlights queries are shared between the two but they have different injections.
1113 lines
30 KiB
TOML
1113 lines
30 KiB
TOML
[[language]]
|
|
name = "rust"
|
|
scope = "source.rust"
|
|
injection-regex = "rust"
|
|
file-types = ["rs"]
|
|
roots = ["Cargo.toml", "Cargo.lock"]
|
|
auto-format = true
|
|
comment-token = "//"
|
|
language-server = { command = "rust-analyzer" }
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[language.auto-pairs]
|
|
'(' = ')'
|
|
'{' = '}'
|
|
'[' = ']'
|
|
'"' = '"'
|
|
'`' = '`'
|
|
|
|
[language.debugger]
|
|
name = "lldb-vscode"
|
|
transport = "stdio"
|
|
command = "lldb-vscode"
|
|
|
|
[[language.debugger.templates]]
|
|
name = "binary"
|
|
request = "launch"
|
|
completion = [ { name = "binary", completion = "filename" } ]
|
|
args = { program = "{0}" }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "binary (terminal)"
|
|
request = "launch"
|
|
completion = [ { name = "binary", completion = "filename" } ]
|
|
args = { program = "{0}", runInTerminal = true }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "attach"
|
|
request = "attach"
|
|
completion = [ "pid" ]
|
|
args = { pid = "{0}" }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "gdbserver attach"
|
|
request = "attach"
|
|
completion = [ { name = "lldb connect url", default = "connect://localhost:3333" }, { name = "file", completion = "filename" }, "pid" ]
|
|
args = { attachCommands = [ "platform select remote-gdb-server", "platform connect {0}", "file {1}", "attach {2}" ] }
|
|
|
|
[[grammar]]
|
|
name = "rust"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-rust", rev = "a360da0a29a19c281d08295a35ecd0544d2da211" }
|
|
|
|
[[language]]
|
|
name = "toml"
|
|
scope = "source.toml"
|
|
injection-regex = "toml"
|
|
file-types = ["toml"]
|
|
roots = []
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "toml"
|
|
source = { git = "https://github.com/ikatyang/tree-sitter-toml", rev = "7cff70bbcbbc62001b465603ca1ea88edd668704" }
|
|
|
|
[[language]]
|
|
name = "protobuf"
|
|
scope = "source.proto"
|
|
injection-regex = "protobuf"
|
|
file-types = ["proto"]
|
|
roots = []
|
|
comment-token = "//"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "protobuf"
|
|
source = { git = "https://github.com/yusdacra/tree-sitter-protobuf", rev = "19c211a01434d9f03efff99f85e19f967591b175"}
|
|
|
|
[[language]]
|
|
name = "elixir"
|
|
scope = "source.elixir"
|
|
injection-regex = "(elixir|ex)"
|
|
file-types = ["ex", "exs", "mix.lock"]
|
|
shebangs = ["elixir"]
|
|
roots = []
|
|
comment-token = "#"
|
|
language-server = { command = "elixir-ls" }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "elixir"
|
|
source = { git = "https://github.com/elixir-lang/tree-sitter-elixir", rev = "60863fc6e27d60cf4b1917499ed2259f92c7800e" }
|
|
|
|
[[language]]
|
|
name = "fish"
|
|
scope = "source.fish"
|
|
injection-regex = "fish"
|
|
file-types = ["fish"]
|
|
shebangs = ["fish"]
|
|
roots = []
|
|
comment-token = "#"
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "fish"
|
|
source = { git = "https://github.com/ram02z/tree-sitter-fish", rev = "04e54ab6585dfd4fee6ddfe5849af56f101b6d4f" }
|
|
|
|
[[language]]
|
|
name = "mint"
|
|
scope = "source.mint"
|
|
injection-regex = "mint"
|
|
file-types = ["mint"]
|
|
shebangs = []
|
|
roots = []
|
|
comment-token = "//"
|
|
language-server = { command = "mint", args = ["ls"] }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[language]]
|
|
name = "json"
|
|
scope = "source.json"
|
|
injection-regex = "json"
|
|
file-types = ["json"]
|
|
roots = []
|
|
language-server = { command = "vscode-json-language-server", args = ["--stdio"] }
|
|
auto-format = true
|
|
config = { "provideFormatter" = true }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "json"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-json", rev = "65bceef69c3b0f24c0b19ce67d79f57c96e90fcb" }
|
|
|
|
[[language]]
|
|
name = "c"
|
|
scope = "source.c"
|
|
injection-regex = "c"
|
|
file-types = ["c"] # TODO: ["h"]
|
|
roots = []
|
|
comment-token = "//"
|
|
language-server = { command = "clangd" }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[language.debugger]
|
|
name = "lldb-vscode"
|
|
transport = "stdio"
|
|
command = "lldb-vscode"
|
|
|
|
[[language.debugger.templates]]
|
|
name = "binary"
|
|
request = "launch"
|
|
completion = [ { name = "binary", completion = "filename" } ]
|
|
args = { console = "internalConsole", program = "{0}" }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "attach"
|
|
request = "attach"
|
|
completion = [ "pid" ]
|
|
args = { console = "internalConsole", pid = "{0}" }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "gdbserver attach"
|
|
request = "attach"
|
|
completion = [ { name = "lldb connect url", default = "connect://localhost:3333" }, { name = "file", completion = "filename" }, "pid" ]
|
|
args = { console = "internalConsole", attachCommands = [ "platform select remote-gdb-server", "platform connect {0}", "file {1}", "attach {2}" ] }
|
|
|
|
[[grammar]]
|
|
name = "c"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-c", rev = "f05e279aedde06a25801c3f2b2cc8ac17fac52ae" }
|
|
|
|
[[language]]
|
|
name = "cpp"
|
|
scope = "source.cpp"
|
|
injection-regex = "cpp"
|
|
file-types = ["cc", "hh", "cpp", "hpp", "h", "ipp", "tpp", "cxx", "hxx", "ixx", "txx", "ino"]
|
|
roots = []
|
|
comment-token = "//"
|
|
language-server = { command = "clangd" }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[language.debugger]
|
|
name = "lldb-vscode"
|
|
transport = "stdio"
|
|
command = "lldb-vscode"
|
|
|
|
[[language.debugger.templates]]
|
|
name = "binary"
|
|
request = "launch"
|
|
completion = [ { name = "binary", completion = "filename" } ]
|
|
args = { console = "internalConsole", program = "{0}" }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "attach"
|
|
request = "attach"
|
|
completion = [ "pid" ]
|
|
args = { console = "internalConsole", pid = "{0}" }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "gdbserver attach"
|
|
request = "attach"
|
|
completion = [ { name = "lldb connect url", default = "connect://localhost:3333" }, { name = "file", completion = "filename" }, "pid" ]
|
|
args = { console = "internalConsole", attachCommands = [ "platform select remote-gdb-server", "platform connect {0}", "file {1}", "attach {2}" ] }
|
|
|
|
[[grammar]]
|
|
name = "cpp"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-cpp", rev = "e8dcc9d2b404c542fd236ea5f7208f90be8a6e89" }
|
|
|
|
[[language]]
|
|
name = "c-sharp"
|
|
scope = "source.csharp"
|
|
injection-regex = "c-?sharp"
|
|
file-types = ["cs"]
|
|
roots = ["sln", "csproj"]
|
|
comment-token = "//"
|
|
indent = { tab-width = 4, unit = "\t" }
|
|
language-server = { command = "OmniSharp", args = [ "--languageserver", "--stdio" ] }
|
|
|
|
[[grammar]]
|
|
name = "c-sharp"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-c-sharp", rev = "53a65a908167d6556e1fcdb67f1ee62aac101dda" }
|
|
|
|
[[language]]
|
|
name = "go"
|
|
scope = "source.go"
|
|
injection-regex = "go"
|
|
file-types = ["go"]
|
|
roots = ["Gopkg.toml", "go.mod"]
|
|
auto-format = true
|
|
comment-token = "//"
|
|
language-server = { command = "gopls" }
|
|
# TODO: gopls needs utf-8 offsets?
|
|
indent = { tab-width = 4, unit = "\t" }
|
|
|
|
[language.debugger]
|
|
name = "go"
|
|
transport = "tcp"
|
|
command = "dlv"
|
|
args = ["dap"]
|
|
port-arg = "-l 127.0.0.1:{}"
|
|
|
|
[[language.debugger.templates]]
|
|
name = "source"
|
|
request = "launch"
|
|
completion = [ { name = "entrypoint", completion = "filename", default = "." } ]
|
|
args = { mode = "debug", program = "{0}" }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "binary"
|
|
request = "launch"
|
|
completion = [ { name = "binary", completion = "filename" } ]
|
|
args = { mode = "exec", program = "{0}" }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "test"
|
|
request = "launch"
|
|
completion = [ { name = "tests", completion = "directory", default = "." } ]
|
|
args = { mode = "test", program = "{0}" }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "attach"
|
|
request = "attach"
|
|
completion = [ "pid" ]
|
|
args = { mode = "local", processId = "{0}" }
|
|
|
|
[[grammar]]
|
|
name = "go"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-go", rev = "0fa917a7022d1cd2e9b779a6a8fc5dc7fad69c75" }
|
|
|
|
[[language]]
|
|
name = "javascript"
|
|
scope = "source.js"
|
|
injection-regex = "^(js|javascript)$"
|
|
file-types = ["js", "jsx", "mjs"]
|
|
shebangs = ["node"]
|
|
roots = []
|
|
comment-token = "//"
|
|
# TODO: highlights-params
|
|
language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "javascript" }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[language.debugger]
|
|
name = "node-debug2"
|
|
transport = "stdio"
|
|
# args consisting of cmd (node) and path to adapter should be added to user's configuration
|
|
quirks = { absolute-paths = true }
|
|
|
|
[[language.debugger.templates]]
|
|
name = "source"
|
|
request = "launch"
|
|
completion = [ { name = "main", completion = "filename", default = "index.js" } ]
|
|
args = { program = "{0}" }
|
|
|
|
[[grammar]]
|
|
name = "javascript"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-javascript", rev = "4a95461c4761c624f2263725aca79eeaefd36cad" }
|
|
|
|
[[language]]
|
|
name = "jsx"
|
|
scope = "source.jsx"
|
|
injection-regex = "jsx"
|
|
file-types = ["jsx"]
|
|
roots = []
|
|
comment-token = "//"
|
|
language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "javascript" }
|
|
indent = { tab-width = 2, unit = " " }
|
|
grammar = "javascript"
|
|
|
|
[[language]]
|
|
name = "typescript"
|
|
scope = "source.ts"
|
|
injection-regex = "^(ts|typescript)$"
|
|
file-types = ["ts"]
|
|
shebangs = []
|
|
roots = []
|
|
# TODO: highlights-params
|
|
language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "typescript"}
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "typescript"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "3e897ea5925f037cfae2e551f8e6b12eec2a201a", subpath = "typescript" }
|
|
|
|
[[language]]
|
|
name = "tsx"
|
|
scope = "source.tsx"
|
|
injection-regex = "^(tsx)$" # |typescript
|
|
file-types = ["tsx"]
|
|
roots = []
|
|
# TODO: highlights-params
|
|
language-server = { command = "typescript-language-server", args = ["--stdio"], language-id = "typescriptreact" }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "tsx"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "3e897ea5925f037cfae2e551f8e6b12eec2a201a", subpath = "tsx" }
|
|
|
|
[[language]]
|
|
name = "css"
|
|
scope = "source.css"
|
|
injection-regex = "css"
|
|
file-types = ["css", "scss"]
|
|
roots = []
|
|
language-server = { command = "vscode-css-language-server", args = ["--stdio"] }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "css"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-css", rev = "94e10230939e702b4fa3fa2cb5c3bc7173b95d07" }
|
|
|
|
[[language]]
|
|
name = "html"
|
|
scope = "text.html.basic"
|
|
injection-regex = "html"
|
|
file-types = ["html"]
|
|
roots = []
|
|
language-server = { command = "vscode-html-language-server", args = ["--stdio"] }
|
|
auto-format = true
|
|
config = { "provideFormatter" = true }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "html"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-html", rev = "d93af487cc75120c89257195e6be46c999c6ba18" }
|
|
|
|
[[language]]
|
|
name = "python"
|
|
scope = "source.python"
|
|
injection-regex = "python"
|
|
file-types = ["py"]
|
|
shebangs = ["python"]
|
|
roots = []
|
|
comment-token = "#"
|
|
language-server = { command = "pylsp" }
|
|
# TODO: pyls needs utf-8 offsets
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "python"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-python", rev = "d6210ceab11e8d812d4ab59c07c81458ec6e5184" }
|
|
|
|
[[language]]
|
|
name = "nix"
|
|
scope = "source.nix"
|
|
injection-regex = "nix"
|
|
file-types = ["nix"]
|
|
shebangs = []
|
|
roots = []
|
|
comment-token = "#"
|
|
language-server = { command = "rnix-lsp" }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "nix"
|
|
source = { git = "https://github.com/cstrahan/tree-sitter-nix", rev = "50f38ceab667f9d482640edfee803d74f4edeba5" }
|
|
|
|
[[language]]
|
|
name = "ruby"
|
|
scope = "source.ruby"
|
|
injection-regex = "ruby"
|
|
file-types = ["rb"]
|
|
shebangs = ["ruby"]
|
|
roots = []
|
|
comment-token = "#"
|
|
language-server = { command = "solargraph", args = ["stdio"] }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "ruby"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-ruby", rev = "dfff673b41df7fadcbb609c6338f38da3cdd018e" }
|
|
|
|
[[language]]
|
|
name = "bash"
|
|
scope = "source.bash"
|
|
injection-regex = "bash"
|
|
file-types = ["sh", "bash", "zsh", ".bash_login", ".bash_logout", ".bash_profile", ".bashrc", ".profile", ".zshenv", ".zlogin", ".zlogout", ".zprofile", ".zshrc"]
|
|
shebangs = ["sh", "bash", "dash"]
|
|
roots = []
|
|
comment-token = "#"
|
|
language-server = { command = "bash-language-server", args = ["start"] }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "bash"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-bash", rev = "275effdfc0edce774acf7d481f9ea195c6c403cd" }
|
|
|
|
[[language]]
|
|
name = "php"
|
|
scope = "source.php"
|
|
injection-regex = "php"
|
|
file-types = ["php"]
|
|
shebangs = ["php"]
|
|
roots = ["composer.json", "index.php"]
|
|
language-server = { command = "intelephense", args = ["--stdio"] }
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "php"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-php", rev = "57f855461aeeca73bd4218754fb26b5ac143f98f" }
|
|
|
|
[[language]]
|
|
name = "twig"
|
|
scope = "source.twig"
|
|
injection-regex = "twig"
|
|
file-types = ["twig"]
|
|
roots = []
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "twig"
|
|
source = { git = "https://github.com/eirabben/tree-sitter-twig", rev = "b7444181fb38e603e25ea8fcdac55f9492e49c27" }
|
|
|
|
[[language]]
|
|
name = "latex"
|
|
scope = "source.tex"
|
|
injection-regex = "tex"
|
|
file-types = ["tex"]
|
|
roots = []
|
|
comment-token = "%"
|
|
language-server = { command = "texlab" }
|
|
indent = { tab-width = 4, unit = "\t" }
|
|
|
|
[[grammar]]
|
|
name = "latex"
|
|
source = { git = "https://github.com/latex-lsp/tree-sitter-latex", rev = "7f720661de5316c0f8fee956526d4002fa1086d8" }
|
|
|
|
[[language]]
|
|
name = "lean"
|
|
scope = "source.lean"
|
|
injection-regex = "lean"
|
|
file-types = ["lean"]
|
|
roots = [ "lakefile.lean" ]
|
|
comment-token = "--"
|
|
language-server = { command = "lean", args = [ "--server" ] }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "lean"
|
|
source = { git = "https://github.com/Julian/tree-sitter-lean", rev = "d98426109258b266e1e92358c5f11716d2e8f638" }
|
|
|
|
[[language]]
|
|
name = "julia"
|
|
scope = "source.julia"
|
|
injection-regex = "julia"
|
|
file-types = ["jl"]
|
|
roots = []
|
|
comment-token = "#"
|
|
language-server = { command = "julia", args = [
|
|
"--startup-file=no",
|
|
"--history-file=no",
|
|
"--quiet",
|
|
"-e",
|
|
"using LanguageServer; runserver()",
|
|
] }
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "julia"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-julia", rev = "12ea597262125fc22fd2e91aa953ac69b19c26ca" }
|
|
|
|
[[language]]
|
|
name = "java"
|
|
scope = "source.java"
|
|
injection-regex = "java"
|
|
file-types = ["java"]
|
|
roots = ["pom.xml"]
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "java"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-java", rev = "bd6186c24d5eb13b4623efac9d944dcc095c0dad" }
|
|
|
|
[[language]]
|
|
name = "ledger"
|
|
scope = "source.ledger"
|
|
injection-regex = "ledger"
|
|
file-types = ["ldg", "ledger", "journal"]
|
|
roots = []
|
|
comment-token = ";"
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "ledger"
|
|
source = { git = "https://github.com/cbarrete/tree-sitter-ledger", rev = "0cdeb0e51411a3ba5493662952c3039de08939ca" }
|
|
|
|
[[language]]
|
|
name = "ocaml"
|
|
scope = "source.ocaml"
|
|
injection-regex = "ocaml"
|
|
file-types = ["ml"]
|
|
shebangs = []
|
|
roots = []
|
|
comment-token = "(**)"
|
|
language-server = { command = "ocamllsp" }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "ocaml"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-ocaml", rev = "23d419ba45789c5a47d31448061557716b02750a", subpath = "ocaml" }
|
|
|
|
[[language]]
|
|
name = "ocaml-interface"
|
|
scope = "source.ocaml.interface"
|
|
file-types = ["mli"]
|
|
shebangs = []
|
|
roots = []
|
|
comment-token = "(**)"
|
|
language-server = { command = "ocamllsp" }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "ocaml-interface"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-ocaml", rev = "23d419ba45789c5a47d31448061557716b02750a", subpath = "interface" }
|
|
|
|
[[language]]
|
|
name = "lua"
|
|
scope = "source.lua"
|
|
file-types = ["lua"]
|
|
shebangs = ["lua"]
|
|
roots = []
|
|
comment-token = "--"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "lua"
|
|
source = { git = "https://github.com/nvim-treesitter/tree-sitter-lua", rev = "6f5d40190ec8a0aa8c8410699353d820f4f7d7a6" }
|
|
|
|
[[language]]
|
|
name = "svelte"
|
|
scope = "source.svelte"
|
|
injection-regex = "svelte"
|
|
file-types = ["svelte"]
|
|
roots = []
|
|
indent = { tab-width = 2, unit = " " }
|
|
language-server = { command = "svelteserver", args = ["--stdio"] }
|
|
|
|
[[grammar]]
|
|
name = "svelte"
|
|
source = { git = "https://github.com/Himujjal/tree-sitter-svelte", rev = "349a5984513b4a4a9e143a6e746120c6ff6cf6ed" }
|
|
|
|
[[language]]
|
|
name = "vue"
|
|
scope = "source.vue"
|
|
injection-regex = "vue"
|
|
file-types = ["vue"]
|
|
roots = ["package.json", "vue.config.js"]
|
|
indent = { tab-width = 2, unit = " " }
|
|
language-server = { command = "vls" }
|
|
|
|
[[grammar]]
|
|
name = "vue"
|
|
source = { git = "https://github.com/ikatyang/tree-sitter-vue", rev = "91fe2754796cd8fba5f229505a23fa08f3546c06" }
|
|
|
|
[[language]]
|
|
name = "yaml"
|
|
scope = "source.yaml"
|
|
file-types = ["yml", "yaml"]
|
|
roots = []
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
injection-regex = "yml|yaml"
|
|
|
|
[[grammar]]
|
|
name = "yaml"
|
|
source = { git = "https://github.com/ikatyang/tree-sitter-yaml", rev = "0e36bed171768908f331ff7dff9d956bae016efb" }
|
|
|
|
[[language]]
|
|
name = "haskell"
|
|
scope = "source.haskell"
|
|
injection-regex = "haskell"
|
|
file-types = ["hs"]
|
|
roots = []
|
|
comment-token = "--"
|
|
language-server = { command = "haskell-language-server-wrapper", args = ["--lsp"] }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "haskell"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-haskell", rev = "b6ec26f181dd059eedd506fa5fbeae1b8e5556c8" }
|
|
|
|
[[language]]
|
|
name = "zig"
|
|
scope = "source.zig"
|
|
injection-regex = "zig"
|
|
file-types = ["zig"]
|
|
roots = ["build.zig"]
|
|
auto-format = true
|
|
comment-token = "//"
|
|
language-server = { command = "zls" }
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "zig"
|
|
source = { git = "https://github.com/maxxnino/tree-sitter-zig", rev = "93331b8bd8b4ebee2b575490b2758f16ad4e9f30" }
|
|
|
|
[[language]]
|
|
name = "prolog"
|
|
scope = "source.prolog"
|
|
roots = []
|
|
file-types = ["pl", "prolog"]
|
|
shebangs = ["swipl"]
|
|
comment-token = "%"
|
|
language-server = { command = "swipl", args = [
|
|
"-g", "use_module(library(lsp_server))",
|
|
"-g", "lsp_server:main",
|
|
"-t", "halt", "--", "stdio"] }
|
|
|
|
[[language]]
|
|
name = "tsq"
|
|
scope = "source.tsq"
|
|
file-types = ["scm"]
|
|
roots = []
|
|
comment-token = ";"
|
|
injection-regex = "tsq"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "tsq"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-tsq", rev = "b665659d3238e6036e22ed0e24935e60efb39415" }
|
|
|
|
[[language]]
|
|
name = "cmake"
|
|
scope = "source.cmake"
|
|
file-types = ["cmake", "CMakeLists.txt"]
|
|
roots = []
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
language-server = { command = "cmake-language-server" }
|
|
injection-regex = "cmake"
|
|
|
|
[[grammar]]
|
|
name = "cmake"
|
|
source = { git = "https://github.com/uyha/tree-sitter-cmake", rev = "f6616f1e417ee8b62daf251aa1daa5d73781c596" }
|
|
|
|
[[language]]
|
|
name = "make"
|
|
scope = "source.make"
|
|
file-types = ["Makefile", "makefile", "justfile", ".justfile"]
|
|
roots =[]
|
|
comment-token = "#"
|
|
indent = { tab-width = 4, unit = "\t" }
|
|
|
|
[[grammar]]
|
|
name = "make"
|
|
source = { git = "https://github.com/alemuller/tree-sitter-make", rev = "a4b9187417d6be349ee5fd4b6e77b4172c6827dd" }
|
|
|
|
[[language]]
|
|
name = "glsl"
|
|
scope = "source.glsl"
|
|
file-types = ["glsl", "vert", "tesc", "tese", "geom", "frag", "comp" ]
|
|
roots = []
|
|
comment-token = "//"
|
|
indent = { tab-width = 4, unit = " " }
|
|
injection-regex = "glsl"
|
|
|
|
[[grammar]]
|
|
name = "glsl"
|
|
source = { git = "https://github.com/theHamsta/tree-sitter-glsl", rev = "88408ffc5e27abcffced7010fc77396ae3636d7e" }
|
|
|
|
[[language]]
|
|
name = "perl"
|
|
scope = "source.perl"
|
|
file-types = ["pl", "pm"]
|
|
shebangs = ["perl"]
|
|
roots = []
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "perl"
|
|
source = { git = "https://github.com/ganezdragon/tree-sitter-perl", rev = "0ac2c6da562c7a2c26ed7e8691d4a590f7e8b90a" }
|
|
|
|
[[language]]
|
|
name = "racket"
|
|
scope = "source.rkt"
|
|
roots = []
|
|
file-types = ["rkt"]
|
|
shebangs = ["racket"]
|
|
comment-token = ";"
|
|
language-server = { command = "racket", args = ["-l", "racket-langserver"] }
|
|
|
|
[[language]]
|
|
name = "comment"
|
|
scope = "scope.comment"
|
|
roots = []
|
|
file-types = []
|
|
injection-regex = "comment"
|
|
|
|
[[grammar]]
|
|
name = "comment"
|
|
source = { git = "https://github.com/stsewd/tree-sitter-comment", rev = "5dd3c62f1bbe378b220fe16b317b85247898639e" }
|
|
|
|
[[language]]
|
|
name = "wgsl"
|
|
scope = "source.wgsl"
|
|
file-types = ["wgsl"]
|
|
roots = []
|
|
comment-token = "//"
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "wgsl"
|
|
source = { git = "https://github.com/szebniok/tree-sitter-wgsl", rev = "f00ff52251edbd58f4d39c9c3204383253032c11" }
|
|
|
|
[[language]]
|
|
name = "llvm"
|
|
scope = "source.llvm"
|
|
roots = []
|
|
file-types = ["ll"]
|
|
comment-token = ";"
|
|
indent = { tab-width = 2, unit = " " }
|
|
injection-regex = "llvm"
|
|
|
|
[[grammar]]
|
|
name = "llvm"
|
|
source = { git = "https://github.com/benwilliamgraham/tree-sitter-llvm", rev = "3b213925b9c4f42c1acfe2e10bfbb438d9c6834d" }
|
|
|
|
[[language]]
|
|
name = "llvm-mir"
|
|
scope = "source.llvm_mir"
|
|
roots = []
|
|
file-types = []
|
|
comment-token = ";"
|
|
indent = { tab-width = 2, unit = " " }
|
|
injection-regex = "mir"
|
|
|
|
[[grammar]]
|
|
name = "llvm-mir"
|
|
source = { git = "https://github.com/Flakebi/tree-sitter-llvm-mir", rev = "06fabca19454b2dc00c1b211a7cb7ad0bc2585f1" }
|
|
|
|
[[language]]
|
|
name = "llvm-mir-yaml"
|
|
# TODO allow languages to point to their grammar like so:
|
|
#
|
|
# grammar = "yaml"
|
|
scope = "source.yaml"
|
|
roots = []
|
|
file-types = ["mir"]
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[language]]
|
|
name = "tablegen"
|
|
scope = "source.tablegen"
|
|
roots = []
|
|
file-types = ["td"]
|
|
comment-token = "//"
|
|
indent = { tab-width = 2, unit = " " }
|
|
injection-regex = "tablegen"
|
|
|
|
[[grammar]]
|
|
name = "tablegen"
|
|
source = { git = "https://github.com/Flakebi/tree-sitter-tablegen", rev = "568dd8a937347175fd58db83d4c4cdaeb6069bd2" }
|
|
|
|
[[language]]
|
|
name = "markdown"
|
|
scope = "source.md"
|
|
injection-regex = "md|markdown"
|
|
file-types = ["md"]
|
|
roots = []
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "markdown"
|
|
source = { git = "https://github.com/MDeiml/tree-sitter-markdown", rev = "ad8c32917a16dfbb387d1da567bf0c3fb6fffde2" }
|
|
|
|
[[language]]
|
|
name = "dart"
|
|
scope = "source.dart"
|
|
file-types = ["dart"]
|
|
roots = ["pubspec.yaml"]
|
|
auto-format = true
|
|
comment-token = "//"
|
|
language-server = { command = "dart", args = ["language-server", "--client-id=helix"] }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "dart"
|
|
source = { git = "https://github.com/UserNobody14/tree-sitter-dart", rev = "6a25376685d1d47968c2cef06d4db8d84a70025e" }
|
|
|
|
[[language]]
|
|
name = "scala"
|
|
scope = "source.scala"
|
|
roots = ["build.sbt", "pom.xml"]
|
|
file-types = ["scala", "sbt"]
|
|
comment-token = "//"
|
|
indent = { tab-width = 2, unit = " " }
|
|
language-server = { command = "metals" }
|
|
|
|
[[grammar]]
|
|
name = "scala"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-scala", rev = "0a3dd53a7fc4b352a538397d054380aaa28be54c" }
|
|
|
|
[[language]]
|
|
name = "dockerfile"
|
|
scope = "source.dockerfile"
|
|
injection-regex = "docker|dockerfile"
|
|
roots = ["Dockerfile"]
|
|
file-types = ["Dockerfile", "dockerfile"]
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
language-server = { command = "docker-langserver", args = ["--stdio"] }
|
|
|
|
[[grammar]]
|
|
name = "dockerfile"
|
|
source = { git = "https://github.com/camdencheek/tree-sitter-dockerfile", rev = "7af32bc04a66ab196f5b9f92ac471f29372ae2ce" }
|
|
|
|
[[language]]
|
|
name = "git-commit"
|
|
scope = "git.commitmsg"
|
|
roots = []
|
|
file-types = ["COMMIT_EDITMSG"]
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "git-commit"
|
|
source = { git = "https://github.com/the-mikedavis/tree-sitter-git-commit", rev = "7ae23de633de41f8f5b802f6f05b6596df6d00c1" }
|
|
|
|
[[language]]
|
|
name = "git-diff"
|
|
scope = "source.diff"
|
|
roots = []
|
|
file-types = ["diff"]
|
|
injection-regex = "diff"
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "git-diff"
|
|
source = { git = "https://github.com/the-mikedavis/tree-sitter-git-diff", rev = "c12e6ecb54485f764250556ffd7ccb18f8e2942b" }
|
|
|
|
[[language]]
|
|
name = "git-rebase"
|
|
scope = "source.gitrebase"
|
|
roots = []
|
|
file-types = ["git-rebase-todo"]
|
|
injection-regex = "git-rebase"
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "git-rebase"
|
|
source = { git = "https://github.com/the-mikedavis/tree-sitter-git-rebase", rev = "332dc528f27044bc4427024dbb33e6941fc131f2" }
|
|
|
|
[[language]]
|
|
name = "regex"
|
|
scope = "source.regex"
|
|
injection-regex = "regex"
|
|
file-types = ["regex"]
|
|
roots = []
|
|
|
|
[[grammar]]
|
|
name = "regex"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-regex", rev = "e1cfca3c79896ff79842f057ea13e529b66af636" }
|
|
|
|
[[language]]
|
|
name = "git-config"
|
|
scope = "source.gitconfig"
|
|
roots = []
|
|
# TODO: allow specifying file-types as a regex so we can read directory names (e.g. `.git/config`)
|
|
file-types = [".gitmodules", ".gitconfig"]
|
|
injection-regex = "git-config"
|
|
comment-token = "#"
|
|
indent = { tab-width = 4, unit = "\t" }
|
|
|
|
[[grammar]]
|
|
name = "git-config"
|
|
source = { git = "https://github.com/the-mikedavis/tree-sitter-git-config", rev = "0e4f0baf90b57e5aeb62dcdbf03062c6315d43ea" }
|
|
|
|
[[language]]
|
|
name = "graphql"
|
|
scope = "source.graphql"
|
|
injection-regex = "graphql"
|
|
file-types = ["gql", "graphql"]
|
|
roots = []
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "graphql"
|
|
source = { git = "https://github.com/bkegley/tree-sitter-graphql", rev = "5e66e961eee421786bdda8495ed1db045e06b5fe" }
|
|
|
|
[[language]]
|
|
name = "elm"
|
|
scope = "source.elm"
|
|
injection-regex = "elm"
|
|
file-types = ["elm"]
|
|
roots = ["elm.json"]
|
|
auto-format = true
|
|
comment-token = "--"
|
|
language-server = { command = "elm-language-server" }
|
|
indent = { tab-width = 4, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "elm"
|
|
source = { git = "https://github.com/elm-tooling/tree-sitter-elm", rev = "bd50ccf66b42c55252ac8efc1086af4ac6bab8cd" }
|
|
|
|
[[language]]
|
|
name = "iex"
|
|
scope = "source.iex"
|
|
injection-regex = "iex"
|
|
file-types = ["iex"]
|
|
roots = []
|
|
|
|
[[grammar]]
|
|
name = "iex"
|
|
source = { git = "https://github.com/elixir-lang/tree-sitter-iex", rev = "39f20bb51f502e32058684e893c0c0b00bb2332c" }
|
|
|
|
[[language]]
|
|
name = "rescript"
|
|
scope = "source.rescript"
|
|
injection-regex = "rescript"
|
|
file-types = ["res"]
|
|
roots = ["bsconfig.json"]
|
|
auto-format = true
|
|
comment-token = "//"
|
|
language-server = { command = "rescript-language-server", args = ["--stdio"] }
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "rescript"
|
|
source = { git = "https://github.com/jaredramirez/tree-sitter-rescript", rev = "4cd7ba91696886fdaca086fb32b5fd8cc294a129" }
|
|
|
|
[[language]]
|
|
name = "erlang"
|
|
scope = "source.erlang"
|
|
injection-regex = "erl(ang)?"
|
|
file-types = ["erl", "hrl", "app", "rebar.config", "rebar.lock"]
|
|
roots = ["rebar.config"]
|
|
comment-token = "%%"
|
|
indent = { tab-width = 4, unit = " " }
|
|
language-server = { command = "erlang_ls" }
|
|
|
|
[[grammar]]
|
|
name = "erlang"
|
|
source = { git = "https://github.com/the-mikedavis/tree-sitter-erlang", rev = "1e81393b8f0a81b35ff1679a9420fafbd2cf3511" }
|
|
|
|
[[language]]
|
|
name = "kotlin"
|
|
scope = "source.kotlin"
|
|
file-types = ["kt", "kts"]
|
|
roots = ["settings.gradle", "settings.gradle.kts"]
|
|
comment-token = "//"
|
|
indent = { tab-width = 4, unit = " " }
|
|
language-server = { command = "kotlin-language-server" }
|
|
|
|
[[grammar]]
|
|
name = "kotlin"
|
|
source = { git = "https://github.com/fwcd/tree-sitter-kotlin", rev = "a4f71eb9b8c9b19ded3e0e9470be4b1b77c2b569" }
|
|
|
|
[[language]]
|
|
name = "hcl"
|
|
scope = "source.hcl"
|
|
injection-regex = "(hcl|tf)"
|
|
file-types = ["hcl", "tf", "tfvars"]
|
|
roots = []
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
language-server = { command = "terraform-ls", args = ["serve"] }
|
|
auto-format = true
|
|
|
|
[[grammar]]
|
|
name = "hcl"
|
|
source = { git = "https://github.com/MichaHoffmann/tree-sitter-hcl", rev = "3cb7fc28247efbcb2973b97e71c78838ad98a583" }
|
|
|
|
[[language]]
|
|
name = "org"
|
|
scope = "source.org"
|
|
injection-regex = "org"
|
|
file-types = ["org"]
|
|
roots = []
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "org"
|
|
source = { git = "https://github.com/milisims/tree-sitter-org", rev = "1c3eb533a9cf6800067357b59e03ac3f91fc3a54" }
|
|
|
|
[[language]]
|
|
name = "solidity"
|
|
scope = "source.sol"
|
|
injection-regex = "^(sol|solidity)$"
|
|
file-types = ["sol"]
|
|
roots = []
|
|
comment-token = "//"
|
|
indent = { tab-width = 4, unit = " " }
|
|
language-server = { command = "solc", args = ["--lsp"] }
|
|
|
|
[[grammar]]
|
|
name = "solidity"
|
|
source = { git = "https://github.com/slinlee/tree-sitter-solidity", rev = "f3a002274744e859bf64cf3524985f8c31ea84fd" }
|
|
|
|
[[language]]
|
|
name = "gleam"
|
|
scope = "source.gleam"
|
|
injection-regex = "gleam"
|
|
file-types = ["gleam"]
|
|
roots = ["gleam.toml"]
|
|
comment-token = "//"
|
|
indent = { tab-width = 2, unit = " " }
|
|
|
|
[[grammar]]
|
|
name = "gleam"
|
|
source = { git = "https://github.com/gleam-lang/tree-sitter-gleam", rev = "7159ce961592192b0e7cdf88782cda0fdf41a4cb" }
|
|
|
|
[[language]]
|
|
name = "ron"
|
|
scope = "source.ron"
|
|
injection-regex = "ron"
|
|
file-types = ["ron"]
|
|
roots = []
|
|
comment-token = "//"
|
|
indent = { tab-width = 4, unit = " " }
|
|
grammar = "rust"
|
|
|
|
[[language]]
|
|
name = "r"
|
|
scope = "source.r"
|
|
injection-regex = "(r|R)"
|
|
file-types = ["r", "R"]
|
|
shebangs = ["r", "R"]
|
|
roots = []
|
|
comment-token = "#"
|
|
indent = { tab-width = 2, unit = " " }
|
|
language-server = { command = "R", args = ["--slave", "-e", "languageserver::run()"] }
|
|
|
|
[[grammar]]
|
|
name = "r"
|
|
source = { git = "https://github.com/r-lib/tree-sitter-r", rev = "cc04302e1bff76fa02e129f332f44636813b0c3c" }
|
|
|
|
[[language]]
|
|
name = "rmarkdown"
|
|
scope = "source.rmd"
|
|
injection-regex = "(r|R)md"
|
|
file-types = ["rmd", "Rmd"]
|
|
roots = []
|
|
indent = { tab-width = 2, unit = " " }
|
|
grammar = "markdown"
|
|
language-server = { command = "R", args = ["--slave", "-e", "languageserver::run()"] }
|
|
|
|
[[language]]
|
|
name = "swift"
|
|
scope = "source.swift"
|
|
injection-regex = "swift"
|
|
file-types = ["swift"]
|
|
roots = [ "Package.swift" ]
|
|
comment-token = "//"
|
|
auto-format = true
|
|
language-server = { command = "sourcekit-lsp" }
|
|
|
|
[[grammar]]
|
|
name = "swift"
|
|
source = { git = "https://github.com/Dispersia/tree-sitter-swift", rev = "e75240f89bb3bfd3396155859ae364e5c58d7377" }
|
|
|
|
[[language]]
|
|
name = "erb"
|
|
scope = "text.html.erb"
|
|
injection-regex = "erb"
|
|
file-types = ["erb"]
|
|
roots = []
|
|
indent = { tab-width = 2, unit = " " }
|
|
grammar = "embedded-template"
|
|
|
|
[[language]]
|
|
name = "ejs"
|
|
scope = "text.html.ejs"
|
|
injection-regex = "ejs"
|
|
file-types = ["ejs"]
|
|
roots = []
|
|
indent = { tab-width = 2, unit = " " }
|
|
grammar = "embedded-template"
|
|
|
|
[[grammar]]
|
|
name = "embedded-template"
|
|
source = { git = "https://github.com/tree-sitter/tree-sitter-embedded-template", rev = "d21df11b0ecc6fd211dbe11278e92ef67bd17e97" }
|