Created
March 5, 2026 23:55
-
-
Save velut/7e047ce594cae5ffa4e2999cdc2d71ca to your computer and use it in GitHub Desktop.
Helix editor config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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" | |
| [keys.normal] | |
| C-g = [ | |
| ":write-all", | |
| ":insert-output lazygit >/dev/tty", | |
| ":redraw", | |
| ":reload-all" | |
| ] | |
| C-r = [ | |
| ":write-all", | |
| ":insert-output scooter >/dev/tty", | |
| ":redraw", | |
| ":reload-all" | |
| ] | |
| C-q = ":buffer-close" | |
| C-s = ":write-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" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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/ADD_YOUR_USERNAME_HERE/.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 | |
| # 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"] | |
| # | |
| # 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 | |
| # 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 | |
| # 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 = [ "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 | |
| # 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 | |
| # 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