Skip to content

Instantly share code, notes, and snippets.

@velut
Last active June 1, 2026 23:38
Show Gist options
  • Select an option

  • Save velut/7e047ce594cae5ffa4e2999cdc2d71ca to your computer and use it in GitHub Desktop.

Select an option

Save velut/7e047ce594cae5ffa4e2999cdc2d71ca to your computer and use it in GitHub Desktop.
Helix editor config
# theme = "catppuccin_latte"
theme = "catppuccin_mocha"
[editor]
# mouse = false
line-number = "relative"
cursorline = true
bufferline = "always"
[editor.cursor-shape]
insert = "bar"
# insert = "block"
normal = "block"
select = "underline"
[editor.file-picker]
hidden = false
[keys.normal]
C-q = ":buffer-close"
C-s = ":write-all"
# C-g = [
# ":write-all",
# ":insert-output lazygit >/dev/tty",
# ":redraw",
# ":reload-all"
# ]
# C-r = [
# ":write-all",
# ":insert-output scooter >/dev/tty",
# ":redraw",
# ":reload-all"
# ]
[keys.normal.space]
e = [
":sh rm -f /tmp/unique-file-h21a434",
":insert-output yazi '%{buffer_name}' --chooser-file=/tmp/unique-file-h21a434",
":insert-output echo \"x1b[?1049h\" > /dev/tty",
":open %sh{cat /tmp/unique-file-h21a434}",
":redraw",
]
i = ":toggle lsp.display-inlay-hints"
1 = ":reload-all"
[keys.insert]
# "A-n" = "normal_mode"
# See https://github.com/helix-editor/helix/wiki/Language-Server-Configurations
# Install language servers globally with bun and cargo.
#
# bun i -g @astrojs/language-server prettier prettier-plugin-astro typescript typescript-language-server vscode-langservers-extracted svelte-language-server @tailwindcss/language-server oxfmt oxlint oxlint-tsgolint
# cargo install codebook-lsp
# cargo install --locked --git https://github.com/estin/simple-completion-language-server.git
#
# Language servers configuration
#
# Astro
[language-server.astro-ls]
command = "astro-ls"
args = ["--stdio"]
config = { typescript = { tsdk = "/home/edo/.bun/install/global/node_modules/typescript/lib" }, environment = "node" }
# Codebook
[language-server.codebook]
command = "codebook-lsp"
args = ["serve"]
# Go
[language-server.gopls.config]
"formatting.gofumpt" = true
# Harper
# https://writewithharper.com/docs/integrations/helix
[language-server.harper-ls]
command = "harper-ls"
args = ["--stdio"]
# Oxlint
[language-server.oxlint-language-server]
command = "oxlint"
args = ["--type-aware", "--lsp"]
# Oxfmt
# [language-server.oxfmt]
# command = "oxfmt"
# args = ["--lsp"]
# Rust analizer
[language-server.rust-analyzer.config.check]
command = "clippy"
[language-server.rust-analyzer.config.cargo]
features = "all"
# Simple completion
[language-server.scls]
command = "simple-completion-language-server"
[language-server.scls.config]
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)
# SQL
[language-server.sql-language-server]
command = "sql-language-server"
args = ["up", "--method", "stdio"]
# Tailwindcss
[language-server.tailwindcss-ls]
command = "tailwindcss-language-server"
args = ["--stdio"]
[language-server.tailwindcss-ls.config.tailwindCSS]
includeLanguages = { templ = "html", "*.templ" = "html" }
#
# Languages configuration
#
# Astro
[[language]]
name = "astro"
language-servers = [
"astro-ls",
"tailwindcss-ls",
"oxlint-language-server",
"scls",
"codebook",
]
formatter = { command = "prettier", args = [
"--plugin",
"prettier-plugin-astro",
"--parser",
"astro",
] }
auto-format = true
# CSS
[[language]]
name = "css"
language-servers = [
"vscode-css-language-server",
"tailwindcss-ls",
"oxlint-language-server",
"scls",
"codebook",
]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# formatter = { command = 'prettier', args = ["--parser", "css"] }
auto-format = true
# Go
[[language]]
name = "go"
language-servers = ["gopls", "golangci-lint-lsp", "scls", "codebook"]
# HTML
[[language]]
name = "html"
language-servers = [
"vscode-html-language-server",
"tailwindcss-ls",
"scls",
"codebook",
"oxfmt",
]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# formatter = { command = 'prettier', args = ["--parser", "html"] }
auto-format = true
# JavaScript
[[language]]
name = "javascript"
language-servers = [
"typescript-language-server",
"oxlint-language-server",
"scls",
"codebook",
]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true
# JSX
[[language]]
name = "jsx"
language-servers = [
"typescript-language-server",
"tailwindcss-ls",
"oxlint-language-server",
"scls",
"codebook",
"oxfmt",
]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true
# JSON
[[language]]
name = "json"
language-servers = ["vscode-json-language-server", "scls", "codebook", "oxfmt"]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# Since prettier formats `package.json` files differently from normal `foo.json` files,
# we need to pass the buffer name. Adding `--parser json` overrieds the buffer name option.
# formatter = { command = 'prettier', args = ["--stdin-filepath", "%{buffer_name}"] }
auto-format = true
# JSONC
[[language]]
name = "jsonc"
language-servers = ["vscode-json-language-server", "scls", "codebook"]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# formatter = { command = 'prettier', args = ["--parser", "jsonc"] }
auto-format = true
# Just
[[language]]
name = "just"
language-servers = ["just-lsp", "scls", "codebook"]
# Markdown
[[language]]
name = "markdown"
language-servers = ["scls", "codebook"]
comment-tokens = ["-", "+", "*", "- [ ]", ">"]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# formatter = { command = 'prettier', args = ["--parser", "markdown"] }
auto-format = true
# SQL
[[language]]
name = "sql"
language-servers = ["scls"]
# language-servers = [ "sql-language-server", "scls" ]
# Svelte
[[language]]
name = "svelte"
language-servers = [
"svelteserver",
"tailwindcss-ls",
"oxlint-language-server",
"scls",
"codebook",
]
formatter = { command = "prettier", args = [
"--plugin",
"prettier-plugin-svelte",
"--parser",
"svelte",
] }
auto-format = true
# Templ
[[language]]
name = "templ"
language-servers = ["templ", "tailwindcss-ls", "scls", "codebook"]
formatter = { command = 'templ', args = ["fmt"] }
auto-format = true
# TOML
[[language]]
name = "toml"
# https://github.com/tamasfe/taplo/issues/580#issuecomment-2004174721
roots = ["."]
language-servers = ["taplo", "scls", "codebook"]
formatter = { command = "taplo", args = ["format", "-"] }
auto-format = true
# TypeScript
[[language]]
name = "typescript"
language-servers = [
"typescript-language-server",
"oxlint-language-server",
"scls",
"codebook",
]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true
# TSX
[[language]]
name = "tsx"
language-servers = [
"typescript-language-server",
"tailwindcss-ls",
"oxlint-language-server",
"scls",
"codebook",
]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# formatter = { command = 'prettier', args = ["--parser", "typescript"] }
auto-format = true
# Typst
[[language]]
name = "typst"
language-servers = ["tinymist", "scls", "codebook"]
# XML
[[language]]
name = "xml"
file-types = ["xml", "svg", "xsd", "xslt", "xsl"]
auto-format = true
formatter = { command = "xmllint", args = ["--format", "-"] }
# language-servers = [ "xml" ]
# YAML
[[language]]
name = "yaml"
language-servers = ["yaml-language-server", "scls", "codebook"]
formatter = { command = 'oxfmt', args = ["--stdin-filepath", "%{buffer_name}"] }
# formatter = { command = "prettier", args = ["--parser", "yaml"] }
auto-format = true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment