summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkgs/custom-neovim/config/init.lua2
-rw-r--r--pkgs/custom-neovim/config/lua/lsp.lua (renamed from pkgs/custom-neovim/config/lua/plugins/lspconfig.lua)36
-rw-r--r--pkgs/custom-neovim/config/lua/options.lua2
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/cmp.lua1
-rw-r--r--pkgs/custom-neovim/default.nix12
-rw-r--r--pkgs/custom-neovim/design.md3
6 files changed, 33 insertions, 23 deletions
diff --git a/pkgs/custom-neovim/config/init.lua b/pkgs/custom-neovim/config/init.lua
index 306a76b..857aa37 100644
--- a/pkgs/custom-neovim/config/init.lua
+++ b/pkgs/custom-neovim/config/init.lua
@@ -9,6 +9,7 @@ require("colorschemes")
require("neovide")
require("mappings")
require("statusline")
+require("lsp")
-- Require plugin configs.
-- UI Plugins:
@@ -23,7 +24,6 @@ require("plugins.auto-session")
require("plugins.gitsigns")
-- LSP Plugins:
-require("plugins.lspconfig")
require("plugins.actions-preview")
-- Utility Plugins:
diff --git a/pkgs/custom-neovim/config/lua/plugins/lspconfig.lua b/pkgs/custom-neovim/config/lua/lsp.lua
index fbb35bf..7511004 100644
--- a/pkgs/custom-neovim/config/lua/plugins/lspconfig.lua
+++ b/pkgs/custom-neovim/config/lua/lsp.lua
@@ -14,36 +14,36 @@ vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('UserLspConfig', {}),
callback = function(ev)
-- Enable completion triggered by <c-x><c-o>
- vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
-
- -- Buffer local mappings.
- -- See `:help vim.lsp.*` for documentation on any of the below functions
+ -- vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
local mapkey = Utils.mapkey
- 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', '<M-k>', "Signature Help", vim.lsp.buf.signature_help)
- mapkey('i', '<M-k>', "Signature Help", vim.lsp.buf.signature_help)
- mapkey('n', "<space>o", "Manage LSP workspace", "")
- mapkey('n', '<space>oa', "Add Workspace Folder", vim.lsp.buf.add_workspace_folder)
- mapkey('n', '<space>or', "Remove Workspace Folder", vim.lsp.buf.remove_workspace_folder)
- mapkey('n', '<space>ol', "List Workspace Folders", function()
+ -- Workspace management
+ mapkey('n', "<leader>o", "Manage LSP workspace", "")
+ mapkey('n', '<leader>oa', "Add Workspace Folder", vim.lsp.buf.add_workspace_folder)
+ mapkey('n', '<leader>or', "Remove Workspace Folder", vim.lsp.buf.remove_workspace_folder)
+ mapkey('n', '<leader>ol', "List Workspace Folders", function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end)
- mapkey('n', '<space>r', "Rename Symbol", vim.lsp.buf.rename)
- mapkey("n", "<leader>s", "Open symbol picker", ":lua Snacks.picker.lsp_symbols()<cr>")
- mapkey("n", "<leader>S", "Open workspace symbol picker", ":lua Snacks.picker.lsp_workspace_symbols()<cr>")
-- LSP Pickers
mapkey('n', "<leader>a", "Perform code action", ":lua require('actions-preview').code_actions()<cr>")
mapkey("n", "<leader>I", "Open workspace diagnostic picker", ":lua Snacks.picker.diagnostics()<cr>")
mapkey("n", "<leader>i", "Open diagnostic picker", [[:lua Snacks.picker.diagnostics_buffer()<cr>]])
+ mapkey("n", "<leader>s", "Open symbol picker", ":lua Snacks.picker.lsp_symbols()<cr>")
+ mapkey("n", "<leader>S", "Open workspace symbol picker", ":lua Snacks.picker.lsp_workspace_symbols()<cr>")
+
+ -- Goto Keys
+ mapkey('n', 'gD', "Go to declaration", vim.lsp.buf.declaration)
+ mapkey('n', 'gd', "Go to definition", vim.lsp.buf.definition)
+ mapkey('n', 'go', "Go to type definition", vim.lsp.buf.type_definition)
+ mapkey('n', 'gi', "Go to implementation", vim.lsp.buf.implementation)
+ -- Other LSP Keys
+ mapkey('n', 'gs', "Signature Help", vim.lsp.buf.signature_help)
mapkey('n', 'gr', "Buffer References", vim.lsp.buf.references)
- mapkey('n', '<localleader>f', "Format Buffer", function()
+ mapkey('n', '<leader>r', "Rename Symbol", vim.lsp.buf.rename)
+ mapkey('n', '<leader>h', "Format Buffer", function()
vim.lsp.buf.format { async = true }
end)
end,
diff --git a/pkgs/custom-neovim/config/lua/options.lua b/pkgs/custom-neovim/config/lua/options.lua
index ef80186..5698594 100644
--- a/pkgs/custom-neovim/config/lua/options.lua
+++ b/pkgs/custom-neovim/config/lua/options.lua
@@ -8,7 +8,7 @@ vim.o.icm = 'split'
vim.o.cia = 'abbr,kind,menu'
vim.o.mouse = ""
vim.o.number = true -- set absolute numbered lines
-vim.o.relativenumber = true -- set relative numbered lines
+-- vim.o.relativenumber = true -- set relative numbered lines
vim.o.scrolloff = 4 -- minimal number of screen lines to keep above and below the cursor
vim.o.signcolumn = "yes" -- always show the sign column, otherwise it would shift the text each time
vim.o.clipboard = "unnamedplus" -- use system clipboard
diff --git a/pkgs/custom-neovim/config/lua/plugins/cmp.lua b/pkgs/custom-neovim/config/lua/plugins/cmp.lua
new file mode 100644
index 0000000..2ef2cca
--- /dev/null
+++ b/pkgs/custom-neovim/config/lua/plugins/cmp.lua
@@ -0,0 +1 @@
+require("nvim-cmp").setup()
diff --git a/pkgs/custom-neovim/default.nix b/pkgs/custom-neovim/default.nix
index 60ff001..47633a7 100644
--- a/pkgs/custom-neovim/default.nix
+++ b/pkgs/custom-neovim/default.nix
@@ -17,15 +17,21 @@ in
actions-preview-nvim # Adds a selector for LSP actions.
nvim-treesitter.withAllGrammars # All treesitter grammars.
tabby-nvim # Tab bar.
- # alpha-nvim # Dashboard.
- # persisted-nvim # Session manager.
snacks-nvim
- # oil-nvim
dropbar-nvim
auto-session
nvim-ts-autotag
gitsigns-nvim
+ # Completion Sources
+ nvim-cmp
+ cmp-buffer
+ cmp-path
+ cmp_luasnip
+ cmp-nvim-lsp
+ luasnip
+ friendly-snippets
+
# Colorschemes
oxocarbon-nvim # IBM Carbon themes.
rose-pine # Rose Pine themes.
diff --git a/pkgs/custom-neovim/design.md b/pkgs/custom-neovim/design.md
index 8e70f15..aa0cfb6 100644
--- a/pkgs/custom-neovim/design.md
+++ b/pkgs/custom-neovim/design.md
@@ -18,3 +18,6 @@
- find dropbar load autocommand and modify to work on winenter to prevent no dropbar when splitting
- make splits automatically equalize when window resized
- add arrows to <C-w> binds
+- make lazyvim launch with default shell bash
+- make mini.git run commands from cwd instead of git root
+- make all gaps in statusbar from a component