Skip to content

Instantly share code, notes, and snippets.

@pengshp
Created March 24, 2026 21:01
Show Gist options
  • Select an option

  • Save pengshp/3e9de86733c752ff60bc7bacadaeec76 to your computer and use it in GitHub Desktop.

Select an option

Save pengshp/3e9de86733c752ff60bc7bacadaeec76 to your computer and use it in GitHub Desktop.
Helix editor config
# --------------- Python
[[language]]
name = "python"
scope = "source.python"
comment-token = "#"
indent = { tab-width = 4, unit = " " }
language-servers = [
"ruff",
{ name = "basedpyright", except-features = [
"format",
] },
]
formatter = { command = "ruff", args = ["format", "-"] }
auto-format = true
# ------------- golang
[[language]]
name = "go"
scope = "source.go"
injection-regex = "go"
file-types = ["go"]
roots = ["go.work", "go.mod"]
auto-format = true
comment-token = "//"
block-comment-tokens = { start = "/*", end = "*/" }
language-servers = ["gopls"]
# TODO: gopls needs utf-8 offsets?
indent = { tab-width = 4, unit = "\t" }
# ------------- lua
[[language]]
name = "lua"
injection-regex = "lua"
scope = "source.lua"
file-types = ["lua"]
shebangs = ["lua", "luajit"]
roots = [".luarc.json", ".luacheckrc", ".stylua.toml"]
comment-token = "--"
block-comment-tokens = { start = "--[[", end = "--]]" }
indent = { tab-width = 2, unit = " " }
language-servers = ["lua-language-server"]
formatter = { command = "stylua", args = ["-"] }
auto-format = true
# -------------- toml
[[language]]
name = "toml"
scope = "source.toml"
injection-regex = "toml"
file-types = ["toml", { glob = "Cargo.lock" }, { glob = "uv.lock" }]
comment-token = "#"
language-servers = ["tombi"]
indent = { tab-width = 2, unit = " " }
formatter = { command = "tombi", args = ["format", "-"] }
auto-format = true
# -------------- yaml
[[language]]
name = "yaml"
scope = "source.yaml"
file-types = ["yml", "yaml"]
comment-token = "#"
indent = { tab-width = 2, unit = " " }
language-servers = ["yaml-language-server"]
injection-regex = "yml|yaml"
formatter = { command = "prettier", args = ["--parser", "yaml"] }
auto-format = true
# --------------- hcl
[[language]]
name = "hcl"
scope = "source.hcl"
injection-regex = "(hcl|tf|nomad)"
language-id = "terraform"
file-types = ["hcl", "tf", "nomad"]
comment-token = "#"
block-comment-tokens = { start = "/*", end = "*/" }
indent = { tab-width = 2, unit = " " }
language-servers = ["terraform-ls"]
auto-format = true
# --------------- kdl
[[language]]
name = "kdl"
scope = "source.kdl"
file-types = ["kdl"]
comment-token = "//"
block-comment-tokens = { start = "/*", end = "*/" }
injection-regex = "kdl"
# --------------- sql
[[language]]
name = "sql"
scope = "source.sql"
file-types = ["sql", "dsql"]
comment-token = "--"
block-comment-tokens = { start = "/*", end = "*/" }
indent = { tab-width = 4, unit = " " }
injection-regex = "sql"
# --------------- dockerfile
[[language]]
name = "dockerfile"
scope = "source.dockerfile"
injection-regex = "docker|dockerfile"
roots = ["Dockerfile", "Containerfile"]
file-types = [
"Dockerfile",
{ glob = "Dockerfile" },
{ glob = "Dockerfile.*" },
"dockerfile",
{ glob = "dockerfile" },
{ glob = "dockerfile.*" },
"Containerfile",
{ glob = "Containerfile" },
{ glob = "Containerfile.*" },
"containerfile",
{ glob = "containerfile" },
{ glob = "containerfile.*" },
]
comment-token = "#"
indent = { tab-width = 2, unit = " " }
language-servers = ["docker-language-server"]
# --------------- docker compose
[[language]]
name = "docker-compose"
scope = "source.yaml.compose"
roots = ["compose.yaml", "docker-compose.yaml"]
language-servers = ["docker-compose-langserver", "yaml-language-server"]
file-types = [{ glob = "compose.yaml" }, { glob = "docker-compose.yaml" }]
formatter = { command = "prettier", args = ["--parser", "dockercompose"] }
comment-token = "#"
indent = { tab-width = 2, unit = " " }
grammar = "yaml"
# --------------- markdown
[[language]]
name = "markdown"
scope = "text.md"
injection-regex = "md|markdown"
file-types = ["md", "markdown", { glob = "PULLREQ_EDITMSG" }]
# roots = [".marksman.toml"]
language-servers = ["rumdl"]
indent = { tab-width = 2, unit = " " }
block-comment-tokens = { start = "<!--", end = "-->" }
# formatter = { command = "rumdl", args = ["fmt", "-", "--quiet"] }
formatter = { command = "rumdl", args = ["check", "--fix", "--stdin"] }
auto-format = true
# soft-wrap.enable = true
text-width = 80
# soft-wrap.wrap-at-text-width = true
# --------------- css
[[language]]
name = "css"
scope = "source.css"
injection-regex = "css"
file-types = ["css", "scss"]
block-comment-tokens = { start = "/*", end = "*/" }
language-servers = ["vscode-css-language-server"]
auto-format = true
indent = { tab-width = 4, unit = " " }
formatter = { command = "prettier", args = [
"--parser",
"css",
"--tab-width",
"4",
] }
# --------------- json
[[language]]
name = "json"
scope = "source.json"
file-types = ["json", "jsonc"]
language-servers = ["vscode-json-language-server"]
auto-format = true
formatter = { command = "prettier", args = [
"--parser",
"json",
"--tab-width",
"4",
] }
# --------------- bash
[[language]]
name = "bash"
scope = "source.bash"
injection-regex = "(shell|bash|zsh|sh)"
shebangs = ["sh", "bash", "dash", "zsh"]
file-types = ["sh", "bash", "zsh"]
comment-token = "#"
language-servers = ["bash-language-server"]
indent = { tab-width = 4, unit = " " }
formatter = { command = "shfmt", args = ["-i", "4"] }
auto-format = true
# --------------- log
[[language]]
name = "log"
scope = "source.log"
file-types = ["log"]
# --------------- hyprlang
[[language]]
name = "hyprlang"
scope = "source.hyprlang"
roots = ["hyprland.conf"]
file-types = [
{ glob = "hyprland.conf" },
{ glob = "hyprpaper.conf" },
{ glob = "hypridle.conf" },
{ glob = "hyprlock.conf" },
]
comment-token = "#"
grammar = "hyprlang"
[language-server.ruff]
command = "ruff"
args = ["server"]
[language-server.basedpyright]
command = "basedpyright-langserver"
args = ["--stdio"]
[language-server.basedpyright.config]
basedpyright.analysis.diagnosticMode = "openFilesOnly"
[language-server.gopls]
command = "gopls"
args = ["-logfile=/tmp/gopls.log", "serve"]
[language-server.gopls.config]
gofumpt = true
ui.diagnostic.staticcheck = true
# ------------- ansible
[language-server.ansible-language-server]
command = "ansible-language-server"
args = ["--stdio"]
[language-server.lua-language-server]
command = "lua-language-server"
args = ["--locale=zh-cn"]
[language-server.lua-language-server.config.Lua.hint]
enable = false
setType = true
paramName = "All"
paramType = false
await = true
[language-server.tombi]
command = "tombi"
args = ["lsp"]
[language-server.yaml-language-server]
command = "yaml-language-server"
args = ["--stdio"]
[language-server.terraform-ls]
command = "terraform-ls"
args = ["serve"]
[language-server.docker-language-server]
command = "docker-language-server"
args = ["start", "--stdio"]
[language-server.docker-compose-langserver]
command = "docker-language-server"
args = ["start", "--stdio"]
[language-server.rumdl]
command = "rumdl"
args = ["server"]
[language-server.hx-lsp]
command = "hx-lsp"
[language-server.vscode-css-language-server]
command = "vscode-css-language-server"
args = ["--stdio"]
config = { provideFormatter = true }
css = { validate = { enable = true } }
[language-server.vscode-json-language-server]
command = "vscode-json-language-server"
args = ["--stdio"]
config = { provideFormatter = true, json = { validate = { enable = true } } }
[language-server.bash-language-server]
command = "bash-language-server"
args = ["start"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment