# Language support configuration. # See the languages documentation: https://docs.helix-editor.com/master/languages.html use-grammars = { except = [ "hare", "wren", "gemini" ] } [language-server] als = { command = "als" } awk-language-server = { command = "awk-language-server" } bash-language-server = { command = "bash-language-server", args = ["start"] } bass = { command = "bass", args = ["--lsp"] } bicep-langserver = { command = "bicep-langserver" } bufls = { command = "bufls", args = ["serve"] } cairo-language-server = { command = "cairo-language-server", args = [] } cl-lsp = { command = "cl-lsp", args = [ "stdio" ] } clangd = { command = "clangd" } clojure-lsp = { command = "clojure-lsp" } cmake-language-server = { command = "cmake-language-server" } crystalline = { command = "crystalline", args = ["--stdio"] } cs = { command = "cs", args = ["launch", "--contrib", "smithy-language-server", "--", "0"] } csharp-ls = { command = "csharp-ls" } cuelsp = { command = "cuelsp" } dart = { command = "dart", args = ["language-server", "--client-id=helix"] } dhall-lsp-server = { command = "dhall-lsp-server" } docker-langserver = { command = "docker-langserver", args = ["--stdio"] } dot-language-server = { command = "dot-language-server", args = ["--stdio"] } elixir-ls = { command = "elixir-ls", config = { elixirLS.dialyzerEnabled = false } } elm-language-server = { command = "elm-language-server" } elvish = { command = "elvish", args = ["-lsp"] } erlang-ls = { command = "erlang_ls" } forc = { command = "forc", args = ["lsp"] } forth-lsp = { command = "forth-lsp" } fortls = { command = "fortls", args = ["--lowercase_intrinsics"] } fsharp-ls = { command = "fsautocomplete", config = { AutomaticWorkspaceInit = true } } gleam = { command = "gleam", args = ["lsp"] } graphql-language-service = { command = "graphql-lsp", args = ["server", "-m", "stream"] } haskell-language-server = { command = "haskell-language-server-wrapper", args = ["--lsp"] } idris2-lsp = { command = "idris2-lsp" } intelephense = { command = "intelephense", args = ["--stdio"] } jdtls = { command = "jdtls" } jsonnet-language-server = { command = "jsonnet-language-server", args= ["-t", "--lint"] } julia = { command = "julia", timeout = 60, args = [ "--startup-file=no", "--history-file=no", "--quiet", "-e", "using LanguageServer; runserver()", ] } kotlin-language-server = { command = "kotlin-language-server" } lean = { command = "lean", args = [ "--server" ] } ltex-ls = { command = "ltex-ls" } markdoc-ls = { command = "markdoc-ls", args = ["--stdio"] } marksman = { command = "marksman", args = ["server"] } metals = { command = "metals", config = { "isHttpEnabled" = true } } mint = { command = "mint", args = ["ls"] } nil = { command = "nil" } nimlangserver = { command = "nimlangserver" } nls = { command = "nls" } nu-lsp = { command = "nu", args = [ "--lsp" ] } ocamllsp = { command = "ocamllsp" } ols = { command = "ols", args = [] } omnisharp = { command = "OmniSharp", args = [ "--languageserver" ] } openscad-lsp = { command = "openscad-lsp", args = ["--stdio"] } pasls = { command = "pasls", args = [] } pbkit = { command = "pb", args = [ "lsp" ] } perlnavigator = { command = "perlnavigator", args= ["--stdio"] } prisma-language-server = { command = "prisma-language-server", args = ["--stdio"] } purescript-language-server = { command = "purescript-language-server", args = ["--stdio"] } pylsp = { command = "pylsp" } pyright = { command = "pyright-langserver", args = ["--stdio"], config = {} } pylyzer = { command = "pylyzer", args = ["--server"] } qmlls = { command = "qmlls" } r = { command = "R", args = ["--no-echo", "-e", "languageserver::run()"] } racket = { command = "racket", args = ["-l", "racket-langserver"] } regols = { command = "regols" } rescript-language-server = { command = "rescript-language-server", args = ["--stdio"] } robotframework_ls = { command = "robotframework_ls" } serve-d = { command = "serve-d" } slint-lsp = { command = "slint-lsp", args = [] } solargraph = { command = "solargraph", args = ["stdio"] } solc = { command = "solc", args = ["--lsp"] } sourcekit-lsp = { command = "sourcekit-lsp" } svlangserver = { command = "svlangserver", args = [] } swipl = { command = "swipl", args = [ "-g", "use_module(library(lsp_server))", "-g", "lsp_server:main", "-t", "halt", "--", "stdio" ] } tailwindcss-ls = { command = "tailwindcss-language-server", args = ["--stdio"] } taplo = { command = "taplo", args = ["lsp", "stdio"] } templ = { command = "templ", args = ["lsp"] } terraform-ls = { command = "terraform-ls", args = ["serve"] } texlab = { command = "texlab" } vala-language-server = { command = "vala-language-server" } vhdl_ls = { command = "vhdl_ls", args = [] } vlang-language-server = { command = "v-analyzer" } vscode-css-language-server = { command = "vscode-css-language-server", args = ["--stdio"], config = { provideFormatter = true, css = { validate = { enable = true } } } } vscode-html-language-server = { command = "vscode-html-language-server", args = ["--stdio"], config = { provideFormatter = true } } vscode-json-language-server = { command = "vscode-json-language-server", args = ["--stdio"], config = { provideFormatter = true, json = { validate = { enable = true } } } } vuels = { command = "vue-language-server", args = ["--stdio"], config = { typescript = { tsdk = "node_modules/typescript/lib/" } } } wgsl_analyzer = { command = "wgsl_analyzer" } yaml-language-server = { command = "yaml-language-server", args = ["--stdio"] } zls = { command = "zls" } blueprint-compiler = { command = "blueprint-compiler", args = ["lsp"] } typst-lsp = { command = "typst-lsp" } [language-server.ansible-language-server] command = "ansible-language-server" args = ["--stdio"] [language-server.lua-language-server] command = "lua-language-server" [language-server.lua-language-server.config.Lua.hint] enable = true arrayIndex = "Enable" setType = true paramName = "All" paramType = true await = true [language-server.gopls] command = "gopls" [language-server.gopls.config.hints] assignVariableTypes = true compositeLiteralFields = true constantValues = true functionTypeParameters = true parameterNames = true rangeVariableTypes = true [language-server.golangci-lint-lsp] command = "golangci-lint-langserver" [language-server.golangci-lint-lsp.config] command = ["golangci-lint", "run", "--out-format", "json", "--issues-exit-code=1"] [language-server.rust-analyzer] command = "rust-analyzer" [language-server.rust-analyzer.config] inlayHints.bindingModeHints.enable = false inlayHints.closingBraceHints.minLines = 10 inlayHints.closureReturnTypeHints.enable = "with_block" inlayHints.discriminantHints.enable = "fieldless" inlayHints.lifetimeElisionHints.enable = "skip_trivial" inlayHints.typeHints.hideClosureInitialization = false [language-server.typescript-language-server] command = "typescript-language-server" args = ["--stdio"] config.hostInfo = "helix" [language-server.typescript-language-server.config.typescript.inlayHints] includeInlayEnumMemberValueHints = true includeInlayFunctionLikeReturnTypeHints = true includeInlayFunctionParameterTypeHints = true includeInlayParameterNameHints = "all" includeInlayParameterNameHintsWhenArgumentMatchesName = true includeInlayPropertyDeclarationTypeHints = true includeInlayVariableTypeHints = true [language-server.typescript-language-server.config.javascript.inlayHints] includeInlayEnumMemberValueHints = true includeInlayFunctionLikeReturnTypeHints = true includeInlayFunctionParameterTypeHints = true includeInlayParameterNameHints = "all" includeInlayParameterNameHintsWhenArgumentMatchesName = true includeInlayPropertyDeclarationTypeHints = true includeInlayVariableTypeHints = true [language-server.svelteserver] command = "svelteserver" args = ["--stdio"] [language-server.svelteserver.config.configuration.typescript] inlayHints.parameterTypes.enabled = true inlayHints.variableTypes.enabled = true inlayHints.propertyDeclarationTypes.enabled = true inlayHints.functionLikeReturnTypes.enabled = true inlayHints.enumMemberValues.enabled = true inlayHints.parameterNames.enabled = "all" [language-server.svelteserver.config.configuration.javascript] inlayHints.parameterTypes.enabled = true inlayHints.variableTypes.enabled = true inlayHints.propertyDeclarationTypes.enabled = true inlayHints.functionLikeReturnTypes.enabled = true inlayHints.enumMemberValues.enabled = true inlayHints.parameterNames.enabled = "all" [[language]] name = "rust" scope = "source.rust" injection-regex = "rust" file-types = ["rs"] roots = ["Cargo.toml", "Cargo.lock"] auto-format = true comment-token = "//" language-servers = [ "rust-analyzer" ] indent = { tab-width = 4, unit = " " } persistent-diagnostic-sources = ["rustc", "clippy"] [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 = "0431a2c60828731f27491ee9fdefe25e250ce9c9" } [[language]] name = "sway" scope = "source.sway" injection-regex = "sway" file-types = ["sw"] language-servers = [ "forc" ] roots = ["Forc.toml", "Forc.lock"] indent = { tab-width = 4, unit = " " } comment-token = "//" [[grammar]] name = "sway" source = { git = "https://github.com/FuelLabs/tree-sitter-sway", rev = "e491a005ee1d310f4c138bf215afd44cfebf959c" } [[language]] name = "toml" scope = "source.toml" injection-regex = "toml" file-types = ["toml", { glob = "poetry.lock" }, { glob = "Cargo.lock" }] comment-token = "#" language-servers = [ "taplo" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "toml" source = { git = "https://github.com/ikatyang/tree-sitter-toml", rev = "7cff70bbcbbc62001b465603ca1ea88edd668704" } [[language]] name = "awk" scope = "source.awk" injection-regex = "awk" file-types = ["awk", "gawk", "nawk", "mawk"] comment-token = "#" language-servers = [ "awk-language-server" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "awk" source = { git = "https://github.com/Beaglefoot/tree-sitter-awk", rev = "a799bc5da7c2a84bc9a06ba5f3540cf1191e4ee3" } [[language]] name = "protobuf" scope = "source.proto" injection-regex = "protobuf" file-types = ["proto"] language-servers = [ "bufls", "pbkit" ] 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", { glob = "mix.lock" }] shebangs = ["elixir"] roots = ["mix.exs", "mix.lock"] comment-token = "#" language-servers = [ "elixir-ls" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "elixir" source = { git = "https://github.com/elixir-lang/tree-sitter-elixir", rev = "b20eaa75565243c50be5e35e253d8beb58f45d56" } [[language]] name = "fish" scope = "source.fish" injection-regex = "fish" file-types = ["fish"] shebangs = ["fish"] comment-token = "#" indent = { tab-width = 4, unit = " " } auto-format = true formatter = { command = "fish_indent" } [[grammar]] name = "fish" source = { git = "https://github.com/ram02z/tree-sitter-fish", rev = "84436cf24c2b3176bfbb220922a0fdbd0141e406" } [[language]] name = "mint" scope = "source.mint" injection-regex = "mint" file-types = ["mint"] shebangs = [] comment-token = "//" language-servers = [ "mint" ] indent = { tab-width = 2, unit = " " } [[language]] name = "janet" scope = "source.janet" injection-regex = "janet" file-types = ["cgen", "janet", "jdn"] shebangs = ["janet"] roots = ["project.janet"] comment-token = "#" indent = { tab-width = 2, unit = " " } formatter = { command = "janet-format" } grammar = "janet-simple" [language.auto-pairs] '"' = '"' '(' = ')' '[' = ']' '{' = '}' "`" = "`" [[grammar]] name = "janet-simple" source = { git = "https://github.com/sogaiu/tree-sitter-janet-simple", rev = "51271e260346878e1a1aa6c506ce6a797b7c25e2" } [[language]] name = "json" scope = "source.json" injection-regex = "json" file-types = [ "json", "jsonc", "arb", "ipynb", "geojson", "gltf", "webmanifest", { glob = "flake.lock" }, { glob = ".babelrc" }, { glob = ".bowerrc" }, { glob = ".jscrc" }, "js.map", "ts.map", "css.map", { glob = ".jslintrc" }, "jsonld", { glob = ".vuerc" }, { glob = "composer.lock" }, { glob = ".watchmanconfig" }, "avsc", { glob = ".prettierrc" }, ] language-servers = [ "vscode-json-language-server" ] auto-format = true indent = { tab-width = 2, unit = " " } [[grammar]] name = "json" source = { git = "https://github.com/tree-sitter/tree-sitter-json", rev = "73076754005a460947cafe8e03a8cf5fa4fa2938" } [[language]] name = "json5" scope = "source.json5" injection-regex = "json5" file-types = ["json5"] language-servers = [] comment-token = "//" indent = { tab-width = 4, unit = " " } # https://json5.org [[grammar]] name = "json5" source = { git = "https://github.com/Joakker/tree-sitter-json5", rev = "c23f7a9b1ee7d45f516496b1e0e4be067264fa0d" } [[language]] name = "c" scope = "source.c" injection-regex = "c" file-types = ["c"] # TODO: ["h"] comment-token = "//" language-servers = [ "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 = "7175a6dd5fc1cee660dce6fe23f6043d75af424a" } [[language]] name = "cpp" scope = "source.cpp" injection-regex = "cpp" file-types = ["cc", "hh", "c++", "cpp", "hpp", "h", "ipp", "tpp", "cxx", "hxx", "ixx", "txx", "ino", "C", "H", "cu", "cuh", "cppm", "h++", "ii", "inl", { glob = ".hpp.in" }, { glob = ".h.in" }] comment-token = "//" language-servers = [ "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 = "670404d7c689be1c868a46f919ba2a3912f2b7ef" } [[language]] name = "crystal" scope = "source.cr" file-types = ["cr"] roots = ["shard.yml", "shard.lock"] comment-token = "#" indent = { tab-width = 2, unit = " " } grammar = "ruby" language-servers = [ "crystalline" ] [[language]] name = "c-sharp" scope = "source.csharp" injection-regex = "c-?sharp" file-types = ["cs", "csx", "cake"] roots = ["sln", "csproj"] comment-token = "//" indent = { tab-width = 4, unit = "\t" } language-servers = [ "omnisharp" ] [language.debugger] name = "netcoredbg" transport = "tcp" command = "netcoredbg" args = [ "--interpreter=vscode" ] port-arg = "--server={}" [[language.debugger.templates]] name = "launch" request = "launch" completion = [ { name = "path to dll", completion = "filename" } ] args = { type = "coreclr", console = "internalConsole", internalConsoleOptions = "openOnSessionStart", program = "{0}" } [[language.debugger.templates]] name = "attach" request = "attach" completion = [ "pid" ] args = { processId = "{0}" } [[grammar]] name = "c-sharp" source = { git = "https://github.com/tree-sitter/tree-sitter-c-sharp", rev = "5b60f99545fea00a33bbfae5be956f684c4c69e2" } [[language]] name = "cel" scope = "source.cel" injection-regex = "cel" file-types = ["cel"] comment-token = "//" indent = { tab-width = 2, unit = " " } [[grammar]] name = "cel" source = { git = "https://github.com/bufbuild/tree-sitter-cel", rev = "9f2b65da14c216df53933748e489db0f11121464" } [[language]] name = "spicedb" scope = "source.zed" injection-regex = "spicedb" file-types = ["zed"] comment-token = "//" indent = { tab-width = 2, unit = " " } [[grammar]] name = "spicedb" source = { git = "https://github.com/jzelinskie/tree-sitter-spicedb", rev = "a4e4645651f86d6684c15dfa9931b7841dc52a66" } [[language]] name = "go" scope = "source.go" injection-regex = "go" file-types = ["go"] roots = ["go.work", "go.mod"] auto-format = true comment-token = "//" language-servers = [ "gopls", "golangci-lint-lsp" ] # 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}" } [[language.debugger.templates]] name = "core" request = "launch" completion = [ { name = "binary", completion = "filename" }, { name = "core", completion = "filename" } ] args = { mode = "core", program = "{0}", coreFilePath = "{1}" } [[grammar]] name = "go" source = { git = "https://github.com/tree-sitter/tree-sitter-go", rev = "64457ea6b73ef5422ed1687178d4545c3e91334a" } [[language]] name = "gomod" scope = "source.gomod" injection-regex = "gomod" file-types = [{ glob = "go.mod" }] auto-format = true comment-token = "//" language-servers = [ "gopls" ] indent = { tab-width = 4, unit = "\t" } [[grammar]] name = "gomod" source = { git = "https://github.com/camdencheek/tree-sitter-go-mod", rev = "e8f51f8e4363a3d9a427e8f63f4c1bbc5ef5d8d0" } [[language]] name = "gotmpl" scope = "source.gotmpl" injection-regex = "gotmpl" file-types = ["gotmpl"] comment-token = "//" language-servers = [ "gopls" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "gotmpl" source = { git = "https://github.com/dannylongeuay/tree-sitter-go-template", rev = "395a33e08e69f4155156f0b90138a6c86764c979" } [[language]] name = "gowork" scope = "source.gowork" injection-regex = "gowork" file-types = [{ glob = "go.work" }] auto-format = true comment-token = "//" language-servers = [ "gopls" ] indent = { tab-width = 4, unit = "\t" } [[grammar]] name = "gowork" source = { git = "https://github.com/omertuc/tree-sitter-go-work", rev = "6dd9dd79fb51e9f2abc829d5e97b15015b6a8ae2" } [[language]] name = "javascript" scope = "source.js" injection-regex = "(js|javascript)" language-id = "javascript" file-types = ["js", "mjs", "cjs", "rules", "es6", "pac", { glob = "jakefile" }] shebangs = ["node"] comment-token = "//" language-servers = [ "typescript-language-server" ] 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 = "f772967f7b7bc7c28f845be2420a38472b16a8ee" } [[language]] name = "jsx" scope = "source.jsx" injection-regex = "jsx" language-id = "javascriptreact" file-types = ["jsx"] comment-token = "//" language-servers = [ "typescript-language-server" ] indent = { tab-width = 2, unit = " " } grammar = "javascript" [[language]] name = "typescript" scope = "source.ts" injection-regex = "(ts|typescript)" file-types = ["ts", "mts", "cts"] language-id = "typescript" shebangs = ["deno", "ts-node"] language-servers = [ "typescript-language-server" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "typescript" source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "b1bf4825d9eaa0f3bdeb1e52f099533328acfbdf", subpath = "typescript" } [[language]] name = "tsx" scope = "source.tsx" injection-regex = "(tsx)" # |typescript language-id = "typescriptreact" file-types = ["tsx"] language-servers = [ "typescript-language-server" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "tsx" source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "b1bf4825d9eaa0f3bdeb1e52f099533328acfbdf", subpath = "tsx" } [[language]] name = "css" scope = "source.css" injection-regex = "css" file-types = ["css", "scss"] language-servers = [ "vscode-css-language-server" ] auto-format = true indent = { tab-width = 2, unit = " " } [[grammar]] name = "css" source = { git = "https://github.com/tree-sitter/tree-sitter-css", rev = "769203d0f9abe1a9a691ac2b9fe4bb4397a73c51" } [[language]] name = "scss" scope = "source.scss" injection-regex = "scss" file-types = ["scss"] language-servers = [ "vscode-css-language-server" ] auto-format = true indent = { tab-width = 2, unit = " " } [[grammar]] name = "scss" source = { git = "https://github.com/serenadeai/tree-sitter-scss", rev = "c478c6868648eff49eb04a4df90d703dc45b312a" } [[language]] name = "html" scope = "text.html.basic" injection-regex = "html" file-types = ["html", "htm", "shtml", "xhtml", "xht", "jsp", "asp", "aspx", "jshtm", "volt", "rhtml"] language-servers = [ "vscode-html-language-server" ] auto-format = true indent = { tab-width = 2, unit = " " } [[grammar]] name = "html" source = { git = "https://github.com/tree-sitter/tree-sitter-html", rev = "29f53d8f4f2335e61bf6418ab8958dac3282077a" } [[language]] name = "python" scope = "source.python" injection-regex = "python" file-types = ["py", "pyi", "py3", "pyw", "ptl", "rpy", "cpy", "ipy", "pyt", { glob = ".pythonstartup" }, { glob = ".pythonrc" }, { glob = "SConstruct" }, { glob = "SConscript" }] shebangs = ["python"] roots = ["pyproject.toml", "setup.py", "poetry.lock", "pyrightconfig.json"] comment-token = "#" language-servers = [ "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 = "4bfdd9033a2225cc95032ce77066b7aeca9e2efc" } [[language]] name = "nickel" scope = "source.nickel" injection-regex = "nickel" file-types = ["ncl"] shebangs = [] comment-token = "#" language-servers = [ "nls" ] indent = { tab-width = 2, unit = " " } [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' [[grammar]] name = "nickel" source = { git = "https://github.com/nickel-lang/tree-sitter-nickel", rev = "e1d9337864d209898a08c26b8cd4c2dd14c15148" } [[language]] name = "nix" scope = "source.nix" injection-regex = "nix" file-types = ["nix"] shebangs = [] comment-token = "#" language-servers = [ "nil" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "nix" source = { git = "https://github.com/nix-community/tree-sitter-nix", rev = "1b69cf1fa92366eefbe6863c184e5d2ece5f187d" } [[language]] name = "ruby" scope = "source.ruby" injection-regex = "ruby" file-types = [ "rb", "rake", "irb", "gemspec", "rabl", "jbuilder", "jb", "podspec", "rjs", "rbi", { glob = "rakefile" }, { glob = "gemfile" }, { glob = "Rakefile" }, { glob = "Gemfile" }, { glob = "Podfile" }, { glob = "Vagrantfile" }, { glob = "Brewfile" }, { glob = "Guardfile" }, { glob = "Capfile" }, { glob = "Cheffile" }, { glob = "Hobofile" }, { glob = "Appraisals" }, { glob = "Rantfile" }, { glob = "Berksfile" }, { glob = "Berksfile.lock" }, { glob = "Thorfile" }, { glob = "Puppetfile" }, { glob = "Fastfile" }, { glob = "Appfile" }, { glob = "Deliverfile" }, { glob = "Matchfile" }, { glob = "Scanfile" }, { glob = "Snapfile" }, { glob = "Gymfile" }, ] shebangs = ["ruby"] comment-token = "#" language-servers = [ "solargraph" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "ruby" source = { git = "https://github.com/tree-sitter/tree-sitter-ruby", rev = "206c7077164372c596ffa8eaadb9435c28941364" } [[language]] name = "bash" scope = "source.bash" injection-regex = "(shell|bash|zsh|sh)" file-types = [ "sh", "bash", "zsh", "zshenv", "zlogin", "zlogout", "zprofile", "zshrc", "eclass", "ebuild", "bazelrc", "Renviron", "zsh-theme", "ksh", "cshrc", "tcshrc", "bashrc_Apple_Terminal", "zshrc_Apple_Terminal", { glob = "tmux.conf" }, { glob = ".bash_history" }, { glob = ".bash_login" }, { glob = ".bash_logout" }, { glob = ".bash_profile" }, { glob = ".bashrc" }, { glob = ".profile" }, { glob = ".zshenv" }, { glob = ".zlogin" }, { glob = ".zlogout" }, { glob = ".zprofile" }, { glob = ".zshrc" }, { glob = ".zimrc" }, { glob = "APKBUILD" }, { glob = "PKGBUILD" }, { glob = ".bash_aliases" }, { glob = ".Renviron" }, { glob = ".xprofile" }, { glob = ".xsession" }, { glob = ".xsessionrc" }, { glob = ".yashrc" }, { glob = ".yash_profile" }, { glob = ".hushlogin" }, ] shebangs = ["sh", "bash", "dash", "zsh"] comment-token = "#" language-servers = [ "bash-language-server" ] 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", "inc", "php4", "php5", "phtml", "ctp"] shebangs = ["php"] roots = ["composer.json", "index.php"] language-servers = [ "intelephense" ] indent = { tab-width = 4, unit = " " } [[grammar]] name = "php" source = { git = "https://github.com/tree-sitter/tree-sitter-php", rev = "f860e598194f4a71747f91789bf536b393ad4a56" } [[language]] name = "twig" scope = "source.twig" injection-regex = "twig" file-types = ["twig"] indent = { tab-width = 2, unit = " " } [[grammar]] name = "twig" source = { git = "https://github.com/gbprod/tree-sitter-twig", rev = "807b293fec3fead64f54c64fdf6fb05516c032b9" } [[language]] name = "latex" scope = "source.tex" injection-regex = "tex" file-types = ["tex", "sty", "cls", "Rd", "bbx", "cbx"] comment-token = "%" language-servers = [ "texlab" ] indent = { tab-width = 4, unit = "\t" } [[grammar]] name = "latex" source = { git = "https://github.com/latex-lsp/tree-sitter-latex", rev = "8c75e93cd08ccb7ce1ccab22c1fbd6360e3bcea6" } [[language]] name = "bibtex" scope = "source.bib" injection-regex = "bib" file-types = ["bib"] comment-token = "%" language-servers = [ "texlab" ] indent = { tab-width = 4, unit = "\t" } auto-format = true [language.formatter] command = 'bibtex-tidy' args = [ "-", "--curly", "--drop-all-caps", "--remove-empty-fields", "--sort-fields", "--sort=year,author,id", "--strip-enclosing-braces", "--trailing-commas", ] [[grammar]] name = "bibtex" source = { git = "https://github.com/latex-lsp/tree-sitter-bibtex", rev = "ccfd77db0ed799b6c22c214fe9d2937f47bc8b34" } [[language]] name = "lean" scope = "source.lean" injection-regex = "lean" file-types = ["lean"] roots = [ "lakefile.lean" ] comment-token = "--" language-servers = [ "lean" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "lean" source = { git = "https://github.com/Julian/tree-sitter-lean", rev = "d98426109258b266e1e92358c5f11716d2e8f638" } [[language]] name = "lpf" comment-token = "#" scope = "source.lpf" file-types = ["lpf"] [[grammar]] name = "lpf" source = { git = "https://gitlab.com/TheZoq2/tree-sitter-lpf", rev = "db7372e60c722ca7f12ab359e57e6bf7611ab126" } [[language]] name = "julia" scope = "source.julia" injection-regex = "julia" file-types = ["jl"] shebangs = ["julia"] roots = ["Manifest.toml", "Project.toml"] comment-token = "#" language-servers = [ "julia" ] indent = { tab-width = 4, unit = " " } [[grammar]] name = "julia" source = { git = "https://github.com/tree-sitter/tree-sitter-julia", rev = "8fb38abff74652c4faddbf04d2d5bbbc6b4bae25" } [[language]] name = "java" scope = "source.java" injection-regex = "java" file-types = ["java", "jav"] roots = ["pom.xml", "build.gradle", "build.gradle.kts"] language-servers = [ "jdtls" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "java" source = { git = "https://github.com/tree-sitter/tree-sitter-java", rev = "09d650def6cdf7f479f4b78f595e9ef5b58ce31e" } [[language]] name = "smali" scope = "source.smali" injection-regex = "smali" file-types = ["smali"] comment-token = "#" roots = [] indent = { tab-width = 4, unit = " " } [[grammar]] name = "smali" source = { git = "https://github.com/amaanq/tree-sitter-smali", rev = "5ae51e15c4d1ac93cba6127caf3d1f0a072c140c" } [[language]] name = "ledger" scope = "source.ledger" injection-regex = "ledger" file-types = ["ldg", "ledger", "journal"] comment-token = ";" indent = { tab-width = 4, unit = " " } [[grammar]] name = "ledger" source = { git = "https://github.com/cbarrete/tree-sitter-ledger", rev = "1f864fb2bf6a87fe1b48545cc6adc6d23090adf7" } [[language]] name = "beancount" scope = "source.beancount" injection-regex = "beancount" file-types = ["beancount", "bean"] comment-token = ";" indent = { tab-width = 2, unit = " " } [[grammar]] name = "beancount" source = { git = "https://github.com/polarmutex/tree-sitter-beancount", rev = "f3741a3a68ade59ec894ed84a64673494d2ba8f3" } [[language]] name = "ocaml" scope = "source.ocaml" injection-regex = "ocaml" file-types = ["ml"] shebangs = ["ocaml", "ocamlrun", "ocamlscript"] comment-token = "(**)" language-servers = [ "ocamllsp" ] indent = { tab-width = 2, unit = " " } [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' [[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 = [] comment-token = "(**)" language-servers = [ "ocamllsp" ] indent = { tab-width = 2, unit = " " } [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' [[grammar]] name = "ocaml-interface" source = { git = "https://github.com/tree-sitter/tree-sitter-ocaml", rev = "23d419ba45789c5a47d31448061557716b02750a", subpath = "interface" } [[language]] name = "lua" injection-regex = "lua" scope = "source.lua" file-types = ["lua"] shebangs = ["lua"] roots = [".luarc.json", ".luacheckrc", ".stylua.toml", "selene.toml", ".git"] comment-token = "--" indent = { tab-width = 2, unit = " " } language-servers = [ "lua-language-server" ] [[grammar]] name = "lua" source = { git = "https://github.com/MunifTanjim/tree-sitter-lua", rev = "887dfd4e83c469300c279314ff1619b1d0b85b91" } [[language]] name = "svelte" scope = "source.svelte" injection-regex = "svelte" file-types = ["svelte"] indent = { tab-width = 2, unit = " " } language-servers = [ "svelteserver" ] [[grammar]] name = "svelte" source = { git = "https://github.com/Himujjal/tree-sitter-svelte", rev = "be7f2e7db1fc19f0852265ec60923fc058380739" } [[language]] name = "vue" scope = "source.vue" injection-regex = "vue" file-types = ["vue"] roots = ["package.json"] indent = { tab-width = 2, unit = " " } language-servers = [ "vuels" ] [[grammar]] name = "vue" source = { git = "https://github.com/ikatyang/tree-sitter-vue", rev = "91fe2754796cd8fba5f229505a23fa08f3546c06" } [[language]] name = "yaml" scope = "source.yaml" file-types = ["yml", "yaml"] comment-token = "#" indent = { tab-width = 2, unit = " " } language-servers = [ "yaml-language-server", "ansible-language-server" ] 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", "hs-boot"] roots = ["Setup.hs", "stack.yaml", "cabal.project"] comment-token = "--" language-servers = [ "haskell-language-server" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "haskell" source = { git = "https://github.com/tree-sitter/tree-sitter-haskell", rev = "d7ac98f49e3ed7e17541256fe3881a967d7ffdd3" } [[language]] name = "haskell-persistent" scope = "source.persistentmodels" file-types = ["persistentmodels"] comment-token = "--" indent = { tab-width = 2, unit = " " } [[grammar]] name = "haskell-persistent" source = { git = "https://github.com/MercuryTechnologies/tree-sitter-haskell-persistent", rev = "58a6ccfd56d9f1de8fb9f77e6c42151f8f0d0f3d" } [[language]] name = "purescript" scope = "source.purescript" injection-regex = "purescript" file-types = ["purs"] roots = ["spago.yaml", "spago.dhall", "bower.json"] comment-token = "--" language-servers = [ "purescript-language-server" ] indent = { tab-width = 2, unit = " " } auto-format = true formatter = { command = "purs-tidy", args = ["format"] } [[grammar]] name = "purescript" source = { git = "https://github.com/postsolar/tree-sitter-purescript", rev = "5ef5592674ea42de75fc2792972e4ea0b6e3da6c" } [[language]] name = "zig" scope = "source.zig" injection-regex = "zig" file-types = ["zig", "zon"] roots = ["build.zig"] auto-format = true comment-token = "//" language-servers = [ "zls" ] indent = { tab-width = 4, unit = " " } formatter = { command = "zig" , args = ["fmt", "--stdin"] } [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 = "zig" source = { git = "https://github.com/maxxnino/tree-sitter-zig", rev = "0d08703e4c3f426ec61695d7617415fff97029bd" } [[language]] name = "prolog" scope = "source.prolog" file-types = ["pl", "prolog"] shebangs = ["swipl"] comment-token = "%" language-servers = [ "swipl" ] [[language]] name = "tsq" scope = "source.tsq" file-types = ["tsq"] comment-token = ";" injection-regex = "tsq" indent = { tab-width = 2, unit = " " } [[grammar]] name = "tsq" source = { git = "https://github.com/the-mikedavis/tree-sitter-tsq", rev = "48b5e9f82ae0a4727201626f33a17f69f8e0ff86" } [[language]] name = "cmake" scope = "source.cmake" file-types = ["cmake", { glob = "CMakeLists.txt" }] comment-token = "#" indent = { tab-width = 2, unit = " " } language-servers = [ "cmake-language-server" ] injection-regex = "cmake" [[grammar]] name = "cmake" source = { git = "https://github.com/uyha/tree-sitter-cmake", rev = "6e51463ef3052dd3b328322c22172eda093727ad" } [[language]] name = "make" scope = "source.make" file-types = [{ glob = "Makefile" }, { glob = "makefile" }, "make", "mk", "mak", {glob = "GNUmakefile" }, { glob = "OCamlMakefile" }] shebangs = ["make", "gmake"] injection-regex = "(make|makefile|Makefile|mk)" 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" ] 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", "t", "psgi", "raku", "rakumod", "rakutest", "rakudoc", "nqp", "p6", "pl6", "pm6"] shebangs = ["perl"] comment-token = "#" language-servers = [ "perlnavigator" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "perl" source = { git = "https://github.com/tree-sitter-perl/tree-sitter-perl", rev = "e99bb5283805db4cb86c964722d709df21b0ac16" } [[language]] name = "pod" scope = "source.pod" injection-regex = "pod" file-types = ["pod"] [[grammar]] name = "pod" source = { git = "https://github.com/tree-sitter-perl/tree-sitter-pod", rev = "39da859947b94abdee43e431368e1ae975c0a424" } [[language]] name = "racket" scope = "source.racket" file-types = ["rkt", "rktd", "rktl", "scrbl"] shebangs = ["racket"] comment-token = ";" indent = { tab-width = 2, unit = " " } language-servers = [ "racket" ] grammar = "scheme" [[language]] name = "common-lisp" scope = "source.lisp" file-types = ["lisp", "asd", "cl", "l", "lsp", "ny", "podsl", "sexp"] shebangs = ["lisp", "sbcl", "ccl", "clisp", "ecl"] comment-token = ";" indent = { tab-width = 2, unit = " " } language-servers = [ "cl-lsp" ] grammar = "scheme" [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' [[language]] name = "comment" scope = "scope.comment" file-types = [] injection-regex = "comment" [[grammar]] name = "comment" source = { git = "https://github.com/stsewd/tree-sitter-comment", rev = "aefcc2813392eb6ffe509aa0fc8b4e9b57413ee1" } [[language]] name = "wgsl" scope = "source.wgsl" file-types = ["wgsl"] comment-token = "//" language-servers = [ "wgsl_analyzer" ] indent = { tab-width = 4, unit = " " } [[grammar]] name = "wgsl" source = { git = "https://github.com/szebniok/tree-sitter-wgsl", rev = "272e89ef2aeac74178edb9db4a83c1ffef80a463" } [[language]] name = "llvm" scope = "source.llvm" 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 = "e9948edc41e9e5869af99dddb2b5ff5cc5581af6" } [[language]] name = "llvm-mir" scope = "source.llvm_mir" 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" file-types = ["mir"] comment-token = "#" indent = { tab-width = 2, unit = " " } [[language]] name = "tablegen" scope = "source.tablegen" 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", "markdown", "mkd", "mdwn", "mdown", "markdn", "mdtxt", "mdtext", "workbook", { glob = "PULLREQ_EDITMSG" }] roots = [".marksman.toml"] language-servers = [ "marksman" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "markdown" source = { git = "https://github.com/MDeiml/tree-sitter-markdown", rev = "aaf76797aa8ecd9a5e78e0ec3681941de6c945ee", subpath = "tree-sitter-markdown" } [[language]] name = "markdown.inline" scope = "source.markdown.inline" injection-regex = "markdown\\.inline" file-types = [] grammar = "markdown_inline" [[grammar]] name = "markdown_inline" source = { git = "https://github.com/MDeiml/tree-sitter-markdown", rev = "aaf76797aa8ecd9a5e78e0ec3681941de6c945ee", subpath = "tree-sitter-markdown-inline" } [[language]] name = "dart" scope = "source.dart" file-types = ["dart"] roots = ["pubspec.yaml"] auto-format = true comment-token = "//" language-servers = [ "dart" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "dart" source = { git = "https://github.com/UserNobody14/tree-sitter-dart", rev = "e398400a0b785af3cf571f5a57eccab242f0cdf9" } [[language]] name = "scala" scope = "source.scala" roots = ["build.sbt", "build.sc", "build.gradle", "build.gradle.kts", "pom.xml", ".scala-build"] file-types = ["scala", "sbt", "sc"] comment-token = "//" indent = { tab-width = 2, unit = " " } language-servers = [ "metals" ] [[grammar]] name = "scala" source = { git = "https://github.com/tree-sitter/tree-sitter-scala", rev = "7891815f42dca9ed6aeb464c2edc39d479ab965c" } [[language]] name = "dockerfile" scope = "source.dockerfile" injection-regex = "docker|dockerfile" roots = ["Dockerfile", "Containerfile"] file-types = [{ glob = "Dockerfile*" }, { glob = "dockerfile*" }, { glob = "Containerfile*" }, { glob = "containerfile*" }] comment-token = "#" indent = { tab-width = 2, unit = " " } language-servers = [ "docker-langserver" ] [[grammar]] name = "dockerfile" source = { git = "https://github.com/camdencheek/tree-sitter-dockerfile", rev = "8ee3a0f7587b2bd8c45c8cb7d28bd414604aec62" } [[language]] name = "git-commit" scope = "git.commitmsg" file-types = [{ glob = "COMMIT_EDITMSG" }] comment-token = "#" indent = { tab-width = 2, unit = " " } rulers = [51, 73] text-width = 72 [[grammar]] name = "git-commit" source = { git = "https://github.com/the-mikedavis/tree-sitter-git-commit", rev = "6f193a66e9aa872760823dff020960c6cedc37b3" } [[language]] name = "diff" scope = "source.diff" file-types = ["diff", "patch", "rej"] injection-regex = "diff" comment-token = "#" indent = { tab-width = 2, unit = " " } [[grammar]] name = "diff" source = { git = "https://github.com/the-mikedavis/tree-sitter-diff", rev = "fd74c78fa88a20085dbc7bbeaba066f4d1692b63" } [[language]] name = "git-rebase" scope = "source.gitrebase" file-types = [{ glob = "git-rebase-todo" }] injection-regex = "git-rebase" comment-token = "#" indent = { tab-width = 2, unit = "y" } [[grammar]] name = "git-rebase" source = { git = "https://github.com/the-mikedavis/tree-sitter-git-rebase", rev = "d8a4207ebbc47bd78bacdf48f883db58283f9fd8" } [[language]] name = "regex" scope = "source.regex" injection-regex = "regex" file-types = ["regex", { glob = ".Rbuildignore" }] [[grammar]] name = "regex" source = { git = "https://github.com/tree-sitter/tree-sitter-regex", rev = "e1cfca3c79896ff79842f057ea13e529b66af636" } [[language]] name = "git-config" scope = "source.gitconfig" file-types = [{ glob = ".gitmodules" }, { glob = ".gitconfig" }, { glob = ".git/config" }, { glob = ".config/git/config" }] 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 = "git-attributes" scope = "source.gitattributes" file-types = [{ glob = ".gitattributes" }] injection-regex = "git-attributes" comment-token = "#" grammar = "gitattributes" [[grammar]] name = "gitattributes" source = { git = "https://github.com/mtoohey31/tree-sitter-gitattributes", rev = "3dd50808e3096f93dccd5e9dc7dc3dba2eb12dc4" } [[language]] name = "git-ignore" scope = "source.gitignore" file-types = [{ glob = ".gitignore" }, { glob = ".gitignore_global" }, { glob = ".ignore" }, { glob = ".prettierignore" }, { glob = ".eslintignore" }, { glob = ".npmignore"}, { glob = "CODEOWNERS" }, { glob = ".config/helix/ignore" }, { glob = ".helix/ignore" }] injection-regex = "git-ignore" comment-token = "#" grammar = "gitignore" [[grammar]] name = "gitignore" source = { git = "https://github.com/shunsambongi/tree-sitter-gitignore", rev = "f4685bf11ac466dd278449bcfe5fd014e94aa504" } [[language]] name = "graphql" scope = "source.graphql" injection-regex = "graphql" file-types = ["gql", "graphql", "graphqls"] language-servers = [ "graphql-language-service" ] 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-servers = [ "elm-language-server" ] indent = { tab-width = 4, unit = " " } [[grammar]] name = "elm" source = { git = "https://github.com/elm-tooling/tree-sitter-elm", rev = "df4cb639c01b76bc9ac9cc66788709a6da20002c" } [[language]] name = "iex" scope = "source.iex" injection-regex = "iex" file-types = ["iex"] [[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-servers = [ "rescript-language-server" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "rescript" source = { git = "https://github.com/jaredramirez/tree-sitter-rescript", rev = "467dcf99f68c47823d7b378779a6b282d7ef9782" } [[language]] name = "erlang" scope = "source.erlang" injection-regex = "erl(ang)?" file-types = ["erl", "hrl", "app", { glob = "rebar.config" }, { glob = "rebar.lock" }, { glob = "*.app.src" }] roots = ["rebar.config"] shebangs = ["escript"] comment-token = "%%" indent = { tab-width = 4, unit = " " } language-servers = [ "erlang-ls" ] [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' "'" = "'" '`' = "'" [[grammar]] name = "erlang" source = { git = "https://github.com/the-mikedavis/tree-sitter-erlang", rev = "731e50555a51f0d8635992b0e60dc98cc47a58d7" } [[language]] name = "kotlin" scope = "source.kotlin" file-types = ["kt", "kts"] roots = ["settings.gradle", "settings.gradle.kts"] comment-token = "//" indent = { tab-width = 4, unit = " " } language-servers = [ "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|nomad)" language-id = "terraform" file-types = ["hcl", "tf", "nomad"] comment-token = "#" indent = { tab-width = 2, unit = " " } language-servers = [ "terraform-ls" ] auto-format = true [[grammar]] name = "hcl" source = { git = "https://github.com/MichaHoffmann/tree-sitter-hcl", rev = "3cb7fc28247efbcb2973b97e71c78838ad98a583" } [[language]] name = "tfvars" scope = "source.tfvars" language-id = "terraform-vars" file-types = ["tfvars"] comment-token = "#" indent = { tab-width = 2, unit = " " } language-servers = [ "terraform-ls" ] auto-format = true grammar = "hcl" [[language]] name = "org" scope = "source.org" injection-regex = "org" file-types = ["org"] indent = { tab-width = 2, unit = " " } [[grammar]] name = "org" source = { git = "https://github.com/milisims/tree-sitter-org", rev = "698bb1a34331e68f83fc24bdd1b6f97016bb30de" } [[language]] name = "solidity" scope = "source.sol" injection-regex = "(sol|solidity)" file-types = ["sol"] comment-token = "//" indent = { tab-width = 4, unit = " " } language-servers = [ "solc" ] [[grammar]] name = "solidity" source = { git = "https://github.com/JoranHonig/tree-sitter-solidity", rev = "9004b86531cb424bd379424cf7266a4585f2af7d" } [[language]] name = "gleam" scope = "source.gleam" injection-regex = "gleam" file-types = ["gleam"] roots = ["gleam.toml"] comment-token = "//" indent = { tab-width = 2, unit = " " } language-servers = [ "gleam" ] auto-format = true [[grammar]] name = "gleam" source = { git = "https://github.com/gleam-lang/tree-sitter-gleam", rev = "b2afa4fd6bb41a7bf912b034c653c90af7ae5122" } [[language]] name = "ron" scope = "source.ron" injection-regex = "ron" file-types = ["ron"] comment-token = "//" indent = { tab-width = 4, unit = " " } [[grammar]] name = "ron" source = { git = "https://github.com/zee-editor/tree-sitter-ron", rev = "7762d709a0f7c1f9e269d0125a2e8a7a69006146" } [[language]] name = "robot" scope = "source.robot" injection-regex = "robot" file-types = ["robot", "resource"] comment-token = "#" indent = { tab-width = 4, unit = " " } language-servers = [ "robotframework_ls" ] [[grammar]] name = "robot" source = { git = "https://github.com/Hubro/tree-sitter-robot", rev = "322e4cc65754d2b3fdef4f2f8a71e0762e3d13af" } [[language]] name = "r" scope = "source.r" injection-regex = "(r|R)" file-types = ["r", "R", { glob = ".Rprofile" }, { glob = "Rprofile.site" }, { glob = ".RHistory" }] shebangs = ["r", "R"] comment-token = "#" indent = { tab-width = 2, unit = " " } language-servers = [ "r" ] [[grammar]] name = "r" source = { git = "https://github.com/r-lib/tree-sitter-r", rev = "cc04302e1bff76fa02e129f332f44636813b0c3c" } [[language]] name = "rmarkdown" scope = "source.rmd" language-id = "rmd" injection-regex = "(r|R)md" file-types = ["rmd", "Rmd"] indent = { tab-width = 2, unit = " " } grammar = "markdown" language-servers = [ "r" ] [[language]] name = "swift" scope = "source.swift" injection-regex = "swift" file-types = ["swift"] roots = [ "Package.swift" ] comment-token = "//" auto-format = true language-servers = [ "sourcekit-lsp" ] [[grammar]] name = "swift" source = { git = "https://github.com/alex-pinkus/tree-sitter-swift", rev = "b1b66955d420d5cf5ff268ae552f0d6e43ff66e1" } [[language]] name = "erb" scope = "text.html.erb" injection-regex = "erb" file-types = ["erb"] indent = { tab-width = 2, unit = " " } grammar = "embedded-template" [[language]] name = "ejs" scope = "text.html.ejs" injection-regex = "ejs" file-types = ["ejs"] 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" } [[language]] name = "eex" scope = "source.eex" injection-regex = "eex" file-types = ["eex"] roots = ["mix.exs", "mix.lock"] indent = { tab-width = 2, unit = " " } [[grammar]] name = "eex" source = { git = "https://github.com/connorlay/tree-sitter-eex", rev = "f742f2fe327463335e8671a87c0b9b396905d1d1" } [[language]] name = "heex" scope = "source.heex" injection-regex = "heex" file-types = ["heex"] roots = ["mix.exs", "mix.lock"] indent = { tab-width = 2, unit = " " } language-servers = [ "elixir-ls" ] [[grammar]] name = "heex" source = { git = "https://github.com/phoenixframework/tree-sitter-heex", rev = "2e1348c3cf2c9323e87c2744796cf3f3868aa82a" } [[language]] name = "sql" scope = "source.sql" file-types = ["sql", "dsql"] comment-token = "--" indent = { tab-width = 4, unit = " " } injection-regex = "sql" [[grammar]] name = "sql" source = { git = "https://github.com/DerekStride/tree-sitter-sql", rev = "25be0b8f17e9189ad9e1b875869d025c5aec1286" } [[language]] name = "gdscript" scope = "source.gdscript" injection-regex = "gdscript" file-types = ["gd"] shebangs = [] roots = ["project.godot"] auto-format = true formatter = { command = "gdformat", args = ["-"] } comment-token = "#" indent = { tab-width = 4, unit = "\t" } [[grammar]] name = "gdscript" source = { git = "https://github.com/PrestonKnopp/tree-sitter-gdscript", rev = "a4b57cc3bcbfc24550e858159647e9238e7ad1ac" } [[language]] name = "godot-resource" scope = "source.tscn" injection-regex = "godot" file-types = ["tscn", "tres", "godot", "gdextension"] shebangs = [] roots = ["project.godot"] auto-format = false comment-token = ";" indent = { tab-width = 4, unit = "\t" } [[grammar]] name = "godot-resource" source = { git = "https://github.com/PrestonKnopp/tree-sitter-godot-resource", rev = "b6ef0768711086a86b3297056f9ffb5cc1d77b4a" } [[language]] name = "nu" scope = "source.nu" injection-regex = "nu" file-types = ["nu"] shebangs = ["nu"] comment-token = "#" indent = { tab-width = 2, unit = " " } language-servers = [ "nu-lsp" ] [[grammar]] name = "nu" source = { git = "https://github.com/nushell/tree-sitter-nu", rev = "358c4f509eb97f0148bbd25ad36acc729819b9c1" } [[language]] name = "vala" scope = "source.vala" injection-regex = "vala" file-types = ["vala", "vapi"] comment-token = "//" indent = { tab-width = 2, unit = " " } language-servers = [ "vala-language-server" ] [[grammar]] name = "vala" source = { git = "https://github.com/vala-lang/tree-sitter-vala", rev = "c9eea93ba2ec4ec1485392db11945819779745b3" } [[language]] name = "hare" scope = "source.hare" injection-regex = "hare" file-types = ["ha"] comment-token = "//" indent = { tab-width = 8, unit = "\t" } [[grammar]] name = "hare" source = { git = "https://git.sr.ht/~ecmma/tree-sitter-hare", rev = "2495958aaf3f93581c87ec020164255e80655331" } [[language]] name = "devicetree" scope = "source.devicetree" injection-regex = "(dtsi?|devicetree|fdt)" file-types = ["dts", "dtsi"] comment-token = "//" indent = { tab-width = 4, unit = "\t" } [[grammar]] name = "devicetree" source = { git = "https://github.com/joelspadin/tree-sitter-devicetree", rev = "877adbfa0174d25894c40fa75ad52d4515a36368" } [[language]] name = "cairo" scope = "source.cairo" injection-regex = "cairo" file-types = ["cairo"] comment-token = "//" indent = { tab-width = 4, unit = " " } # auto-format = true grammar = "rust" language-servers = [ "cairo-language-server" ] [[language]] name = "cpon" scope = "scope.cpon" injection-regex = "cpon" file-types = ["cpon", "cp"] auto-format = true comment-token = "//" indent = { tab-width = 2, unit = " " } [[grammar]] name = "cpon" source = { git = "https://github.com/fvacek/tree-sitter-cpon", rev = "0d01fcdae5a53191df5b1349f9bce053833270e7" } [[language]] name = "odin" auto-format = true scope = "source.odin" file-types = ["odin"] roots = ["ols.json"] language-servers = [ "ols" ] comment-token = "//" indent = { tab-width = 4, unit = "\t" } formatter = { command = "odinfmt", args = [ "-stdin", "true" ] } [[grammar]] name = "odin" source = { git = "https://github.com/ap29600/tree-sitter-odin", rev = "b219207e49ffca2952529d33e94ed63b1b75c4f1" } [[language]] name = "meson" scope = "source.meson" injection-regex = "meson" file-types = [{ glob = "meson.build" }, { glob = "meson_options.txt" }] comment-token = "#" indent = { tab-width = 2, unit = " " } [[grammar]] name = "meson" source = { git = "https://github.com/staysail/tree-sitter-meson", rev = "32a83e8f200c347232fa795636cfe60dde22957a" } [[language]] name = "sshclientconfig" scope = "source.sshclientconfig" file-types = [{ glob = ".ssh/config" }, { glob = "/etc/ssh/ssh_config" }] comment-token = "#" [[grammar]] name = "sshclientconfig" source = { git = "https://github.com/metio/tree-sitter-ssh-client-config", rev = "e45c6d5c71657344d4ecaf87dafae7736f776c57" } [[language]] name = "scheme" scope = "source.scheme" injection-regex = "scheme" file-types = ["ss", "scm"] shebangs = ["scheme", "guile", "chicken"] comment-token = ";" indent = { tab-width = 2, unit = " " } [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' [[grammar]] name = "scheme" source = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "af3af6c9356b936f8a515a1e449c32e804c2b1a8" } [[language]] name = "v" scope = "source.v" file-types = ["v", "vv", "vsh"] shebangs = ["v run"] roots = ["v.mod"] language-servers = [ "vlang-language-server" ] auto-format = true comment-token = "//" indent = { tab-width = 4, unit = "\t" } [[grammar]] name = "v" source = {git = "https://github.com/v-analyzer/v-analyzer", subpath = "tree_sitter_v", rev = "e14fdf6e661b10edccc744102e4ccf0b187aa8ad"} [[language]] name = "verilog" scope = "source.verilog" file-types = ["v", "vh", "sv", "svh"] comment-token = "//" language-servers = [ "svlangserver" ] indent = { tab-width = 2, unit = " " } injection-regex = "verilog" [[grammar]] name = "verilog" source = { git = "https://github.com/tree-sitter/tree-sitter-verilog", rev = "4457145e795b363f072463e697dfe2f6973c9a52" } [[language]] name = "edoc" scope = "source.edoc" file-types = ["edoc", "edoc.in"] injection-regex = "edoc" indent = { tab-width = 4, unit = " " } [[grammar]] name = "edoc" source = { git = "https://github.com/the-mikedavis/tree-sitter-edoc", rev = "74774af7b45dd9cefbf9510328fc6ff2374afc50" } [[language]] name = "jsdoc" scope = "source.jsdoc" injection-regex = "jsdoc" file-types = ["jsdoc"] indent = { tab-width = 2, unit = " " } [[grammar]] name = "jsdoc" source = { git = "https://github.com/tree-sitter/tree-sitter-jsdoc", rev = "189a6a4829beb9cdbe837260653b4a3dfb0cc3db" } [[language]] name = "openscad" scope = "source.openscad" injection-regex = "openscad" file-types = ["scad"] comment-token = "//" language-servers = [ "openscad-lsp" ] indent = { tab-width = 2, unit = "\t" } [[grammar]] name = "openscad" source = { git = "https://github.com/bollian/tree-sitter-openscad", rev = "5c3ce93df0ac1da7197cf6ae125aade26d6b8972" } [[language]] name = "prisma" scope = "source.prisma" injection-regex = "prisma" file-types = ["prisma"] roots = ["package.json"] comment-token = "//" language-servers = [ "prisma-language-server" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "prisma" source = { git = "https://github.com/victorhqc/tree-sitter-prisma", rev = "eca2596a355b1a9952b4f80f8f9caed300a272b5" } [[language]] name = "clojure" scope = "source.clojure" injection-regex = "(clojure|clj|edn|boot)" file-types = ["clj", "cljs", "cljc", "clje", "cljr", "cljx", "edn", "boot"] roots = ["project.clj", "build.boot", "deps.edn", "shadow-cljs.edn"] comment-token = ";" language-servers = [ "clojure-lsp" ] indent = { tab-width = 2, unit = " " } [[grammar]] name = "clojure" source = { git = "https://github.com/sogaiu/tree-sitter-clojure", rev = "e57c569ae332ca365da623712ae1f50f84daeae2" } [[language]] name = "starlark" scope = "source.starlark" injection-regex = "(starlark|bzl|bazel)" file-types = ["bzl", "bazel", "star", { glob = "BUILD" }, { glob = "BUILD.*" }] comment-token = "#" indent = { tab-width = 4, unit = " " } grammar = "python" [[language]] name = "elvish" scope = "source.elvish" file-types = ["elv"] comment-token = "#" indent = { tab-width = 2, unit = " " } language-servers = [ "elvish" ] grammar = "elvish" [[grammar]] name = "elvish" source = { git = "https://github.com/ckafi/tree-sitter-elvish", rev = "e50787cadd3bc54f6d9c0704493a79078bb8a4e5" } [[language]] name = "idris" scope = "source.idr" injection-regex = "idr" file-types = ["idr"] shebangs = [] comment-token = "--" indent = { tab-width = 2, unit = " " } language-servers = [ "idris2-lsp" ] [[language]] name = "fortran" scope = "source.fortran" injection-regex = "fortran" file-types = ["f", "for", "f90", "f95", "f03"] roots = ["fpm.toml"] comment-token = "!" indent = { tab-width = 4, unit = " "} language-servers = [ "fortls" ] [[grammar]] name = "fortran" source = { git = "https://github.com/stadelmanma/tree-sitter-fortran", rev = "f0f2f100952a353e64e26b0fa710b4c296d7af13" } [[language]] name = "ungrammar" scope = "source.ungrammar" injection-regex = "ungrammar" file-types = ["ungram", "ungrammar"] comment-token = "//" indent = { tab-width = 2, unit = " " } [[grammar]] name = "ungrammar" source = { git = "https://github.com/Philipp-M/tree-sitter-ungrammar", rev = "a7e104629cff5a8b7367187610631e8f5eb7c6ea" } [[language]] name = "dot" scope = "source.dot" injection-regex = "dot" file-types = ["dot"] comment-token = "//" indent = { tab-width = 4, unit = " " } language-servers = [ "dot-language-server" ] [[grammar]] name = "dot" source = { git = "https://github.com/rydesun/tree-sitter-dot", rev = "917230743aa10f45a408fea2ddb54bbbf5fbe7b7" } [[language]] name = "cue" scope = "source.cue" injection-regex = "cue" file-types = ["cue"] roots = ["cue.mod"] auto-format = true comment-token = "//" language-servers = [ "cuelsp" ] indent = { tab-width = 4, unit = "\t" } formatter = { command = "cue", args = ["fmt", "-"] } [[grammar]] name = "cue" source = { git = "https://github.com/eonpatapon/tree-sitter-cue", rev = "61843e3beebf19417e4fede4e8be4df1084317ad" } [[language]] name = "slint" scope = "source.slint" injection-regex = "slint" file-types = ["slint"] comment-token = "//" indent = { tab-width = 4, unit = " " } language-servers = [ "slint-lsp" ] [[grammar]] name = "slint" source = { git = "https://github.com/slint-ui/tree-sitter-slint", rev = "15618215b79b9db08f824a5c97a12d073dcc1c00" } [[language]] name = "task" scope = "source.task" injection-regex = "task" file-types = ["task"] comment-token = "#" indent = { tab-width = 2, unit = " " } [[grammar]] name = "task" source = { git = "https://github.com/alexanderbrevig/tree-sitter-task", rev = "f2cb435c5dbf3ee19493e224485d977cb2d36d8b" } [[language]] name = "xit" scope = "source.xit" injection-regex = "xit" file-types = ["xit"] indent = { tab-width = 4, unit = " " } [[grammar]] name = "xit" source = { git = "https://github.com/synaptiko/tree-sitter-xit", rev = "7d7902456061bc2ad21c64c44054f67b5515734c" } [[language]] name = "esdl" scope = "source.esdl" injection-regex = "esdl" file-types = ["esdl"] comment-token = "#" indent = { tab-width = 2, unit = " " } roots = ["edgedb.toml"] [[grammar]] name ="esdl" source = { git = "https://github.com/greym0uth/tree-sitter-esdl", rev = "df83acc8cacd0cfb139eecee0e718dc32c4f92e2" } [[language]] name = "pascal" scope = "source.pascal" injection-regex = "pascal" file-types = ["pas", "pp", "inc", "lpr", "lfm"] comment-token = "//" indent = { tab-width = 2, unit = " " } language-servers = [ "pasls" ] [[grammar]] name = "pascal" source = { git = "https://github.com/Isopod/tree-sitter-pascal", rev = "2fd40f477d3e2794af152618ccfac8d92eb72a66" } [[language]] name = "sml" scope = "source.sml" injection-regex = "sml" file-types = ["sml"] comment-token = "(*" [[grammar]] name = "sml" source = { git = "https://github.com/Giorbo/tree-sitter-sml", rev = "bd4055d5554614520d4a0706b34dc0c317c6b608" } [[language]] name = "jsonnet" scope = "source.jsonnet" file-types = ["libsonnet", "jsonnet"] roots = ["jsonnetfile.json"] comment-token = "//" indent = { tab-width = 2, unit = " " } language-servers = [ "jsonnet-language-server" ] [[grammar]] name = "jsonnet" source = { git = "https://github.com/sourcegraph/tree-sitter-jsonnet", rev = "0475a5017ad7dc84845d1d33187f2321abcb261d" } [[language]] name = "astro" scope = "source.astro" injection-regex = "astro" file-types = ["astro"] indent = { tab-width = 2, unit = " " } [[grammar]] name = "astro" source = { git = "https://github.com/virchau13/tree-sitter-astro", rev = "947e93089e60c66e681eba22283f4037841451e7" } [[language]] name = "bass" scope = "source.bass" injection-regex = "bass" file-types = ["bass"] comment-token = ";" indent = { tab-width = 2, unit = " " } language-servers = [ "bass" ] [[grammar]] name = "bass" source = { git = "https://github.com/vito/tree-sitter-bass", rev = "501133e260d768ed4e1fd7374912ed5c86d6fd90" } [[language]] name = "wat" scope = "source.wat" comment-token = ";;" file-types = ["wat"] [[grammar]] name = "wat" source = { git = "https://github.com/wasm-lsp/tree-sitter-wasm", rev = "2ca28a9f9d709847bf7a3de0942a84e912f59088", subpath = "wat" } [[language]] name = "wast" scope = "source.wast" comment-token = ";;" file-types = ["wast"] [[grammar]] name = "wast" source = { git = "https://github.com/wasm-lsp/tree-sitter-wasm", rev = "2ca28a9f9d709847bf7a3de0942a84e912f59088", subpath = "wast" } [[language]] name = "d" scope = "source.d" file-types = [ "d", "dd" ] comment-token = "//" injection-regex = "d" indent = { tab-width = 4, unit = " "} language-servers = [ "serve-d" ] formatter = { command = "dfmt" } [[grammar]] name = "d" source = { git = "https://github.com/gdamore/tree-sitter-d", rev = "5566f8ce8fc24186fad06170bbb3c8d97c935d74" } [[language]] name = "vhs" scope = "source.vhs" file-types = ["tape"] comment-token = "#" indent = { tab-width = 2, unit = " " } grammar = "vhs" [[grammar]] name = "vhs" source = { git = "https://github.com/charmbracelet/tree-sitter-vhs", rev = "9534865e614c95eb9418e5e73f061c32fa4d9540" } [[language]] name = "kdl" scope = "source.kdl" file-types = ["kdl"] comment-token = "//" injection-regex = "kdl" [[grammar]] name = "kdl" source = { git = "https://github.com/amaanq/tree-sitter-kdl", rev = "3ca569b9f9af43593c24f9e7a21f02f43a13bb88" } [[language]] name = "xml" scope = "source.xml" injection-regex = "xml" file-types = [ "xml", "mobileconfig", "plist", "xib", "storyboard", "svg", "xsd", "gml", "xaml", "gir", "rss", "atom", "opml", "policy", "ascx", "axml", "axaml", "bpmn", "cpt", "csl", "csproj.user", "dita", "ditamap", "dtml", "fxml", "iml", "isml", "jmx", "launch", "menu", "mxml", "nuspec", "pt", "publishsettings", "pubxml", "pubxml.user", "rbxlx", "rbxmx", "rng", "shproj", "tld", "tmx", "vbproj.user", "vcxproj", "vcxproj.filters", "wsdl", "wxi", "wxs", "xbl", "xlf", "xliff", "xpdl", "xul", "xoml", "musicxml", "glif" ] indent = { tab-width = 2, unit = " " } [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' "'" = "'" "<" = ">" [[grammar]] name = "xml" source = { git = "https://github.com/RenjiSann/tree-sitter-xml", rev = "48a7c2b6fb9d515577e115e6788937e837815651" } [[language]] name = "dtd" scope = "source.dtd" injection-regex = "dtd" file-types = ["dtd", "ent"] indent = {tab-width = 2, unit = " "} [language.auto-pairs] '(' = ')' '[' = ']' '"' = '"' "'" = "'" '<' = '>' [[grammar]] name = "dtd" source = { git = "https://github.com/KMikeeU/tree-sitter-dtd", rev = "6116becb02a6b8e9588ef73d300a9ba4622e156f"} [[language]] name = "wit" scope = "source.wit" injection-regex = "wit" file-types = ["wit"] comment-token = "//" indent = { tab-width = 2, unit = " " } [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' "'" = "'" "<" = ">" [[grammar]] name = "wit" source = { git = "https://github.com/hh9527/tree-sitter-wit", rev = "c917790ab9aec50c5fd664cbfad8dd45110cfff3" } [[language]] name = "env" scope = "source.env" file-types = [{ glob = ".env" }, { glob = ".env.*" }, { glob = ".envrc" }, { glob = ".envrc.*" }] injection-regex = "env" comment-token = "#" indent = { tab-width = 4, unit = "\t" } grammar = "bash" [[language]] name = "ini" scope = "source.ini" file-types = [ "ini", # Systemd unit files "service", "automount", "device", "mount", "path", "service", "slice", "socket", "swap", "target", "timer", # Podman quadlets "container", "volume", "kube", "network", { glob = ".editorconfig" }, "properties", "cfg", "directory" ] injection-regex = "ini" comment-token = "#" indent = { tab-width = 4, unit = "\t" } [[grammar]] name = "ini" source = { git = "https://github.com/justinmk/tree-sitter-ini", rev = "4d247fb876b4ae6b347687de4a179511bf67fcbc" } [[language]] name = "bicep" scope = "source.bicep" file-types = ["bicep"] auto-format = true comment-token = "//" indent = { tab-width = 2, unit = " "} language-servers = [ "bicep-langserver" ] [[grammar]] name = "bicep" source = { git = "https://github.com/the-mikedavis/tree-sitter-bicep", rev = "d8e097fcfa143854861ef737161163a09cc2916b" } [[language]] name = "qml" scope = "source.qml" file-types = ["qml"] language-servers = [ "qmlls" ] indent = { tab-width = 4, unit = " " } grammar = "qmljs" [[grammar]] name = "qmljs" source = { git = "https://github.com/yuja/tree-sitter-qmljs", rev = "0b2b25bcaa7d4925d5f0dda16f6a99c588a437f1" } [[language]] name = "mermaid" scope = "source.mermaid" injection-regex = "mermaid" file-types = ["mermaid"] comment-token = "%%" indent = { tab-width = 4, unit = " " } [[grammar]] name = "mermaid" source = { git = "https://github.com/monaqa/tree-sitter-mermaid", rev = "d787c66276e7e95899230539f556e8b83ee16f6d" } [[language]] name = "matlab" scope = "source.m" file-types = ["m"] comment-token = "%" shebangs = ["octave-cli", "matlab"] indent = { tab-width = 2, unit = " " } [[grammar]] name = "matlab" source = { git = "https://github.com/acristoffers/tree-sitter-matlab", rev = "6071891a8c39600203eba20513666cf93b4d650a" } [[language]] name = "ponylang" scope = "source.pony" file-types = ["pony"] injection-regex = "pony" roots = ["corral.json", "lock.json"] indent = { tab-width = 2, unit = " " } comment-token = "//" [[grammar]] name = "ponylang" source = { git = "https://github.com/mfelsche/tree-sitter-ponylang", rev = "ef66b151bc2604f431b5668fcec4747db4290e11" } [[language]] name = "dhall" scope = "source.dhall" injection-regex = "dhall" file-types = ["dhall"] comment-token = "--" indent = { tab-width = 2, unit = " " } language-servers = [ "dhall-lsp-server" ] formatter = { command = "dhall" , args = ["format"] } [[grammar]] name = "dhall" source = { git = "https://github.com/jbellerb/tree-sitter-dhall", rev = "affb6ee38d629c9296749767ab832d69bb0d9ea8" } [[language]] name = "sage" scope = "source.sage" file-types = ["sage"] injection-regex = "sage" comment-token = "#" indent = { tab-width = 4, unit = " " } grammar = "python" [[language]] name = "msbuild" scope = "source.msbuild" injection-regex = "msbuild" file-types = ["proj", "vbproj", "csproj", "fsproj", "targets", "props"] indent = { tab-width = 2, unit = " " } grammar = "xml" [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' "'" = "'" "<" = ">" [[language]] name = "pem" scope = "source.pem" file-types = ["pem", "cert", "crt"] injection-regex = "pem" grammar = "pem" [[grammar]] name = "pem" source = { git = "https://github.com/mtoohey31/tree-sitter-pem", rev = "be67a4330a1aa507c7297bc322204f936ec1132c" } [[language]] name = "passwd" scope = "source.passwd" file-types = [{ glob = "passwd" }] [[grammar]] name = "passwd" source = { git = "https://github.com/ath3/tree-sitter-passwd", rev = "20239395eacdc2e0923a7e5683ad3605aee7b716" } [[language]] name = "hosts" scope = "source.hosts" file-types = [{ glob = "hosts" }] comment-token = "#" [[grammar]] name = "hosts" source = { git = "https://github.com/ath3/tree-sitter-hosts", rev = "301b9379ce7dfc8bdbe2c2699a6887dcb73953f9" } [[language]] name = "uxntal" scope = "source.tal" injection-regex = "tal" file-types = ["tal"] auto-format = false comment-token = "(" [[grammar]] name = "uxntal" source = { git = "https://github.com/Jummit/tree-sitter-uxntal", rev = "d68406066648cd6db4c6a2f11ec305af02079884" } [[language]] name = "yuck" scope = "source.yuck" injection-regex = "yuck" file-types = ["yuck"] comment-token = ";" indent = { tab-width = 2, unit = " " } [[grammar]] name = "yuck" source = { git = "https://github.com/Philipp-M/tree-sitter-yuck", rev = "e3d91a3c65decdea467adebe4127b8366fa47919" } [[language]] name = "prql" scope = "source.prql" injection-regex = "prql" file-types = ["prql"] comment-token = "#" indent = { tab-width = 4, unit = " " } [[grammar]] name = "prql" source = { git = "https://github.com/PRQL/tree-sitter-prql", rev = "09e158cd3650581c0af4c49c2e5b10c4834c8646" } [[language]] name = "po" scope = "source.po" file-types = ["po", "pot"] comment-token = "#" [[grammar]] name = "po" source = { git = "https://github.com/erasin/tree-sitter-po", rev = "417cee9abb2053ed26b19e7de972398f2da9b29e" } [[language]] name = "nasm" scope = "source.nasm" file-types = ["asm", "S", "nasm"] injection-regex = "n?asm" comment-token = ";" indent = { tab-width = 8, unit = " " } [[grammar]] name = "nasm" source = { git = "https://github.com/naclsn/tree-sitter-nasm", rev = "a0db15db6fcfb1bf2cc8702500e55e558825c48b" } [[language]] name = "gas" scope = "source.gas" file-types = ["s"] injection-regex = "gas" comment-token = "#" indent = { tab-width = 8, unit = " " } [[grammar]] name = "gas" source = { git = "https://github.com/sirius94/tree-sitter-gas", rev = "60f443646b20edee3b7bf18f3a4fb91dc214259a" } [[language]] name = "rst" scope = "source.rst" comment-token = ".." file-types = ["rst"] [[grammar]] name = "rst" source = { git = "https://github.com/stsewd/tree-sitter-rst", rev = "25e6328872ac3a764ba8b926aea12719741103f1" } [[language]] name = "capnp" scope = "source.capnp" injection-regex = "capnp" file-types = ["capnp"] comment-token = "#" indent = { tab-width = 2, unit = " " } [[grammar]] name = "capnp" source = { git = "https://github.com/amaanq/tree-sitter-capnp", rev = "fc6e2addf103861b9b3dffb82c543eb6b71061aa" } [[language]] name = "smithy" scope = "source.smithy" injection-regex = "smithy" file-types = ["smithy"] roots = ["smithy-build.json"] comment-token = "//" indent = { tab-width = 4, unit = " " } language-servers = [ "cs" ] [[grammar]] name = "smithy" source = { git = "https://github.com/indoorvivants/tree-sitter-smithy", rev = "8327eb84d55639ffbe08c9dc82da7fff72a1ad07" } [[language]] name = "vhdl" scope = "source.vhdl" file-types = ["vhd", "vhdl"] comment-token = "--" language-servers = [ "vhdl_ls" ] indent = { tab-width = 2, unit = " " } injection-regex = "vhdl" [[grammar]] name = "vhdl" source = { git = "https://github.com/teburd/tree-sitter-vhdl", rev = "c57313adee2231100db0a7880033f6865deeadb2" } [[language]] name = "rego" scope = "source.rego" injection-regex = "rego" file-types = ["rego"] auto-format = true comment-token = "#" language-servers = [ "regols" ] grammar = "rego" [[grammar]] name = "rego" source = { git = "https://github.com/FallenAngel97/tree-sitter-rego", rev = "9ac75e71b2d791e0aadeef68098319d86a2a14cf" } [[language]] name = "nim" scope = "source.nim" injection-regex = "nim" file-types = ["nim", "nims", "nimble"] shebangs = [] comment-token = "#" indent = { tab-width = 2, unit = " " } language-servers = [ "nimlangserver" ] [language.auto-pairs] '(' = ')' '[' = ']' '"' = '"' "'" = "'" '{' = '}' # Nim's tree-sitter grammar is in heavy development. [[grammar]] name = "nim" source = { git = "https://github.com/aMOPel/tree-sitter-nim", rev = "240239b232550e431d67de250d1b5856209e7f06" } [[language]] name = "cabal" scope = "source.cabal" file-types = [ "cabal" ] roots = ["cabal.project", "Setup.hs"] indent = { tab-width = 2, unit = " " } comment-token = "--" language-servers = [ "haskell-language-server" ] [[language]] name = "hurl" scope = "source.hurl" injection-regex = "hurl" file-types = ["hurl"] comment-token = "#" indent = { tab-width = 2, unit = " " } [[grammar]] name = "hurl" source = { git = "https://github.com/pfeiferj/tree-sitter-hurl", rev = "264c42064b61ee21abe88d0061f29a0523352e22" } [[language]] name = "markdoc" scope = "text.markdoc" file-types = ["mdoc"] language-servers = [ "markdoc-ls" ] [[grammar]] name = "markdoc" source = { git = "https://github.com/markdoc-extra/tree-sitter-markdoc", rev = "5ffe71b29e8a3f94823913ea9cea51fcfa7e3bf8" } [[language]] name = "opencl" scope = "source.cl" injection-regex = "(cl|opencl)" file-types = ["cl"] comment-token = "//" language-servers = [ "clangd" ] [[grammar]] name = "opencl" source = { git = "https://github.com/lefp/tree-sitter-opencl", rev = "8e1d24a57066b3cd1bb9685bbc1ca9de5c1b78fb" } [[language]] name = "just" scope = "source.just" file-types = [{ glob = "justfile" }, { glob = "Justfile" }, { glob = ".justfile" }, { glob = ".Justfile" }] injection-regex = "just" comment-token = "#" indent = { tab-width = 4, unit = "\t" } auto-format = true formatter = { command = "just", args = ["--dump"] } [[grammar]] name = "just" source = { git = "https://github.com/IndianBoy42/tree-sitter-just", rev = "8af0aab79854aaf25b620a52c39485849922f766" } [[language]] name = "gn" scope = "source.gn" injection-regex = "gn" file-types = ["gn", "gni"] roots = [] comment-token = "#" indent = { tab-width = 2, unit = " " } formatter = { command = "gn", args = ["format", "--stdin"] } [[grammar]] name = "gn" source = { git = "https://github.com/willcassella/tree-sitter-gn", rev = "e18d6e36a79b20dafb58f19d407bd38b0e60260e" } [[language]] name = "blueprint" scope = "source.blueprint" injection-regex = "blueprint" file-types = ["blp"] comment-token = "//" language-servers = [ "blueprint-compiler" ] indent = { tab-width = 4, unit = " " } [[grammar]] name = "blueprint" source = { git = "https://gitlab.com/gabmus/tree-sitter-blueprint", rev = "863cea9f83ad5637300478e0559262f1e791684b" } [[language]] name = "forth" scope = "source.forth" injection-regex = "forth" file-types = ["fs", "forth", "fth", "4th"] comment-token = "\\" language-servers = [ "forth-lsp" ] indent = { tab-width = 3, unit = " " } [[grammar]] name = "forth" source = { git = "https://github.com/alexanderbrevig/tree-sitter-forth", rev = "90189238385cf636b9ee99ce548b9e5b5e569d48" } [[language]] name = "fsharp" scope = "source.fs" roots = ["sln", "fsproj"] injection-regex = "fsharp" file-types = ["fs", "fsx", "fsi", "fsscript"] comment-token = "//" indent = { tab-width = 4, unit = " " } auto-format = true language-servers = ["fsharp-ls"] [[grammar]] name = "fsharp" source = { git = "https://github.com/kaashyapan/tree-sitter-fsharp", rev = "18da392fd9bd5e79f357abcce13f61f3a15e3951" } [[language]] name = "t32" scope = "source.t32" injection-regex = "t32" file-types = ["cmm", "t32"] comment-token = ";" indent = { tab-width = 2, unit = " " } [[grammar]] name = "t32" source = { git = "https://gitlab.com/xasc/tree-sitter-t32", rev = "6da5e3cbabd376b566d04282005e52ffe67ef74a" } [[language]] name = "webc" scope = "text.html.webc" injection-regex = "webc" file-types = ["webc"] indent = { tab-width = 2, unit = " " } grammar = "html" [[language]] name = "typst" scope = "source.typst" injection-regex = "typst" file-types = ["typst", "typ"] comment-token = "//" language-servers = ["typst-lsp"] indent = { tab-width = 2, unit = " " } [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '$' = '$' '"' = '"' [[grammar]] name = "typst" source = { git = "https://github.com/uben0/tree-sitter-typst", rev = "ecf8596336857adfcd5f7cbb3b2aa11a67badc37" } [[language]] name = "nunjucks" scope = "text.html.nunjucks" injection-regex = "nunjucks" file-types = ["njk"] indent = { tab-width = 2, unit = " " } grammar = "jinja2" [[language]] name = "jinja" scope = "text.html.jinja" injection-regex = "jinja" file-types = ["jinja", "jinja2", "j2"] indent = { tab-width = 2, unit = " " } grammar = "jinja2" [[grammar]] name = "jinja2" source = { git = "https://github.com/varpeti/tree-sitter-jinja2", rev = "a533cd3c33aea6acb0f9bf9a56f35dcfe6a8eb53" } [[grammar]] name = "wren" source = { git = "https://git.sr.ht/~jummit/tree-sitter-wren", rev = "6748694be32f11e7ec6b5faeb1b48ca6156d4e06" } [[language]] name = "wren" scope = "source.wren" injection-regex = "wren" file-types = ["wren"] indent = { tab-width = 2, unit = " "} [[language]] name = "unison" scope = "source.unison" injection-regex = "unison" file-types = ["u"] shebangs = [] auto-format = false comment-token = "--" indent = { tab-width = 4, unit = " " } [language.auto-pairs] '(' = ')' '{' = '}' '[' = ']' '"' = '"' '`' = '`' [[grammar]] name = "unison" source = { git = "https://github.com/kylegoetz/tree-sitter-unison", rev = "1f505e2447fa876a87aee47ff3d70b9e141c744f" } [[language]] name = "todotxt" scope = "text.todotxt" file-types = [{ glob = "todo.txt" }, { glob = "*.todo.txt" }, "todotxt"] formatter = { command = "sort" } auto-format = true [[grammar]] name = "todotxt" source = { git = "https://github.com/arnarg/tree-sitter-todotxt", rev = "0207f6a4ab6aeafc4b091914d31d8235049a2578" } [[language]] name = "strace" scope = "source.strace" file-types = ["strace"] [[grammar]] name = "strace" source = { git = "https://github.com/sigmaSd/tree-sitter-strace", rev = "2b18fdf9a01e7ec292cc6006724942c81beb7fd5" } [[language]] name = "gemini" scope = "source.gmi" file-types = ["gmi"] [[grammar]] name = "gemini" source = { git = "https://git.sr.ht/~nbsp/tree-sitter-gemini", rev = "3cc5e4bdf572d5df4277fc2e54d6299bd59a54b3" } [[language]] name = "agda" scope = "source.agda" injection-regex = "agda" file-types = ["agda"] roots = [] comment-token = "--" # language-servers = [ "als" ] # the agda language server is of questionable functionality. auto-format = false indent = { tab-width = 2, unit = " " } [language.auto-pairs] '"' = '"' "'" = "'" '{' = '}' '(' = ')' '[' = ']' # [language.debugger] # ?? can this be used for proof assistant support? explore [[grammar]] name = "agda" source = { git = "https://github.com/tree-sitter/tree-sitter-agda", rev = "c21c3a0f996363ed17b8ac99d827fe5a4821f217" } [[language]] name = "templ" scope = "source.templ" file-types = ["templ"] roots = ["go.work", "go.mod"] comment-token = "//" indent = { tab-width = 2, unit = " " } language-servers = [ "templ" ] [[grammar]] name = "templ" source = { git = "https://github.com/vrischmann/tree-sitter-templ", rev = "ea56ac0655243490a4929a988f4eaa91dfccc995" } [[language]] name = "dbml" scope = "source.dbml" injection-regex = "dbml" file-types = ["dbml"] comment-token = ";" indent = { tab-width = 2, unit = " " } [[grammar]] name = "dbml" source = { git = "https://github.com/dynamotn/tree-sitter-dbml", rev = "2e2fa5640268c33c3d3f27f7e676f631a9c68fd9" } [[language]] name = "log" scope = "source.log" file-types = ["log"] [[grammar]] name = "log" source = { git = "https://github.com/Tudyx/tree-sitter-log", rev = "62cfe307e942af3417171243b599cc7deac5eab9" } [[language]] name = "hoon" scope = "source.hoon" injection-regex = "hoon" file-types = ["hoon"] comment-token = "::" indent = {tab-width = 2, unit = " "} [[grammar]] name = "hoon" source = { git = "https://github.com/urbit-pilled/tree-sitter-hoon", rev = "1d5df35af3e0afe592832a67b9fb3feeeba1f7b6" } [[language]] name = "hocon" scope = "source.conf" file-types = ["conf"] comment-token = "#" auto-format = true indent = { tab-width = 2, unit = " " } [[grammar]] name = "hocon" source = { git = "https://github.com/antosha417/tree-sitter-hocon", rev = "c390f10519ae69fdb03b3e5764f5592fb6924bcc" } [[language]] name = "tact" scope = "source.tact" injection-regex = "tact" file-types = ["tact"] comment-token = "//" indent = { tab-width = 4, unit = " " } [language.auto-pairs] '"' = '"' '{' = '}' '(' = ')' '<' = '>' [[grammar]] name = "tact" source = { git = "https://github.com/tact-lang/tree-sitter-tact", rev = "ec57ab29c86d632639726631fb2bb178d23e1c91" } [[language]] name = "pkl" scope = "source.pkl" injection-regex = "pkl" file-types = ["pkl", "pcf"] comment-token = "//" indent = { tab-width = 2, unit = " " } [[grammar]] name = "pkl" source = { git = "https://github.com/apple/tree-sitter-pkl", rev = "c03f04a313b712f8ab00a2d862c10b37318699ae" }