~koehr/configs

fb9f7e49975ccca9697e64c08bac73fa96d1f6e5 — Norman Köhring 4 months ago c6a246a
update helix config for web development
M dot.config/helix/config.toml => dot.config/helix/config.toml +9 -25
@@ 1,12 1,13 @@
theme = "heisenberg2"
theme = "everforest_dark"

[editor]
line-number = "absolute"
bufferline = "multiple"
text-width = 120
cursorline = true
mouse = true
rulers = [120]
bufferline = "multiple"

[editor.statusline]
left = ["mode", "file-name", "spinner"]
center = ["diagnostics"]
right = ["selections", "primary-selection-length", "file-type", "file-encoding", "position-percentage", "position"]

[editor.cursor-shape]
insert = "bar"


@@ 25,8 26,8 @@ render = "all"
space = "·"
nbsp = "⍽"
tab = "→"
tabpad = "·"  # Tabs will look like "→···" (depending on tab width)
newline = "¬" #"⏎"
tabpad = "·"  # Tabs will look like "→···" (depending on tab width)

[editor.lsp]
enable = true


@@ 43,29 44,12 @@ max-indent-retain = 40
wrap-indicator = "↪"
wrap-at-text-width = false

[editor.file-picker]
hidden = false

[editor.statusline]
left = ["mode", "spinner", "version-control", "file-name", "file-type", "file-encoding"]
center = ["diagnostics"]
right = ["selections", "primary-selection-length", "position-percentage", "position"]


[keys.normal]
"A-," = "goto_previous_buffer"
"A-." = "goto_next_buffer"
"A-w" = ":buffer-close"
"A-/" = "repeat_last_motion"

A-x = "extend_to_line_bounds"
X = ["extend_line_up", "extend_to_line_bounds"]
X = "extend_line_above"
D = "delete_char_backward"
q = "move_prev_word_start"
Q = "move_prev_long_word_start"

[keys.select]
A-x = "extend_to_line_bounds"
X = ["extend_line_up", "extend_to_line_bounds"]
q = "extend_prev_word_start"
Q = "extend_prev_long_word_start"

A dot.config/helix/install_language_servers.sh => dot.config/helix/install_language_servers.sh +2 -0
@@ 0,0 1,2 @@
#!/bin/sh
npm i -g vscode-langservers-extracted typescript-language-server emmet-ls @vue/language-server yaml-language-server

M dot.config/helix/languages.toml => dot.config/helix/languages.toml +76 -7
@@ 9,22 9,91 @@ name = "html"
'`' = '`'
'<' = '>'

[language-server.efm]
command = "efm-langserver"
config.documentFormatting = true
[language-server.emmet-ls]
command = "emmet-ls"
args = ["--stdio"]

[language-server.eslint]
command = "vscode-eslint-language-server"
args = ["--stdio"]

[language-server.eslint.config]
codeActionsOnSave = { mode = "all", "source.fixAll.eslint" = true }
format = { enable = true }
nodePath = ""
quiet = false
rulesCustomizations = []
run = "onType"
validate = "on"
experimental = {}
problems = { shortenToSingleLine = false }

[language-server.eslint.config.codeAction]
disableRuleComment = { enable = true, location = "separateLine" }
showDocumentation = { enable = false }

[language-server.vscode-json-language-server.config]
json = { validate = { enable = true }, format = { enable = true } }
provideFormatter = true

[language-server.vscode-css-language-server.config]
css = { validate = { enable = true } }
scss = { validate = { enable = true } }
less = { validate = { enable = true } }
provideFormatter = true

[language-server.typescript-language-server]
command = "typescript-language-server"
args = ["--stdio"]
config.hostInfo = "helix"
config.plugins = [
  { name = "@vue/typescript-plugin", location = "/home/normankoehring/.nvm/versions/node/v20.9.0/lib/node_modules/@vue/typescript-plugin", languages = ["javascript", "typescript", "vue"] }
]

[language-server.vue-language-server]
command = "vue-language-server"
args = ["--stdio"]
config.hostInfo = "helix"
config.typescript = { tsdk = "/home/normankoehring/.nvm/versions/node/v20.9.0/lib/node_modules/typescript/lib" }

[[language]]
name = "typescript"
auto-format = true
language-servers = [
  { name = "efm", only-features = ["format", "diagnostics"] },
  { name = "typescript-language-server", except-features = ["format", "diagnostics"] },
]
language-servers = [ "typescript-language-server", "eslint", "emmet-ls" ]
formatter = { command = "prettier", args = [ "--parser", "typescript" ] }

[[language]]
name = "javascript"
language-servers = [ "typescript-language-server", "eslint", "emmet-ls" ]
formatter = { command = "prettier", args = [ "--parser", "typescript" ] }
auto-format = true

[[language]]
name = "json"
formatter = { command = "prettier", args = [ "--parser", "json" ] }
auto-format = true

[[language]]
name = "html"
language-servers = [ "vscode-html-language-server", "emmet-ls" ]
formatter = { command = 'prettier', args = ["--parser", "html"] }
auto-format = true

[[language]]
name = "css"
language-servers = [ "vscode-css-language-server", "emmet-ls" ]
formatter = { command = 'prettier', args = ["--parser", "css"] }
auto-format = true

[[language]]
name = "vue"
auto-format = true
scope = "source.vue"
injection-regex = "vue"
file-types = ["vue"]
language-servers = [ "vue-language-server", "eslint"]
formatter = {command = 'prettier', args= ["--parser", "vue"]}
roots = ["package.json", "vue.config.js", ".prettierrc.json"]

[[language]]
name = "v"