# TOML [[language]] name = "toml" auto-format = true [language.formatter] command = "taplo" args = ["format", "-"] # Bash [[language]] name = "bash" language-servers = ["bash-language-server"] formatter = { command = "shfmt", args = ["-i", "4"] } auto-format = true # Nix [[language]] name = "nix" auto-format = true language-servers = ["nil"] [language.formatter] command = "alejandra" # Haskell [[language]] auto-format = true language-servers = ["haskell-language-server-wrapper"] name = "haskell" [language.formatter] command = "fourmolu" # Cabal [[language]] name = "cabal" file-types = ["cabal"] auto-format = true roots = [] scope = "" [language.formatter] command = "cabal-fmt" # Go [[language]] name = "go" language-servers = ["gopls", "golangci-lint-langserver"] [language.formatter] command = "goimports" [language-server.gopls] command = "gopls" [language-server.gopls.config] gofumpt = true usePlaceholders = true completeUnimported = true staticcheck = true [language-server.gopls.config.analyses] nilness = true shadow = true shift = true unusedparams = true unusedwrite = true useany = true unusedvariable = true [language-server.gopls.config.codelenses] gc_details = true generate = true regenerate_cgo = true run_govulncheck = true test = true tidy = true upgrade_dependency = true vendor = true [language-server.gopls.config.hints] assignVariableTypes = true compositeLiteralFields = true compositeLiteralTypes = true constantValues = true functionTypeParameters = true parameterNames = true rangeVariableTypes = true [language-server.golangci-lint-langserver] command = "golangci-lint-langserver" [language-server.golangci-lint-langserver.config] command = ["golangci-lint", "run", "--output.json.path=stdout", "--show-stats=false", "--issues-exit-code=1"] # Markdown [[language]] name = "markdown" auto-format = true [language.formatter] command = "prettier" args = ["--parser", "markdown", "--prose-wrap", "always"] # Lua [[language]] name = "lua" auto-format = true # HTML [[language]] auto-format = false name = "html" [language.formatter] args = ["--parser", "html", "--tab-width", "2"] command = "prettier" [language.indent] tab-width = 2 unit = " " # CSS [[language]] language-servers = ["css-languageserver", "copilot"] name = "css" [language.formatter] args = ["--parser", "css", "--tab-width", "2"] command = "prettier" [language.indent] tab-width = 4 unit = " " # Typescript [[language]] name = "typescript" auto-format = true language-servers = ["typescript-language-server"] [language.formatter] args = ["--parser", "typescript", "--tab-width", "4"] command = "prettier" [language.indent] tab-width = 4 unit = " " # SVG [[language]] file-types = ["svg"] name = "svg" roots = [] scope = "" [language.formatter] args = ["--pretty", "-"] command = "svgo" # Python [language-server.ty] command = "ty" args = ["server"] [language-server.ruff] command = "ruff" args = ["server"] [[language]] name = "python" auto-format = true language-servers = [ "ty", { name = "ruff", except-features = ["hover"] }, ] # Elm [[language]] name = "elm" auto-format = true [language.formatter] command = "elm-format" args = ["--stdin"]