# [language-server.basedpyright] # command = "basedpyright" # [language-server.basedpyright] # command = "basedpyright" # args = ["--stdio"] [language-server.basedpyright.config.basedpyright.analysis] typeCheckingMode = "standard" inlayHints.genericTypes = true # [language-server.yaml-language-server.config.yaml] # format = {enable = true} # validation = true [language-server.codebook] command = "codebook-lsp" args = ["serve"] [language-server.harper-ls] command = "harper-ls" args = ["--stdio"] # Config example # [language-server.harper-ls.config.harper-ls] # diagnosticSeverity = "warning" [language-server.harper-ls.config.harper-ls.linters] LongSentences = false [language-server.lua-language-server.config.Lua] workspace.library = [ "/usr/share/nvim/runtime/lua", "/home/fic/.config/nvim/lua", ] [language-server.tinymist] command = "tinymist" [language-server.tinymist.config] # exportPdf = "never" exportPdf = "onType" formatterMode = "typstyle" [[language]] name = "typst" auto-format = true language-servers = ["tinymist", "harper-ls"] [language-server.buffer-language-server] command = "buffer-language-server" [language-server.scls] command = "simple-completion-language-server" [language-server.scls.config] max_completion_items = 100 # set max completion results len for each group: words, snippets, unicode-input feature_words = true # enable completion by word feature_snippets = true # enable snippets snippets_first = true # completions will return before snippets by default snippets_inline_by_word_tail = false # suggest snippets by WORD tail, for example text `xsq|` become `x^2|` when snippet `sq` has body `^2` feature_unicode_input = false # enable "unicode input" feature_paths = false # enable path completion feature_citations = false # enable citation completion (only on `citation` feature enabled) # write logs to /tmp/completion.log [language-server.scls.environment] RUST_LOG = "info,simple-completion-language-server=info" LOG_FILE = "/tmp/completion.log" [[language]] name = "toml" roots = ["."] language-servers = ["taplo", "scls"] auto-format = false [language-server.iwe] command = "iwes" [[language]] name = "markdown" file-types = [ "md", "livemd", "markdown", "mdx", "mkd", "mkdn", "mdwn", "mdown", "markdn", "mdtxt", "mdtext", "workbook", { glob = "PULLREQ_EDITMSG" }, ] # language-servers = ["ltex-ls-plus", "marksman", "scls"] language-servers = ["harper-ls", "marksman", "scls"] # formatter = { command = "/home/fic/.config/helix/scripts/format_markdown.fish", args = [] } formatter = { command = "dprint", args = ["fmt", "--stdin", "md"] } # depends on aerc auto-format = false [[language]] name = "stub" scope = "text.stub" file-types = [] shebangs = [] roots = [] auto-format = false language-servers = ["scls"] [language-server.texlab.config.texlab.build] onSave = true [[language]] name = "mail" # scope = "text.mail" # file-types = ["eml"] # file-types = [ # "eml" # ] language-servers = ["harper-ls", "scls"] # injection-regex = "mail|eml|email" # [[language]] # name = "aerc" # scope = "text.aerc" # file-types = [{ glob = "/tmp/aerc-compose-*.eml" }] # # shebangs = [] # # roots = [] # auto-format = true # formatter = { command = "/usr/lib/aerc/filters/wrap", args = ["-w", "74"] } # [[grammar]] # name = "aerc" # source = { path = "/home/fic/tools/tree-sitter-markdown/tree-sitter-markdown"} # # source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-markdown", rev = "62516e8c78380e3b51d5b55727995d2c511436d8", subpath = "tree-sitter-markdown" } [[grammar]] name = "ini" source = { git = "https://github.com/justinmk/tree-sitter-ini", rev = "32b31863f222bf22eb43b07d4e9be8017e36fb31" } # [[grammar]] # name = "ini" # source.path = "/home/fic/dev/tree-sitter-ini" [[language]] scope = "source.ini" injection-regex = "ini" comment-token = "#" indent = { tab-width = 4, unit = "\t" } name = "ini" language-servers = ["scls"] file-types = [ "ini", # Systemd unit files "service", "automount", "device", "mount", "path", "service", "slice", "socket", "swap", "target", "timer", "desktop", # Podman quadlets "container", "volume", "kube", "network", { glob = ".editorconfig" }, { glob = ".npmrc" }, { glob = "hgrc" }, { glob = "npmrc" }, { glob = "rclone.conf" }, { glob = "*/stylesets/*" }, { glob = ".notmuch-config" }, # { glob = "config" }, "conf", "properties", "cfg", "directory", ] [[grammar]] name = "vim" source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-vim", rev = "f3cd62d8bd043ef20507e84bb6b4b53731ccf3a7" } [[language]] name = "vim" scope = "source.vim" injection-regex = "vim" comment-token = '"' language-servers = ["scls"] indent = { tab-width = 4, unit = "\t" } file-types = ["vim", { glob = ".vimrc" }] # [[grammar]] # name = "mail" # source.path = "/home/fic/dev/tree-sitter-mail" # source.rev = "5f869321f8c8" # source = { git = "https://github.com/stevenxxiu/tree-sitter-mail", rev = "e3d63ac2093e22777cb30d70b9264f48814622ad" } [[language]] name = "devicetree" file-types = ["dts", "dtsi", "keymap"] language-servers = ["scls"] # 6557729f4afaf01dec7481d4e5975515ea8f0edd [[grammar]] name = "devicetree" source = { git = "https://github.com/joelspadin/tree-sitter-devicetree", rev = "6557729f4afaf01dec7481d4e5975515ea8f0edd" } [[language]] name = "test" scope = "source.test" language-servers = ["scls"] file-types = [{ glob = "test/corpus/*.txt" }] [[grammar]] name = "test" source = { git = "https://github.com/tree-sitter-grammars/tree-sitter-test", rev = "93746e2e387ae757d21088ab0ab5657efffb973e" } [[language]] name = "mail" scope = "text.mail" file-types = ["eml"] injection-regex = "mail|eml|email" [[grammar]] name = "mail" source = { git = "https://github.com/ficcdaf/tree-sitter-mail", rev = "8e60f38efbae1cc5f22833ae13c5500dd0f3b12f" } # source = { path = "/home/fic/dev/tree-sitter-mail"} # [[language]] # name = "config" # scope = "text.config" # file-types = [ # {glob = "config"} # ] # comment-token='#' [language-server.ruff.config.settings] lineLength = 80 configurationPreference = "filesystemFirst" [language-server.ruff.config.settings.lint] preview = true [language-server.ruff.config.settings.format] preview = true [[language]] name = "python" language-servers = ["basedpyright", "ruff", "codebook", "typos-lsp"] auto-format = true # ruff LSP can format too, including range format # formatter = { command = "ruff", args = ["format", "-"] } # formatter = { command = "ruff", args = ["format", "--line-length", "79", "-"] } [[language]] name = "kdl" auto-format = true # Configure kdlfmt to use stdin formatter = { command = "kdlfmt", args = ["format", "-"] } [language-server.typos-lsp] command = "typos-lsp" [[language]] name = "go" scope = "source.go" injection-regex = "go" file-types = ["go"] roots = ["go.work", "go.mod"] auto-format = true formatter = { command = "goimports" } comment-token = "//" block-comment-tokens = { start = "/*", end = "*/" } language-servers = ["gopls", "typos-lsp", "scls", "codebook", "typos-lsp"] # TODO: gopls needs utf-8 offsets? indent = { tab-width = 4, unit = "\t" } [[language]] name = "git-commit" language-servers = ["scls"] # [language-server.just-lsp] # command = "just-lsp" [[language]] name = "just" auto-format = true formatter = { command = "just-formatter" } # See https://github.com/eli-yip/just-formatter # scope = "source.just" # file-types = [ # "just", # { glob = "justfile" }, # { glob = "Justfile" }, # { glob = ".justfile" }, # { glob = ".Justfile" }, # ] # injection-regex = "just" # comment-token = "#" # indent = { tab-width = 4, unit = " " } # auto-format = true # formatter = { command = "just-formatter" } # # formatter = { command = "just", args = ['--justfile', '/dev/stdin', '--dump'] } # # formatter = { command = "fish", args = ["-c", "justfmt"] } # # formatter = { command = "just", args = ["--dump"] } # Please see: https://github.com/helix-editor/helix/issues/9703 # language-servers = ["just-lsp", "scls"] [[language]] name = "yaml" auto-format = true formatter = { command = "yamlfmt", args = ['-'] } [language-server.fish-lsp] command = "/home/fic/.config/helix/scripts/fish-lsp.fish" [[language]] name = "fish" language-servers = ["fish-lsp"] auto-format = true