summaryrefslogtreecommitdiff
path: root/pkgs
diff options
context:
space:
mode:
authortriethyl <triethylammonium@pm.me>2025-09-27 20:02:16 -0400
committertriethyl <triethylammonium@pm.me>2025-09-27 20:02:16 -0400
commita1c0ecfba40e028d4d730a561fef322bcee97365 (patch)
treed3249d849b2b845cd8c0199532ba1c191f09c7c8 /pkgs
parent3399daae1d7baff4be3ae953ae32a9358962ef67 (diff)
neovim: bunch of stuff
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/custom-neovim/config/lua/keymaps.lua22
-rw-r--r--pkgs/custom-neovim/config/lua/lsp.lua11
-rw-r--r--pkgs/custom-neovim/config/lua/neovide.lua4
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/auto-session.lua2
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/colorschemes.lua5
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/comment-box.lua7
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/neo-tree.lua9
-rw-r--r--pkgs/custom-neovim/config/lua/winbar.lua8
-rw-r--r--pkgs/custom-neovim/default.nix12
-rw-r--r--pkgs/custom-neovim/todo.md2
10 files changed, 74 insertions, 8 deletions
diff --git a/pkgs/custom-neovim/config/lua/keymaps.lua b/pkgs/custom-neovim/config/lua/keymaps.lua
index efaa7d7..6c3a3bd 100644
--- a/pkgs/custom-neovim/config/lua/keymaps.lua
+++ b/pkgs/custom-neovim/config/lua/keymaps.lua
@@ -1,3 +1,7 @@
+-- ╭─────────────────────────────────────────────────────────╮
+-- │ Keymaps │
+-- ╰─────────────────────────────────────────────────────────╯
+
-- Create keymap function
local mapkey = function(mode, key, desc, action, plugin)
local keymapper = plugin and require("lz.n").keymap(plugin).set or vim.keymap.set
@@ -11,7 +15,6 @@ vim.g.mapleader = " "
mapkey("n", "<leader>f", "Open file picker", ":Pick files<cr>", "mini.pick")
mapkey("n", "<leader>o", "Open old file picker", ":Pick oldfiles<cr>", "mini.pick")
mapkey("n", "<leader>/", "Open live grep picker", ":Pick grep_live<cr>", "mini.pick")
-mapkey("n", "<leader>b", "Open buffer picker", ":Pick buffers<cr>", "mini.pick")
mapkey("n", "<leader>k", "Open colorscheme picker", ":Pick colorschemes<cr>", "mini.pick")
-- File manager
@@ -35,6 +38,23 @@ mapkey("n", "<leader>tT", "Go to previous tab", ":tabp<cr>")
mapkey("n", "<leader>to", "Open new tab", ":tabnew<cr>")
mapkey("n", "<leader>tc", "Close current tab", ":tabclose<cr>")
+-- Buffers
+mapkey("n", "<leader>b", "Manage buffers", "")
+mapkey("n", "<leader>bb", "Open buffer picker", ":Pick buffers<cr>", "mini.pick")
+mapkey("n", "<leader>bc", "Clear invisible buffers", function ()
+ local bufinfos = vim.fn.getbufinfo({buflisted = 1})
+ vim.tbl_map(function (bufinfo)
+ if bufinfo.changed == 0 and (not bufinfo.windows or #bufinfo.windows == 0) then
+ vim.api.nvim_buf_delete(bufinfo.bufnr, {force = false, unload = false})
+ vim.cmd.redrawtabline()
+ end
+ end, bufinfos)
+end)
+
+-- Comment box
+mapkey("n", "<leader>j", "Manage comment graphics", "")
+mapkey("n", "<leader>jb", "Create comment box", ":CB")
+
-- Session
mapkey("n", "<leader>w", "Manage sessions", "")
mapkey("n", "<leader>ww", "Open a session", ":Autosession search<cr>", "mini.pick")
diff --git a/pkgs/custom-neovim/config/lua/lsp.lua b/pkgs/custom-neovim/config/lua/lsp.lua
index 3260bbe..64496f6 100644
--- a/pkgs/custom-neovim/config/lua/lsp.lua
+++ b/pkgs/custom-neovim/config/lua/lsp.lua
@@ -34,6 +34,17 @@ vim.lsp.config("nixd", {
})
vim.lsp.enable("nixd")
+-- CC LS
+vim.lsp.config("ccls", {
+ cmd = { 'ccls' },
+ filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda' },
+ root_markers = { 'compile_commands.json', '.ccls', '.git' },
+ offset_encoding = 'utf-32',
+ -- ccls does not support sending a null root directory
+ workspace_required = true,
+})
+vim.lsp.enable("ccls")
+
-- LSP Autocommands
-- Disable semantic tokens to stop weird highlighting.
diff --git a/pkgs/custom-neovim/config/lua/neovide.lua b/pkgs/custom-neovim/config/lua/neovide.lua
index 9d648c4..2abfd05 100644
--- a/pkgs/custom-neovim/config/lua/neovide.lua
+++ b/pkgs/custom-neovim/config/lua/neovide.lua
@@ -1,3 +1,7 @@
+-- ╭─────────────────────────────────────────────────────────╮
+-- │ Neovide Options │
+-- ╰─────────────────────────────────────────────────────────╯
+
if vim.g.neovide then
vim.o.guifont = "CodeNewRoman Nerd Font:h12"
vim.g.neovide_scale_factor = 0.8
diff --git a/pkgs/custom-neovim/config/lua/plugins/auto-session.lua b/pkgs/custom-neovim/config/lua/plugins/auto-session.lua
index efbd416..c6aacdc 100644
--- a/pkgs/custom-neovim/config/lua/plugins/auto-session.lua
+++ b/pkgs/custom-neovim/config/lua/plugins/auto-session.lua
@@ -8,7 +8,7 @@ return {
"~/",
"/",
},
- auto_restore_last_session = true,
+ -- auto_restore_last_session = true,
cwd_change_handling = true,
}
end
diff --git a/pkgs/custom-neovim/config/lua/plugins/colorschemes.lua b/pkgs/custom-neovim/config/lua/plugins/colorschemes.lua
index f71c83f..41d3415 100644
--- a/pkgs/custom-neovim/config/lua/plugins/colorschemes.lua
+++ b/pkgs/custom-neovim/config/lua/plugins/colorschemes.lua
@@ -15,4 +15,9 @@ return {
vim.cmd.colorscheme("gruvbox8")
end
},
+ {
+ "oxocarbon.nvim",
+ enabled = true,
+ lazy = false,
+ }
}
diff --git a/pkgs/custom-neovim/config/lua/plugins/comment-box.lua b/pkgs/custom-neovim/config/lua/plugins/comment-box.lua
new file mode 100644
index 0000000..6d25d0f
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/comment-box.lua
@@ -0,0 +1,7 @@
+return {
+ "comment-box.nvim",
+ lazy = false,
+ after = function ()
+ require("comment-box").setup {}
+ end
+}
diff --git a/pkgs/custom-neovim/config/lua/plugins/neo-tree.lua b/pkgs/custom-neovim/config/lua/plugins/neo-tree.lua
new file mode 100644
index 0000000..572df49
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/neo-tree.lua
@@ -0,0 +1,9 @@
+return {
+ "neo-tree.nvim",
+ lazy = true,
+ cmd = "Neotree";
+ before = function ()
+ vim.cmd.packadd("plenary.nvim")
+ vim.cmd.packadd("nui.nvim")
+ end
+}
diff --git a/pkgs/custom-neovim/config/lua/winbar.lua b/pkgs/custom-neovim/config/lua/winbar.lua
index 8750ce4..31267a9 100644
--- a/pkgs/custom-neovim/config/lua/winbar.lua
+++ b/pkgs/custom-neovim/config/lua/winbar.lua
@@ -167,7 +167,13 @@ Winbar_builder = function ()
end
-- Concatentate strings with gaps
- return table.concat(winbar_strings, gaps)
+ local bar = table.concat(winbar_strings, gaps)
+
+ if vim.o.signcolumn then
+ return " "..bar
+ end
+
+ return bar
end
-- Set winbar
diff --git a/pkgs/custom-neovim/default.nix b/pkgs/custom-neovim/default.nix
index fc99a7d..f58ac1c 100644
--- a/pkgs/custom-neovim/default.nix
+++ b/pkgs/custom-neovim/default.nix
@@ -35,7 +35,9 @@ in
mini-extra
mini-icons
plenary-nvim # UI library
+ nui-nvim # Other UI library
actions-preview-nvim # Preview lsp actions
+ neo-tree-nvim
# Completion Plugins
blink-cmp
@@ -49,6 +51,7 @@ in
zoxide-vim
vim-nix # Indentation for nix files
calendar-vim
+ comment-box-nvim
# Git Plugins
mini-git
@@ -65,17 +68,18 @@ in
cellular-automaton-nvim # Fun useless plugin.
# Colorschemes
- mini-base16
nightfox-nvim
vim-gruvbox8
+ oxocarbon-nvim
];
};
luaFiles = [./config/init.lua];
extraBinPath = with pkgs; [
# LSP Servers
- lua-language-server
- marksman
- nixd
+ lua-language-server # LS for Lua
+ marksman # LS for Markdown
+ nixd # LS for Nix
+ ccls # LS for C languages
# Extra Utils
ripgrep
diff --git a/pkgs/custom-neovim/todo.md b/pkgs/custom-neovim/todo.md
index f67e47a..48c0b7e 100644
--- a/pkgs/custom-neovim/todo.md
+++ b/pkgs/custom-neovim/todo.md
@@ -1,9 +1,9 @@
# Todo
- make normal keybinds override calendar keybinds
-- add box drawing and special comments plugin
- make <esc> hide lsp hover from K
- add window layout presets
+- make LaTeX math in markdown hide in normal mode
## Eventually if Possible