From cd9c91b9bc9fd0a89548887dfd80b2eca11b28a7 Mon Sep 17 00:00:00 2001 From: js0ny Date: Wed, 29 Oct 2025 04:55:00 +0000 Subject: [PATCH] nvim: qol on lualine, bufferline, use nixd as nix lsp --- home/dot_config/lazygit/empty_config.yml | 2 +- home/dot_config/nvim/lsp/luals.lua | 3 ++ home/dot_config/nvim/lsp/nil.lua | 32 ------------------- home/dot_config/nvim/lsp/nixd.lua | 22 +++++++++++++ .../nvim/lua/plugins/appearance.lua | 28 ++++++++-------- home/dot_config/nvim/lua/plugins/misc.lua | 6 ++-- .../nvim/lua/plugins/mod/blink-cmp.lua | 12 ++++++- .../nvim/lua/plugins/mod/bufferline.lua | 3 +- .../nvim/lua/plugins/mod/image-nvim.lua | 30 +++++++++-------- .../nvim/lua/plugins/mod/lualine/init.lua | 2 +- home/dot_config/zed/settings.json | 3 +- 11 files changed, 76 insertions(+), 67 deletions(-) delete mode 100644 home/dot_config/nvim/lsp/nil.lua create mode 100644 home/dot_config/nvim/lsp/nixd.lua diff --git a/home/dot_config/lazygit/empty_config.yml b/home/dot_config/lazygit/empty_config.yml index f3575a2..d2dd30f 100644 --- a/home/dot_config/lazygit/empty_config.yml +++ b/home/dot_config/lazygit/empty_config.yml @@ -1,3 +1,3 @@ git: paging: - - pager: delta --dark --paging=never + pager: delta --dark --paging=never diff --git a/home/dot_config/nvim/lsp/luals.lua b/home/dot_config/nvim/lsp/luals.lua index 6decef3..25dea0a 100644 --- a/home/dot_config/nvim/lsp/luals.lua +++ b/home/dot_config/nvim/lsp/luals.lua @@ -66,6 +66,9 @@ return { telemetry = { enable = false, }, + diagnostics = { + globals = { "vim" }, + }, -- Lua LS offers a code formatter -- Ref: https://github.com/LuaLS/lua-language-server/wiki/Formatter -- format = { diff --git a/home/dot_config/nvim/lsp/nil.lua b/home/dot_config/nvim/lsp/nil.lua deleted file mode 100644 index 7c99192..0000000 --- a/home/dot_config/nvim/lsp/nil.lua +++ /dev/null @@ -1,32 +0,0 @@ --- /lsp/nil.lua --- Nil LSP config - -vim.lsp.config("nil", { - cmd = { "nil" }, - root_markers = { - "flake.nix", - "flake.lock", - }, - filetypes = { - "nix", - }, - -- Global config options - settings = { - ["nil"] = { - formatting = { - command = { "alejandra" }, - }, - diagnostics = { - ignored = {}, - }, - nix = { - maxMemoryMB = 2560, - }, - flake = { - autoArchive = false, - autoEvalImputs = true, - nixpkgsInputName = "nixpkgs", - }, - }, - }, -}) diff --git a/home/dot_config/nvim/lsp/nixd.lua b/home/dot_config/nvim/lsp/nixd.lua new file mode 100644 index 0000000..00e3994 --- /dev/null +++ b/home/dot_config/nvim/lsp/nixd.lua @@ -0,0 +1,22 @@ +---@type vim.lsp.Config +return { + cmd = { "nixd" }, + root_markers = { "flake.nix", "flake.lock" }, + filetypes = { "nix" }, + settings = { + nixpkgs = { + expr = "import { }", + }, + formatting = { + command = { "alejandra" }, + }, + options = { + nixos = { + expr = '(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.k-on.options', + }, + home_manager = { + expr = '(builtins.getFlake ("git+file://" + toString ./.)).homeConfigurations."ruixi@k-on".options', + }, + }, + }, +} diff --git a/home/dot_config/nvim/lua/plugins/appearance.lua b/home/dot_config/nvim/lua/plugins/appearance.lua index 3f3a463..4ce104b 100644 --- a/home/dot_config/nvim/lua/plugins/appearance.lua +++ b/home/dot_config/nvim/lua/plugins/appearance.lua @@ -23,7 +23,7 @@ return { integrations = { -- lualine = true, "lualine", - "blink_cmp" + "blink_cmp", }, }, }, @@ -35,7 +35,7 @@ return { }, cmd = "FzfLua colorschemes", }, - { "rebelot/kanagawa.nvim", cmd = "FzfLua colorschemes" }, + { "rebelot/kanagawa.nvim", cmd = "FzfLua colorschemes" }, { -- Modern Status Line "nvim-lualine/lualine.nvim", dependencies = { "nvim-tree/nvim-web-devicons" }, @@ -76,25 +76,25 @@ return { -- }, -- }, { import = "plugins.mod.bufferline" }, -- Buffer Top Bar - { -- Git Blames, Changes + { -- Git Blames, Changes "lewis6991/gitsigns.nvim", opts = { current_line_blame = true, }, event = "BufReadPre", keys = { - { "gb", "Gitsigns blame", desc = "Blame file" }, - { "gd", "Gitsigns diffthis", desc = "Diff file" }, + { "gb", "Gitsigns blame", desc = "Blame file" }, + { "gd", "Gitsigns diffthis", desc = "Diff file" }, { "gB", "Gitsigns toggle_current_line_blame", desc = "Toggle line blame" }, - { "[g", "Gitsigns prev_hunk", desc = "Prev hunk" }, - { "]g", "Gitsigns next_hunk", desc = "Next hunk" }, + { "[g", "Gitsigns prev_hunk", desc = "Prev hunk" }, + { "]g", "Gitsigns next_hunk", desc = "Next hunk" }, }, }, - -- { -- Highlight and navigate between TODOs - -- "folke/todo-comments.nvim", - -- cmd = { "TodoTelescope" }, - -- event = "BufRead", - -- opts = {}, - -- dependencies = { "nvim-lua/plenary.nvim" }, - -- }, + { -- Highlight and navigate between TODOs + "folke/todo-comments.nvim", + cmd = { "TodoTelescope" }, + event = "BufRead", + opts = {}, + dependencies = { "nvim-lua/plenary.nvim" }, + }, } diff --git a/home/dot_config/nvim/lua/plugins/misc.lua b/home/dot_config/nvim/lua/plugins/misc.lua index 061ea06..ae4bc92 100644 --- a/home/dot_config/nvim/lua/plugins/misc.lua +++ b/home/dot_config/nvim/lua/plugins/misc.lua @@ -1,6 +1,6 @@ return { - { "nvim-lua/plenary.nvim", lazy = true }, - { "wakatime/vim-wakatime", lazy = false }, + { "nvim-lua/plenary.nvim", lazy = true }, + { "wakatime/vim-wakatime", lazy = false }, { import = "plugins.mod.toggleterm" }, { import = "plugins.mod.which-keys-nvim" }, -- { import = "plugins.mod.copilot-lua" }, @@ -23,6 +23,6 @@ return { -- configuration goes here }, }, - { import = "plugins.mod.image-nvim" }, + -- { import = "plugins.mod.image-nvim" }, { import = "plugins.mod.snacks-nvim" }, } diff --git a/home/dot_config/nvim/lua/plugins/mod/blink-cmp.lua b/home/dot_config/nvim/lua/plugins/mod/blink-cmp.lua index 9735dfb..b837f86 100644 --- a/home/dot_config/nvim/lua/plugins/mod/blink-cmp.lua +++ b/home/dot_config/nvim/lua/plugins/mod/blink-cmp.lua @@ -5,7 +5,7 @@ return { -- use a release tag to download pre-built binaries version = "*", - event = "InsertEnter", + event = { "InsertEnter", "CmdlineEnter" }, ---@module 'blink.cmp' ---@type blink.cmp.Config @@ -49,6 +49,16 @@ return { preset = "luasnip", }, + cmdline = { + keymap = { + preset = "cmdline", + [""] = { "fallback" }, + }, + completion = { + menu = { auto_show = true }, + }, + }, + sources = { default = { "lazydev", "lsp", "path", "snippets", "buffer" }, per_filetype = { diff --git a/home/dot_config/nvim/lua/plugins/mod/bufferline.lua b/home/dot_config/nvim/lua/plugins/mod/bufferline.lua index a284fd6..99787d7 100644 --- a/home/dot_config/nvim/lua/plugins/mod/bufferline.lua +++ b/home/dot_config/nvim/lua/plugins/mod/bufferline.lua @@ -21,6 +21,7 @@ return { { "b7", "BufferLineGotoBuffer 7", desc = "Switch to Buffer #7" }, { "b8", "BufferLineGotoBuffer 8", desc = "Switch to Buffer #8" }, { "b9", "BufferLineGotoBuffer 9", desc = "Switch to Buffer #9" }, + { "b#", "BufferLineGotoBuffer #", desc = "Switch to Buffer #" }, { "bb", "BufferLinePick", desc = "Quick Switch Buffers" }, { "bD", "BufferLineCloseOthers", desc = "Delete Other Buffers" }, { "bxx", "BufferLineCloseOthers", desc = "Delete Other Buffers" }, @@ -48,7 +49,7 @@ return { offsets = { { filetype = "NvimTree", text = "资源管理器", text_align = "center" }, }, - separator_style = "thin", + separator_style = "slope", }, highlights = get_highlight(), }, diff --git a/home/dot_config/nvim/lua/plugins/mod/image-nvim.lua b/home/dot_config/nvim/lua/plugins/mod/image-nvim.lua index 3926778..ac0fb6d 100644 --- a/home/dot_config/nvim/lua/plugins/mod/image-nvim.lua +++ b/home/dot_config/nvim/lua/plugins/mod/image-nvim.lua @@ -1,18 +1,22 @@ +-- I forgot why I keep this plugin, I use snacks.nvim currently + +return {} + -- 2025-03-03 -- If current session is not spawn by neovide, do not load image.nvim -- neovide did not support image viewer yet -- https://github.com/neovide/neovide/issues/2088 -- Disable on: Neovide, alacritty and windows -if vim.g.neovide then - return {} -elseif vim.env.TERM_PROGRAM == "alacritty" then - return {} -elseif vim.loop.os_uname().sysname:lower() == "windows_nt" then - return {} -else - return { - "3rd/image.nvim", - opts = {}, - event = "BufReadPre", - } -end +-- if vim.g.neovide then +-- return {} +-- elseif vim.env.TERM_PROGRAM == "alacritty" then +-- return {} +-- elseif vim.loop.os_uname().sysname:lower() == "windows_nt" then +-- return {} +-- else +-- return { +-- "3rd/image.nvim", +-- opts = {}, +-- event = "BufReadPre", +-- } +-- end diff --git a/home/dot_config/nvim/lua/plugins/mod/lualine/init.lua b/home/dot_config/nvim/lua/plugins/mod/lualine/init.lua index 2cf85d9..720559c 100644 --- a/home/dot_config/nvim/lua/plugins/mod/lualine/init.lua +++ b/home/dot_config/nvim/lua/plugins/mod/lualine/init.lua @@ -20,7 +20,7 @@ local config = { component_separators = { left = "", right = "" }, section_separators = { left = "", right = "" }, -- theme = "catppuccin", - theme = vim.g.colors_name, + theme = "auto", -- IDE-like Global Status globalstaus = true, }, diff --git a/home/dot_config/zed/settings.json b/home/dot_config/zed/settings.json index d07cf3a..4b7c15d 100644 --- a/home/dot_config/zed/settings.json +++ b/home/dot_config/zed/settings.json @@ -93,7 +93,8 @@ "Nix": { "formatter": { "external": { - "command": "alejandra" + "command": "alejandra", + "arguments": ["--quiet", "--"] } }, "completions": {