summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix13
-rw-r--r--lsp/lua-language-server.lua2
-rw-r--r--lua/config/options.lua12
-rw-r--r--lua/config/plugins/completion.lua44
-rw-r--r--lua/config/plugins/debug.lua23
-rw-r--r--lua/config/plugins/extra.lua9
-rw-r--r--lua/config/plugins/formatting.lua2
-rw-r--r--lua/config/plugins/fuzzy.lua85
-rw-r--r--lua/config/plugins/init.lua1
9 files changed, 116 insertions, 75 deletions
diff --git a/flake.nix b/flake.nix
index f79a4e6..9f096a8 100644
--- a/flake.nix
+++ b/flake.nix
@@ -159,8 +159,13 @@
typescript = [
angular-language-server
biome
+ prettierd
typescript-language-server
];
+
+ debug = [
+ lldb
+ ];
};
};
@@ -227,7 +232,7 @@
completion = [ blink-cmp ];
# NOTE: On NeoVim 0.11+ nvim-lspconfig is not required due to native API
- lsp = [ ];
+ lsp = [ lazydev-nvim ];
mini = [
mini-ai
@@ -243,6 +248,12 @@
git = [ gitsigns-nvim ];
+ debug = [
+ nvim-dap
+ nvim-dap-ui
+ nvim-dap-virtual-text
+ ];
+
ui = [
bufferline-nvim
lualine-nvim
diff --git a/lsp/lua-language-server.lua b/lsp/lua-language-server.lua
index a77fcd9..ce0d902 100644
--- a/lsp/lua-language-server.lua
+++ b/lsp/lua-language-server.lua
@@ -1,6 +1,6 @@
return {
cmd = { "lua-language-server" },
- root_markers = { ".luarc.json" },
+ root_markers = { ".luarc.json", ".git" },
filetypes = { "lua" },
settings = {
diff --git a/lua/config/options.lua b/lua/config/options.lua
index 5a7be5d..6208be7 100644
--- a/lua/config/options.lua
+++ b/lua/config/options.lua
@@ -59,3 +59,15 @@ map("n", "N", "Nzzzv", { desc = "Previous Search Result" })
-- Reset search highlight on ESC
map("n", "<Esc>", "<cmd>nohlsearch<CR>", { desc = "Reset search highlight" })
+
+-- Window related binds
+map("n", "<C-w>d", "<C-w>c", { desc = "[D]elete [W]indow" })
+
+-- Buffer related binds
+map("n", "<leader>bd", "<cmd>bdelete<CR>", { desc = "[D]elete [B]uffer" })
+
+-- Tab related binds
+map("n", "[T", "<cmd>tabprev<CR>", { desc = "Previous Tab" })
+map("n", "]T", "<cmd>tabnext<CR>", { desc = "Previous Tab" })
+map("n", "<leader><tab>d", "<cmd>tabclose<CR>", { desc = "[D]elete [T]ab" })
+map("n", "<leader><tab>n", "<cmd>tabnew<CR>", { desc = "[N]ew [T]ab" })
diff --git a/lua/config/plugins/completion.lua b/lua/config/plugins/completion.lua
index 7a02809..2b7e69d 100644
--- a/lua/config/plugins/completion.lua
+++ b/lua/config/plugins/completion.lua
@@ -1,5 +1,32 @@
return {
{
+ "lazydev.nvim",
+ -- NOTE: if lazyloaded, blink will break as `lze` doesn't packadd this package...
+ -- ft = "lua",
+ after = function(_)
+ -- NOTE: this is required to fix strange filtering in `lazydev.nvim`
+ --- @diagnostic disable-next-line: duplicate-set-field
+ require("lazydev.lsp").supports = function(client)
+ local client_names = {
+ -- Default client names from `lazydev.nvim`
+ "lua_ls",
+ "emmylua-analyzer-rust",
+ -- NOTE: I have `lua-language-server` name which was not in list
+ "lua-language-server",
+ }
+
+ return client and vim.tbl_contains(client_names, client.name)
+ end
+
+ require("lazydev").setup({
+ library = {
+ { path = "${3rd}/luv/library", words = { "vim%.uv" } },
+ { path = "snacks.nvim", words = { "Snacks" } },
+ },
+ })
+ end,
+ },
+ {
"blink.cmp",
event = "DeferredUIEnter",
after = function(_)
@@ -18,7 +45,22 @@ return {
ghost_text = { enabled = true },
},
- sources = { default = { "lsp", "path", "snippets", "buffer" } },
+ cmdline = {
+ completion = {
+ ghost_text = { enabled = false },
+ },
+ },
+
+ sources = {
+ default = { "lazydev", "lsp", "path", "snippets", "buffer" },
+ providers = {
+ lazydev = {
+ name = "LazyDev",
+ module = "lazydev.integrations.blink",
+ score_offset = 100,
+ },
+ },
+ },
fuzzy = {
sorts = { "exact", "score", "sort_text" },
diff --git a/lua/config/plugins/debug.lua b/lua/config/plugins/debug.lua
new file mode 100644
index 0000000..0f6378b
--- /dev/null
+++ b/lua/config/plugins/debug.lua
@@ -0,0 +1,23 @@
+return {
+ {
+ "nvim-dap",
+ event = "DeferredUIEnter",
+ load = function(name)
+ vim.cmd.packadd(name)
+ vim.cmd.packadd("nvim-dap-ui")
+ vim.cmd.packadd("nvim-dap-virtual-text")
+ end,
+ after = function(_)
+ -- require("dap").setup()
+ require("dapui").setup()
+ require("nvim-dap-virtual-text").setup({})
+
+ local dap = require("dap")
+ dap.adapters.lldb = {
+ type = "executable",
+ command = "lldb-dap",
+ name = "lldb",
+ }
+ end,
+ },
+}
diff --git a/lua/config/plugins/extra.lua b/lua/config/plugins/extra.lua
index 2b1d8ef..2f7bf9c 100644
--- a/lua/config/plugins/extra.lua
+++ b/lua/config/plugins/extra.lua
@@ -91,6 +91,15 @@ return {
require("which-key").setup()
require("which-key").add({
+ {
+ "<leader>w",
+ group = "windows",
+ proxy = "<C-w>",
+ expand = function()
+ return require("which-key.extras").expand.win()
+ end,
+ },
+
{ "<leader>s", group = "search" },
{
diff --git a/lua/config/plugins/formatting.lua b/lua/config/plugins/formatting.lua
index 6efe5d2..98bbe06 100644
--- a/lua/config/plugins/formatting.lua
+++ b/lua/config/plugins/formatting.lua
@@ -11,6 +11,8 @@ return {
nix = { "nixfmt" },
rust = { "rustfmt", lsp_format = "fallback" },
+ html = { "prettierd" },
+ htmlangular = { "prettierd" },
json = { "biome" },
jsonc = { "biome" },
javascript = { "biome" },
diff --git a/lua/config/plugins/fuzzy.lua b/lua/config/plugins/fuzzy.lua
index 9bab351..95bb108 100644
--- a/lua/config/plugins/fuzzy.lua
+++ b/lua/config/plugins/fuzzy.lua
@@ -19,6 +19,7 @@ return {
fzf = {
["tab"] = "down",
["shift-tab"] = "up",
+ ["ctrl-q"] = "select-all+accept",
},
},
})
@@ -26,82 +27,22 @@ return {
keys = {
-- General
- {
- "<leader><leader>",
- function()
- require("fzf-lua").files()
- end,
- mode = { "n" },
- desc = "Search Files",
- },
- {
- "<leader><localleader>",
- function()
- require("fzf-lua").buffers()
- end,
- mode = { "n" },
- desc = "Search Buffers",
- },
- {
- "<leader>/",
- function()
- require("fzf-lua").live_grep()
- end,
- mode = { "n" },
- desc = "Search Grep",
- },
- {
- "<leader>:",
- function()
- require("fzf-lua").command_history()
- end,
- mode = { "n" },
- desc = "Command History",
- },
+ -- stylua: ignore start
+ { "<leader><leader>", function() require("fzf-lua").files() end, mode = { "n" }, desc = "Search Files", },
+ { "<leader><localleader>", function() require("fzf-lua").buffers() end, mode = { "n" }, desc = "Search Buffers", },
+ { "<leader>/", function() require("fzf-lua").live_grep() end, mode = { "n" }, desc = "Search Grep", },
+ { "<leader>:", function() require("fzf-lua").command_history() end, mode = { "n" }, desc = "Command History", },
-- Search
- {
- "<leader>sR",
- function()
- require("fzf-lua").resume()
- end,
- mode = { "n" },
- desc = "[R]esume [S]earch",
- },
- {
- "<leader>sb",
- function()
- require("fzf-lua").buffers()
- end,
- mode = { "n" },
- desc = "[S]earch [B]uffers",
- },
- {
- "<leader>sf",
- function()
- require("fzf-lua").files()
- end,
- mode = { "n" },
- desc = "[S]earch [F]iles",
- },
- {
- "<leader>sg",
- function()
- require("fzf-lua").live_grep()
- end,
- mode = { "n" },
- desc = "[S]earch [G]rep",
- },
+ { "<leader>sR", function() require("fzf-lua").resume() end, mode = { "n" }, desc = "[R]esume [S]earch", },
+ { "<leader>sb", function() require("fzf-lua").buffers() end, mode = { "n" }, desc = "[S]earch [B]uffers", },
+ { "<leader>sf", function() require("fzf-lua").files() end, mode = { "n" }, desc = "[S]earch [F]iles", },
+ { "<leader>sg", function() require("fzf-lua").live_grep() end, mode = { "n" }, desc = "[S]earch [G]rep", },
+ { "<leader>sh", function() require("fzf-lua").helptags() end, mode = { "n" }, desc = "[S]earch [G]rep", },
-- Code
- {
- "<leader>ca",
- function()
- require("fzf-lua").lsp_code_actions()
- end,
- mode = { "n" },
- desc = "[C]ode [A]ctions",
- },
+ { "<leader>ca", function() require("fzf-lua").lsp_code_actions() end, mode = { "n" }, desc = "[C]ode [A]ctions", },
+ -- stylua: ignore end
},
},
}
diff --git a/lua/config/plugins/init.lua b/lua/config/plugins/init.lua
index 1ec4b50..f7c44fd 100644
--- a/lua/config/plugins/init.lua
+++ b/lua/config/plugins/init.lua
@@ -56,5 +56,6 @@ require("lze").load({
{ import = "config.plugins.completion" },
{ import = "config.plugins.formatting" },
{ import = "config.plugins.git" },
+ { import = "config.plugins.debug" },
{ import = "config.plugins.extra" },
})