From 3b93f35597db056d978444f2555eefd09e8c9ea9 Mon Sep 17 00:00:00 2001 From: light7734 Date: Mon, 20 Oct 2025 13:43:57 +0330 Subject: [PATCH] update --- lina/.zshrc | 12 ++- lina/nvim/lazy-lock.json | 18 ++-- lina/nvim/lua/_keymaps.lua | 2 +- lina/nvim/lua/_lsp.lua | 90 +++----------------- lina/nvim/lua/_nvim_tree.lua | 3 + lina/nvim/lua/_options.lua | 1 + lina/nvim/lua/lsp/bash.lua | 87 +++++++++++++++++++ lina/nvim/{ => lua}/lsp/clangd.lua | 101 +++++++++++------------ lina/nvim/lua/lsp/cmake.lua | 95 +++++++++++++++++++++ lina/nvim/{ => lua}/lsp/cssls.lua | 0 lina/nvim/{ => lua}/lsp/eslint.lua | 0 lina/nvim/{ => lua}/lsp/lua_ls.lua | 0 lina/nvim/{ => lua}/lsp/mdx_analyzer.lua | 0 lina/nvim/{ => lua}/lsp/pyright.lua | 0 lina/nvim/{ => lua}/lsp/svelte.lua | 0 lina/nvim/{ => lua}/lsp/tailwindcss.lua | 0 lina/nvim/{ => lua}/lsp/ts_ls.lua | 0 17 files changed, 267 insertions(+), 142 deletions(-) create mode 100644 lina/nvim/lua/lsp/bash.lua rename lina/nvim/{ => lua}/lsp/clangd.lua (53%) create mode 100644 lina/nvim/lua/lsp/cmake.lua rename lina/nvim/{ => lua}/lsp/cssls.lua (100%) rename lina/nvim/{ => lua}/lsp/eslint.lua (100%) rename lina/nvim/{ => lua}/lsp/lua_ls.lua (100%) rename lina/nvim/{ => lua}/lsp/mdx_analyzer.lua (100%) rename lina/nvim/{ => lua}/lsp/pyright.lua (100%) rename lina/nvim/{ => lua}/lsp/svelte.lua (100%) rename lina/nvim/{ => lua}/lsp/tailwindcss.lua (100%) rename lina/nvim/{ => lua}/lsp/ts_ls.lua (100%) diff --git a/lina/.zshrc b/lina/.zshrc index 480bf6a..03177b9 100644 --- a/lina/.zshrc +++ b/lina/.zshrc @@ -50,6 +50,7 @@ alias .....='c ../../../../' alias ......='c ../../../../../' alias gs='cgs' alias trans='xprop -format _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY 0xEFFFFFFF' +alias neovide='nohup neovide --frame none &' c () { cd ${1:-.} ; clear ; l } ca () { cd ${1:-.} ; clear ; la } @@ -62,8 +63,7 @@ picomadd() { sed -i '/# OPACITY_RULE/i ,"100:name *= '\'$1\''"' ~/.config/picom/ activate() { if [[ "$1" == "light" ]]; then - source ${HOME}/dev/python_envs/light/bin/activate #Python - source ${HOME}/dev/1.4.321.1/setup-env.sh # Vulkan + source "${HOME}/dev/vulkan_sdk_1.4.321.1/setup-env.sh" PROMPT="%F{green}%n@%m%f %~ $ " clear @@ -110,7 +110,11 @@ jade() # Jade is the name of the lofi girl esac echo "Playing ${input} radio, target url: ${radio}..." - mpv --no-video $radio + mpv --no-video $radio } -clear ; hyfetch +drone_runner() +{ + cd ${HOME}/dev/linux_amd64/ + sudo docker-compose up +} diff --git a/lina/nvim/lazy-lock.json b/lina/nvim/lazy-lock.json index f56bf84..6057be6 100644 --- a/lina/nvim/lazy-lock.json +++ b/lina/nvim/lazy-lock.json @@ -1,5 +1,5 @@ { - "LuaSnip": { "branch": "master", "commit": "de10d8414235b0a8cabfeba60d07c24304e71f5c" }, + "LuaSnip": { "branch": "master", "commit": "21e9fecfc07fb2cd707b6c7c3fa148550a34d053" }, "alpha-nvim": { "branch": "main", "commit": "2b3cbcdd980cae1e022409289245053f62fb50f6" }, "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, "cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" }, @@ -7,17 +7,17 @@ "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "gitsigns.nvim": { "branch": "main", "commit": "6e3c66548035e50db7bd8e360a29aec6620c3641" }, - "gruvbox.nvim": { "branch": "main", "commit": "12c2624287dc827edb5d72b2bc4c9619e692a554" }, + "gitsigns.nvim": { "branch": "main", "commit": "1ee5c1fd068c81f9dd06483e639c2aa4587dc197" }, + "gruvbox.nvim": { "branch": "main", "commit": "5e0a460d8e0f7f669c158dedd5f9ae2bcac31437" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, - "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, - "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" }, + "lazy.nvim": { "branch": "main", "commit": "1ea3c4085785f460fb0e46d2fe1ee895f5f9e7c1" }, + "lualine.nvim": { "branch": "master", "commit": "3946f0122255bc377d14a59b27b609fb3ab25768" }, + "nvim-autopairs": { "branch": "master", "commit": "7a2c97cccd60abc559344042fefb1d5a85b3e33b" }, "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, - "nvim-lspconfig": { "branch": "master", "commit": "16878c7a018cba66a6e990286bdb6afc29ca13d3" }, - "nvim-tree.lua": { "branch": "master", "commit": "b70a741f5a29a1d2baa3bbe7e5c0a4a5d6423849" }, + "nvim-lspconfig": { "branch": "master", "commit": "ac98db2f9f06a56498ec890a96928774eae412c3" }, + "nvim-tree.lua": { "branch": "master", "commit": "e397756d2a79d74314ea4cd3efc41300e91c0ff0" }, "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, - "nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" }, + "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "telescope-args.nvim": { "branch": "main", "commit": "995072920fae8e1bf31daed015114bd54617079a" }, "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, diff --git a/lina/nvim/lua/_keymaps.lua b/lina/nvim/lua/_keymaps.lua index 5225a16..aa0d49f 100644 --- a/lina/nvim/lua/_keymaps.lua +++ b/lina/nvim/lua/_keymaps.lua @@ -91,7 +91,7 @@ keymap( keymap("n", "tg", "Telescope live_grep", opts) -vim.api.nvim_set_keymap("n", "w", "lua vim.lsp.buf.format({async = false})w", opts) +vim.api.nvim_set_keymap("n", "w", "lua vim.lsp.buf.format({async = false})w!", opts) keymap("n", "c", "bdelete", opts) keymap( diff --git a/lina/nvim/lua/_lsp.lua b/lina/nvim/lua/_lsp.lua index d684676..4043744 100644 --- a/lina/nvim/lua/_lsp.lua +++ b/lina/nvim/lua/_lsp.lua @@ -1,78 +1,3 @@ -local function supported_by_prettier(filetype) - local filetypes = { - 'javascript', - 'javascriptreact', - 'javascript.jsx', - 'typescript', - 'typescriptreact', - 'typescript.tsx', - 'vue', - 'svelte', - 'astro', - -- html - 'aspnetcorerazor', - 'astro', - 'astro-markdown', - 'blade', - 'clojure', - 'django-html', - 'htmldjango', - 'edge', - 'eelixir', -- vim ft - 'elixir', - 'ejs', - 'erb', - 'eruby', -- vim ft - 'gohtml', - 'gohtmltmpl', - 'haml', - 'handlebars', - 'hbs', - 'html', - 'htmlangular', - 'html-eex', - 'heex', - 'jade', - 'leaf', - 'liquid', - 'markdown', - 'mdx', - 'mustache', - 'njk', - 'nunjucks', - 'php', - 'razor', - 'slim', - 'twig', - -- css - 'css', - 'less', - 'postcss', - 'sass', - 'scss', - 'stylus', - 'sugarss', - -- js - 'javascript', - 'javascriptreact', - 'reason', - 'rescript', - 'typescript', - 'typescriptreact', - -- mixed - 'vue', - 'svelte', - 'templ', - } - - for _, v in ipairs(filetypes) do - if v == filetype then - return true - end - end - return false -end - local config = { virtual_text = true, signs = { @@ -104,17 +29,28 @@ vim.filetype.add({ vim.diagnostic.config(config) +vim.lsp.config("clangd", require("lsp/clangd")) +vim.lsp.config("luals", require("lsp/lua_ls")) +vim.lsp.config("mdx_analyzer", require("lsp/mdx_analyzer")) +vim.lsp.config("pyright", require("lsp/pyright")) +vim.lsp.config("svelte", require("lsp/svelte")) +vim.lsp.config("tailwindcss", require("lsp/tailwindcss")) +vim.lsp.config("ts_ls", require("lsp/ts_ls")) +vim.lsp.config("cmake", require("lsp/cmake")) +vim.lsp.config("bash", require("lsp/bash")) vim.lsp.buf.hover({ border = "rounded" }) vim.lsp.buf.signature_help({ border = "rounded" }) vim.lsp.enable({ + 'cmake', + + 'bash', + 'clangd', 'luals', 'svelte', 'tailwindcss', "ts_ls", - "cssls", - "eslint", "mdx_analyzer", "pyright", diff --git a/lina/nvim/lua/_nvim_tree.lua b/lina/nvim/lua/_nvim_tree.lua index a1ab8b4..9558424 100644 --- a/lina/nvim/lua/_nvim_tree.lua +++ b/lina/nvim/lua/_nvim_tree.lua @@ -24,6 +24,9 @@ nvim_tree.setup({ open_file = { quit_on_open = true, }, + change_dir = { + global = true, + }, }, update_focused_file = { diff --git a/lina/nvim/lua/_options.lua b/lina/nvim/lua/_options.lua index d125501..a85bcdb 100644 --- a/lina/nvim/lua/_options.lua +++ b/lina/nvim/lua/_options.lua @@ -28,6 +28,7 @@ vim.opt.shortmess:append("c") vim.opt.laststatus = 1 vim.cmd('let g:neovide_cursor_vfx_mode = "pixiedust"') vim.cmd("let g:neovide_cursor_vfx_particle_density = 32.0") +vim.diagnostic.config({ virtual_text = false, virtual_lines = { current_line = false }, }) -- lastplace vim.api.nvim_create_autocmd('BufReadPost', { diff --git a/lina/nvim/lua/lsp/bash.lua b/lina/nvim/lua/lsp/bash.lua new file mode 100644 index 0000000..f880eb7 --- /dev/null +++ b/lina/nvim/lua/lsp/bash.lua @@ -0,0 +1,87 @@ +-- ~/.config/nvim/lua/lsp/servers/bash.lua +-- Full bash LSP config (with keymaps, highlights, and shfmt formatter) + +-- Highlighting function +local function lsp_highlight_document(client) + if client.server_capabilities.documentHighlightProvider then + local group = vim.api.nvim_create_augroup("lsp_document_highlight", { clear = true }) + + vim.api.nvim_create_autocmd("CursorHold", { + group = group, + buffer = 0, + callback = vim.lsp.buf.document_highlight, + }) + + vim.api.nvim_create_autocmd("CursorMoved", { + group = group, + buffer = 0, + callback = vim.lsp.buf.clear_references, + }) + end +end + +-- LSP keymaps (includes shfmt shortcut) +local function lsp_keymaps(bufnr) + local opts = { remap = true, silent = true, buffer = bufnr } + + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + vim.keymap.set("n", "", vim.lsp.buf.signature_help, opts) + vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) + vim.keymap.set("n", "[d", function() vim.diagnostic.goto_prev({ border = "rounded" }) end, opts) + vim.keymap.set("n", "]d", function() vim.diagnostic.goto_next({ border = "rounded" }) end, opts) + vim.keymap.set("n", "lr", vim.lsp.buf.rename, opts) + vim.keymap.set("n", "q", vim.diagnostic.setloclist, opts) + + -- Telescope integration if installed + pcall(function() + vim.keymap.set("n", "td", "Telescope diagnostics", opts) + vim.keymap.set("n", "tr", "Telescope lsp_references", opts) + end) +end + +-- Capabilities (with cmp-nvim-lsp if available) +local capabilities = vim.lsp.protocol.make_client_capabilities() +local ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") +if ok then + capabilities = cmp_nvim_lsp.default_capabilities(capabilities) +end + +-- Return the full bash-language-server config +return { + cmd = { "bash-language-server", "start" }, + filetypes = { "bash", "sh" }, + root_markers = { + '.git', + '.clangd', + '.clang-tidy', + '.clang-format', + 'compile_commands.json', + 'compile_flags.txt', + 'configure.ac', -- AutoTools + }, + single_file_support = true, + settings = { + bashIde = { + globPattern = vim.env.GLOB_PATTERN or "*@(.sh|.inc|.bash|.command)", + }, + }, + on_attach = function(client, bufnr) + vim.notify("ON ATTACH") + lsp_keymaps(bufnr) + lsp_highlight_document(client) + + local augroup = vim.api.nvim_create_augroup('LspFormatting', { clear = true }) + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + vim.cmd([[silent! !shfmt -w -i 4 -ci %]]) + end, + }) + end, + capabilities = capabilities, +} diff --git a/lina/nvim/lsp/clangd.lua b/lina/nvim/lua/lsp/clangd.lua similarity index 53% rename from lina/nvim/lsp/clangd.lua rename to lina/nvim/lua/lsp/clangd.lua index 6a9b431..a60a53b 100644 --- a/lina/nvim/lsp/clangd.lua +++ b/lina/nvim/lua/lsp/clangd.lua @@ -14,30 +14,28 @@ local function lsp_highlight_document(client) end local function lsp_keymaps(bufnr) - local opts = { noremap = true, silent = true } + local opts = { noremap = true, silent = true, buffer = bufnr } - vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "lua vim.lsp.buf.definition()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", "lua vim.lsp.buf.implementation()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "K", "lua vim.lsp.buf.hover()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "", "lua vim.lsp.buf.signature_help()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "lua vim.lsp.buf.references()", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", 'lua vim.diagnostic.goto_prev({border="rounded"})', opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", 'lua vim.diagnostic.goto_next({border="rounded"})', opts) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) + vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) + vim.keymap.set("n", "gi", vim.lsp.buf.implementation, opts) + vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) + vim.keymap.set("n", "", vim.lsp.buf.signature_help, opts) + vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) + vim.keymap.set("n", "[d", function() vim.diagnostic.goto_prev({ border = "rounded" }) end, opts) + vim.keymap.set("n", "]d", function() vim.diagnostic.goto_next({ border = "rounded" }) end, opts) + vim.keymap.set("n", "", "LspClangdSwitchSourceHeader", opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "lr", "lua vim.lsp.buf.rename()", opts) + vim.keymap.set("n", "lr", vim.lsp.buf.rename, opts) + vim.keymap.set("n", "q", vim.diagnostic.setloclist, opts) - vim.api.nvim_buf_set_keymap(bufnr, "n", "q", "lua vim.diagnostic.setloclist()", opts) - - vim.api.nvim_buf_set_keymap( - bufnr, + vim.keymap.set( "n", "td", "lua require 'telescope.builtin'.diagnostics()", opts ) - vim.api.nvim_buf_set_keymap( - bufnr, + vim.keymap.set( "n", "tr", "lua require 'telescope.builtin'.lsp_references()", @@ -52,9 +50,9 @@ if not status_ok then end local client_capabilities = vim.lsp.protocol.make_client_capabilities() -local capabilities = cmp_nvim_lsp.default_capabilities(client_capabilities) -capabilities.offsetEncoding = { "utf-8", "utf-16" } -capabilities.textDocument.completion.editsNearCursor = true +-- local capabilities = cmp_nvim_lsp.default_capabilities(client_capabilities) +-- capabilities.textDocument.completion.editsNearCursor = true +-- table.remove(capabilities, capabilities.offsetEncoding) ---@brief --- @@ -89,35 +87,34 @@ local function switch_source_header(bufnr) end, bufnr) end -local function symbol_info() - local bufnr = vim.api.nvim_get_current_buf() - local clangd_client = vim.lsp.get_clients({ bufnr = bufnr, name = 'clangd' })[1] - if not clangd_client or not clangd_client.supports_method 'textDocument/symbolInfo' then - return vim.notify('Clangd client not found', vim.log.levels.ERROR) - end - local win = vim.api.nvim_get_current_win() - local params = vim.lsp.util.make_position_params(win, clangd_client.offset_encoding) - clangd_client.request('textDocument/symbolInfo', params, function(err, res) - if err or #res == 0 then - -- Clangd always returns an error, there is not reason to parse it - return - end - local container = string.format('container: %s', res[1].containerName) ---@type string - local name = string.format('name: %s', res[1].name) ---@type string - vim.lsp.util.open_floating_preview({ name, container }, '', { - height = 2, - width = math.max(string.len(name), string.len(container)), - focusable = false, - focus = false, - border = 'single', - title = 'Symbol Info', - }) - end, bufnr) -end - +-- local function symbol_info() +-- local bufnr = vim.api.nvim_get_current_buf() +-- local clangd_client = vim.lsp.get_clients({ bufnr = bufnr, name = 'clangd' })[1] +-- if not clangd_client or not clangd_client.supports_method 'textDocument/symbolInfo' then +-- return vim.notify('Clangd client not found', vim.log.levels.ERROR) +-- end +-- local win = vim.api.nvim_get_current_win() +-- local params = vim.lsp.util.make_position_params(win, clangd_client.offset_encoding) +-- clangd_client.request('textDocument/symbolInfo', params, function(err, res) +-- if err or #res == 0 then +-- -- Clangd always returns an error, there is not reason to parse it +-- return +-- end +-- local container = string.format('container: %s', res[1].containerName) ---@type string +-- local name = string.format('name: %s', res[1].name) ---@type string +-- vim.lsp.util.open_floating_preview({ name, container }, '', { +-- height = 2, +-- width = math.max(string.len(name), string.len(container)), +-- focusable = false, +-- focus = false, +-- border = 'single', +-- title = 'Symbol Info', +-- }) +-- end, bufnr) +-- end return { - cmd = { 'clangd' }, - filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda', 'proto' }, + cmd = { "/home/light/dev/clangd/clangd_snapshot_20250928/bin/clangd", }, + filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda', 'proto', }, root_markers = { '.clangd', '.clang-tidy', @@ -127,11 +124,13 @@ return { 'configure.ac', -- AutoTools '.git', }, - capabilities = capabilities, + capabilities = client_capabilities, on_attach = function(client, bufnr) + vim.notify("ON ATTACH") lsp_keymaps(bufnr) lsp_highlight_document(client) + local augroup = vim.api.nvim_create_augroup('LspFormatting', { clear = true }) vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) vim.api.nvim_create_autocmd("BufWritePre", { group = augroup, @@ -145,8 +144,8 @@ return { switch_source_header(0) end, { desc = 'Switch between source/header' }) - vim.api.nvim_buf_create_user_command(0, 'LspClangdShowSymbolInfo', function() - symbol_info() - end, { desc = 'Show symbol info' }) + -- vim.api.nvim_buf_create_user_command(0, 'LspClangdShowSymbolInfo', function() + -- symbol_info() + -- end, { desc = 'Show symbol info' }) end, } diff --git a/lina/nvim/lua/lsp/cmake.lua b/lina/nvim/lua/lsp/cmake.lua new file mode 100644 index 0000000..3353473 --- /dev/null +++ b/lina/nvim/lua/lsp/cmake.lua @@ -0,0 +1,95 @@ +local function lsp_highlight_document(client) + if client.server_capabilities.document_highlight then + vim.api.nvim_create_augroup("lsp_document_highlight", { clear = true }) + + vim.api.nvim_create_autocmd("CursorHold", { + group = "lsp_document_highlight", + buffer = 0, + callback = function() + vim.lsp.buf.document_highlight() + end, + }) + + vim.api.nvim_create_autocmd("CursorMoved", { + group = "lsp_document_highlight", + buffer = 0, + callback = function() + vim.lsp.buf.clear_references() + end, + }) + end +end + +local function lsp_keymaps(bufnr) + local opts = { noremap = true, silent = true } + + vim.api.nvim_buf_set_keymap(bufnr, "n", "gd", "lua vim.lsp.buf.definition()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gD", "lua vim.lsp.buf.declaration()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gi", "lua vim.lsp.buf.implementation()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "K", "lua vim.lsp.buf.hover()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "", "lua vim.lsp.buf.signature_help()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "gr", "lua vim.lsp.buf.references()", opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "[d", 'lua vim.diagnostic.goto_prev({border="rounded"})', opts) + vim.api.nvim_buf_set_keymap(bufnr, "n", "]d", 'lua vim.diagnostic.goto_next({border="rounded"})', opts) + + vim.api.nvim_buf_set_keymap(bufnr, "n", "lr", "lua vim.lsp.buf.rename()", opts) + + vim.api.nvim_buf_set_keymap(bufnr, "n", "q", "lua vim.diagnostic.setloclist()", opts) + + vim.api.nvim_buf_set_keymap( + bufnr, + "n", + "td", + "lua require 'telescope.builtin'.diagnostics()", + opts + ) + vim.api.nvim_buf_set_keymap( + bufnr, + "n", + "tr", + "lua require 'telescope.builtin'.lsp_references()", + opts + ) +end + +local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp") +if not status_ok then + print("Failed to require cmp_nvim_lsp") + return +end + +local client_capabilities = vim.lsp.protocol.make_client_capabilities() +local capabilities = cmp_nvim_lsp.default_capabilities(client_capabilities) +local util = require 'lspconfig.util' +return { + default_config = { + cmd = { 'cmake-language-server' }, + filetypes = { 'cmake' }, + root_dir = function(fname) + return util.root_pattern('CMakePresets.json', 'CTestConfig.cmake', '.git', 'build', 'cmake')(fname) + end, + single_file_support = true, + init_options = { + buildDirectory = 'build', + }, + }, + docs = { + description = [[ +https://github.com/regen100/cmake-language-server + +CMake LSP Implementation +]], + }, +} + + + + + + + + + + + + diff --git a/lina/nvim/lsp/cssls.lua b/lina/nvim/lua/lsp/cssls.lua similarity index 100% rename from lina/nvim/lsp/cssls.lua rename to lina/nvim/lua/lsp/cssls.lua diff --git a/lina/nvim/lsp/eslint.lua b/lina/nvim/lua/lsp/eslint.lua similarity index 100% rename from lina/nvim/lsp/eslint.lua rename to lina/nvim/lua/lsp/eslint.lua diff --git a/lina/nvim/lsp/lua_ls.lua b/lina/nvim/lua/lsp/lua_ls.lua similarity index 100% rename from lina/nvim/lsp/lua_ls.lua rename to lina/nvim/lua/lsp/lua_ls.lua diff --git a/lina/nvim/lsp/mdx_analyzer.lua b/lina/nvim/lua/lsp/mdx_analyzer.lua similarity index 100% rename from lina/nvim/lsp/mdx_analyzer.lua rename to lina/nvim/lua/lsp/mdx_analyzer.lua diff --git a/lina/nvim/lsp/pyright.lua b/lina/nvim/lua/lsp/pyright.lua similarity index 100% rename from lina/nvim/lsp/pyright.lua rename to lina/nvim/lua/lsp/pyright.lua diff --git a/lina/nvim/lsp/svelte.lua b/lina/nvim/lua/lsp/svelte.lua similarity index 100% rename from lina/nvim/lsp/svelte.lua rename to lina/nvim/lua/lsp/svelte.lua diff --git a/lina/nvim/lsp/tailwindcss.lua b/lina/nvim/lua/lsp/tailwindcss.lua similarity index 100% rename from lina/nvim/lsp/tailwindcss.lua rename to lina/nvim/lua/lsp/tailwindcss.lua diff --git a/lina/nvim/lsp/ts_ls.lua b/lina/nvim/lua/lsp/ts_ls.lua similarity index 100% rename from lina/nvim/lsp/ts_ls.lua rename to lina/nvim/lua/lsp/ts_ls.lua