feat: switched to snacks picker from fzf-lua
parent
10643d0b4b
commit
d0f06687d1
|
@ -26,12 +26,9 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
|||
|
||||
-- LSP: Diagnostics
|
||||
if lsp_client:supports_method('textDocument/diagnostic') then
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>le',
|
||||
require('fzf-lua').diagnostics_document,
|
||||
{ buffer = buf, desc = '[L]SP [E]rrors' }
|
||||
)
|
||||
vim.keymap.set('n', '<leader>le', function()
|
||||
require('snacks').picker.diagnostics_buffer()
|
||||
end, { buffer = buf, desc = '[L]SP [E]rrors' })
|
||||
end
|
||||
|
||||
-- LSP: Diagnostics
|
||||
|
@ -48,20 +45,6 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
|||
id = lsp_client.id,
|
||||
})
|
||||
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
|
||||
|
||||
-- LSP Action: Inlay Hint
|
||||
|
@ -80,12 +63,9 @@ vim.api.nvim_create_autocmd('LspAttach', {
|
|||
|
||||
-- LSP Action: Code Actions
|
||||
if lsp_client:supports_method('textDocument/codeAction') then
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>li',
|
||||
require('fzf-lua').lsp_code_actions,
|
||||
{ buffer = buf, desc = '[L]SP F[I]xes' }
|
||||
)
|
||||
vim.keymap.set('n', '<leader>li', function()
|
||||
vim.lsp.buf.code_action()
|
||||
end, { buffer = buf, desc = '[L]SP F[I]xes' })
|
||||
end
|
||||
|
||||
-- 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/definition')
|
||||
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
|
||||
|
||||
-- LSP Action: List Buffer Symbols
|
||||
if lsp_client:supports_method('textDocument/documentSymbol') then
|
||||
vim.keymap.set(
|
||||
'n',
|
||||
'<leader>ls',
|
||||
require('fzf-lua').lsp_document_symbols,
|
||||
{ buffer = buf, desc = '[L]SP [S]ymbols' }
|
||||
)
|
||||
vim.keymap.set('n', '<leader>ls', function()
|
||||
require('snacks').lsp_symbols()
|
||||
end, { buffer = buf, desc = '[L]SP [S]ymbols' })
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
|
|
@ -36,7 +36,7 @@ require('lazy').setup({
|
|||
|
||||
-- Search: telescope (for now)
|
||||
--- Keys: <leader>s
|
||||
require('plugins/search/fzf-lua'),
|
||||
--require('plugins/search/fzf-lua'),
|
||||
|
||||
-- Version Control: git
|
||||
---- Keys: <leader>g
|
||||
|
@ -76,7 +76,6 @@ require('lazy').setup({
|
|||
|
||||
-- Workflow
|
||||
require('plugins/workflow/projections'),
|
||||
require('plugins/workflow/mini-files'),
|
||||
--require('plugins/workflow/git-dev'),
|
||||
--require('plugins/workflow/sad'),
|
||||
|
||||
|
|
|
@ -249,7 +249,9 @@ return {
|
|||
-- Use Treesitter as the Folding Method
|
||||
--vim.opt.foldmethod = "expr"
|
||||
--vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
--
|
||||
|
||||
-- Suppress Concealment of ```
|
||||
--- See https://github.com/nvim-treesitter/nvim-treesitter/issues/5751
|
||||
require('vim.treesitter.query').set(
|
||||
'markdown',
|
||||
'highlights',
|
||||
|
|
|
@ -38,6 +38,7 @@ return {
|
|||
prompt = 'Enter Jupyter Server URL:',
|
||||
}, function(input)
|
||||
if input then
|
||||
vim.print(input)
|
||||
vim.cmd(':MoltenInit ' .. input)
|
||||
end
|
||||
end)
|
||||
|
@ -61,17 +62,17 @@ return {
|
|||
init = function()
|
||||
-- Configuration
|
||||
if vim.g.neovide then
|
||||
vim.g.molten_image_provider = 'image.nvim'
|
||||
else
|
||||
vim.g.molten_image_provider = 'none'
|
||||
else
|
||||
vim.g.molten_image_provider = 'image.nvim'
|
||||
vim.g.molten_image_location = 'float'
|
||||
end
|
||||
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_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_virt_lines = false
|
||||
vim.g.molten_use_border_highlights = true
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ return {
|
|||
priority = 1000,
|
||||
|
||||
keys = {
|
||||
-- Buffer Management
|
||||
{
|
||||
'<c-w>d',
|
||||
function()
|
||||
|
@ -13,7 +14,7 @@ return {
|
|||
desc = 'Delete Current Buffer',
|
||||
},
|
||||
|
||||
-- UX
|
||||
-- UX: Zen Mode
|
||||
--- <leader>u
|
||||
{
|
||||
'<leader>ud',
|
||||
|
@ -36,6 +37,131 @@ return {
|
|||
end,
|
||||
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 = {
|
||||
|
@ -48,6 +174,16 @@ return {
|
|||
-- Dim: Focus on the Active Scope
|
||||
dim = {},
|
||||
|
||||
-- Picker
|
||||
picker = {
|
||||
--sources = {
|
||||
-- ['projections'] = {
|
||||
-- preview = 'preview',
|
||||
-- format = "text",
|
||||
-- },
|
||||
--},
|
||||
},
|
||||
|
||||
-- Indent: Indentation Guides
|
||||
indent = {
|
||||
animate = {
|
||||
|
|
|
@ -12,26 +12,62 @@ local function store_session()
|
|||
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
|
||||
return {
|
||||
'gnikdroy/projections.nvim',
|
||||
commit = '889914169fa1f5c00fb8659653b5a8330fb223e6',
|
||||
lazy = true,
|
||||
|
||||
dependencies = {
|
||||
{
|
||||
'nyngwang/fzf-lua-projections.nvim',
|
||||
commit = '411672ab6f7c38d3a4a51916fda1a01c1618ae04',
|
||||
},
|
||||
},
|
||||
--dependencies = {
|
||||
-- {
|
||||
-- 'nyngwang/fzf-lua-projections.nvim',
|
||||
-- commit = '411672ab6f7c38d3a4a51916fda1a01c1618ae04',
|
||||
-- },
|
||||
--},
|
||||
|
||||
keys = {
|
||||
{
|
||||
'<leader>sp',
|
||||
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',
|
||||
desc = '[S]earch [P]rojects',
|
||||
},
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in New Issue