feat: switched to snacks picker from fzf-lua
parent
10643d0b4b
commit
d0f06687d1
|
@ -26,12 +26,9 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
|
|
||||||
-- LSP: Diagnostics
|
-- LSP: Diagnostics
|
||||||
if lsp_client:supports_method('textDocument/diagnostic') then
|
if lsp_client:supports_method('textDocument/diagnostic') then
|
||||||
vim.keymap.set(
|
vim.keymap.set('n', '<leader>le', function()
|
||||||
'n',
|
require('snacks').picker.diagnostics_buffer()
|
||||||
'<leader>le',
|
end, { buffer = buf, desc = '[L]SP [E]rrors' })
|
||||||
require('fzf-lua').diagnostics_document,
|
|
||||||
{ buffer = buf, desc = '[L]SP [E]rrors' }
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- LSP: Diagnostics
|
-- LSP: Diagnostics
|
||||||
|
@ -48,20 +45,6 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
id = lsp_client.id,
|
id = lsp_client.id,
|
||||||
})
|
})
|
||||||
end, { buffer = buf, desc = '[L]SP [F]ormat' })
|
end, { buffer = buf, desc = '[L]SP [F]ormat' })
|
||||||
|
|
||||||
-- Format the current buffer on save
|
|
||||||
--- TODO: Only on filetypes w/fast formatters?
|
|
||||||
--vim.api.nvim_create_autocmd('BufWritePre', {
|
|
||||||
-- buffer = buf,
|
|
||||||
-- callback = function()
|
|
||||||
-- require('conform').format({
|
|
||||||
-- async = true,
|
|
||||||
-- bufnr = buf,
|
|
||||||
-- id = lsp_client.id,
|
|
||||||
-- })
|
|
||||||
-- --vim.lsp.buf.format({ bufnr = buf, id = lsp_client.id })
|
|
||||||
-- end
|
|
||||||
--})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- LSP Action: Inlay Hint
|
-- LSP Action: Inlay Hint
|
||||||
|
@ -80,12 +63,9 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
|
|
||||||
-- LSP Action: Code Actions
|
-- LSP Action: Code Actions
|
||||||
if lsp_client:supports_method('textDocument/codeAction') then
|
if lsp_client:supports_method('textDocument/codeAction') then
|
||||||
vim.keymap.set(
|
vim.keymap.set('n', '<leader>li', function()
|
||||||
'n',
|
vim.lsp.buf.code_action()
|
||||||
'<leader>li',
|
end, { buffer = buf, desc = '[L]SP F[I]xes' })
|
||||||
require('fzf-lua').lsp_code_actions,
|
|
||||||
{ buffer = buf, desc = '[L]SP F[I]xes' }
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- LSP Action: Rename
|
-- LSP Action: Rename
|
||||||
|
@ -104,17 +84,30 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
or lsp_client:supports_method('textDocument/typeDefinition')
|
or lsp_client:supports_method('textDocument/typeDefinition')
|
||||||
or lsp_client:supports_method('textDocument/definition')
|
or lsp_client:supports_method('textDocument/definition')
|
||||||
then
|
then
|
||||||
vim.keymap.set('n', '<leader>ld', require('fzf-lua').lsp_finder, { buffer = buf, desc = '[L]SP Fin[D]er' })
|
vim.keymap.set('n', '<leader>ld', function()
|
||||||
|
require('snacks').picker.smart({
|
||||||
|
multi = {
|
||||||
|
'lsp_definitions',
|
||||||
|
'lsp_references',
|
||||||
|
'lsp_implementations',
|
||||||
|
'lsp_type_definitions',
|
||||||
|
},
|
||||||
|
format = 'file',
|
||||||
|
matcher = {
|
||||||
|
cwd_bonus = true,
|
||||||
|
frecency = false,
|
||||||
|
sort_empty = true,
|
||||||
|
},
|
||||||
|
transform = 'unique_file',
|
||||||
|
})
|
||||||
|
end, { buffer = buf, desc = '[L]SP Fin[D]er' })
|
||||||
end
|
end
|
||||||
|
|
||||||
-- LSP Action: List Buffer Symbols
|
-- LSP Action: List Buffer Symbols
|
||||||
if lsp_client:supports_method('textDocument/documentSymbol') then
|
if lsp_client:supports_method('textDocument/documentSymbol') then
|
||||||
vim.keymap.set(
|
vim.keymap.set('n', '<leader>ls', function()
|
||||||
'n',
|
require('snacks').lsp_symbols()
|
||||||
'<leader>ls',
|
end, { buffer = buf, desc = '[L]SP [S]ymbols' })
|
||||||
require('fzf-lua').lsp_document_symbols,
|
|
||||||
{ buffer = buf, desc = '[L]SP [S]ymbols' }
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
|
@ -36,7 +36,7 @@ require('lazy').setup({
|
||||||
|
|
||||||
-- Search: telescope (for now)
|
-- Search: telescope (for now)
|
||||||
--- Keys: <leader>s
|
--- Keys: <leader>s
|
||||||
require('plugins/search/fzf-lua'),
|
--require('plugins/search/fzf-lua'),
|
||||||
|
|
||||||
-- Version Control: git
|
-- Version Control: git
|
||||||
---- Keys: <leader>g
|
---- Keys: <leader>g
|
||||||
|
@ -76,7 +76,6 @@ require('lazy').setup({
|
||||||
|
|
||||||
-- Workflow
|
-- Workflow
|
||||||
require('plugins/workflow/projections'),
|
require('plugins/workflow/projections'),
|
||||||
require('plugins/workflow/mini-files'),
|
|
||||||
--require('plugins/workflow/git-dev'),
|
--require('plugins/workflow/git-dev'),
|
||||||
--require('plugins/workflow/sad'),
|
--require('plugins/workflow/sad'),
|
||||||
|
|
||||||
|
|
|
@ -249,7 +249,9 @@ return {
|
||||||
-- Use Treesitter as the Folding Method
|
-- Use Treesitter as the Folding Method
|
||||||
--vim.opt.foldmethod = "expr"
|
--vim.opt.foldmethod = "expr"
|
||||||
--vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
--vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
||||||
--
|
|
||||||
|
-- Suppress Concealment of ```
|
||||||
|
--- See https://github.com/nvim-treesitter/nvim-treesitter/issues/5751
|
||||||
require('vim.treesitter.query').set(
|
require('vim.treesitter.query').set(
|
||||||
'markdown',
|
'markdown',
|
||||||
'highlights',
|
'highlights',
|
||||||
|
|
|
@ -38,6 +38,7 @@ return {
|
||||||
prompt = 'Enter Jupyter Server URL:',
|
prompt = 'Enter Jupyter Server URL:',
|
||||||
}, function(input)
|
}, function(input)
|
||||||
if input then
|
if input then
|
||||||
|
vim.print(input)
|
||||||
vim.cmd(':MoltenInit ' .. input)
|
vim.cmd(':MoltenInit ' .. input)
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
|
@ -61,17 +62,17 @@ return {
|
||||||
init = function()
|
init = function()
|
||||||
-- Configuration
|
-- Configuration
|
||||||
if vim.g.neovide then
|
if vim.g.neovide then
|
||||||
vim.g.molten_image_provider = 'image.nvim'
|
|
||||||
else
|
|
||||||
vim.g.molten_image_provider = 'none'
|
vim.g.molten_image_provider = 'none'
|
||||||
|
else
|
||||||
|
vim.g.molten_image_provider = 'image.nvim'
|
||||||
|
vim.g.molten_image_location = 'float'
|
||||||
end
|
end
|
||||||
vim.g.molten_output_win_max_height = 12
|
vim.g.molten_output_win_max_height = 12
|
||||||
--vim.g.molten_auto_open_output = false
|
vim.g.molten_auto_open_output = false
|
||||||
vim.g.molten_auto_init_behavior = 'raise'
|
vim.g.molten_auto_init_behavior = 'raise'
|
||||||
vim.g.molten_virt_text_output = true
|
vim.g.molten_virt_text_output = true
|
||||||
vim.g.molten_image_location = 'float'
|
vim.g.molten_virt_lines_off_by_1 = true
|
||||||
--vim.g.molten_output_show_more = true
|
--vim.g.molten_output_show_more = true
|
||||||
vim.g.molten_output_virt_lines = false
|
|
||||||
vim.g.molten_use_border_highlights = true
|
vim.g.molten_use_border_highlights = true
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ return {
|
||||||
priority = 1000,
|
priority = 1000,
|
||||||
|
|
||||||
keys = {
|
keys = {
|
||||||
|
-- Buffer Management
|
||||||
{
|
{
|
||||||
'<c-w>d',
|
'<c-w>d',
|
||||||
function()
|
function()
|
||||||
|
@ -13,7 +14,7 @@ return {
|
||||||
desc = 'Delete Current Buffer',
|
desc = 'Delete Current Buffer',
|
||||||
},
|
},
|
||||||
|
|
||||||
-- UX
|
-- UX: Zen Mode
|
||||||
--- <leader>u
|
--- <leader>u
|
||||||
{
|
{
|
||||||
'<leader>ud',
|
'<leader>ud',
|
||||||
|
@ -36,6 +37,131 @@ return {
|
||||||
end,
|
end,
|
||||||
desc = '[U]I [Z]en Mode',
|
desc = '[U]I [Z]en Mode',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
-- Picker
|
||||||
|
--- Accessibility
|
||||||
|
{
|
||||||
|
'<leader>s?',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.pickers()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch Pickers',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>sh',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.help()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch [H]elp Tags',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>sk',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.keymaps()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch [K]eymaps',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>sc',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.commands()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch [C]ommands',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>sm',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.man()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch [M]anpages',
|
||||||
|
},
|
||||||
|
|
||||||
|
--- Grep
|
||||||
|
{
|
||||||
|
'<leader>sg',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.grep()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch w/[G]rep',
|
||||||
|
},
|
||||||
|
|
||||||
|
--- Buffer / File Search
|
||||||
|
{
|
||||||
|
'<leader>sb',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.buffers()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch [B]uffers',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>sf',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.files()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch [F]iles',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>st',
|
||||||
|
function()
|
||||||
|
require('snacks').explorer()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch File[T]ree',
|
||||||
|
},
|
||||||
|
|
||||||
|
--- Git: "VCS" -> "v"
|
||||||
|
{
|
||||||
|
'<leader>svd',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.git_diff()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch Git [L]og',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>svl',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.git_log_file()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch Git [L]og',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'<leader>svs',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.git_status()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch Git [S]tatus',
|
||||||
|
},
|
||||||
|
|
||||||
|
--- Debug
|
||||||
|
{
|
||||||
|
'<leader>sd',
|
||||||
|
function()
|
||||||
|
require('snacks').picker.diagnostics_buffer()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch [D]iagnostics',
|
||||||
|
},
|
||||||
|
|
||||||
|
--- Vim
|
||||||
|
{
|
||||||
|
"<leader>s'",
|
||||||
|
function()
|
||||||
|
require('snacks').picker.registers()
|
||||||
|
end,
|
||||||
|
'n',
|
||||||
|
desc = '[S]earch Vim Registers',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
opts = {
|
opts = {
|
||||||
|
@ -48,6 +174,16 @@ return {
|
||||||
-- Dim: Focus on the Active Scope
|
-- Dim: Focus on the Active Scope
|
||||||
dim = {},
|
dim = {},
|
||||||
|
|
||||||
|
-- Picker
|
||||||
|
picker = {
|
||||||
|
--sources = {
|
||||||
|
-- ['projections'] = {
|
||||||
|
-- preview = 'preview',
|
||||||
|
-- format = "text",
|
||||||
|
-- },
|
||||||
|
--},
|
||||||
|
},
|
||||||
|
|
||||||
-- Indent: Indentation Guides
|
-- Indent: Indentation Guides
|
||||||
indent = {
|
indent = {
|
||||||
animate = {
|
animate = {
|
||||||
|
|
|
@ -12,26 +12,62 @@ local function store_session()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function get_projects_table()
|
||||||
|
local workspaces = require('projections.workspace').get_workspaces()
|
||||||
|
|
||||||
|
local projects = {}
|
||||||
|
for _, ws in ipairs(workspaces) do
|
||||||
|
for _, project in ipairs(ws:projects()) do
|
||||||
|
table.insert(projects, {
|
||||||
|
text = tostring(project.name),
|
||||||
|
project_name = tostring(project.name),
|
||||||
|
project_path = tostring(project:path()),
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return projects
|
||||||
|
end
|
||||||
|
|
||||||
-- Plugin
|
-- Plugin
|
||||||
return {
|
return {
|
||||||
'gnikdroy/projections.nvim',
|
'gnikdroy/projections.nvim',
|
||||||
commit = '889914169fa1f5c00fb8659653b5a8330fb223e6',
|
commit = '889914169fa1f5c00fb8659653b5a8330fb223e6',
|
||||||
lazy = true,
|
lazy = true,
|
||||||
|
|
||||||
dependencies = {
|
--dependencies = {
|
||||||
{
|
-- {
|
||||||
'nyngwang/fzf-lua-projections.nvim',
|
-- 'nyngwang/fzf-lua-projections.nvim',
|
||||||
commit = '411672ab6f7c38d3a4a51916fda1a01c1618ae04',
|
-- commit = '411672ab6f7c38d3a4a51916fda1a01c1618ae04',
|
||||||
},
|
-- },
|
||||||
},
|
--},
|
||||||
|
|
||||||
keys = {
|
keys = {
|
||||||
{
|
{
|
||||||
'<leader>sp',
|
'<leader>sp',
|
||||||
function()
|
function()
|
||||||
require('fzf-lua-p').projects()
|
require('snacks.picker.core.picker').new({
|
||||||
|
title = 'Projects',
|
||||||
|
items = get_projects_table(),
|
||||||
|
preview = 'preview',
|
||||||
|
layout = {
|
||||||
|
preview = false,
|
||||||
|
--preset = 'select',
|
||||||
|
},
|
||||||
|
format = 'text',
|
||||||
|
confirm = function(picker, item)
|
||||||
|
picker:close()
|
||||||
|
|
||||||
|
if item then
|
||||||
|
vim.schedule(function()
|
||||||
|
store_session()
|
||||||
|
require('projections.switcher').switch(item.project_path)
|
||||||
|
end)
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
'n',
|
})
|
||||||
|
end,
|
||||||
|
desc = '[S]earch [P]rojects',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue