diff --git a/lazy-lock.json b/lazy-lock.json index d76ef19..fe613b3 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -3,18 +3,18 @@ "blink-cmp-avante": { "branch": "master", "commit": "ddefb8de3cb1286ab39e0ccec0f32a45d03391f2" }, "blink.cmp": { "branch": "main", "commit": "022521a8910a5543b0251b21c9e1a1e989745796" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "catppuccin": { "branch": "main", "commit": "8162a4bd9afb42837a655e404d1f937a87ba95e6" }, + "catppuccin": { "branch": "main", "commit": "56a9dfd1e05868cf3189369aad87242941396563" }, "cellular-automaton.nvim": { "branch": "main", "commit": "1606e9d5d04ff254023c3f3c62842d065708d6d3" }, "conform.nvim": { "branch": "master", "commit": "6feb2f28f9a9385e401857b21eeac3c1b66dd628" }, - "copilot.lua": { "branch": "master", "commit": "96e1bb1963f351700bf6737ef3695e8a0b90b12a" }, + "copilot.lua": { "branch": "master", "commit": "5f726c8e6bbcd7461ee0b870d4e6c8a973b55b64" }, "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, - "dropbar.nvim": { "branch": "master", "commit": "1cb3facee196a4ac7ee31df502d5dddeb77122e7" }, + "dropbar.nvim": { "branch": "master", "commit": "f7ecb0c3600ca1dc467c361e9af40f97289d7aad" }, "fittencode.nvim": { "branch": "master", "commit": "be2e6e8345bb76922fae37012af10c3cc51585b5" }, "flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" }, - "flutter-tools.nvim": { "branch": "main", "commit": "d5bb1dc3db78d7ab65dd8c5a6f32a38e383b9cb1" }, + "flutter-tools.nvim": { "branch": "main", "commit": "d1022db80dab2a565563993843e8c60b20a3df39" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "fzf-lua": { "branch": "main", "commit": "8adf950093af5361621cf52208d64995b1af78b5" }, - "gitsigns.nvim": { "branch": "main", "commit": "8b729e489f1475615dc6c9737da917b3bc163605" }, + "fzf-lua": { "branch": "main", "commit": "29e982dfc96a134fecc80853c8cb8324e43e574b" }, + "gitsigns.nvim": { "branch": "main", "commit": "8bdaccdb897945a3c99c1ad8df94db0ddf5c8790" }, "gtranslate.nvim": { "branch": "master", "commit": "a3ce65cd2ccda9c3198869fee53553d575aa547d" }, "img-clip.nvim": { "branch": "main", "commit": "08a02e14c8c0d42fa7a92c30a98fd04d6993b35d" }, "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, @@ -24,33 +24,35 @@ "kommentary": { "branch": "main", "commit": "d5a111a3bc4109a8f913a5863c9092b3b3801482" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazygit.nvim": { "branch": "main", "commit": "b9eae3badab982e71abab96d3ee1d258f0c07961" }, - "llm.nvim": { "branch": "main", "commit": "18013ee59b07230a755b28ab244dd46bcabd9ca1" }, + "llm.nvim": { "branch": "main", "commit": "dc5d729a6482f38018f9a465b90a79420d139719" }, "lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "ce0e87c0be12e7c48296a7513e90430e3eac7f24" }, - "mason.nvim": { "branch": "main", "commit": "9eaedb864cdadc29c6eb7d761a6c0d8aee26c91b" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "67da97f8c2fd12d05427bb485ce07ee6418e0a51" }, + "mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" }, "mini.nvim": { "branch": "stable", "commit": "94cae4660a8b2d95dbbd56e1fbc6fcfa2716d152" }, - "mini.pick": { "branch": "main", "commit": "fa1e449e1080bf7aa9b2890ee186d23b1b4e1287" }, - "multicursor.nvim": { "branch": "1.0", "commit": "cecbb3028ba166578eb8620ce885e2362d112ee0" }, + "mini.pick": { "branch": "main", "commit": "c272dc61cd0326b344761cd9d031bfcdef1978c7" }, + "multicursor.nvim": { "branch": "1.0", "commit": "9eedebdd395bbbc4711081e33b0606c079e054c3" }, "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, - "nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" }, + "nui.nvim": { "branch": "main", "commit": "7cd18e73cfbd70e1546931b7268b3eebaeff9391" }, "nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-dap": { "branch": "master", "commit": "f80de8ad944b1c464941cfcede597ab859060359" }, - "nvim-lspconfig": { "branch": "master", "commit": "39dc331899521bbb4e102b614b71ab37464f8326" }, + "nvim-dap": { "branch": "master", "commit": "b0f983507e3702f073bfe1516846e58b56d4e42f" }, + "nvim-dap-view": { "branch": "main", "commit": "186c9580895f8552a6e0eff8087e643a824dac2d" }, + "nvim-lspconfig": { "branch": "master", "commit": "b8e7957bde4cbb3cb25a13a62548f7c273b026e9" }, "nvim-notify": { "branch": "master", "commit": "b5825cf9ee881dd8e43309c93374ed5b87b7a896" }, - "nvim-treesitter": { "branch": "master", "commit": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" }, - "nvim-treesitter-context": { "branch": "master", "commit": "4976d8b90401cba9b85f6861e4e5a6edef2f2086" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-treesitter-context": { "branch": "master", "commit": "ed1cf48d5af252248c55f50b9427e8ce883a2c6b" }, "nvim-ufo": { "branch": "main", "commit": "3c7a3570e9c9dc198a2ad4491b0b0e51c4d4ba08" }, "nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" }, + "peek.nvim": { "branch": "master", "commit": "a6f341dc2fca621bf3c9272360b9a62bc92bb1c0" }, "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": "dac01bd6660af337613e8cfcb23a4aec5d3c0e38" }, + "render-markdown.nvim": { "branch": "main", "commit": "048d68028d09ad2e134e7059032b8192a85180b9" }, "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, "suda.vim": { "branch": "master", "commit": "9adda7d195222d4e2854efb2a88005a120296c47" }, "symbols-outline.nvim": { "branch": "master", "commit": "564ee65dfc9024bdde73a6621820866987cbb256" }, "tabular": { "branch": "master", "commit": "12437cd1b53488e24936ec4b091c9324cafee311" }, "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }, - "yazi.nvim": { "branch": "main", "commit": "43abf4ea13156aa0a2a49f1978ee0d9b4c94088f" } + "yazi.nvim": { "branch": "main", "commit": "59c22d1a8bcb3d00a7115ef7f2d59b90cf989ab3" } } diff --git a/lua/core/keymap.lua b/lua/core/keymap.lua index fe01272..1c47cb4 100644 --- a/lua/core/keymap.lua +++ b/lua/core/keymap.lua @@ -30,7 +30,7 @@ mapcmd("", "nohlsearch") -- 保存和退出 mapkey("", "S", ":wall") -mapkey("", "Q", ":q") +mapkey("", "Q", ":qall") -- 撤销与反撤销 mapkey("", "l", "u") @@ -209,7 +209,7 @@ vim.cmd([[ au filetype dart noremap r :wall:Telescope flutter commands au filetype python noremap r :wall:set splitbelow:sp:term uv run % au filetype go noremap r :wall:set splitbelow:sp:term go run % - au filetype markdown noremap r :MarkdownPreview + au filetype markdown noremap r :PeekClose:PeekOpen au filetype rust noremap r :wall:set splitbelow:sp:term cargo run ]]) diff --git a/lua/lazy/index.lua b/lua/lazy/index.lua index 7bf7000..f297c6f 100644 --- a/lua/lazy/index.lua +++ b/lua/lazy/index.lua @@ -17,12 +17,12 @@ vim.opt.rtp:prepend(vim.env.LAZY or lazypath) -- 启动Lazy插件管理快捷键 vim.keymap.set("n", "l", ":Lazy", { noremap = true }) require("lazy").setup({ - -- 用Neovim打开kitty滚动缓冲 - require("lazy.plugins.kittyscroll"), -- 自动补全插件 require("lazy.plugins.blinkcmp"), -- lsp配置,全局的错误和警告提示,修复建议,重命名变量,格式化代码等等 require("lazy.plugins.lspconfig"), + -- neovim中调试代码debug dap + require("lazy.plugins.dap"), -- 格式化代码 require("lazy.plugins.formatter"), -- ai编程助手Fitten Code @@ -31,12 +31,14 @@ require("lazy").setup({ require("lazy.plugins.llm"), -- command line浮动弹窗noice require("lazy.plugins.cmdline"), - -- 代码函数名称浏览时固定,`[c`可以跳转到上下文 + -- 代码函数名称浏览时固定 require("lazy.plugins.stickyScroll"), -- fold折叠,根据treesitter来折叠,可以兼容我设置的o快捷键 require("lazy.plugins.fold"), -- 缩进彩虹和高亮 require("lazy.plugins.indentrainbow"), + -- rainbow彩虹括号 + require("lazy.plugins.rainbowbracket"), -- 粘贴图片 require("lazy.plugins.imgclip"), -- 图片预览 @@ -49,8 +51,6 @@ require("lazy").setup({ require("lazy.plugins.outline"), -- treesitter语法高亮 require("lazy.plugins.treesitter"), - -- rainbow彩虹括号 - require("lazy.plugins.rainbowbracket"), -- tabular,使用:Tab /=来格式化等号之类,特使符号要转义如:Tabularize /\/ require("lazy.plugins.tabular"), -- surround,各种对字符的包裹{} [] '' @@ -85,13 +85,17 @@ require("lazy").setup({ require("lazy.plugins.multicursor"), -- which-key使用多个字母快捷键停留时会提示 require("lazy.plugins.whichkey"), - -- 顶部的winbar,可以鼠标点击 + -- 顶部的winbar,可以鼠标点击,;选择,`[c`可以跳转到上下文开头,`]c`选择同级上下文 require("lazy.plugins.winbar"), + -- 用Neovim打开kitty滚动缓冲 + require("lazy.plugins.kittyscroll"), + -- 像cursor一样使用neovim + require("lazy.plugins.avante"), + -- mcp server插件 + -- require("lazy.plugins.mcphub"), -- 用于改进在 Neovim 中查看 Markdown 文件的插件 -- require("lazy.plugins.markview"), -- require("lazy.plugins.render-markdown"), - -- mcp server插件 - -- require("lazy.plugins.mcphub"), - -- 像cursor一样使用neovim - require("lazy.plugins.avante"), + -- 在浏览器中查看markdown preview + require("lazy.plugins.markdownpreview"), }) diff --git a/lua/lazy/plugins/blinkcmp.lua b/lua/lazy/plugins/blinkcmp.lua index a76e30d..d02d71a 100644 --- a/lua/lazy/plugins/blinkcmp.lua +++ b/lua/lazy/plugins/blinkcmp.lua @@ -1,5 +1,6 @@ return { "saghen/blink.cmp", + enabled = not vim.g.vscode, -- 在vscode-neovim禁用 dependencies = { "rafamadriz/friendly-snippets", "Kaiser-Yang/blink-cmp-avante", @@ -49,6 +50,12 @@ return { documentation = { auto_show = true, auto_show_delay_ms = 500 }, -- 不预选第一个项目,选中后自动插入该项目文本 list = { selection = { preselect = false, auto_insert = true } }, + -- 针对菜单的外观配置 + -- menu = { + -- min_width = 15, + -- max_height = 10, + -- border = "single", -- Defaults to `vim.o.winborder` on nvim 0.11+ + -- }, }, -- 指定文件类型启用/禁用 enabled = function() diff --git a/lua/lazy/plugins/bottombar.lua b/lua/lazy/plugins/bottombar.lua index 2a6b201..9a57f49 100644 --- a/lua/lazy/plugins/bottombar.lua +++ b/lua/lazy/plugins/bottombar.lua @@ -18,7 +18,7 @@ return { lualine_b = { "branch", "diff", "diagnostics" }, lualine_c = { "lsp_status" }, lualine_x = {}, - lualine_y = { "encoding", "fileformat", "progress" }, + lualine_y = { "encoding", "progress" }, lualine_z = { "location" }, }, }, diff --git a/lua/lazy/plugins/dap.lua b/lua/lazy/plugins/dap.lua new file mode 100644 index 0000000..58b4e94 --- /dev/null +++ b/lua/lazy/plugins/dap.lua @@ -0,0 +1,125 @@ +return { + "mfussenegger/nvim-dap", + dependencies = { + { + "igorlfs/nvim-dap-view", + opts = { + switchbuf = "useopen,uselast,newtab", + -- 开启控制栏按钮 + winbar = { + controls = { + enabled = true, + }, + }, + }, + }, + }, + config = function() + vim.keymap.set("n", "", function() + require("dap").continue() + end) + vim.keymap.set("n", "", function() + require("dap").step_over() + end) + vim.keymap.set("n", "", function() + require("dap").step_into() + end) + vim.keymap.set("n", "", function() + require("dap").step_out() + end) + vim.keymap.set("n", "b", function() + require("dap").toggle_breakpoint() + end) + vim.keymap.set("n", "B", function() + require("dap").set_breakpoint() + end) + vim.keymap.set("n", "lp", function() + require("dap").set_breakpoint(nil, nil, vim.fn.input("Log point message: ")) + end) + vim.keymap.set("n", "dr", function() + require("dap").repl.open() + end) + vim.keymap.set("n", "dl", function() + require("dap").run_last() + end) + vim.keymap.set({ "n", "v" }, "dh", function() + require("dap.ui.widgets").hover() + end) + vim.keymap.set({ "n", "v" }, "dp", function() + require("dap.ui.widgets").preview() + end) + vim.keymap.set("n", "df", function() + local widgets = require("dap.ui.widgets") + widgets.centered_float(widgets.frames) + end) + vim.keymap.set("n", "ds", function() + local widgets = require("dap.ui.widgets") + widgets.centered_float(widgets.scopes) + end) + -- 自动切换和关闭 + local dap, dv = require("dap"), require("dap-view") + dap.listeners.before.attach["dap-view-config"] = function() + dv.open() + end + dap.listeners.before.launch["dap-view-config"] = function() + dv.open() + end + dap.listeners.before.event_terminated["dap-view-config"] = function() + dv.close() + end + dap.listeners.before.event_exited["dap-view-config"] = function() + dv.close() + end + -- 在 nvim-dap-view 文件类型中将 q 映射为 quit + vim.api.nvim_create_autocmd({ "FileType" }, { + pattern = { "dap-view", "dap-view-term", "dap-repl" }, -- dap-repl is set by `nvim-dap` + callback = function(evt) + vim.keymap.set("n", "q", "q", { buffer = evt.buf }) + end, + }) + -- 如果没有窗口包含缓冲区,请创建一个新选项卡 + dap.defaults.fallback.switchbuf = "usevisible,usetab,newtab" + dap.adapters.gdb = { + type = "executable", + command = "gdb", + args = { "--interpreter=dap", "--eval-command", "set print pretty on" }, + } + dap.configurations.c = { + { + name = "Launch", + type = "gdb", + request = "launch", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + }, + { + name = "Select and attach to process", + type = "gdb", + request = "attach", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + pid = function() + local name = vim.fn.input("Executable name (filter): ") + return require("dap.utils").pick_process({ filter = name }) + end, + cwd = "${workspaceFolder}", + }, + { + name = "Attach to gdbserver :1234", + type = "gdb", + request = "attach", + target = "localhost:1234", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + cwd = "${workspaceFolder}", + }, + } + dap.configurations.cpp = dap.configurations.c + dap.configurations.rust = dap.configurations.c + end, +} diff --git a/lua/lazy/plugins/filemanager.lua b/lua/lazy/plugins/filemanager.lua index 9199cd1..017970a 100644 --- a/lua/lazy/plugins/filemanager.lua +++ b/lua/lazy/plugins/filemanager.lua @@ -1,9 +1,20 @@ -- === -- === explorer tree 文件列表 -- === + +-- 判断当前环境是否是vscode映射不同命令打开yazi +if vim.g.vscode then + -- VSCode Neovim environment + local vscode = require("vscode") + vim.keymap.set("n", "tt", function() + vscode.action("yazi-vscode.toggle") + end, { noremap = true, silent = true, desc = "Toggle Yazi (VSCode)" }) +end + ---@type LazySpec return { "mikavilpas/yazi.nvim", + enabled = not vim.g.vscode, event = "VeryLazy", dependencies = { -- check the installation instructions at @@ -34,17 +45,3 @@ return { vim.g.loaded_netrwPlugin = 1 end, } --- return { --- "rolv-apneseth/tfm.nvim", --- event = "VeryLazy", --- opts = { --- enable_cmds = true, --- }, --- keys = { --- { --- "tt", --- ":Tfm", --- desc = "TFM - new tab", --- }, --- }, --- } diff --git a/lua/lazy/plugins/indentrainbow.lua b/lua/lazy/plugins/indentrainbow.lua index 8be0465..76fd817 100644 --- a/lua/lazy/plugins/indentrainbow.lua +++ b/lua/lazy/plugins/indentrainbow.lua @@ -6,25 +6,24 @@ return { config = function() opts = {} local highlight = { + "RainbowBlue", + "RainbowViolet", "RainbowRed", "RainbowYellow", - "RainbowBlue", - "RainbowOrange", "RainbowGreen", - "RainbowViolet", + "RainbowOrange", "RainbowCyan", } - local hooks = require("ibl.hooks") -- create the highlight groups in the highlight setup hook, so they are reset -- every time the colorscheme changes hooks.register(hooks.type.HIGHLIGHT_SETUP, function() - vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#61AFEF" }) - vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#C678DD" }) - vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#E06C75" }) + vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" }) + vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" }) + vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" }) vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" }) vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" }) - vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#E5C07B" }) + vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" }) vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" }) end) diff --git a/lua/lazy/plugins/markdownpreview.lua b/lua/lazy/plugins/markdownpreview.lua new file mode 100644 index 0000000..fc68bde --- /dev/null +++ b/lua/lazy/plugins/markdownpreview.lua @@ -0,0 +1,14 @@ +return { + "cap153/peek.nvim", + event = { "VeryLazy" }, + build = "deno task --quiet build:fast", + config = function() + require("peek").setup({ + port = 9000, + -- app = { "firefox-esr", "-private-window" }, + app = { "google-chrome-stable", "--app=http://localhost:9000/?theme=dark", "--incognito" }, + }) + vim.api.nvim_create_user_command("PeekOpen", require("peek").open, {}) + vim.api.nvim_create_user_command("PeekClose", require("peek").close, {}) + end, +} diff --git a/lua/lazy/plugins/outline.lua b/lua/lazy/plugins/outline.lua index b41a75a..0d7b036 100644 --- a/lua/lazy/plugins/outline.lua +++ b/lua/lazy/plugins/outline.lua @@ -8,6 +8,7 @@ map:cmd('v', 'SymbolsOutline') return { 'simrat39/symbols-outline.nvim', + enabled = not vim.g.vscode, config = function() require("symbols-outline").setup { width = 20, diff --git a/lua/lazy/plugins/rainbowbracket.lua b/lua/lazy/plugins/rainbowbracket.lua index a5db6ee..963cba7 100644 --- a/lua/lazy/plugins/rainbowbracket.lua +++ b/lua/lazy/plugins/rainbowbracket.lua @@ -5,6 +5,16 @@ return { "HiPhish/rainbow-delimiters.nvim", config = function() - require("rainbow-delimiters.setup").setup({}) + require("rainbow-delimiters.setup").setup({ + highlight = { + "RainbowDelimiterBlue", + "RainbowDelimiterViolet", + "RainbowDelimiterRed", + "RainbowDelimiterYellow", + "RainbowDelimiterGreen", + "RainbowDelimiterOrange", + "RainbowDelimiterCyan", + }, + }) end, } diff --git a/lua/lazy/plugins/stickyScroll.lua b/lua/lazy/plugins/stickyScroll.lua index deef31b..e759a2f 100644 --- a/lua/lazy/plugins/stickyScroll.lua +++ b/lua/lazy/plugins/stickyScroll.lua @@ -1,9 +1,10 @@ return { "nvim-treesitter/nvim-treesitter-context", config = function() - vim.keymap.set("n", "[c", function() - require("treesitter-context").go_to_context(vim.v.count1) - end, { silent = true }) + -- 前往上下文开始处,winbar相同快捷键更细致 + -- vim.keymap.set("n", "[c", function() + -- require("treesitter-context").go_to_context(vim.v.count1) + -- end, { silent = true }) require'treesitter-context'.setup{ enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit.