diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-06-08 15:07:43 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-06-08 15:14:37 +0800 |
commit | fa62ea0367faea62904c0085c029cdbb18cf0857 (patch) | |
tree | fcdf61ead5752e69cadecfbc593e474f9b93bbfa /store/config/nvim/lua/setup/lsp.lua | |
parent | 5a7ff186e3c25e543a1a60d3af3a7807306d19d7 (diff) | |
download | crupest-fa62ea0367faea62904c0085c029cdbb18cf0857.tar.gz crupest-fa62ea0367faea62904c0085c029cdbb18cf0857.tar.bz2 crupest-fa62ea0367faea62904c0085c029cdbb18cf0857.zip |
config(nvim): add conform.nvim for js/ts/md format.
Diffstat (limited to 'store/config/nvim/lua/setup/lsp.lua')
-rw-r--r-- | store/config/nvim/lua/setup/lsp.lua | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/store/config/nvim/lua/setup/lsp.lua b/store/config/nvim/lua/setup/lsp.lua index 472cdaf..a11ad34 100644 --- a/store/config/nvim/lua/setup/lsp.lua +++ b/store/config/nvim/lua/setup/lsp.lua @@ -7,6 +7,13 @@ vim.lsp.config("*", { ) }) +---@param ev vim.api.keyset.create_autocmd.callback_args +---@param name string +local function client_name_is(ev, name) + local client = vim.lsp.get_client_by_id(ev.data.client_id) + return client and client.name == name +end + local function setup_clangd() local clangd = "clangd" local brew_clangd_path = "/usr/local/opt/llvm/bin/clangd" @@ -19,8 +26,7 @@ local function setup_clangd() vim.api.nvim_create_autocmd('LspAttach', { callback = function(ev) - local client = vim.lsp.get_client_by_id(ev.data.client_id) - if client and client.name == "clangd" then + if client_name_is(ev, "clangd") then vim.keymap.set('n', 'grs', "<cmd>ClangdSwitchSourceHeader<cr>", { buffer = ev.buf }) @@ -62,28 +68,21 @@ local function setup_denols() end end, }) -end - - -local function setup() - setup_clangd() - setup_lua_ls() - setup_denols() - - function _G.crupest_no_range_format() - vim.notify("Range format is no supported by the lsp.", vim.log.levels.ERROR, {}) - end vim.api.nvim_create_autocmd('LspAttach', { callback = function(ev) - local client = vim.lsp.get_client_by_id(ev.data.client_id) - vim.keymap.set('n', 'gqa', vim.lsp.buf.format, { buffer = ev.buf }) - if client and not client:supports_method('textDocument/rangeFormatting') then - vim.bo[ev.buf].formatexpr = "v:lua.crupest_no_range_format()" + if client_name_is(ev, "denols") then + vim.o.formatexpr = "v:lua.require'conform'.formatexpr()" end end }) +end + +local function setup() + setup_clangd() + setup_lua_ls() + setup_denols() vim.lsp.enable({ "clangd", "lua_ls", "denols" }) end |