summaryrefslogtreecommitdiff
path: root/pkgs/custom-neovim/config/lua
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/custom-neovim/config/lua
parent3399daae1d7baff4be3ae953ae32a9358962ef67 (diff)
neovim: bunch of stuff
Diffstat (limited to 'pkgs/custom-neovim/config/lua')
-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
8 files changed, 65 insertions, 3 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