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"