-
Notifications
You must be signed in to change notification settings - Fork 102
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
897e790
commit 328d6e4
Showing
6 changed files
with
316 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,250 @@ | ||
# `Snacks_picker` | ||
|
||
<!-- plugins:start --> | ||
|
||
:::info | ||
You can enable the extra with the `:LazyExtras` command. | ||
Plugins marked as optional will only be configured if they are installed. | ||
::: | ||
|
||
### Options | ||
|
||
Additional options for this extra can be configured in your [lua/config/options.lua](/configuration/general#options) file: | ||
|
||
```lua title="lua/config/options.lua" | ||
-- In case you don't want to use `:LazyExtras`, | ||
-- then you need to set the option below. | ||
vim.g.lazyvim_picker = "snacks" | ||
``` | ||
|
||
Below you can find a list of included plugins and their default settings. | ||
|
||
:::caution | ||
You don't need to copy the default settings to your config. | ||
They are only shown here for reference. | ||
::: | ||
|
||
import Tabs from '@theme/Tabs'; | ||
import TabItem from '@theme/TabItem'; | ||
|
||
## [snacks.nvim](https://github.com/folke/snacks.nvim) | ||
|
||
recommended = true, | ||
|
||
|
||
<Tabs> | ||
|
||
<TabItem value="opts" label="Options"> | ||
|
||
```lua | ||
opts = { | ||
picker = {}, | ||
} | ||
``` | ||
|
||
</TabItem> | ||
|
||
|
||
<TabItem value="code" label="Full Spec"> | ||
|
||
```lua | ||
{ | ||
"folke/snacks.nvim", | ||
opts = { | ||
picker = {}, | ||
}, | ||
-- stylua: ignore | ||
keys = { | ||
{ "<leader>,", function() Snacks.picker.buffers() end, desc = "Buffers" }, | ||
{ "<leader>/", LazyVim.pick("grep"), desc = "Grep (Root Dir)" }, | ||
{ "<leader>:", function() Snacks.picker.command_history() end, desc = "Command History" }, | ||
{ "<leader><space>", LazyVim.pick("files"), desc = "Find Files (Root Dir)" }, | ||
-- find | ||
{ "<leader>fb", function() Snacks.picker.buffers() end, desc = "Buffers" }, | ||
{ "<leader>fc", LazyVim.pick.config_files(), desc = "Find Config File" }, | ||
{ "<leader>ff", LazyVim.pick("files"), desc = "Find Files (Root Dir)" }, | ||
{ "<leader>fF", LazyVim.pick("files", { root = false }), desc = "Find Files (cwd)" }, | ||
{ "<leader>fg", function() Snacks.picker.git_files() end, desc = "Find Files (git-files)" }, | ||
{ "<leader>fr", LazyVim.pick("oldfiles"), desc = "Recent" }, | ||
{ "<leader>fR", LazyVim.pick("oldfiles", { only_cwd = true }), desc = "Recent (cwd)" }, | ||
-- git | ||
{ "<leader>gc", function() Snacks.picker.git_log() end, desc = "Git Log" }, | ||
{ "<leader>gs", function() Snacks.picker.git_status() end, desc = "Git Status" }, | ||
-- Grep | ||
{ "<leader>sb", function() Snacks.picker.lines() end, desc = "Buffer Lines" }, | ||
{ "<leader>sB", function() Snacks.picker.grep_buffers() end, desc = "Grep Open Buffers" }, | ||
{ "<leader>sg", LazyVim.pick("live_grep"), desc = "Grep (Root Dir)" }, | ||
{ "<leader>sG", LazyVim.pick("live_grep", { root = false }), desc = "Grep (cwd)" }, | ||
{ "<leader>sw", LazyVim.pick("grep_word"), desc = "Visual selection or word (Root Dir)", mode = { "n", "x" } }, | ||
{ "<leader>sW", LazyVim.pick("grep_word", { root = false }), desc = "Visual selection or word (cwd)", mode = { "n", "x" } }, | ||
-- search | ||
{ '<leader>s"', function() Snacks.picker.registers() end, desc = "Registers" }, | ||
{ "<leader>sa", function() Snacks.picker.autocmds() end, desc = "Autocmds" }, | ||
{ "<leader>sc", function() Snacks.picker.command_history() end, desc = "Command History" }, | ||
{ "<leader>sC", function() Snacks.picker.commands() end, desc = "Commands" }, | ||
{ "<leader>sd", function() Snacks.picker.diagnostics() end, desc = "Diagnostics" }, | ||
{ "<leader>sh", function() Snacks.picker.help() end, desc = "Help Pages" }, | ||
{ "<leader>sH", function() Snacks.picker.highlights() end, desc = "Highlights" }, | ||
{ "<leader>sj", function() Snacks.picker.jumps() end, desc = "Jumps" }, | ||
{ "<leader>sk", function() Snacks.picker.keymaps() end, desc = "Keymaps" }, | ||
{ "<leader>sl", function() Snacks.picker.loclist() end, desc = "Location List" }, | ||
{ "<leader>sM", function() Snacks.picker.man() end, desc = "Man Pages" }, | ||
{ "<leader>sm", function() Snacks.picker.marks() end, desc = "Marks" }, | ||
{ "<leader>sR", function() Snacks.picker.resume() end, desc = "Resume" }, | ||
{ "<leader>sq", function() Snacks.picker.qflist() end, desc = "Quickfix List" }, | ||
{ "<leader>uC", function() Snacks.picker.colorschemes() end, desc = "Colorschemes" }, | ||
{ "<leader>qp", function() Snacks.picker.projects() end, desc = "Projects" }, | ||
}, | ||
} | ||
``` | ||
|
||
</TabItem> | ||
|
||
</Tabs> | ||
|
||
## [snacks.nvim](https://github.com/folke/snacks.nvim) | ||
|
||
<Tabs> | ||
|
||
<TabItem value="opts" label="Options"> | ||
|
||
```lua | ||
opts = function(_, opts) | ||
if LazyVim.has("trouble.nvim") then | ||
return vim.tbl_deep_extend("force", opts or {}, { | ||
picker = { | ||
actions = require("trouble.sources.snacks").actions, | ||
win = { | ||
input = { | ||
keys = { | ||
["<c-t>"] = { | ||
"trouble_open", | ||
mode = { "n", "i" }, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}) | ||
end | ||
end | ||
``` | ||
|
||
</TabItem> | ||
|
||
|
||
<TabItem value="code" label="Full Spec"> | ||
|
||
```lua | ||
{ | ||
"folke/snacks.nvim", | ||
opts = function(_, opts) | ||
if LazyVim.has("trouble.nvim") then | ||
return vim.tbl_deep_extend("force", opts or {}, { | ||
picker = { | ||
actions = require("trouble.sources.snacks").actions, | ||
win = { | ||
input = { | ||
keys = { | ||
["<c-t>"] = { | ||
"trouble_open", | ||
mode = { "n", "i" }, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}) | ||
end | ||
end, | ||
} | ||
``` | ||
|
||
</TabItem> | ||
|
||
</Tabs> | ||
|
||
## [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) | ||
|
||
<Tabs> | ||
|
||
<TabItem value="opts" label="Options"> | ||
|
||
```lua | ||
opts = function() | ||
if LazyVim.pick.want() ~= "snacks" then | ||
return | ||
end | ||
local Keys = require("lazyvim.plugins.lsp.keymaps").get() | ||
-- stylua: ignore | ||
vim.list_extend(Keys, { | ||
{ "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition", has = "definition" }, | ||
{ "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" }, | ||
{ "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" }, | ||
{ "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" }, | ||
{ "<leader>ss", function() Snacks.picker.lsp_symbols() end, desc = "LSP Symbols", has = "documentSymbol" }, | ||
}) | ||
end | ||
``` | ||
|
||
</TabItem> | ||
|
||
|
||
<TabItem value="code" label="Full Spec"> | ||
|
||
```lua | ||
{ | ||
"neovim/nvim-lspconfig", | ||
opts = function() | ||
if LazyVim.pick.want() ~= "snacks" then | ||
return | ||
end | ||
local Keys = require("lazyvim.plugins.lsp.keymaps").get() | ||
-- stylua: ignore | ||
vim.list_extend(Keys, { | ||
{ "gd", function() Snacks.picker.lsp_definitions() end, desc = "Goto Definition", has = "definition" }, | ||
{ "gr", function() Snacks.picker.lsp_references() end, nowait = true, desc = "References" }, | ||
{ "gI", function() Snacks.picker.lsp_implementations() end, desc = "Goto Implementation" }, | ||
{ "gy", function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" }, | ||
{ "<leader>ss", function() Snacks.picker.lsp_symbols() end, desc = "LSP Symbols", has = "documentSymbol" }, | ||
}) | ||
end, | ||
} | ||
``` | ||
|
||
</TabItem> | ||
|
||
</Tabs> | ||
|
||
## [todo-comments.nvim](https://github.com/folke/todo-comments.nvim) _(optional)_ | ||
|
||
<Tabs> | ||
|
||
<TabItem value="opts" label="Options"> | ||
|
||
```lua | ||
opts = nil | ||
``` | ||
|
||
</TabItem> | ||
|
||
|
||
<TabItem value="code" label="Full Spec"> | ||
|
||
```lua | ||
{ | ||
"folke/todo-comments.nvim", | ||
optional = true, | ||
-- stylua: ignore | ||
keys = { | ||
{ "<leader>st", function() Snacks.picker.todo_comments() end, desc = "Todo" }, | ||
{ "<leader>sT", function () Snacks.picker.todo_comments({ keywords = { "TODO", "FIX", "FIXME" } }) end, desc = "Todo/Fix/Fixme" }, | ||
}, | ||
} | ||
``` | ||
|
||
</TabItem> | ||
|
||
</Tabs> | ||
|
||
<!-- plugins:end --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters