dotfiles/.config/helix/languages.toml

337 lines
8.4 KiB
TOML

# [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"]
language-servers = ["codebook", "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.auto-pairs]
"'" = "'"
'(' = ')'
'{' = '}'
'[' = ']'
'"' = '"'
# disable backtick autopair because it's annoying af on code blocks
# '`' = '`'
[[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