Modules/Neovim: Replace telescope with Snacks.picker
This commit is contained in:
@ -80,8 +80,8 @@ in {
|
||||
};
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
enable = true;
|
||||
enableMan = false; # Nixvim man pages
|
||||
luaLoader.enable = true; # NOTE: Experimental
|
||||
viAlias = neovim.alias;
|
||||
@ -228,25 +228,6 @@ in {
|
||||
end
|
||||
'';
|
||||
}
|
||||
|
||||
# This breaks if the preview buffer does not refer to a file, e.g. when showing previous notifications
|
||||
# {
|
||||
# desc = "Enable line wrapping in telescope preview";
|
||||
# event = ["User"];
|
||||
# pattern = ["TelescopePreviewerLoaded"];
|
||||
# callback.__raw = ''
|
||||
# -- The callback arg is of this format:
|
||||
# -- {
|
||||
# -- title: string, # preview window title
|
||||
# -- filetype: string,
|
||||
# -- bufname: string,
|
||||
# -- }
|
||||
|
||||
# function(args)
|
||||
# vim.wo.wrap = true
|
||||
# end
|
||||
# '';
|
||||
# }
|
||||
];
|
||||
|
||||
keymaps = import ./mappings.nix {inherit lib mylib;};
|
||||
@ -541,34 +522,6 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
# TODO: Don't autosave, but if a session exists, update it (using should_autosave)
|
||||
_persisted = {
|
||||
name = "persisted";
|
||||
pkg = pkgs.vimPlugins.persisted-nvim;
|
||||
dependencies = [telescope];
|
||||
lazy = true;
|
||||
cmd = ["SessionSave" "SessionDelete" "Telescope persisted"];
|
||||
config = ''
|
||||
function(_, opts)
|
||||
require("persisted").setup(opts)
|
||||
|
||||
require("telescope").load_extension("persisted")
|
||||
end
|
||||
'';
|
||||
opts = {
|
||||
silent = false;
|
||||
use_git_branch = false;
|
||||
autosave = false;
|
||||
autoload = false;
|
||||
follow_cwd = true;
|
||||
ignored_dirs = [
|
||||
"/"
|
||||
"~/"
|
||||
"~/Projects/"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
direnv = {
|
||||
name = "direnv";
|
||||
pkg = pkgs.vimPlugins.direnv-vim;
|
||||
@ -627,7 +580,6 @@ in {
|
||||
filetypesDenylist = [
|
||||
"DressingSelect"
|
||||
"Outline"
|
||||
"TelescopePrompt"
|
||||
"alpha"
|
||||
"harpoon"
|
||||
"toggleterm"
|
||||
@ -1004,7 +956,7 @@ in {
|
||||
}
|
||||
'';
|
||||
in {
|
||||
extensions = ["fzf" "lazy" "neo-tree" "oil" "quickfix" "toggleterm" "trouble"];
|
||||
extensions = ["fzf" "lazy" "quickfix" "toggleterm" "trouble"];
|
||||
|
||||
options = {
|
||||
# theme = "catppuccin";
|
||||
@ -1256,6 +1208,28 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
# TODO: Don't autosave, but if a session exists, update it (using should_save)
|
||||
# TODO: No idea which opts below really exist...
|
||||
persisted = rec {
|
||||
name = "persisted";
|
||||
pkg = pkgs.vimPlugins.persisted-nvim;
|
||||
lazy = false;
|
||||
config = mkDefaultConfig name;
|
||||
opts = {
|
||||
silent = false;
|
||||
use_git_branch = false;
|
||||
autostart = false;
|
||||
autosave = false;
|
||||
autoload = false;
|
||||
follow_cwd = true;
|
||||
ignored_dirs = [
|
||||
"/"
|
||||
"~/"
|
||||
"~/Projects/"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
presence = rec {
|
||||
name = "presence";
|
||||
pkg = pkgs.vimPlugins.presence-nvim;
|
||||
@ -1349,7 +1323,6 @@ in {
|
||||
pkg = pkgs.vimPlugins.snacks-nvim;
|
||||
dependencies = [
|
||||
web-devicons
|
||||
_persisted
|
||||
];
|
||||
lazy = false;
|
||||
priority = 1000;
|
||||
@ -1396,7 +1369,7 @@ in {
|
||||
icon = " ";
|
||||
key = "s";
|
||||
desc = "Restore Session";
|
||||
action = "<cmd>Telescope persisted<cr>";
|
||||
action = "<cmd>lua require('persisted').select()<cr>";
|
||||
}
|
||||
{
|
||||
icon = " ";
|
||||
@ -1428,6 +1401,27 @@ in {
|
||||
enabled = true;
|
||||
replace_netrw = true;
|
||||
};
|
||||
|
||||
picker = let
|
||||
defaultLayout = ''
|
||||
--- Use the default layout or vertical if the window is too narrow
|
||||
function()
|
||||
return vim.o.columns >= 120 and "default" or "vertical"
|
||||
end
|
||||
'';
|
||||
in {
|
||||
enabled = true;
|
||||
layout = {
|
||||
cycle = true;
|
||||
preset.__raw = defaultLayout;
|
||||
};
|
||||
|
||||
sources = {
|
||||
lines = {
|
||||
layout.__raw = defaultLayout;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -1483,98 +1477,11 @@ in {
|
||||
};
|
||||
|
||||
_plenary = {
|
||||
name = "plenary"; # For telescope
|
||||
name = "plenary";
|
||||
pkg = pkgs.vimPlugins.plenary-nvim;
|
||||
lazy = true;
|
||||
};
|
||||
|
||||
_telescope-fzf-native = {
|
||||
name = "telescope-fzf-native";
|
||||
pkg = pkgs.vimPlugins.telescope-fzf-native-nvim;
|
||||
lazy = true;
|
||||
};
|
||||
|
||||
# TODO: Build broken
|
||||
# _telescope-tabs = {
|
||||
# name = "telescope-tabs";
|
||||
# pkg = pkgs.vimUtils.buildVimPlugin {
|
||||
# name = "telescope-tabs";
|
||||
# src = pkgs.fetchFromGitHub {
|
||||
# owner = "LukasPietzschmann";
|
||||
# repo = "telescope-tabs";
|
||||
# rev = "0a678eefcb71ebe5cb0876aa71dd2e2583d27fd3";
|
||||
# sha256 = "sha256-IvxZVHPtApnzUXIQzklT2C2kAxgtAkBUq3GNxwgPdPY=";
|
||||
# };
|
||||
# };
|
||||
# lazy = true;
|
||||
# };
|
||||
|
||||
_telescope-undo = {
|
||||
name = "telescope-undo";
|
||||
pkg = pkgs.vimPlugins.telescope-undo-nvim;
|
||||
lazy = true;
|
||||
};
|
||||
|
||||
_telescope-ui-select = {
|
||||
name = "telescope-ui-select";
|
||||
pkg = pkgs.vimPlugins.telescope-ui-select-nvim;
|
||||
lazy = true;
|
||||
};
|
||||
|
||||
telescope = {
|
||||
name = "telescope";
|
||||
pkg = pkgs.vimPlugins.telescope-nvim;
|
||||
lazy = true;
|
||||
cmd = ["Telescope"];
|
||||
dependencies = [
|
||||
_plenary
|
||||
_telescope-fzf-native
|
||||
# _telescope-tabs
|
||||
_telescope-undo
|
||||
_telescope-ui-select
|
||||
];
|
||||
config = let
|
||||
extensions = mylib.generators.toLuaObject [
|
||||
"undo"
|
||||
"ui-select"
|
||||
"fzf"
|
||||
# "telescope-tabs"
|
||||
];
|
||||
in ''
|
||||
function(_, opts)
|
||||
local telescope = require("telescope")
|
||||
telescope.setup(opts)
|
||||
|
||||
for i, extension in ipairs(${extensions}) do
|
||||
telescope.load_extension(extension)
|
||||
end
|
||||
end
|
||||
'';
|
||||
opts = {
|
||||
defaults = {
|
||||
wrap_results = false; # Do wrapping in the preview instead, see autoCmd
|
||||
preview = {
|
||||
treesitter = true;
|
||||
};
|
||||
mappings = {
|
||||
i = {
|
||||
# TODO: This mappings throws an error.
|
||||
# Doesn't matter if defined as function or like "<C-h"> = "which_key";.
|
||||
"<C-h>" = {__raw = ''function(...) return require("telescope.actions").which_key(...) end'';};
|
||||
"<Esc>" = {__raw = ''function(...) return require("telescope.actions").close(...) end'';};
|
||||
};
|
||||
};
|
||||
};
|
||||
pickers = {
|
||||
buffers = {
|
||||
# See :h telescope.builtin.buffers() for opts
|
||||
ignore_current_buffer = true;
|
||||
sort_mru = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
todo-comments = rec {
|
||||
name = "todo-comments";
|
||||
pkg = pkgs.vimPlugins.todo-comments-nvim;
|
||||
@ -1975,6 +1882,7 @@ in {
|
||||
|
||||
# overseer # Run tasks from within neovim (e.g. cargo) # TODO:
|
||||
|
||||
persisted # Session management
|
||||
presence # Discord rich presence
|
||||
quickfix-reflector # Make the quickfix list editable and saveable to apply changes
|
||||
rainbow-delimiters # Bracket/Paren colorization
|
||||
@ -1985,7 +1893,6 @@ in {
|
||||
|
||||
snacks # Lots of QoL
|
||||
tabby # Nicer tabline (only showing tabpages)
|
||||
telescope # Option picker frontend
|
||||
todo-comments # Highlight TODOs
|
||||
toggleterm # Integrated terminal
|
||||
treesitter # AST based syntax highlighting + indentation
|
||||
|
@ -1,4 +1,4 @@
|
||||
{...}: let
|
||||
_: let
|
||||
# TODO: Doesn't work reliably. I think they are rebound by plugins after? Try setting in extraConfigLuaPost...
|
||||
disabled-mappings = let
|
||||
mkDisabledMapping = mapping: {
|
||||
@ -268,14 +268,8 @@
|
||||
{
|
||||
mode = "n";
|
||||
key = "/";
|
||||
action = "<cmd>Telescope current_buffer_fuzzy_find<cr>";
|
||||
options.desc = "Grep Buffer";
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "?";
|
||||
action = "<cmd>Telescope grep_string<cr>";
|
||||
options.desc = "Find Selection";
|
||||
action = "<cmd>lua Snacks.picker.lines()<cr>";
|
||||
options.desc = "Find in Buffer";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
@ -310,46 +304,52 @@
|
||||
action = "<cmd>Navbuddy<cr>";
|
||||
options.desc = "Toggle NavBuddy";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>p";
|
||||
action = "<cmd>lua Snacks.picker.pickers()<cr>";
|
||||
options.desc = "Show Pickers";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>N";
|
||||
action = "<cmd>Telescope notify<cr>";
|
||||
options.desc = "Telescope Notify";
|
||||
action = "<cmd>lua Snacks.picker.notifications()<cr>";
|
||||
options.desc = "Notifications Picker";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>r";
|
||||
action = "<cmd>Telescope resume<cr>";
|
||||
options.desc = "Last Telescope";
|
||||
action = "<cmd>lua Snacks.picker.resume()<cr>";
|
||||
options.desc = "Last Picker";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>;";
|
||||
action = "<cmd>lua Snacks.picker.command_history()<cr>";
|
||||
options.desc = "Command History";
|
||||
}
|
||||
# {
|
||||
# mode = "n";
|
||||
# key = "<leader>;";
|
||||
# action = "<cmd>Telescope command_history<cr>";
|
||||
# options.desc = "Last Commands";
|
||||
# }
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>:";
|
||||
action = "<cmd>Telescope commands<cr>";
|
||||
options.desc = "Telescope Command";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>M";
|
||||
action = "<cmd>Telescope marks<cr>";
|
||||
options.desc = "Telescope Marks";
|
||||
action = "<cmd>lua Snacks.picker.commands()<cr>";
|
||||
options.desc = "Commands Picker";
|
||||
}
|
||||
# {
|
||||
# mode = "n";
|
||||
# key = "<leader>M";
|
||||
# action = "<cmd>lua Snacks.picker.marks()<cr>";
|
||||
# options.desc = "Marks Picker";
|
||||
# }
|
||||
# {
|
||||
# mode = "n";
|
||||
# key = "<leader>J";
|
||||
# action = "<cmd>Telescope jumplist<cr>";
|
||||
# options.desc = "Telescope Jumps";
|
||||
# action = "<cmd>lua Snacks.picker.jumps()<cr>";
|
||||
# options.desc = "Jumps Picker";
|
||||
# }
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>d";
|
||||
action = "<cmd>TodoTelescope<cr>";
|
||||
action = "<cmd>lua Snacks.picker.todo_comments()<cr>";
|
||||
options.desc = "List TODOs";
|
||||
}
|
||||
{
|
||||
@ -361,13 +361,13 @@
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>/";
|
||||
action = "<cmd>Telescope live_grep<cr>";
|
||||
action = "<cmd>lua Snacks.picker.grep()<cr>";
|
||||
options.desc = "Find in Project";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>Q";
|
||||
action = "<cmd>Telescope quickfixhistory<cr>";
|
||||
action = "<cmd>lua Snacks.picker.qflist()<cr>";
|
||||
options.desc = "Quickfix History";
|
||||
}
|
||||
# {
|
||||
@ -393,13 +393,13 @@
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>ff";
|
||||
action = "<cmd>Telescope find_files<cr>";
|
||||
action = "<cmd>lua Snacks.picker.files()<cr>";
|
||||
options.desc = "Find File";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>fl";
|
||||
action = "<cmd>Telescope oldfiles<cr>";
|
||||
action = "<cmd>lua Snacks.picker.recent()<cr>";
|
||||
options.desc = "Last Files";
|
||||
}
|
||||
{
|
||||
@ -417,8 +417,8 @@
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>fu";
|
||||
action = "<cmd>Telescope undo<cr>";
|
||||
options.desc = "Telescope Undo";
|
||||
action = "<cmd>lua Snacks.picker.und()<cr>";
|
||||
options.desc = "Undo Picker";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
@ -445,29 +445,29 @@
|
||||
key = "<leader>h";
|
||||
action = "+help";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>hv";
|
||||
action = "<cmd>Telescope vim_options<cr>";
|
||||
options.desc = "Telescope Vimopts";
|
||||
}
|
||||
# {
|
||||
# mode = "n";
|
||||
# key = "<leader>hv";
|
||||
# action = "<cmd>Telescope vim_options<cr>";
|
||||
# options.desc = "Telescope Vimopts";
|
||||
# }
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>hk";
|
||||
action = "<cmd>Telescope keymaps<cr>";
|
||||
options.desc = "Telescope Keys";
|
||||
action = "<cmd>lua Snacks.picker.keymaps()<cr>";
|
||||
options.desc = "Keymaps Picker";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>hm";
|
||||
action = "<cmd>Telescope man_pages<cr>";
|
||||
options.desc = "Telescope Manpages";
|
||||
action = "<cmd>lua Snacks.picker.man()<cr>";
|
||||
options.desc = "Manpages Picker";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>hh";
|
||||
action = "<cmd>Telescope help_tags<cr>";
|
||||
options.desc = "Telescope Helptags";
|
||||
action = "<cmd>lua Snacks.picker.help()<cr>";
|
||||
options.desc = "Helptags Picker";
|
||||
}
|
||||
];
|
||||
|
||||
@ -500,7 +500,7 @@
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>sl";
|
||||
action = "<cmd>Telescope persisted<cr>";
|
||||
action = "<cmd>lua require('persisted').select()<cr>";
|
||||
options.desc = "Restore Session";
|
||||
}
|
||||
{
|
||||
@ -526,14 +526,14 @@
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>bb";
|
||||
action = "<cmd>Telescope buffers<cr>";
|
||||
options.desc = "List Buffers";
|
||||
action = "<cmd>lua Snacks.picker.buffers()<cr>";
|
||||
options.desc = "Buffers Picker";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader><Space>";
|
||||
action = "<cmd>Telescope buffers<cr>";
|
||||
options.desc = "List Buffers";
|
||||
action = "<cmd>lua Snacks.picker.buffers()<cr>";
|
||||
options.desc = "Buffers Picker";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
@ -567,18 +567,18 @@
|
||||
key = "<leader>t";
|
||||
action = "+tab";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>tt";
|
||||
action = "<cmd>Telescope telescope-tabs list_tabs<cr>";
|
||||
options.desc = "List Tabpages";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader><C-Space>";
|
||||
action = "<cmd>Telescope telescope-tabs list_tabs<cr>";
|
||||
options.desc = "List Tabpages";
|
||||
}
|
||||
# {
|
||||
# mode = "n";
|
||||
# key = "<leader>tt";
|
||||
# action = "<cmd>Telescope telescope-tabs list_tabs<cr>";
|
||||
# options.desc = "List Tabpages";
|
||||
# }
|
||||
# {
|
||||
# mode = "n";
|
||||
# key = "<leader><C-Space>";
|
||||
# action = "<cmd>Telescope telescope-tabs list_tabs<cr>";
|
||||
# options.desc = "List Tabpages";
|
||||
# }
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>tn";
|
||||
@ -697,25 +697,25 @@
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>gs";
|
||||
action = "<cmd>Telescope git_status<cr>";
|
||||
action = "<cmd>lua Snacks.picker.git_status()<cr>";
|
||||
options.desc = "Git Status";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>gl";
|
||||
action = "<cmd>Telescope git_commits<cr>";
|
||||
action = "<cmd>lua Snacks.picker.git_log()<cr>";
|
||||
options.desc = "Git Log";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>gb";
|
||||
action = "<cmd>Telescope git_branches<cr>";
|
||||
action = "<cmd>lua Snacks.picker.git_branches()<cr>";
|
||||
options.desc = "Git Branches";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>gf";
|
||||
action = "<cmd>Telescope git_bcommits<cr>";
|
||||
action = "<cmd>lua Snacks.picker.git_log_file()<cr>";
|
||||
options.desc = "Git File History";
|
||||
}
|
||||
{
|
||||
@ -748,7 +748,7 @@
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>cD";
|
||||
action = "<cmd>Telescope diagnostics<cr>";
|
||||
action = "<cmd>lua Snacks.picker.diagnostics()<cr>";
|
||||
options.desc = "List Diagnostics";
|
||||
}
|
||||
|
||||
@ -764,18 +764,18 @@
|
||||
action = "<cmd>lua vim.lsp.buf.code_action()<cr>";
|
||||
options.desc = "Code Actions";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>cI";
|
||||
action = "<cmd>Telescope lsp_incoming_calls<cr>";
|
||||
options.desc = "LSP Incoming Calls";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>cO";
|
||||
action = "<cmd>Telescope lsp_outgoing_calls<cr>";
|
||||
options.desc = "LSP Outgoing Calls";
|
||||
}
|
||||
# {
|
||||
# mode = "n";
|
||||
# key = "<leader>cI";
|
||||
# action = "<cmd>Telescope lsp_incoming_calls<cr>";
|
||||
# options.desc = "LSP Incoming Calls";
|
||||
# }
|
||||
# {
|
||||
# mode = "n";
|
||||
# key = "<leader>cO";
|
||||
# action = "<cmd>Telescope lsp_outgoing_calls<cr>";
|
||||
# options.desc = "LSP Outgoing Calls";
|
||||
# }
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>cC";
|
||||
@ -835,26 +835,26 @@
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>cgr";
|
||||
action = "<cmd>Telescope lsp_references<cr>";
|
||||
action = "<cmd>lua Snacks.picker.lsp_references()<cr>";
|
||||
options.desc = "LSP References";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>cgd";
|
||||
action = "<cmd>Telescope lsp_definitions<cr>";
|
||||
options.desc = "LSP Definition";
|
||||
action = "<cmd>lua Snacks.picker.lsp_definitions()<cr>";
|
||||
options.desc = "LSP Definitions";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>cgi";
|
||||
action = "<cmd>Telescope lsp_implementations<cr>";
|
||||
options.desc = "LSP Implementation";
|
||||
action = "<cmd>lua Snacks.picker.lsp_implementations()<cr>";
|
||||
options.desc = "LSP Implementations";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<leader>cgt";
|
||||
action = "<cmd>Telescope lsp_type_definitions<cr>";
|
||||
options.desc = "LSP Type Definition";
|
||||
action = "<cmd>lua Snacks.picker.lsp_type_definitions()<cr>";
|
||||
options.desc = "LSP Type Definitions";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
|
Reference in New Issue
Block a user