aboutsummaryrefslogtreecommitdiff
path: root/autoload/lsp-config.kak
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-11-03 23:30:39 +0530
committerAkshay Nair <phenax5@gmail.com>2025-11-03 23:30:39 +0530
commit17b59f5ed7acac5dc852c831e1650daac7f169d7 (patch)
tree5a0f87e6b011c29556d374ad8950bedeae101b8c /autoload/lsp-config.kak
parent57e213f93cf6e535e57a7b67390820927d6b79f1 (diff)
downloadkakoune-config-17b59f5ed7acac5dc852c831e1650daac7f169d7.tar.gz
kakoune-config-17b59f5ed7acac5dc852c831e1650daac7f169d7.zip
Improve formatters to fallback to lsp + change lsp config
Diffstat (limited to '')
-rw-r--r--autoload/lsp-config.kak54
1 files changed, 41 insertions, 13 deletions
diff --git a/autoload/lsp-config.kak b/autoload/lsp-config.kak
index c9af393..2851011 100644
--- a/autoload/lsp-config.kak
+++ b/autoload/lsp-config.kak
@@ -1,4 +1,10 @@
eval %sh{kak-lsp}
+# Disable default server configs
+remove-hooks global lsp-filetype-javascript
+remove-hooks global lsp-filetype-c-family
+remove-hooks global lsp-filetype-ruby
+remove-hooks global lsp-filetype-haskell
+
set-option global lsp_file_watch_support true
set-option global lsp_snippet_support true
set-option global lsp_diagnostic_line_error_sign ''
@@ -23,27 +29,33 @@ hook global InsertCompletionHide .* %{
map global insert <c-n> '<a-;>: lsp-snippets-select-next-placeholders<ret>' -docstring 'Select next snippet placeholder'
}
-hook global BufSetOption filetype=(?:javascript|typescript) %{
+hook global BufSetOption filetype=(?:javascript|typescript|tsx|jsx) %{
set-option buffer lsp_servers %{
[typescript-language-server]
- root_globs = ["package.json", "tsconfig.json", "jsconfig.json", ".git"]
args = ["--stdio"]
+ root_globs = ["package.json", "tsconfig.json", "jsconfig.json", ".git"]
+ settings_section = "_"
+ [typescript-language-server.settings]
+ format = { enable = false }
+ [typescript-language-server.settings._]
+ quotePreference = "single"
+
[tailwindcss-language-server]
- root_globs = ["tailwind.*", "postcss.*"]
args = ["--stdio"]
+ root_globs = ["tailwind.*", "postcss.config.*"]
[tailwindcss-language-server.settings.tailwindCSS]
editor = {}
- # [biome]
- # root_globs = ["biome.json", "package.json", "tsconfig.json", "jsconfig.json"]
- # args = ["lsp-proxy"]
+
+ [biome]
+ args = ["lsp-proxy"]
+ root_globs = ["biome.json"]
}
}
-remove-hooks global lsp-filetype-c-family
hook global BufSetOption filetype=(?:c|cpp|objc) %{
set-option buffer lsp_servers %{
[clangd]
- args = ["--log=error"]
+ args = [ "--log=info", "--clang-tidy" ]
root_globs = ["compile_commands.json", ".clangd", ".git"]
}
}
@@ -51,8 +63,27 @@ hook global BufSetOption filetype=(?:c|cpp|objc) %{
hook global BufSetOption filetype=ruby %{
set-option buffer lsp_servers %{
[ruby-lsp]
- root_globs = ["Gemfile"]
args = ["stdio"]
+ root_globs = ["Gemfile"]
+
+ [rubocop]
+ command = "bundle"
+ args = ["exec", "rubocop", "--lsp"]
+ root_globs = ["Gemfile", ".git"]
+ }
+}
+
+hook -group lsp-filetype-haskell global BufSetOption filetype=haskell %{
+ set-option buffer lsp_servers %{
+ [haskell-language-server]
+ command = "haskell-language-server-wrapper"
+ args = ["--lsp"]
+ root_globs = ["hie.yaml", "cabal.project", "Setup.hs", "stack.yaml", "*.cabal"]
+ settings_section = "_"
+ [haskell-language-server.settings]
+ hlintOn = true
+ [haskell-language-server.settings._]
+ haskell.formattingProvider = "ormolu"
}
}
@@ -60,9 +91,7 @@ hook global WinSetOption filetype=.* %{
hook window -group semantic-tokens BufReload .* lsp-semantic-tokens
hook window -group semantic-tokens NormalIdle .* lsp-semantic-tokens
hook window -group semantic-tokens InsertIdle .* lsp-semantic-tokens
- hook -once -always window WinSetOption filetype=.* %{
- remove-hooks window semantic-tokens
- }
+ hook -once -always window WinSetOption filetype=.* %{ remove-hooks window semantic-tokens }
set-option window lsp_semantic_tokens %{
[
@@ -81,4 +110,3 @@ hook global WinSetOption filetype=.* %{
]
}
}
-