From 50018aa0305bd2c5cf91431c128895fc0121d2fa Mon Sep 17 00:00:00 2001 From: triethyl Date: Sat, 19 Jul 2025 10:19:11 -0400 Subject: working on custom neovim --- pkgs/custom-neovim/config/init.lua | 9 +++-- pkgs/custom-neovim/config/lua/autocommands.lua | 30 +--------------- pkgs/custom-neovim/config/lua/colorscheme.lua | 5 ++- pkgs/custom-neovim/config/lua/mappings.lua | 42 +++++++++++++--------- pkgs/custom-neovim/config/lua/neovide.lua | 5 +-- pkgs/custom-neovim/config/lua/options.lua | 3 -- .../custom-neovim/config/lua/plugins/lspconfig.lua | 40 ++++++++++----------- pkgs/custom-neovim/config/lua/plugins/lualine.lua | 2 +- .../custom-neovim/config/lua/plugins/mini/clue.lua | 9 +++++ pkgs/custom-neovim/config/lua/plugins/snacks.lua | 6 ++++ pkgs/custom-neovim/config/lua/plugins/tabby.lua | 2 +- pkgs/custom-neovim/config/lua/utilities.lua | 37 +++++++++++-------- 12 files changed, 96 insertions(+), 94 deletions(-) (limited to 'pkgs/custom-neovim/config') diff --git a/pkgs/custom-neovim/config/init.lua b/pkgs/custom-neovim/config/init.lua index 6bca6e5..b30173b 100644 --- a/pkgs/custom-neovim/config/init.lua +++ b/pkgs/custom-neovim/config/init.lua @@ -7,23 +7,22 @@ require("options") require("autocommands") require("colorscheme") require("neovide") +require("mappings") -- Require plugin configs. -- UI Plugins: require("plugins.lualine") require("plugins.tabby") -require("plugins.which-key") require("plugins.snacks") --- require("plugins.alpha") require("plugins.mini.clue") require("plugins.mini.indentscope") require("plugins.mini.notify") +require("plugins.treesitter") -- LSP Plugins: require("plugins.lspconfig") +require("plugins.actions-preview") -- Misc Plugins: require("plugins.presence") - --- Require mappings last. -require("mappings") +require("hardtime").setup() diff --git a/pkgs/custom-neovim/config/lua/autocommands.lua b/pkgs/custom-neovim/config/lua/autocommands.lua index 48a976e..5780482 100644 --- a/pkgs/custom-neovim/config/lua/autocommands.lua +++ b/pkgs/custom-neovim/config/lua/autocommands.lua @@ -1,34 +1,6 @@ -- Autocommands --- Use relative line number in normal mode and absolute in insert mode --- vim.opt.number = true --- local numbertoggle = vim.api.nvim_create_augroup("numbertoggle", {}) --- vim.api.nvim_create_autocmd( --- { "BufEnter", "FocusGained", "InsertLeave", "WinEnter", "CmdlineLeave" }, --- { --- group = numbertoggle, --- callback = function() --- if vim.opt.number and vim.api.nvim_get_mode() ~= "i" then --- vim.opt.relativenumber = true --- end --- end, --- } --- ) - --- vim.api.nvim_create_autocmd( --- { "BufLeave", "FocusLost", "InsertEnter", "WinLeave", "CmdlineEnter" }, --- { --- group = numbertoggle, --- callback = function() --- if vim.opt.number then --- vim.opt.relativenumber = false --- vim.cmd("redraw") --- end --- end, --- } --- ) - - -- start terminal in insert mode +-- start terminal in insert mode vim.api.nvim_create_autocmd("TermOpen", { callback = function() vim.cmd "startinsert!" diff --git a/pkgs/custom-neovim/config/lua/colorscheme.lua b/pkgs/custom-neovim/config/lua/colorscheme.lua index 03f0ad3..d15039c 100644 --- a/pkgs/custom-neovim/config/lua/colorscheme.lua +++ b/pkgs/custom-neovim/config/lua/colorscheme.lua @@ -1,9 +1,12 @@ -- Set colorscheme. -vim.cmd.colorscheme("oxocarbon") +vim.cmd.colorscheme("carbonfox") -- Set boolean to use patches. local correct_borderless_windows = true +-- Enable good colors. +vim.o.termguicolors = true + -- Patches. local link_highlight = function(first_highlight, second_highlight) vim.cmd.highlight {bang = true, "link", first_highlight, second_highlight} diff --git a/pkgs/custom-neovim/config/lua/mappings.lua b/pkgs/custom-neovim/config/lua/mappings.lua index dcad4b2..39f2bd3 100644 --- a/pkgs/custom-neovim/config/lua/mappings.lua +++ b/pkgs/custom-neovim/config/lua/mappings.lua @@ -1,21 +1,22 @@ -- Keymap function. -local mapkey = utils.mapkey +local mapkey = Utils.mapkey -- Map the leader key. vim.g.mapleader = ' ' -- Pickers -mapkey("n", "f", "Open file picker", Snacks.picker.files) -mapkey("n", "c", "Open recent file picker", Snacks.picker.recent) -mapkey("n", "e", "Open file explorer", Snacks.picker.explorer) -mapkey("n", "b", "Open buffer picker", Snacks.picker.buffers) -mapkey("n", "B", "Open buffer live grep picker", Snacks.picker.grep_buffers) -mapkey("n", "y", "Open clipboard history picker", Snacks.picker.cliphist) -mapkey("n", "/", "Open live grep picker", Snacks.picker.grep) -mapkey("n", "\\", "Open command palette", Snacks.picker.commands) -mapkey("n", "?", "Open help picker", Snacks.picker.help) -mapkey("n", "p", "Open picker picker", Snacks.picker.pickers) -mapkey("n", "'", "Open last picker", Snacks.picker.resume) +mapkey("n", "f", "Open file picker", ":lua Snacks.picker.files()") +mapkey("n", "l", "Open recent file picker", ":lua Snacks.picker.recent()") +mapkey("n", "e", "Open file explorer", ":lua Snacks.picker.explorer()") +mapkey("n", "b", "Open buffer picker", ":lua Snacks.picker.buffers()") +mapkey("n", "B", "Open buffer live grep picker", ":lua Snacks.picker.grep_buffers()") +mapkey("n", "y", "Open clipboard history picker", ":lua Snacks.picker.cliphist()") +mapkey("n", "/", "Open live grep picker", ":lua Snacks.picker.grep()") +mapkey("n", "\\", "Open command palette", ":lua Snacks.picker.commands()") +mapkey("n", "?", "Open help picker", ":lua Snacks.picker.help()") +mapkey("n", "p", "Open picker picker", ":lua Snacks.picker.pickers()") +mapkey("n", "'", "Open last picker", ":lua Snacks.picker.resume()") +mapkey("n", "", "Open smart picker", ":lua Snacks.picker.smart()") -- Commenting. mapkey("n", "", "Comment line", ":norm gcc") @@ -30,7 +31,14 @@ mapkey("n", "tp", "Go to previous tab", ":tabprev") -- Sessions mapkey("n", "s", "Manage sessions", "") -mapkey("n", "ss", "Open session picker", ":SessionSelectss", "Open session picker", ":SessionSelect") + +-- Terminals +mapkey("n", "c", "Manage terminals", "") + +-- Git +mapkey("n", "g", "Manage git", "") +mapkey("n", "gg", "Open lazygit", ":lua Snacks.lazygit()") -- QOL Keys mapkey("t", "", "Exit terminal insert mode", "") @@ -45,7 +53,7 @@ mapkey({"n", "v"}, "j", "Go down visually", "gj") mapkey({"n", "v"}, "k", "Go up visually", "gk") -- Learn hjkl. -mapkey({"n", "v"}, "", "Correct the keypress", function() print("Try pressing h instead.") end) -mapkey({"n", "v"}, "", "Correct the keypress", function() print("Try pressing j instead.") end) -mapkey({"n", "v"}, "", "Correct the keypress", function() print("Try pressing k instead.") end) -mapkey({"n", "v"}, "", "Correct the keypress", function() print("Try pressing l instead.") end) +-- mapkey({"n", "v"}, "", "Correct the keypress", function() print("Try pressing h instead.") end) +-- mapkey({"n", "v"}, "", "Correct the keypress", function() print("Try pressing j instead.") end) +-- mapkey({"n", "v"}, "", "Correct the keypress", function() print("Try pressing k instead.") end) +-- mapkey({"n", "v"}, "", "Correct the keypress", function() print("Try pressing l instead.") end) diff --git a/pkgs/custom-neovim/config/lua/neovide.lua b/pkgs/custom-neovim/config/lua/neovide.lua index d088413..9d648c4 100644 --- a/pkgs/custom-neovim/config/lua/neovide.lua +++ b/pkgs/custom-neovim/config/lua/neovide.lua @@ -1,7 +1,8 @@ if vim.g.neovide then --- if false then vim.o.guifont = "CodeNewRoman Nerd Font:h12" - -- vim.g.neovide_scale_factor = 0.8 + vim.g.neovide_scale_factor = 0.8 + + vim.g.neovide_floating_shadow = false -- Zoom keymaps. local change_scale_factor = function(delta) diff --git a/pkgs/custom-neovim/config/lua/options.lua b/pkgs/custom-neovim/config/lua/options.lua index 8981dad..cd59941 100644 --- a/pkgs/custom-neovim/config/lua/options.lua +++ b/pkgs/custom-neovim/config/lua/options.lua @@ -40,6 +40,3 @@ vim.o.foldlevel = 99 -- Don't fold initially. vim.o.foldnestmax = 4 -- Don't fold if more than 4 folds deep. vim.o.foldtext = "" -- Color text in folds. --- Set Colorscheme -vim.cmd.colorscheme("oxocarbon") -vim.o.termguicolors = true diff --git a/pkgs/custom-neovim/config/lua/plugins/lspconfig.lua b/pkgs/custom-neovim/config/lua/plugins/lspconfig.lua index 445caee..850ebe5 100644 --- a/pkgs/custom-neovim/config/lua/plugins/lspconfig.lua +++ b/pkgs/custom-neovim/config/lua/plugins/lspconfig.lua @@ -21,33 +21,31 @@ vim.api.nvim_create_autocmd('LspAttach', { -- Buffer local mappings. -- See `:help vim.lsp.*` for documentation on any of the below functions - local keymap = function(mode, key, desc, action) - vim.keymap.set(mode, key, action, {noremap = true, silent = true, desc = desc}) - end + local mapkey = Utils.mapkey - keymap('n', 'gD', "Go to declaration", vim.lsp.buf.declaration) - keymap('n', 'gd', "Go to definition", vim.lsp.buf.definition) - keymap('n', 'gy', "Go to type definition", vim.lsp.buf.type_definition) - keymap('n', 'gi', "Go to implementation", vim.lsp.buf.implementation) - keymap('n', '', "Signature Help", vim.lsp.buf.signature_help) - keymap('i', '', "Signature Help", vim.lsp.buf.signature_help) - keymap('n', "o", "Manage LSP workspace", "") - keymap('n', 'oa', "Add Workspace Folder", vim.lsp.buf.add_workspace_folder) - keymap('n', 'or', "Remove Workspace Folder", vim.lsp.buf.remove_workspace_folder) - keymap('n', 'ol', "List Workspace Folders", function() + mapkey('n', 'gD', "Go to declaration", vim.lsp.buf.declaration) + mapkey('n', 'gd', "Go to definition", vim.lsp.buf.definition) + mapkey('n', 'gy', "Go to type definition", vim.lsp.buf.type_definition) + mapkey('n', 'gi', "Go to implementation", vim.lsp.buf.implementation) + mapkey('n', '', "Signature Help", vim.lsp.buf.signature_help) + mapkey('i', '', "Signature Help", vim.lsp.buf.signature_help) + mapkey('n', "o", "Manage LSP workspace", "") + mapkey('n', 'oa', "Add Workspace Folder", vim.lsp.buf.add_workspace_folder) + mapkey('n', 'or', "Remove Workspace Folder", vim.lsp.buf.remove_workspace_folder) + mapkey('n', 'ol', "List Workspace Folders", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end) - keymap('n', 'r', "Rename Symbol", vim.lsp.buf.rename) - keymap("n", "s", "Open symbol picker", ":Telescope lsp_document_symbols") - keymap("n", "S", "Open workspace symbol picker", ":Telescope lsp_workspace_symbols") + mapkey('n', 'r', "Rename Symbol", vim.lsp.buf.rename) + mapkey("n", "s", "Open symbol picker", ":lua Snacks.picker.lsp_symbols()") + mapkey("n", "S", "Open workspace symbol picker", ":lua Snacks.picker.lsp_workspace_symbols()") -- LSP Pickers - keymap({'n', 'v'}, "a", "Perform code action", require("actions-preview").code_actions) - keymap("n", "D", "Open workspace diagnostic picker", ":Pick diagnostic") - keymap("n", "d", "Open diagnostic picker", [[:Pick diagnostic scope="current"]]) + mapkey({'n', 'v'}, "a", "Perform code action", require("actions-preview").code_actions) + mapkey("n", "D", "Open workspace diagnostic picker", ":lua Snacks.picker.diagnostics()") + mapkey("n", "d", "Open diagnostic picker", [[:lua Snacks.picker.diagnostics_buffer()]]) - keymap('n', 'gr', "Buffer References", vim.lsp.buf.references) - keymap('n', 'f', "Format Buffer", function() + mapkey('n', 'gr', "Buffer References", vim.lsp.buf.references) + mapkey('n', 'f', "Format Buffer", function() vim.lsp.buf.format { async = true } end) end, diff --git a/pkgs/custom-neovim/config/lua/plugins/lualine.lua b/pkgs/custom-neovim/config/lua/plugins/lualine.lua index b38d3ed..1726f67 100644 --- a/pkgs/custom-neovim/config/lua/plugins/lualine.lua +++ b/pkgs/custom-neovim/config/lua/plugins/lualine.lua @@ -1,5 +1,5 @@ local generate_lualine_theme = function() - local colors = utils.generate_theme_from_lualine() + local colors = Utils.generate_theme_from_highlight_groups() return { normal = { a = {bg = colors.modes.normal, fg = colors.text.dark, gui = 'bold'}, diff --git a/pkgs/custom-neovim/config/lua/plugins/mini/clue.lua b/pkgs/custom-neovim/config/lua/plugins/mini/clue.lua index 3d213f9..12ce52d 100644 --- a/pkgs/custom-neovim/config/lua/plugins/mini/clue.lua +++ b/pkgs/custom-neovim/config/lua/plugins/mini/clue.lua @@ -34,6 +34,8 @@ miniclue.setup({ clues = { -- Enhance this by adding descriptions for mapping groups + { mode = 'n', keys = '' }, + { mode = 'x', keys = '' }, miniclue.gen_clues.builtin_completion(), miniclue.gen_clues.g(), miniclue.gen_clues.marks(), @@ -41,4 +43,11 @@ miniclue.setup({ miniclue.gen_clues.windows(), miniclue.gen_clues.z(), }, + + window = { + delay = 0, + + scroll_down = "", + scroll_up = "", + }, }) diff --git a/pkgs/custom-neovim/config/lua/plugins/snacks.lua b/pkgs/custom-neovim/config/lua/plugins/snacks.lua index 57c3bc9..9410544 100644 --- a/pkgs/custom-neovim/config/lua/plugins/snacks.lua +++ b/pkgs/custom-neovim/config/lua/plugins/snacks.lua @@ -1,4 +1,10 @@ require("snacks").setup { bigfile = { enabled = true }, picker = { enabled = true }, + lazygit = { + enabled = true, + config = { + quitOnTopLevelReturn = true, + }, + }, } diff --git a/pkgs/custom-neovim/config/lua/plugins/tabby.lua b/pkgs/custom-neovim/config/lua/plugins/tabby.lua index 211c0c0..c4533c7 100644 --- a/pkgs/custom-neovim/config/lua/plugins/tabby.lua +++ b/pkgs/custom-neovim/config/lua/plugins/tabby.lua @@ -1,4 +1,4 @@ -local general_theme = utils.generate_theme_from_lualine() +local general_theme = Utils.generate_theme_from_highlight_groups() local colors = { current = { fg = general_theme.modes.insert, bg = general_theme.background, style = 'bold'}, not_current = { fg = general_theme.text.light, bg = general_theme.background }; diff --git a/pkgs/custom-neovim/config/lua/utilities.lua b/pkgs/custom-neovim/config/lua/utilities.lua index 3de4a54..77645ca 100644 --- a/pkgs/custom-neovim/config/lua/utilities.lua +++ b/pkgs/custom-neovim/config/lua/utilities.lua @@ -1,25 +1,34 @@ -utils = {} +Utils = {} -utils.mapkey = function(mode, key, desc, action) +Utils.mapkey = function(mode, key, desc, action) vim.keymap.set(mode, key, action, {noremap = true, silent = true, desc = desc}) end -utils.generate_theme_from_lualine = function() - local auto_theme = require("lualine.themes.auto") +Utils.generate_theme_from_highlight_groups = function() + local get_highlight_colors = function(group) + local raw_colors = vim.api.nvim_get_hl(0, {name = group}) + local decimal_to_hex = function(decimal_color) + if decimal_color == nil then return nil end + return string.format("#%06X", decimal_color) + end + return { + fg = decimal_to_hex(raw_colors.fg), + bg = decimal_to_hex(raw_colors.bg), + } + end return { modes = { - normal = auto_theme.normal.a.bg, - insert = auto_theme.insert.a.bg, - visual = auto_theme.visual.a.bg, - replace = auto_theme.replace.a.bg, - command = auto_theme.command.a.bg, - inactive = auto_theme.inactive.a.bg, + normal = get_highlight_colors("MiniStatuslineModeNormal").bg, + insert = get_highlight_colors("MiniStatuslineModeInsert").bg, + visual = get_highlight_colors("MiniStatuslineModeVisual").bg, + replace = get_highlight_colors("MiniStatuslineModeReplace").bg, + command = get_highlight_colors("MiniStatuslineModeCommand").bg, + inactive = get_highlight_colors("MiniStatuslineModeInactive").bg, }, text = { - dark = auto_theme.normal.a.fg, - light = auto_theme.normal.c.fg, + dark = get_highlight_colors("MiniStatuslineModeNormal").fg, + light = get_highlight_colors("Normal").fg, }, - background = auto_theme.normal.c.bg, + background = get_highlight_colors("Normal").bg, } end - -- cgit v1.2.3