diff --git a/lazy-lock.json b/lazy-lock.json index 76de5f0..d9f832f 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,6 +1,4 @@ { - "blink-cmp-avante": { "branch": "master", "commit": "ddefb8de3cb1286ab39e0ccec0f32a45d03391f2" }, - "blink-ripgrep.nvim": { "branch": "main", "commit": "bb081d7d828024be2814ccaccb9ee1d267be2987" }, "blink.cmp": { "branch": "main", "commit": "4f38ce99a472932d5776337f08f7a8180f1f571a" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "catppuccin": { "branch": "main", "commit": "1bf070129c0b6f77cc23f6a2212dcdc868308c52" }, @@ -24,6 +22,7 @@ "lazygit.nvim": { "branch": "main", "commit": "b9eae3badab982e71abab96d3ee1d258f0c07961" }, "llm.nvim": { "branch": "main", "commit": "0929c0a494b42b3df31c59dcd2f2663bda3730b4" }, "lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "d39a75bbce4b8aad5d627191ea915179c77c100f" }, "mason.nvim": { "branch": "main", "commit": "7c7318e8bae7e3536ef6b9e86b9e38e74f2e125e" }, "mini.nvim": { "branch": "stable", "commit": "0420076298c4457f200c2de468f65d080597a347" }, "multicursor.nvim": { "branch": "1.0", "commit": "0e00ce4c272e3191b5e07cab36bd49aa32fca675" }, @@ -32,7 +31,7 @@ "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, "nvim-dap": { "branch": "master", "commit": "8df427aeba0a06c6577dc3ab82de3076964e3b8d" }, - "nvim-lspconfig": { "branch": "master", "commit": "af4a9f5ce58763365999bfc558ddecd20d41f2b7" }, + "nvim-lspconfig": { "branch": "master", "commit": "61e5109c8cf24807e4ae29813a3a82b31821dd45" }, "nvim-notify": { "branch": "master", "commit": "b5825cf9ee881dd8e43309c93374ed5b87b7a896" }, "nvim-treesitter": { "branch": "master", "commit": "28d480e0624b259095e56f353ec911f9f2a0f404" }, "nvim-treesitter-context": { "branch": "master", "commit": "5c48b8ba1b0b7b25feb6e34e7eb293ea893aedc4" }, @@ -41,7 +40,6 @@ "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, "rainbow-delimiters.nvim": { "branch": "master", "commit": "55ad4fb76ab68460f700599b7449385f0c4e858e" }, - "render-markdown.nvim": { "branch": "main", "commit": "935c2c70c296d87ed1bcce9ce667c239c9c982b5" }, "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, "suda.vim": { "branch": "master", "commit": "9adda7d195222d4e2854efb2a88005a120296c47" }, "symbols-outline.nvim": { "branch": "master", "commit": "564ee65dfc9024bdde73a6621820866987cbb256" }, diff --git a/lua/lazy/plugins/blinkcmp.lua b/lua/lazy/plugins/blinkcmp.lua index 8c4c661..6c06352 100644 --- a/lua/lazy/plugins/blinkcmp.lua +++ b/lua/lazy/plugins/blinkcmp.lua @@ -2,8 +2,7 @@ return { "saghen/blink.cmp", dependencies = { "rafamadriz/friendly-snippets", - "Kaiser-Yang/blink-cmp-avante", - "mikavilpas/blink-ripgrep.nvim", + -- "Kaiser-Yang/blincmp-avante", }, version = "*", ---@module 'blink.cmp' @@ -72,26 +71,15 @@ return { -- 已定义启用的提供程序的默认列表,以便您可以扩展它 sources = { default = { - "avante", "buffer", - "ripgrep", "lsp", "path", "snippets", + -- "avante", }, providers = { -- score_offset设置优先级数字越大优先级越高 - avante = { - module = "blink-cmp-avante", - name = "Avante", - score_offset = 6, - }, buffer = { score_offset = 5 }, - ripgrep = { - module = "blink-ripgrep", - name = "Ripgrep", - score_offset = 4, - }, path = { score_offset = 3 }, lsp = { score_offset = 2 }, snippets = { score_offset = 1 }, @@ -104,6 +92,11 @@ return { return 0 end, }, + -- avante = { + -- module = "blink-cmp-avante", + -- name = "Avante", + -- score_offset = 6, + -- }, }, }, }, diff --git a/lua/lazy/plugins/formatter.lua b/lua/lazy/plugins/formatter.lua index c885837..b1e1964 100644 --- a/lua/lazy/plugins/formatter.lua +++ b/lua/lazy/plugins/formatter.lua @@ -13,7 +13,6 @@ return { }, config = function(_, opts) -- 初始化 mason.nvim 和 conform.nvim - require("mason").setup() require("conform").setup(opts) -- 辅助函数:从指定文件类型的配置中提取所有工具名称(去重) diff --git a/lua/lazy/plugins/lspconfig.lua b/lua/lazy/plugins/lspconfig.lua index 52e53ac..41ee88e 100644 --- a/lua/lazy/plugins/lspconfig.lua +++ b/lua/lazy/plugins/lspconfig.lua @@ -1,91 +1,84 @@ return { "neovim/nvim-lspconfig", dependencies = { - { "saghen/blink.cmp" }, { "williamboman/mason.nvim" }, - { - "MysticalDevil/inlay-hints.nvim", - event = "LspAttach", - config = function() - require("inlay-hints").setup() - end, - }, + { "mason-org/mason-lspconfig.nvim" }, + { "MysticalDevil/inlay-hints.nvim", event = "LspAttach" }, }, config = function() - -- 打算启用的语言服务列表 - local servers = { - markdown = { "marksman" }, -- 任意标题aw打开code action可以开头生成目录;超链接可以链接到同一个git项目的其他markdown文件#指定标题h可以预览 - lua = { "lua_ls", "lua-language-server" }, -- Mason对应的安装名称是lua-language-server - rust = { "rust_analyzer", "rust-analyzer" }, - python = { "pylsp", "python-lsp-server" }, - -- golang={'gopls'}, - } - vim.keymap.set("n", "h", vim.lsp.buf.hover, opts) -- h显示提示文档 - vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) -- gd跳转到定义的位置 - vim.keymap.set("n", "go", vim.lsp.buf.type_definition, opts) -- go跳转到变量类型定义的位置 - vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) -- gr跳转到引用了对应变量或函数的位置 - vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) -- rn变量重命名 - vim.keymap.set("n", "aw", vim.lsp.buf.code_action, opts) -- aw可以在出现警告或错误的地方打开建议的修复方法 + -- 通过mason来自动安装语言服务器并启用 + require("mason").setup({}) + require("mason-lspconfig").setup({ + ensure_installed = { + "lua_ls", + "marksman", + "rust_analyzer", + "pylsp", + -- "gopls", + }, + automatic_enable = { + exclude = { + }, + }, + }) + + -- 快捷键的映射 + vim.keymap.set("n", "h", vim.lsp.buf.hover, opts) -- h显示提示文档 + vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) -- gd跳转到定义的位置 + vim.keymap.set("n", "go", vim.lsp.buf.type_definition, opts) -- go跳转到变量类型定义的位置 + vim.keymap.set("n", "gr", vim.lsp.buf.references, opts) -- gr跳转到引用了对应变量或函数的位置 + vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) -- rn变量重命名 + vim.keymap.set("n", "aw", vim.lsp.buf.code_action, opts) -- aw可以在出现警告或错误的地方打开建议的修复方法 vim.keymap.set("n", "d", vim.diagnostic.open_float, opts) -- d浮动窗口显示所在行警告或错误信息 - vim.keymap.set("n", "-", vim.diagnostic.goto_prev, opts) -- -跳转到上一处警告或错误的地方 - vim.keymap.set("n", "=", vim.diagnostic.goto_next, opts) -- +跳转到下一处警告或错误的地方 + vim.keymap.set("n", "-", vim.diagnostic.goto_prev, opts) -- -跳转到上一处警告或错误的地方 + vim.keymap.set("n", "=", vim.diagnostic.goto_next, opts) -- +跳转到下一处警告或错误的地方 -- vim.keymap.set({ 'n', 'x' }, 'f', function() vim.lsp.buf.format({ async = true }) end, opts) -- f进行代码格式化 - -- 通过mason来自动安装语言服务器,可以在对应的代码运行LspIstall来安装可用的语言服务器 - require("mason").setup({}) - local mr = require("mason-registry") - local capabilities = require("blink.cmp").get_lsp_capabilities() + -- 诊断信息的图标 + vim.diagnostic.config({ + signs = { + text = { + [vim.diagnostic.severity.ERROR] = "✘", + [vim.diagnostic.severity.WARN] = "▲", + [vim.diagnostic.severity.HINT] = "⚑", + [vim.diagnostic.severity.INFO] = "»", + }, + }, + }) - -- cmp相关配置 - local lspconfig = require("lspconfig") - for lang_group_name, server_names_arr in pairs(servers) do - -- 使用Mason批量安装语言服务器 - local mason_name = server_names_arr[2] or server_names_arr[1] -- Second for Mason, or fallback to first - local p = mr.get_package(mason_name) - if p then -- Check if package actually exists in mason-registry - if not p:is_installed() then - vim.notify( - "Installing Mason package: " .. mason_name .. " (for language: " .. lang_group_name .. ")", - vim.log.levels.INFO - ) - p:install() -- This is synchronous - vim.notify(mason_name .. " installed successfully.", vim.log.levels.INFO) - end - else - vim.notify("Mason package not found: " .. mason_name, vim.log.levels.WARN) - end - - -- 批量激活语言服务 - local lsp = server_names_arr[1] -- First element is for lspconfig - lspconfig[lsp].setup({ - capabilities = capabilities, -- Use the memoized capabilities - settings = { - ["gopls"] = { - hints = { -- gopls开启hints - rangeVariableTypes = true, - parameterNames = true, - constantValues = true, - assignVariableTypes = true, - compositeLiteralFields = true, - compositeLiteralTypes = true, - functionTypeParameters = true, - }, + -- 特定语言开启inlay-hints等自定义配置 + require("inlay-hints").setup() + vim.lsp.config("lua_ls", { + settings = { + ["Lua"] = { + hint = { -- Lua开启hints + enable = true, -- necessary }, - ["Lua"] = { - hint = { -- Lua开启hints - enable = true, -- necessary - }, - diagnostics = { - -- 忽略掉vim配置时一些全局变量语言服务器找不到的警告 - globals = { - "vim", - "require", - "opts", - }, + diagnostics = { + -- 忽略掉vim配置时一些全局变量语言服务器找不到的警告 + globals = { + "vim", + "require", + "opts", }, }, }, - }) - end + }, + }) + vim.lsp.config("gopls", { + settings = { + ["gopls"] = { + hints = { -- gopls开启hints + rangeVariableTypes = true, + parameterNames = true, + constantValues = true, + assignVariableTypes = true, + compositeLiteralFields = true, + compositeLiteralTypes = true, + functionTypeParameters = true, + }, + }, + }, + }) end, } diff --git a/snippets/lua.json b/snippets/lua.json index e550e8d..d05e5c9 100644 --- a/snippets/lua.json +++ b/snippets/lua.json @@ -12,7 +12,9 @@ "prefix": "return", "body": [ "return {", - "\t${1}", + "\t\"${1}\",", + "\tdependencies = {", + "\t},", "\tconfig = function()", "\t\t${2}", "\tend", diff --git a/snippets/python.json b/snippets/python.json index 3d23e1e..c026a11 100644 --- a/snippets/python.json +++ b/snippets/python.json @@ -1,4 +1,3 @@ - { "pri": { "prefix": "pri",