diff --git a/dot.config/helix/config.toml b/dot.config/helix/config.toml index 5d64e13..a3363eb 100644 --- a/dot.config/helix/config.toml +++ b/dot.config/helix/config.toml @@ -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" diff --git a/dot.config/helix/install_language_servers.sh b/dot.config/helix/install_language_servers.sh new file mode 100644 index 0000000..38a2df1 --- /dev/null +++ b/dot.config/helix/install_language_servers.sh @@ -0,0 +1,2 @@ +#!/bin/sh +npm i -g vscode-langservers-extracted typescript-language-server emmet-ls @vue/language-server yaml-language-server diff --git a/dot.config/helix/languages.toml b/dot.config/helix/languages.toml index 502b43e..f0dfb4c 100644 --- a/dot.config/helix/languages.toml +++ b/dot.config/helix/languages.toml @@ -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"