feat: add current file fuzzy finder
This commit is contained in:
@@ -103,7 +103,7 @@ builtin.lsp_references = function(opts)
|
|||||||
entry_maker = make_entry.gen_from_quickfix(opts),
|
entry_maker = make_entry.gen_from_quickfix(opts),
|
||||||
},
|
},
|
||||||
previewer = previewers.qflist.new(opts),
|
previewer = previewers.qflist.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
}):find()
|
}):find()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -134,7 +134,7 @@ builtin.lsp_document_symbols = function(opts)
|
|||||||
entry_maker = make_entry.gen_from_quickfix(opts)
|
entry_maker = make_entry.gen_from_quickfix(opts)
|
||||||
},
|
},
|
||||||
previewer = previewers.vim_buffer.new(opts),
|
previewer = previewers.vim_buffer.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
}):find()
|
}):find()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -166,7 +166,7 @@ builtin.lsp_workspace_symbols = function(opts)
|
|||||||
entry_maker = make_entry.gen_from_quickfix(opts)
|
entry_maker = make_entry.gen_from_quickfix(opts)
|
||||||
},
|
},
|
||||||
previewer = previewers.qflist.new(opts),
|
previewer = previewers.qflist.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
}):find()
|
}):find()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@ builtin.quickfix = function(opts)
|
|||||||
entry_maker = make_entry.gen_from_quickfix(opts),
|
entry_maker = make_entry.gen_from_quickfix(opts),
|
||||||
},
|
},
|
||||||
previewer = previewers.qflist.new(opts),
|
previewer = previewers.qflist.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
}):find()
|
}):find()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ builtin.loclist = function(opts)
|
|||||||
entry_maker = make_entry.gen_from_quickfix(opts),
|
entry_maker = make_entry.gen_from_quickfix(opts),
|
||||||
},
|
},
|
||||||
previewer = previewers.qflist.new(opts),
|
previewer = previewers.qflist.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
}):find()
|
}):find()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -228,7 +228,7 @@ builtin.grep_string = function(opts)
|
|||||||
opts
|
opts
|
||||||
),
|
),
|
||||||
previewer = previewers.vimgrep.new(opts),
|
previewer = previewers.vimgrep.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
}):find()
|
}):find()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -259,7 +259,7 @@ builtin.command_history = function(opts)
|
|||||||
pickers.new(opts, {
|
pickers.new(opts, {
|
||||||
prompt = 'Command History',
|
prompt = 'Command History',
|
||||||
finder = finders.new_table(results),
|
finder = finders.new_table(results),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
|
|
||||||
attach_mappings = function(_, map)
|
attach_mappings = function(_, map)
|
||||||
map('i', '<CR>', actions.set_command_line)
|
map('i', '<CR>', actions.set_command_line)
|
||||||
@@ -307,7 +307,7 @@ builtin.builtin = function(opts)
|
|||||||
entry_maker = make_entry.gen_from_quickfix(opts),
|
entry_maker = make_entry.gen_from_quickfix(opts),
|
||||||
},
|
},
|
||||||
previewer = previewers.qflist.new(opts),
|
previewer = previewers.qflist.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
}):find()
|
}):find()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -350,7 +350,10 @@ end
|
|||||||
-- Leave this alias around for people.
|
-- Leave this alias around for people.
|
||||||
builtin.fd = builtin.find_files
|
builtin.fd = builtin.find_files
|
||||||
|
|
||||||
-- TODO: This is partially broken, but I think it might be an nvim bug.
|
-- TODO: Sometimes some window options (for me, I've experience number & relativenumber)
|
||||||
|
-- don't work when we open this up.
|
||||||
|
-- I think it has something to do with nvim_open_win and style='minimal',
|
||||||
|
-- but I can't figure that part out at the moment...
|
||||||
builtin.buffers = function(opts)
|
builtin.buffers = function(opts)
|
||||||
opts = opts or {}
|
opts = opts or {}
|
||||||
|
|
||||||
@@ -368,7 +371,7 @@ builtin.buffers = function(opts)
|
|||||||
entry_maker = make_entry.gen_from_buffer(opts)
|
entry_maker = make_entry.gen_from_buffer(opts)
|
||||||
},
|
},
|
||||||
previewer = previewers.vim_buffer.new(opts),
|
previewer = previewers.vim_buffer.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
}):find()
|
}):find()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -426,7 +429,7 @@ builtin.treesitter = function(opts)
|
|||||||
entry_maker = make_entry.gen_from_treesitter(opts)
|
entry_maker = make_entry.gen_from_treesitter(opts)
|
||||||
},
|
},
|
||||||
previewer = previewers.vim_buffer.new(opts),
|
previewer = previewers.vim_buffer.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
}):find()
|
}):find()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -459,7 +462,7 @@ builtin.planets = function(opts)
|
|||||||
end
|
end
|
||||||
},
|
},
|
||||||
previewer = previewers.cat.new(opts),
|
previewer = previewers.cat.new(opts),
|
||||||
sorter = sorters.get_norcalli_sorter(),
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
attach_mappings = function(prompt_bufnr, map)
|
attach_mappings = function(prompt_bufnr, map)
|
||||||
map('i', '<CR>', function()
|
map('i', '<CR>', function()
|
||||||
local selection = actions.get_selected_entry(prompt_bufnr)
|
local selection = actions.get_selected_entry(prompt_bufnr)
|
||||||
@@ -471,4 +474,42 @@ builtin.planets = function(opts)
|
|||||||
}:find()
|
}:find()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
builtin.current_buffer_fuzzy_find = function(opts)
|
||||||
|
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
|
||||||
|
local lines_with_numbers = {}
|
||||||
|
for k, v in ipairs(lines) do
|
||||||
|
table.insert(lines_with_numbers, {k, v})
|
||||||
|
end
|
||||||
|
|
||||||
|
pickers.new(opts, {
|
||||||
|
prompt = 'Current Buffer Fuzzy',
|
||||||
|
finder = finders.new_table {
|
||||||
|
results = lines_with_numbers,
|
||||||
|
entry_maker = function(enumerated_line)
|
||||||
|
return {
|
||||||
|
display = enumerated_line[2],
|
||||||
|
ordinal = enumerated_line[2],
|
||||||
|
|
||||||
|
lnum = enumerated_line[1],
|
||||||
|
}
|
||||||
|
end
|
||||||
|
},
|
||||||
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
|
attach_mappings = function(prompt_bufnr, map)
|
||||||
|
local goto_line = function()
|
||||||
|
local selection = actions.get_selected_entry(prompt_bufnr)
|
||||||
|
actions.close(prompt_bufnr)
|
||||||
|
|
||||||
|
vim.api.nvim_win_set_cursor(0, {selection.lnum, 0})
|
||||||
|
vim.cmd [[stopinsert]]
|
||||||
|
end
|
||||||
|
|
||||||
|
map('n', '<CR>', goto_line)
|
||||||
|
map('i', '<CR>', goto_line)
|
||||||
|
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
}):find()
|
||||||
|
end
|
||||||
|
|
||||||
return builtin
|
return builtin
|
||||||
|
|||||||
@@ -208,6 +208,13 @@ sorters.get_fuzzy_file = function(opts)
|
|||||||
end
|
end
|
||||||
|
|
||||||
sorters.get_norcalli_sorter = function()
|
sorters.get_norcalli_sorter = function()
|
||||||
|
vim.api.nvim_err_writeln(
|
||||||
|
"get_norcalli_sorter() is changed to get_generic_fuzzy_sorter()"
|
||||||
|
)
|
||||||
|
return sorters.get_generic_fuzzy_sorter()
|
||||||
|
end
|
||||||
|
|
||||||
|
sorters.get_generic_fuzzy_sorter = function()
|
||||||
local ngramlen = 2
|
local ngramlen = 2
|
||||||
|
|
||||||
local cached_ngrams = {}
|
local cached_ngrams = {}
|
||||||
|
|||||||
Reference in New Issue
Block a user