Compare commits

...

12 Commits

Author SHA1 Message Date
Drew Galbraith 3ccd1f3bb8 Move to nvim 0.11 lsp format. 2025-05-13 01:00:51 -07:00
Drew Galbraith cc765b7b61 Add more language servers. 2025-05-13 00:54:18 -07:00
Drew Galbraith 858daa428f Write w/out format 2025-05-13 00:18:12 -07:00
Drew Galbraith 27c34ed642 Search notifications. 2025-05-12 23:58:39 -07:00
Drew Galbraith 72ff506c30 Delete other buffers. 2025-05-12 23:58:10 -07:00
Drew Galbraith c3af31dab4 Auto close picker. 2025-05-12 23:47:20 -07:00
Drew Galbraith e15bb92e27 Fix tab width and insertion defaults. 2025-05-12 23:25:19 -07:00
Drew Galbraith e7547cf9e7 Add git hunk navigation keymaps.
Also fix git hunk preview naming.
2025-05-12 23:25:03 -07:00
Drew Galbraith dc156ed65f Add code action rename 2025-05-12 23:25:03 -07:00
Drew Galbraith 4d6fff0bf2 Add code action for organizing imports in python. 2025-05-12 23:11:08 -07:00
Drew Galbraith 9da90d53fa Configure ccls. 2025-05-12 22:45:11 -07:00
Drew Galbraith 227d4ab17a Set supertab instead of enter autocomplete. 2025-05-12 22:44:59 -07:00
12 changed files with 376 additions and 323 deletions

14
after/ftplugin/python.lua Normal file
View File

@ -0,0 +1,14 @@
require("which-key").add({
"<leader>co",
function()
vim.lsp.buf.code_action({
apply = true,
context = {
only = { "source.organizeImports" }, -- Or the specific ruff identifier if known
},
bufnr = vim.api.nvim_get_current_buf(),
})
end
,
name = "Organize Imports"
})

View File

@ -1,7 +1,7 @@
{ {
"blink.cmp": { "branch": "main", "commit": "cb5e346d9e0efa7a3eee7fd4da0b690c48d2a98e" }, "blink.cmp": { "branch": "main", "commit": "4f38ce99a472932d5776337f08f7a8180f1f571a" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"gitsigns.nvim": { "branch": "main", "commit": "9cd665f46ab7af2e49d140d328b8e72ea1cf511b" }, "gitsigns.nvim": { "branch": "main", "commit": "43b0c856ae5f32a195d83f4a27fe21d63e6c966c" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"material.nvim": { "branch": "main", "commit": "96285a62923ea8e38aea7b603099752da2a97e97" }, "material.nvim": { "branch": "main", "commit": "96285a62923ea8e38aea7b603099752da2a97e97" },
"mini.cursorword": { "branch": "main", "commit": "7d1b38a17834acbbc4feff8e42aedc4ed0c6ff06" }, "mini.cursorword": { "branch": "main", "commit": "7d1b38a17834acbbc4feff8e42aedc4ed0c6ff06" },
@ -9,11 +9,11 @@
"mini.pairs": { "branch": "main", "commit": "7e834c5937d95364cc1740e20d673afe2d034cdb" }, "mini.pairs": { "branch": "main", "commit": "7e834c5937d95364cc1740e20d673afe2d034cdb" },
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" }, "noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
"nord.nvim": { "branch": "main", "commit": "1ee184dfd06ffadc19b7afc0ba4c5eca92dd836e" }, "nord.nvim": { "branch": "main", "commit": "1ee184dfd06ffadc19b7afc0ba4c5eca92dd836e" },
"nui.nvim": { "branch": "main", "commit": "8d5b0b568517935d3c84f257f272ef004d9f5a59" }, "nui.nvim": { "branch": "main", "commit": "f535005e6ad1016383f24e39559833759453564e" },
"nvim-lspconfig": { "branch": "master", "commit": "88d0824d85c0f74a012521d25678a5b01c76feb1" }, "nvim-lspconfig": { "branch": "master", "commit": "61e5109c8cf24807e4ae29813a3a82b31821dd45" },
"nvim-treesitter": { "branch": "master", "commit": "3b308861a8d7d7bfbe9be51d52e54dcfd9fe3d38" }, "nvim-treesitter": { "branch": "master", "commit": "066fd6505377e3fd4aa219e61ce94c2b8bdb0b79" },
"nvim-web-devicons": { "branch": "master", "commit": "50b5b06bff13a9b4eab946de7c7033649a6618a1" }, "nvim-web-devicons": { "branch": "master", "commit": "f1420728f59843eb2ef084406b3d0201a0a0932d" },
"rustaceanvim": { "branch": "master", "commit": "3a6af933d5870a419ee2be6e1bd397dfe46c96d2" }, "rustaceanvim": { "branch": "master", "commit": "01b28c60abde5cb79c0129e66c465699e78b0e6d" },
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" }, "snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" }, "tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },

View File

@ -1,75 +1,82 @@
require("which-key").add({ require("which-key").add({
{ "<leader>b", group = "buffer" }, { "<leader>b", group = "buffer" },
{ "<leader>bd", ":bd<CR>", name = "delete current" }, { "<leader>bd", Snacks.bufdelete.delete, name = "delete current" },
{ "<leader>bo", Snacks.bufdelete.other, name = "delete others" },
{ "<leader>bk", ":noa w<CR>", name = "write w/out format" },
{ "<leader>c", group = "code" }, { "<leader>c", group = "code" },
{ "<leader>ca", vim.lsp.buf.code_action, name = "code action" }, { "<leader>ca", vim.lsp.buf.code_action, name = "code action" },
{ "<leader>cd", vim.diagnostic.open_float, name = "diagnostic" }, { "<leader>cd", vim.diagnostic.open_float, name = "diagnostic" },
{ "<leader>cr", vim.lsp.buf.rename, name = "rename" },
{ "<leader>e", Snacks.explorer.open, name = "explorer" }, { "<leader>e", Snacks.explorer.open, name = "explorer" },
{ "<leader>f", group = "find" }, { "<leader>f", group = "find" },
{ "<leader>fb", Snacks.picker.buffers, name = "buffers" }, { "<leader>fb", Snacks.picker.buffers, name = "buffers" },
{ "<leader>ff", Snacks.picker.files, name = "files" }, { "<leader>ff", Snacks.picker.files, name = "files" },
{ "<leader>fg", Snacks.picker.grep, name = "grep" }, { "<leader>fg", Snacks.picker.grep, name = "grep" },
{ "<leader>g", group = "git" }, { "<leader>g", group = "git" },
{ "<leader>gb", group = "blame" }, { "<leader>gb", group = "blame" },
{ "<leader>gbf", ":Gitsigns blame<CR>", name = "file" }, { "<leader>gbf", ":Gitsigns blame<CR>", name = "file" },
{ "<leader>gbh", ":Gitsigns blame_line<CR>", name = "hover" }, { "<leader>gbh", ":Gitsigns blame_line<CR>", name = "hover" },
{ "<leader>gbl", ":Gitsigns toggle_current_line_blame<CR>", name = "virtual text" }, { "<leader>gbl", ":Gitsigns toggle_current_line_blame<CR>", name = "virtual text" },
{ "<leader>gh", group = "hunk" }, { "<leader>gh", group = "hunk" },
{ "<leader>ghr", ":Gitsigns reset_hunk<CR>", name = "reset hunk" }, { "<leader>ghr", ":Gitsigns reset_hunk<CR>", name = "reset hunk" },
{ "<leader>ghp", ":Gitsigns preview_hunk<CR>", name = "reset hunk" }, { "<leader>ghp", ":Gitsigns preview_hunk<CR>", name = "preview hunk" },
{ "<leader>s", group = "search" }, { "<leader>s", group = "search" },
{ "<leader>ss", Snacks.picker.lsp_workspace_symbols, name = "symbols" }, { "<leader>ss", Snacks.picker.lsp_workspace_symbols, name = "symbols" },
{ "<leader>sg", Snacks.picker.grep, name = "grep" }, { "<leader>sg", Snacks.picker.grep, name = "grep" },
{ "<leader>sn", Snacks.picker.notifications, name = "notifications" },
{ "<leader>u", group = "ui" }, { "<leader>u", group = "ui" },
{ "<leader>ut", Snacks.picker.colorschemes, name = "colorschemes" }, { "<leader>ut", Snacks.picker.colorschemes, name = "colorschemes" },
{ {
"<leader>ul", "<leader>ul",
function() function()
local ll = vim.diagnostic.config().virtual_lines local ll = vim.diagnostic.config().virtual_lines
if ll == false then if ll == false then
ll = { current_line = true } ll = { current_line = true }
else else
ll = false ll = false
end end
vim.diagnostic.config({ virtual_lines = ll }) vim.diagnostic.config({ virtual_lines = ll })
end, end,
name = "toggle lsp lines", name = "toggle lsp lines",
}, },
{ "<leader>w", group = "window" }, { "<leader>w", group = "window" },
{ "<leader>wh", "<C-w>h", name = "left" }, { "<leader>wh", "<C-w>h", name = "left" },
{ "<leader>wj", "<C-w>j", name = "down" }, { "<leader>wj", "<C-w>j", name = "down" },
{ "<leader>wk", "<C-w>k", name = "right" }, { "<leader>wk", "<C-w>k", name = "right" },
{ "<leader>wl", "<C-w>l", name = "up" }, { "<leader>wl", "<C-w>l", name = "up" },
{ "<leader>wq", ":q<CR>", name = "quit" }, { "<leader>wq", ":q<CR>", name = "quit" },
{ "g", group = "goto" }, { "g", group = "goto" },
{ "gd", vim.lsp.buf.definition, name = "definition" }, { "gd", vim.lsp.buf.definition, name = "definition" },
{ "gr", Snacks.picker.lsp_references, nowait = true, name = "references" }, { "gr", Snacks.picker.lsp_references, nowait = true, name = "references" },
{ "H", ":bprev<CR>", name = "previous buffer" }, { "H", ":bprev<CR>", name = "previous buffer" },
{ "L", ":bnext<CR>", name = "next buffer" }, { "L", ":bnext<CR>", name = "next buffer" },
{ {
"[h", "[h",
function() function()
require("gitsigns").nav_hunk("prev") require("gitsigns").nav_hunk("prev")
end, end,
name = "Next Hunk", name = "Next Hunk",
}, },
{ {
"]h", "]h",
function() function()
require("gitsigns").nav_hunk("next") require("gitsigns").nav_hunk("next")
end, end,
name = "Next Hunk", name = "Next Hunk",
}, },
{ "[h", function() require("gitsigns").nav_hunk("prev") end, name = "previous hunk" },
{ "]h", function() require("gitsigns").nav_hunk("next") end, name = "next hunk" },
}) })
Snacks.toggle.diagnostics():map("<leader>ud") Snacks.toggle.diagnostics():map("<leader>ud")

View File

@ -1,17 +1,17 @@
-- Bootstrap lazy.nvim -- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git" local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({ vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" }, { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" }, { out, "WarningMsg" },
{ "\nPress any key to exit..." }, { "\nPress any key to exit..." },
}, true, {}) }, true, {})
vim.fn.getchar() vim.fn.getchar()
os.exit(1) os.exit(1)
end end
end end
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
@ -23,16 +23,16 @@ vim.g.maplocalleader = "\\"
-- Setup lazy.nvim -- Setup lazy.nvim
require("lazy").setup({ require("lazy").setup({
spec = { spec = {
-- import your plugins -- import your plugins
{ import = "plugins" }, { import = "plugins" },
}, },
-- Configure any other settings here. See the documentation for more details. -- Configure any other settings here. See the documentation for more details.
-- colorscheme that will be used when installing plugins. -- colorscheme that will be used when installing plugins.
install = {}, install = {},
-- automatically check for plugin updates -- automatically check for plugin updates
checker = { checker = {
enabled = true, enabled = true,
notify = false, notify = false,
}, },
}) })

View File

@ -1,105 +1,125 @@
local capabilities = require("blink.cmp").get_lsp_capabilities() local capabilities = require("blink.cmp").get_lsp_capabilities()
require("lspconfig").basedpyright.setup({ capabilities = capabilities }) vim.lsp.config("basedpyright", { capabilities = capabilities })
require("lspconfig").ruff.setup({ capabilities = capabilities }) vim.lsp.config("ruff", { capabilities = capabilities })
vim.lsp.enable({ "basedpyright", "ruff" })
require("lspconfig").lua_ls.setup({ -- npm i -g bash-language-server
on_init = function(client) -- Also install shellcheck using system package manager.
if client.workspace_folders then vim.lsp.config("bashls", { capabilities = capabilities })
local path = client.workspace_folders[1].name vim.lsp.enable("bashls")
if
path ~= vim.fn.stdpath("config")
and (vim.loop.fs_stat(path .. "/.luarc.json") or vim.loop.fs_stat(path .. "/.luarc.jsonc"))
then
return
end
end
client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, { -- cargo install --features lsp --locked taplo-cli
runtime = { -- (For toml)
-- Tell the language server which version of Lua you're using vim.lsp.config("taplo", { capabilities = capabilities })
-- (most likely LuaJIT in the case of Neovim) vim.lsp.enable("taplo")
version = "LuaJIT",
}, -- npm i -g yaml-language-server
-- Make the server aware of Neovim runtime files vim.lsp.config("yamlls", { capabilities = capabilities })
workspace = { vim.lsp.enable("yamlls")
checkThirdParty = false,
library = { vim.lsp.config("ccls", { capabilities = capabilities })
vim.env.VIMRUNTIME, vim.lsp.enable("ccls")
},
}, vim.lsp.config("lua_ls", {
}) on_init = function(client)
end, if client.workspace_folders then
settings = { local path = client.workspace_folders[1].name
Lua = {}, if
}, path ~= vim.fn.stdpath("config")
capabilities = capabilities, and (vim.loop.fs_stat(path .. "/.luarc.json") or vim.loop.fs_stat(path .. "/.luarc.jsonc"))
then
return
end
end
client.config.settings.Lua = vim.tbl_deep_extend("force", client.config.settings.Lua, {
runtime = {
-- Tell the language server which version of Lua you're using
-- (most likely LuaJIT in the case of Neovim)
version = "LuaJIT",
},
-- Make the server aware of Neovim runtime files
workspace = {
checkThirdParty = false,
library = {
vim.env.VIMRUNTIME,
},
},
})
end,
settings = {
Lua = {},
},
capabilities = capabilities,
}) })
vim.lsp.enable("lua_ls")
vim.g.rustaceanvim = { vim.g.rustaceanvim = {
-- Plugin configuration -- Plugin configuration
-- tools = { -- tools = {
-- }, -- },
-- LSP configuration -- LSP configuration
server = { server = {
-- on_attach = function(client, bufnr) -- on_attach = function(client, bufnr)
-- -- you can also put keymaps in here -- -- you can also put keymaps in here
--end, --end,
default_settings = { default_settings = {
-- rust-analyzer language server configuration -- rust-analyzer language server configuration
["rust-analyzer"] = { ["rust-analyzer"] = {
cargoWatch = true, cargoWatch = true,
cargo = { cargo = {
allFeatures = true, allFeatures = true,
allTargets = false, allTargets = false,
loadOutDirsFromCheck = true, loadOutDirsFromCheck = true,
buildScripts = { buildScripts = {
enable = true, enable = true,
}, },
}, },
checkOnSave = { checkOnSave = {
allFeatures = true, allFeatures = true,
allTargets = false, allTargets = false,
}, },
diagnostics = { diagnostics = {
enable = true, enable = true,
}, },
procMacro = { procMacro = {
enable = true, enable = true,
ignored = { ignored = {
["async-trait"] = { "async_trait" }, ["async-trait"] = { "async_trait" },
["napi-derive"] = { "napi" }, ["napi-derive"] = { "napi" },
["async-recursion"] = { "async_recursion" }, ["async-recursion"] = { "async_recursion" },
}, },
}, },
files = { files = {
excludeDirs = { excludeDirs = {
".direnv", ".direnv",
".git", ".git",
".github", ".github",
".gitlab", ".gitlab",
"bin", "bin",
"node_modules", "node_modules",
"target", "target",
"venv", "venv",
".venv", ".venv",
}, },
}, },
}, },
}, },
}, },
-- DAP configuration -- DAP configuration
dap = {}, dap = {},
} }
vim.api.nvim_create_autocmd("LspAttach", { vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("lsp", { clear = true }), group = vim.api.nvim_create_augroup("lsp", { clear = true }),
callback = function(args) callback = function(args)
vim.api.nvim_create_autocmd("BufWritePre", { vim.api.nvim_create_autocmd("BufWritePre", {
buffer = args.buf, buffer = args.buf,
callback = function() callback = function()
vim.lsp.buf.format({ async = false, id = args.data.client_id }) vim.lsp.buf.format({ async = false, id = args.data.client_id })
end, end,
}) })
end, end,
}) })

View File

@ -1,22 +1,25 @@
vim.opt.termguicolors = true vim.opt.termguicolors = true
vim.cmd("colorscheme tokyonight") vim.cmd("colorscheme tokyonight")
vim.o.shiftwidth = 4
vim.o.expandtab = true
vim.o.smartindent = true
vim.wo.number = true vim.wo.number = true
vim.wo.relativenumber = true vim.wo.relativenumber = true
vim.diagnostic.config({ vim.diagnostic.config({
virtual_text = true, virtual_text = true,
virtual_lines = { virtual_lines = {
current_line = true, current_line = true,
}, },
update_in_insert = true, update_in_insert = true,
signs = true, signs = true,
}) })
vim.api.nvim_create_autocmd("TextYankPost", { vim.api.nvim_create_autocmd("TextYankPost", {
desc = "Highlight when yanking (copying) text", desc = "Highlight when yanking (copying) text",
group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }), group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }),
callback = function() callback = function()
vim.highlight.on_yank() vim.highlight.on_yank()
end, end,
}) })

View File

@ -1,8 +1,8 @@
return { return {
{ "echasnovski/mini.pairs", event = "BufEnter", version = "*", opts = {} }, { "echasnovski/mini.pairs", event = "BufEnter", version = "*", opts = {} },
{ "echasnovski/mini.cursorword", event = "BufEnter", version = "*", opts = {} }, { "echasnovski/mini.cursorword", event = "BufEnter", version = "*", opts = {} },
{ {
"folke/trouble.nvim", "folke/trouble.nvim",
opts = {}, opts = {},
}, },
} }

View File

@ -1,22 +1,22 @@
return { return {
{ {
"lewis6991/gitsigns.nvim", "lewis6991/gitsigns.nvim",
opts = { opts = {
signs = { signs = {
add = { text = "" }, add = { text = "" },
change = { text = "" }, change = { text = "" },
delete = { text = "" }, delete = { text = "" },
topdelete = { text = "" }, topdelete = { text = "" },
changedelete = { text = "" }, changedelete = { text = "" },
untracked = { text = "" }, untracked = { text = "" },
}, },
signs_staged = { signs_staged = {
add = { text = "" }, add = { text = "" },
change = { text = "" }, change = { text = "" },
delete = { text = "" }, delete = { text = "" },
topdelete = { text = "" }, topdelete = { text = "" },
changedelete = { text = "" }, changedelete = { text = "" },
}, },
}, },
}, },
} }

View File

@ -1,25 +1,25 @@
return { return {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
{ {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
build = ":TSUpdate", build = ":TSUpdate",
}, },
{ {
"mrcjkb/rustaceanvim", "mrcjkb/rustaceanvim",
version = "^6", -- Recommended version = "^6", -- Recommended
lazy = false, -- This plugin is already lazy lazy = false, -- This plugin is already lazy
enabled = true, enabled = true,
}, },
{ {
"saghen/blink.cmp", "saghen/blink.cmp",
version = "1.*", version = "1.*",
opts = { opts = {
keymap = { keymap = {
preset = "enter", preset = "super-tab",
}, },
sources = { sources = {
default = { "lsp", "path", "buffer" }, default = { "lsp", "path", "buffer" },
}, },
}, },
}, },
} }

View File

@ -1,9 +1,18 @@
return { return {
"folke/snacks.nvim", "folke/snacks.nvim",
priority = 1000, priority = 1000,
opts = { opts = {
picker = {}, -- This one could probably be replaced with a custom function.
explorer = {}, bufdelete = { enable = true },
toggle = {}, picker = {
}, sources = {
explorer = {
auto_close = true,
}
}
},
explorer = {},
notifier = {},
toggle = {},
},
} }

View File

@ -1,21 +1,21 @@
return { return {
{ {
"marko-cerovac/material.nvim", "marko-cerovac/material.nvim",
lazy = false, lazy = false,
priority = 1000, priority = 1000,
config = function() config = function()
vim.g.material_style = "darker" vim.g.material_style = "darker"
end, end,
}, },
{ {
"folke/tokyonight.nvim", "folke/tokyonight.nvim",
lazy = true, lazy = true,
opts = { style = "moon" }, opts = { style = "moon" },
}, },
{ {
"dupeiran001/nord.nvim", "dupeiran001/nord.nvim",
lazy = false, lazy = false,
priority = 1000, priority = 1000,
opts = {}, opts = {},
}, },
} }

View File

@ -1,54 +1,54 @@
return { return {
{ {
"folke/which-key.nvim", "folke/which-key.nvim",
event = "VeryLazy", event = "VeryLazy",
}, },
{ {
"echasnovski/mini.icons", "echasnovski/mini.icons",
version = "*", version = "*",
init = function() init = function()
package.preload["nvim-web-devicons"] = function() package.preload["nvim-web-devicons"] = function()
require("mini.icons").mock_nvim_web_devicons() require("mini.icons").mock_nvim_web_devicons()
return package.loaded["nvim-web-devicons"] return package.loaded["nvim-web-devicons"]
end end
end, end,
}, },
{ {
"akinsho/bufferline.nvim", "akinsho/bufferline.nvim",
version = "*", version = "*",
dependencies = "nvim-tree/nvim-web-devicons", dependencies = "nvim-tree/nvim-web-devicons",
opts = { opts = {
options = { options = {
diagnostics = "nvim_lsp", diagnostics = "nvim_lsp",
show_close_icon = false, show_close_icon = false,
separator_style = "slant", separator_style = "slant",
offsets = { offsets = {
{ {
filetype = "snacks_layout_box", filetype = "snacks_layout_box",
text = "󰙅 File Explorer", text = "󰙅 File Explorer",
separator = true, separator = true,
}, },
}, },
}, },
}, },
}, },
{ {
"folke/noice.nvim", "folke/noice.nvim",
event = "VeryLazy", event = "VeryLazy",
dependencies = { dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries -- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim", "MunifTanjim/nui.nvim",
-- OPTIONAL: -- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view. -- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback -- If not available, we use `mini` as the fallback
-- "rcarriga/nvim-notify", -- "rcarriga/nvim-notify",
}, },
opts = { opts = {
-- you can enable a preset for easier configuration -- you can enable a preset for easier configuration
presets = { presets = {
bottom_search = true, -- use a classic bottom cmdline for search bottom_search = true, -- use a classic bottom cmdline for search
command_palette = true, -- position the cmdline and popupmenu together command_palette = true, -- position the cmdline and popupmenu together
}, },
}, },
}, },
} }