adding new feats

This commit is contained in:
Paul Bennett 2026-02-03 14:23:16 +00:00
parent e79572c9e6
commit baecde5358
6 changed files with 275 additions and 220 deletions

346
init.lua
View File

@ -91,7 +91,7 @@ vim.g.mapleader = ' '
vim.g.maplocalleader = ' ' vim.g.maplocalleader = ' '
-- Set to true if you have a Nerd Font installed and selected in the terminal -- Set to true if you have a Nerd Font installed and selected in the terminal
vim.g.have_nerd_font = false vim.g.have_nerd_font = true
-- [[ Setting options ]] -- [[ Setting options ]]
-- See `:help vim.o` -- See `:help vim.o`
@ -102,7 +102,7 @@ vim.g.have_nerd_font = false
vim.o.number = true vim.o.number = true
-- You can also add relative line numbers, to help with jumping. -- You can also add relative line numbers, to help with jumping.
-- Experiment for yourself to see if you like it! -- Experiment for yourself to see if you like it!
-- vim.o.relativenumber = true vim.o.relativenumber = true
-- Enable mouse mode, can be useful for resizing splits for example! -- Enable mouse mode, can be useful for resizing splits for example!
vim.o.mouse = 'a' vim.o.mouse = 'a'
@ -277,11 +277,11 @@ require('lazy').setup({
'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 = '' },
}, },
}, },
}, },
@ -305,6 +305,7 @@ require('lazy').setup({
event = 'VimEnter', event = 'VimEnter',
opts = { opts = {
-- delay between pressing a key and opening which-key (milliseconds) -- delay between pressing a key and opening which-key (milliseconds)
preset = 'helix',
delay = 0, delay = 0,
icons = { mappings = vim.g.have_nerd_font }, icons = { mappings = vim.g.have_nerd_font },
@ -324,153 +325,9 @@ require('lazy').setup({
-- --
-- Use the `dependencies` key to specify the dependencies of a particular plugin -- Use the `dependencies` key to specify the dependencies of a particular plugin
{ -- Fuzzy Finder (files, lsp, etc) -- NOTE: Snacks picker is configured in lua/custom/plugins/snacks.lua
'nvim-telescope/telescope.nvim', -- All picker keymaps use <leader>s prefix (e.g. <leader>sf for files, <leader>sg for grep)
-- By default, Telescope is included and acts as your picker for everything. -- LSP pickers are configured via Snacks LSP integration (gd, grr, gri, grt, gO, gW)
-- If you would like to switch to a different picker (like snacks, or fzf-lua)
-- you can disable the Telescope plugin by setting enabled to false and enable
-- your replacement picker by requiring it explicitly (e.g. 'custom.plugins.snacks')
-- Note: If you customize your config for yourself,
-- its best to remove the Telescope plugin config entirely
-- instead of just disabling it here, to keep your config clean.
enabled = true,
event = 'VimEnter',
dependencies = {
'nvim-lua/plenary.nvim',
{ -- If encountering errors, see telescope-fzf-native README for installation instructions
'nvim-telescope/telescope-fzf-native.nvim',
-- `build` is used to run some command when the plugin is installed/updated.
-- This is only run then, not every time Neovim starts up.
build = 'make',
-- `cond` is a condition used to determine whether this plugin should be
-- installed and loaded.
cond = function() return vim.fn.executable 'make' == 1 end,
},
{ 'nvim-telescope/telescope-ui-select.nvim' },
-- Useful for getting pretty icons, but requires a Nerd Font.
{ 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font },
},
config = function()
-- Telescope is a fuzzy finder that comes with a lot of different things that
-- it can fuzzy find! It's more than just a "file finder", it can search
-- many different aspects of Neovim, your workspace, LSP, and more!
--
-- The easiest way to use Telescope, is to start by doing something like:
-- :Telescope help_tags
--
-- After running this command, a window will open up and you're able to
-- type in the prompt window. You'll see a list of `help_tags` options and
-- a corresponding preview of the help.
--
-- Two important keymaps to use while in Telescope are:
-- - Insert mode: <c-/>
-- - Normal mode: ?
--
-- This opens a window that shows you all of the keymaps for the current
-- Telescope picker. This is really useful to discover what Telescope can
-- do as well as how to actually do it!
-- [[ Configure Telescope ]]
-- See `:help telescope` and `:help telescope.setup()`
require('telescope').setup {
-- You can put your default mappings / updates / etc. in here
-- All the info you're looking for is in `:help telescope.setup()`
--
-- defaults = {
-- mappings = {
-- i = { ['<c-enter>'] = 'to_fuzzy_refine' },
-- },
-- },
-- pickers = {}
extensions = {
['ui-select'] = { require('telescope.themes').get_dropdown() },
},
}
-- Enable Telescope extensions if they are installed
pcall(require('telescope').load_extension, 'fzf')
pcall(require('telescope').load_extension, 'ui-select')
-- See `:help telescope.builtin`
local builtin = require 'telescope.builtin'
vim.keymap.set('n', '<leader>sh', builtin.help_tags, { desc = '[S]earch [H]elp' })
vim.keymap.set('n', '<leader>sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' })
vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
vim.keymap.set('n', '<leader>ss', builtin.builtin, { desc = '[S]earch [S]elect Telescope' })
vim.keymap.set({ 'n', 'v' }, '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
vim.keymap.set('n', '<leader>sg', builtin.live_grep, { desc = '[S]earch by [G]rep' })
vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' })
vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' })
vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' })
vim.keymap.set('n', '<leader>sc', builtin.commands, { desc = '[S]earch [C]ommands' })
vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' })
-- This runs on LSP attach per buffer (see main LSP attach function in 'neovim/nvim-lspconfig' config for more info,
-- it is better explained there). This allows easily switching between pickers if you prefer using something else!
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('telescope-lsp-attach', { clear = true }),
callback = function(event)
local buf = event.buf
-- Find references for the word under your cursor.
vim.keymap.set('n', 'grr', builtin.lsp_references, { buffer = buf, desc = '[G]oto [R]eferences' })
-- Jump to the implementation of the word under your cursor.
-- Useful when your language has ways of declaring types without an actual implementation.
vim.keymap.set('n', 'gri', builtin.lsp_implementations, { buffer = buf, desc = '[G]oto [I]mplementation' })
-- Jump to the definition of the word under your cursor.
-- This is where a variable was first declared, or where a function is defined, etc.
-- To jump back, press <C-t>.
vim.keymap.set('n', 'grd', builtin.lsp_definitions, { buffer = buf, desc = '[G]oto [D]efinition' })
-- Fuzzy find all the symbols in your current document.
-- Symbols are things like variables, functions, types, etc.
vim.keymap.set('n', 'gO', builtin.lsp_document_symbols, { buffer = buf, desc = 'Open Document Symbols' })
-- Fuzzy find all the symbols in your current workspace.
-- Similar to document symbols, except searches over your entire project.
vim.keymap.set('n', 'gW', builtin.lsp_dynamic_workspace_symbols, { buffer = buf, desc = 'Open Workspace Symbols' })
-- Jump to the type of the word under your cursor.
-- Useful when you're not sure what type a variable is and you want to see
-- the definition of its *type*, not where it was *defined*.
vim.keymap.set('n', 'grt', builtin.lsp_type_definitions, { buffer = buf, desc = '[G]oto [T]ype Definition' })
end,
})
-- Override default behavior and theme when searching
vim.keymap.set('n', '<leader>/', function()
-- You can pass additional configuration to Telescope to change the theme, layout, etc.
builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
winblend = 10,
previewer = false,
})
end, { desc = '[/] Fuzzily search in current buffer' })
-- It's also possible to pass additional configuration options.
-- See `:help telescope.builtin.live_grep()` for information about particular keys
vim.keymap.set(
'n',
'<leader>s/',
function()
builtin.live_grep {
grep_open_files = true,
prompt_title = 'Live Grep in Open Files',
}
end,
{ desc = '[S]earch [/] in Open Files' }
)
-- Shortcut for searching your Neovim configuration files
vim.keymap.set('n', '<leader>sn', function() builtin.find_files { cwd = vim.fn.stdpath 'config' } end, { desc = '[S]earch [N]eovim files' })
end,
},
-- LSP Plugins -- LSP Plugins
{ {
@ -544,6 +401,14 @@ require('lazy').setup({
-- For example, in C this would take you to the header. -- For example, in C this would take you to the header.
map('grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') map('grD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
-- LSP Navigation using Snacks Pickers (fuzzy searchable results)
map('gd', function() Snacks.picker.lsp_definitions() end, '[G]oto [D]efinition')
map('grr', function() Snacks.picker.lsp_references() end, '[G]oto [R]eferences')
map('gri', function() Snacks.picker.lsp_implementations() end, '[G]oto [I]mplementation')
map('grt', function() Snacks.picker.lsp_type_definitions() end, '[G]oto [T]ype Definition')
map('gO', function() Snacks.picker.lsp_symbols() end, 'Document Symbols')
map('gW', function() Snacks.picker.lsp_workspace_symbols() end, 'Workspace Symbols')
-- The following two autocommands are used to highlight references of the -- The following two autocommands are used to highlight references of the
-- word under your cursor when your cursor rests there for a little while. -- word under your cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed -- See `:help CursorHold` for information about when this is executed
@ -573,6 +438,9 @@ require('lazy').setup({
}) })
end end
-- Disable hover from Ruff (ty provides better type information)
if client and client.name == 'ruff' then client.server_capabilities.hoverProvider = false end
-- The following code creates a keymap to toggle inlay hints in your -- The following code creates a keymap to toggle inlay hints in your
-- code, if the language server you are using supports them -- code, if the language server you are using supports them
-- --
@ -614,8 +482,14 @@ require('lazy').setup({
-- You can press `g?` for help in this menu. -- You can press `g?` for help in this menu.
local ensure_installed = vim.tbl_keys(servers or {}) local ensure_installed = vim.tbl_keys(servers or {})
vim.list_extend(ensure_installed, { vim.list_extend(ensure_installed, {
'lua_ls', -- Lua Language server 'lua-language-server', -- Lua Language server
'stylua', -- Used to format Lua code 'stylua', -- Used to format Lua code
'ruff', -- Python linter/formatter LSP
'ty', -- Python type checker LSP
'pyright', -- Python language server for completions
'yaml-language-server', -- YAML LSP with Kubernetes schemas
'helm-ls', -- Helm chart language server
'prettier', -- YAML/JSON formatter
-- You can add other tools here that you want Mason to install -- You can add other tools here that you want Mason to install
}) })
@ -653,6 +527,101 @@ require('lazy').setup({
}, },
}) })
vim.lsp.enable 'lua_ls' vim.lsp.enable 'lua_ls'
-- Ruff LSP for Python linting and formatting
vim.lsp.config('ruff', {
cmd = { vim.fn.stdpath 'data' .. '/mason/bin/ruff', 'server' },
init_options = {
settings = {
lineLength = 88,
logLevel = 'warn',
},
},
})
vim.lsp.enable 'ruff'
-- ty LSP for Python type checking
vim.lsp.config('ty', {
cmd = { vim.fn.stdpath 'data' .. '/mason/bin/ty', 'server' },
settings = {
ty = {
configuration = {
rules = {
['unresolved-reference'] = 'warn',
},
},
},
},
})
vim.lsp.enable 'ty'
-- Pyright LSP for Python completions and intellisense
vim.lsp.config('pyright', {
cmd = { vim.fn.stdpath 'data' .. '/mason/bin/pyright-langserver', '--stdio' },
capabilities = capabilities,
settings = {
python = {
analysis = {
autoSearchPaths = true,
useLibraryCodeForTypes = true,
diagnosticMode = 'openFilesOnly',
},
},
},
})
vim.lsp.enable 'pyright'
-- YAML Language Server with Kubernetes and CRD support
vim.lsp.config('yamlls', {
cmd = { vim.fn.stdpath 'data' .. '/mason/bin/yaml-language-server', '--stdio' },
capabilities = capabilities,
settings = {
redhat = { telemetry = { enabled = false } },
yaml = {
keyOrdering = false,
format = { enable = true },
validate = true,
schemaStore = {
enable = false, -- Disable built-in, use SchemaStore.nvim
url = '',
},
-- Enable CRD schemas from datreeio/CRDs-catalog
kubernetesCRDStore = {
enable = true,
url = 'https://raw.githubusercontent.com/datreeio/CRDs-catalog/main',
},
schemas = vim.tbl_deep_extend('force', require('schemastore').yaml.schemas(), {
kubernetes = {
'**/k8s/**/*.yaml',
'**/kubernetes/**/*.yaml',
'**/manifests/**/*.yaml',
'**/deploy/**/*.yaml',
'**/base/**/*.yaml',
'**/overlays/**/*.yaml',
'*.k8s.yaml',
'*.yaml',
},
}),
},
},
})
vim.lsp.enable 'yamlls'
-- Helm Language Server
vim.lsp.config('helm_ls', {
cmd = { vim.fn.stdpath 'data' .. '/mason/bin/helm_ls', 'serve' },
capabilities = capabilities,
settings = {
['helm-ls'] = {
logLevel = 'info',
yamlls = {
enabled = true,
path = vim.fn.stdpath 'data' .. '/mason/bin/yaml-language-server',
},
},
},
})
vim.lsp.enable 'helm_ls'
end, end,
}, },
@ -687,7 +656,15 @@ require('lazy').setup({
formatters_by_ft = { formatters_by_ft = {
lua = { 'stylua' }, lua = { 'stylua' },
-- Conform can also run multiple formatters sequentially -- Conform can also run multiple formatters sequentially
-- python = { "isort", "black" }, python = {
-- To fix auto-fixable lint errors.
'ruff_fix',
-- To run the Ruff formatter.
'ruff_format',
-- To organize the imports.
'ruff_organize_imports',
},
yaml = { 'prettier' },
-- --
-- You can use 'stop_after_first' to run the first available formatter from the list -- You can use 'stop_after_first' to run the first available formatter from the list
-- javascript = { "prettierd", "prettier", stop_after_first = true }, -- javascript = { "prettierd", "prettier", stop_after_first = true },
@ -750,7 +727,7 @@ require('lazy').setup({
-- <c-k>: Toggle signature help -- <c-k>: Toggle signature help
-- --
-- See :h blink-cmp-config-keymap for defining your own keymap -- See :h blink-cmp-config-keymap for defining your own keymap
preset = 'default', preset = 'super-tab',
-- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see: -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
-- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
@ -788,25 +765,18 @@ require('lazy').setup({
}, },
}, },
{ -- You can easily change to a different colorscheme. { -- Catppuccin colorscheme
-- Change the name of the colorscheme plugin below, and then 'catppuccin/nvim',
-- change the command in the config to whatever the name of that colorscheme is. name = 'catppuccin',
-- priority = 1000,
-- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
'folke/tokyonight.nvim',
priority = 1000, -- Make sure to load this before all the other start plugins.
config = function() config = function()
---@diagnostic disable-next-line: missing-fields require('catppuccin').setup {
require('tokyonight').setup { flavour = 'mocha',
styles = { styles = {
comments = { italic = false }, -- Disable italics in comments comments = {}, -- Disable italics in comments (empty = no styling)
}, },
} }
vim.cmd.colorscheme 'catppuccin'
-- Load the colorscheme here.
-- Like many other themes, this one has different styles, and you could load
-- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
vim.cmd.colorscheme 'tokyonight-night'
end, end,
}, },
@ -831,19 +801,6 @@ require('lazy').setup({
-- - sr)' - [S]urround [R]eplace [)] ['] -- - sr)' - [S]urround [R]eplace [)] [']
require('mini.surround').setup() require('mini.surround').setup()
-- Simple and easy statusline.
-- You could remove this setup call if you don't like it,
-- and try some other statusline plugin
local statusline = require 'mini.statusline'
-- set use_icons to true if you have a Nerd Font
statusline.setup { use_icons = vim.g.have_nerd_font }
-- You can configure sections in the statusline by overriding their
-- default behavior. For example, here we set the section for
-- cursor location to LINE:COLUMN
---@diagnostic disable-next-line: duplicate-set-field
statusline.section_location = function() return '%2l:%-2v' end
-- ... and there is more! -- ... and there is more!
-- Check out: https://github.com/nvim-mini/mini.nvim -- Check out: https://github.com/nvim-mini/mini.nvim
end, end,
@ -852,7 +809,7 @@ require('lazy').setup({
{ -- Highlight, edit, and navigate code { -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter', 'nvim-treesitter/nvim-treesitter',
config = function() config = function()
local filetypes = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' } local filetypes = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc', 'yaml', 'helm' }
require('nvim-treesitter').install(filetypes) require('nvim-treesitter').install(filetypes)
vim.api.nvim_create_autocmd('FileType', { vim.api.nvim_create_autocmd('FileType', {
pattern = filetypes, pattern = filetypes,
@ -870,23 +827,22 @@ require('lazy').setup({
-- Here are some example plugins that I've included in the Kickstart repository. -- Here are some example plugins that I've included in the Kickstart repository.
-- Uncomment any of the lines below to enable them (you will need to restart nvim). -- Uncomment any of the lines below to enable them (you will need to restart nvim).
-- --
-- require 'kickstart.plugins.debug', require 'kickstart.plugins.debug',
-- require 'kickstart.plugins.indent_line', require 'kickstart.plugins.indent_line',
-- require 'kickstart.plugins.lint', require 'kickstart.plugins.lint',
-- require 'kickstart.plugins.autopairs', require 'kickstart.plugins.autopairs',
-- require 'kickstart.plugins.neo-tree', require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
-- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
-- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
-- This is the easiest way to modularize your config. -- This is the easiest way to modularize your config.
-- --
-- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going. -- Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
-- { import = 'custom.plugins' }, { import = 'custom.plugins' },
-- --
-- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec` -- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
-- Or use telescope! -- Or use Snacks picker!
-- In normal mode type `<space>sh` then write `lazy.nvim-plugin` -- In normal mode type `<space>sh` then write `lazy.nvim-plugin`
-- you can continue same window with `<space>sr` which resumes last telescope search -- you can continue same window with `<space>sr` which resumes last search
}, { }, {
ui = { ui = {
-- If you are using a Nerd Font: set icons to an empty table which will use the -- If you are using a Nerd Font: set icons to an empty table which will use the

View File

@ -0,0 +1,14 @@
return {
-- SchemaStore for YAML schemas (GitHub Actions, Docker Compose, etc.)
{
'b0o/SchemaStore.nvim',
lazy = true,
version = false,
},
-- Helm filetype detection and syntax
{
'towolf/vim-helm',
ft = 'helm',
},
}

View File

@ -0,0 +1,8 @@
return {
{
'oribarilan/lensline.nvim',
tag = '2.0.0',
event = 'LspAttach',
config = function() require('lensline').setup() end,
},
}

View File

@ -0,0 +1,20 @@
return {
{
'nvim-lualine/lualine.nvim',
dependencies = { 'nvim-tree/nvim-web-devicons' },
config = function()
require('lualine').setup {
options = {
icons_enabled = vim.g.have_nerd_font,
theme = 'auto', -- Auto-detects catppuccin
section_separators = { left = '', right = '' },
component_separators = { left = '', right = '' },
},
sections = {
lualine_c = { { 'filename', path = 1 } }, -- Show relative path
lualine_z = { '%2l:%-2v' }, -- Match previous LINE:COLUMN format
},
}
end,
},
}

View File

@ -0,0 +1,82 @@
return {
-- Main Snacks Configuration with Core Features & Keymaps
{
"folke/snacks.nvim",
priority = 1000,
lazy = false,
---@type snacks.Config
opts = {
bigfile = { enabled = true },
dashboard = { enabled = true },
explorer = { enabled = true },
indent = { enabled = true },
input = { enabled = true },
notifier = { enabled = true },
quickfile = { enabled = true },
scope = { enabled = true },
scroll = { enabled = true },
statuscolumn = { enabled = true },
words = { enabled = true },
picker = {
enabled = true,
win = {
input = {
keys = {
-- Toggle between root and cwd
["<a-c>"] = { "toggle_cwd", mode = { "n", "i" } },
},
},
},
},
},
-- stylua: ignore
keys = {
-- Quick Access
{ "<leader>,", function() Snacks.picker.buffers() end, desc = "Buffers" },
{ "<leader>/", function() Snacks.picker.lines() end, desc = "Buffer Lines" },
{ "<leader><leader>", function() Snacks.picker.buffers() end, desc = "Buffers" },
-- Find (f prefix)
{ "<leader>fb", function() Snacks.picker.buffers() end, desc = "[F]ind [B]uffers" },
{ "<leader>fc", function() Snacks.picker.files({ cwd = vim.fn.stdpath('config') }) end, desc = "[F]ind [C]onfig Files" },
{ "<leader>ff", function() Snacks.picker.files() end, desc = "[F]ind [F]iles" },
{ "<leader>fg", function() Snacks.picker.git_files() end, desc = "[F]ind [G]it Files" },
{ "<leader>fr", function() Snacks.picker.recent() end, desc = "[F]ind [R]ecent Files" },
-- Git (g prefix)
{ "<leader>gd", function() Snacks.picker.git_diff() end, desc = "Git [D]iff" },
{ "<leader>gs", function() Snacks.picker.git_status() end, desc = "Git [S]tatus" },
{ "<leader>gS", function() Snacks.picker.git_stash() end, desc = "Git [S]tash" },
-- Search (s prefix) - Matching Telescope keymaps
{ "<leader>s.", function() Snacks.picker.recent() end, desc = "[S]earch Recent Files" },
{ "<leader>s/", function() Snacks.picker.grep_buffers() end, desc = "[S]earch in Open Files" },
{ "<leader>sb", function() Snacks.picker.lines() end, desc = "[S]earch [B]uffer Lines" },
{ "<leader>sB", function() Snacks.picker.grep_buffers() end, desc = "[S]earch Open [B]uffers" },
{ "<leader>sc", function() Snacks.picker.commands() end, desc = "[S]earch [C]ommands" },
{ "<leader>sd", function() Snacks.picker.diagnostics() end, desc = "[S]earch [D]iagnostics" },
{ "<leader>sf", function() Snacks.picker.files() end, desc = "[S]earch [F]iles" },
{ "<leader>sg", function() Snacks.picker.grep() end, desc = "[S]earch by [G]rep" },
{ "<leader>sh", function() Snacks.picker.help() end, desc = "[S]earch [H]elp" },
{ "<leader>sk", function() Snacks.picker.keymaps() end, desc = "[S]earch [K]eymaps" },
{ "<leader>sm", function() Snacks.picker.marks() end, desc = "[S]earch [M]arks" },
{ "<leader>sn", function() Snacks.picker.files({ cwd = vim.fn.stdpath('config') }) end, desc = "[S]earch [N]eovim files" },
{ "<leader>sr", function() Snacks.picker.resume() end, desc = "[S]earch [R]esume" },
{ "<leader>ss", function() Snacks.picker() end, desc = "[S]earch [S]elect Picker" },
{ "<leader>sw", function() Snacks.picker.grep_word() end, desc = "[S]earch current [W]ord", mode = { "n", "x" } },
-- Notifications
{ "<leader>n", function() Snacks.picker.notifications() end, desc = "Notification History" },
{ "<leader>un", function() Snacks.notifier.hide() end, desc = "Dismiss Notifications" },
-- Explorer
{ "<leader>fe", function() Snacks.explorer({ cwd = vim.fs.root(0, ".git") or vim.fn.getcwd() }) end, desc = "[F]ile [E]xplorer (root)" },
{ "<leader>fE", function() Snacks.explorer() end, desc = "[F]ile [E]xplorer (cwd)" },
{ "<leader>e", "<leader>fe", desc = "Explorer (root)", remap = true },
{ "<leader>E", "<leader>fE", desc = "Explorer (cwd)", remap = true },
-- UI
{ "<leader>uC", function() Snacks.picker.colorschemes() end, desc = "Colorschemes" },
},
},
}

View File

@ -1,25 +0,0 @@
-- Neo-tree is a Neovim plugin to browse the file system
-- https://github.com/nvim-neo-tree/neo-tree.nvim
return {
'nvim-neo-tree/neo-tree.nvim',
version = '*',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended
'MunifTanjim/nui.nvim',
},
lazy = false,
keys = {
{ '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true },
},
opts = {
filesystem = {
window = {
mappings = {
['\\'] = 'close_window',
},
},
},
},
}