diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 7bf15c8..f24182c 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -63,7 +63,6 @@ in fish.enable = true; git.enable = true; gpg.enable = true; - vim.enable = true; }; }; @@ -105,6 +104,7 @@ in up viu wget + vim ]; fonts.fonts = with pkgs; [ diff --git a/modules/profiles/desktop.nix b/modules/profiles/desktop.nix index d6d0bad..85a5362 100644 --- a/modules/profiles/desktop.nix +++ b/modules/profiles/desktop.nix @@ -77,6 +77,7 @@ with lib; { hub.enable = true; ledger.enable = true; logseq.enable = true; + nvim.enable = true; python.versions."311".enable = true; ssh = { enable = true; diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 85cf6d3..ceb5a1e 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -7,16 +7,17 @@ with lib; let - cfg = config.my.programs.vim; + cfg = config.my.programs.nvim; + + mkPlugin = name: { + plugin = pkgs.vimPlugins.${name}; + type = "lua"; + config = lib.readFile (./plugins + "/${name}.lua"); + }; + in { - options.my.programs.vim = { - enable = mkOption { - default = true; - type = types.bool; - example = false; - }; - }; + options.my.programs.nvim.enable = mkEnableOption "nvim"; config = mkIf cfg.enable { home-manager.users.moritz = { @@ -50,46 +51,49 @@ in taplo yamlfmt ]; - plugins = with pkgs.vimPlugins; [ - catppuccin-nvim + plugins = builtins.map mkPlugin [ + "catppuccin-nvim" + "comment-nvim" + "copilot-lua" + "dashboard-nvim" + "formatter-nvim" + "gitsigns-nvim" + "lualine-nvim" + "noice-nvim" + "nvim-autopairs" + "nvim-lastplace" + "nvim-surround" + "nvim-tree-lua" + "nvim-treesitter-textsubjects" + "nvim-ts-context-commentstring" + "orgmode" + "smartcolumn-nvim" + "telescope-fzf-native-nvim" + "telescope-nvim" + "telescope-zoxide" + "which-key-nvim" + "todo-comments-nvim" + ] ++ (with pkgs.vimPlugins; [ cmp-nvim-lsp cmp_luasnip - comment-nvim copilot-cmp - copilot-lua - dashboard-nvim direnv-vim - formatter-nvim - gitsigns-nvim lsp_lines-nvim lspkind-nvim lspsaga-nvim-original lualine-lsp-progress - lualine-nvim luasnip - neogit - noice-nvim nui-nvim # for noice-nvim - nvim-autopairs nvim-cmp - nvim-lastplace nvim-lspconfig - nvim-surround - nvim-tree-lua - nvim-treesitter-textsubjects nvim-treesitter.withAllGrammars - nvim-ts-context-commentstring + nvim-ufo nvim-web-devicons # for dashboard-nvim - orgmode plenary-nvim # for telescope, neogit popup-nvim - smartcolumn-nvim - telescope-fzf-native-nvim - telescope-nvim - telescope-zoxide + promise-async vim-lion - which-key-nvim - ]; + ]); }; }; }; diff --git a/modules/programs/nvim/init.lua b/modules/programs/nvim/init.lua index 419a340..a4029d7 100644 --- a/modules/programs/nvim/init.lua +++ b/modules/programs/nvim/init.lua @@ -8,7 +8,7 @@ if not vim.loop.fs_stat(spelldir) then end vim.opt.autoindent = true -vim.opt.backupdir = { vim.fn.stdpath("state") .. "/nvim/backup//" } -- don't store backup in files dir +vim.opt.backupdir = { vim.fn.stdpath("state") .. "/nvim/backup/" } -- don't store backup in files dir vim.opt.clipboard = "unnamedplus" -- sync with system clipboard vim.opt.conceallevel = 2 vim.opt.expandtab = true -- spaces instead of tabs @@ -37,78 +37,24 @@ if vim.g.neovide then vim.g.neovide_scale_factor = 0.7 end -require("catppuccin").setup({ - compile_path = vim.fn.stdpath("cache") .. "/catppuccin", -- fix issue of writing to nix store - integrations = { - which_key = true, - }, -}) -vim.cmd.colorscheme("catppuccin-macchiato") - -vim.o.timeout = true -vim.o.timeoutlen = 500 local wk = require("which-key") -require("noice").setup({ - lsp = { - -- override markdown rendering so that **cmp** and other plugins use **Treesitter** - override = { - ["vim.lsp.util.convert_input_to_markdown_lines"] = true, - ["vim.lsp.util.stylize_markdown"] = true, - ["cmp.entry.get_documentation"] = true, - }, - progress = { - enabled = false, - }, - }, - -- you can enable a preset for easier configuration - presets = { - bottom_search = true, -- use a classic bottom cmdline for search - command_palette = true, -- position the cmdline and popupmenu together - long_message_to_split = true, -- long messages will be sent to a split - inc_rename = false, -- enables an input dialog for inc-rename.nvim - lsp_doc_border = false, -- add a border to hover docs and signature help - }, -}) - -require("telescope").load_extension("zoxide") -wk.register({ - f = { - name = "find", - f = { "Telescope find_files", "find file" }, - z = { "Telescope zoxide list", "find location" }, - l = { "Telescope current_buffer_fuzzy_find", "find line" }, - g = { "Telescope live_grep", "live grep" }, - b = { "Telescope buffers", "find buffer" }, - }, -}, { prefix = "" }) --- To get fzf loaded and working with telescope, you need to call --- load_extension, somewhere after setup function: -require("telescope").load_extension("fzf") - -require("neogit").setup({ - disable_commit_confirmation = true, -}) -wk.register({ - g = { "Neogit", "git" }, -}, { prefix = "" }) - require("nvim-treesitter.configs").setup({ sync_install = false, auto_install = false, highlight = { enable = true, - additional_vim_regex_highlighting = true, + additional_vim_regex_highlighting = false, }, }) -local lspkind = require("lspkind") - local cmp = require("cmp") local luasnip = require("luasnip") +require("copilot_cmp").setup() + cmp.setup({ formatting = { - format = lspkind.cmp_format({ + format = require("lspkind").cmp_format({ mode = "symbol", -- show only symbol annotations maxwidth = 50, -- prevent the popup from showing more than provided characters ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead @@ -185,76 +131,6 @@ local function table_merge(...) return result end --- Provides the Format, FormatWrite, FormatLock, and FormatWriteLock commands -require("formatter").setup({ - -- Enable or disable logging - logging = true, - -- Set the log level - log_level = vim.log.levels.WARN, - -- All formatter configurations are opt-in - filetype = { - json = { - require("formatter.filetypes.json").jq, - }, - lua = { - require("formatter.filetypes.lua").stylua, - }, - nix = { - require("formatter.filetypes.nix").nixpkgs_fmt, - }, - python = { - require("formatter.filetypes.python").black, - }, - rust = { - require("formatter.filetypes.rust").rustfmt, - }, - sh = { - require("formatter.filetypes.sh").shfmt, - }, - toml = { - require("formatter.filetypes.toml").taplo, - }, - yaml = { - require("formatter.filetypes.yaml").yamlfmt, - }, - - -- HACK to use specific formatters only when specified - alejandra = { - require("formatter.filetypes.nix").alejandra, - }, - isort = { - require("formatter.filetypes.python").isort, - }, - - -- Use the special "*" filetype for defining formatter configurations on - -- any filetype - ["*"] = { - -- "formatter.filetypes.any" defines default configurations for any - -- filetype - require("formatter.filetypes.any").remove_trailing_whitespace, - }, - }, -}) -vim.api.nvim_create_user_command("Fmt", function(opts) - local params = vim.split(opts.args, "%s+", { trimempty = true }) - local filetype = vim.bo.filetype - vim.cmd("set filetype=" .. params[1]) -- fake filetype - vim.cmd(":Format") - vim.cmd("set filetype=" .. filetype) -- restore original filetype -end, { - nargs = 1, - complete = function() - local languages = { - nix = { "alejandra" }, - python = { "isort" }, - } - return languages[vim.bo.filetype] or {} - end, -}) -wk.register({ - ["="] = { "Format", "format (formatter)" }, -}, { noremap = true, silent = true }) - local lsp_lines = require("lsp_lines") lsp_lines.setup() -- Disable virtual_text since it's redundant due to lsp_lines. @@ -265,6 +141,25 @@ vim.diagnostic.config({ -- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers.. local capabilities = require("cmp_nvim_lsp").default_capabilities() +vim.o.foldcolumn = "1" -- '0' is not bad +vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value +vim.o.foldlevelstart = 99 +vim.o.foldenable = true +-- Using ufo provider need remap `zR` and `zM`. If Neovim is 0.6.1, remap yourself +wk.register({ + z = { + R = { require("ufo").openAllFolds, "Open all folds" }, + M = { require("ufo").closeAllFolds, "Close all folds" }, + }, +}) +-- Tell the server the capability of foldingRange, +-- Neovim hasn't added foldingRange to default capabilities, users must add it manually +capabilities.textDocument.foldingRange = { + dynamicRegistration = false, + lineFoldingOnly = true, +} +require("ufo").setup() + require("lspsaga").setup({ symbol_in_winbar = { enable = false, @@ -340,8 +235,6 @@ for _, lsp in ipairs(servers) do end lspconfig_setup("lua_ls", { - on_attach = on_attach_def, - capabilities = capabilities, settings = { Lua = { runtime = { @@ -367,131 +260,3 @@ lspconfig_setup("lua_ls", { }, }, }) - -require("dashboard").setup({ - theme = "hyper", - config = { - packages = { enable = false }, - week_header = { - enable = true, - }, - }, -}) - -require("lualine").setup({ - options = { - icons_enabled = true, - theme = "auto", - component_separators = "|", - section_separators = { left = "", right = "" }, - disabled_filetypes = { - statusline = {}, - winbar = {}, - }, - ignore_focus = {}, - always_divide_middle = true, - globalstatus = false, - refresh = { - statusline = 1000, - tabline = 1000, - winbar = 1000, - }, - }, - sections = { - lualine_a = { - { "mode", separator = { left = "" }, right_padding = 2 }, - }, - lualine_b = { "branch", "diff", "diagnostics" }, - lualine_c = { "filename", "lsp_progress" }, - lualine_x = { "encoding", "fileformat", "filetype" }, - lualine_y = { "progress" }, - lualine_z = { - { "location", separator = { right = "" }, left_padding = 2 }, - }, - }, - inactive_sections = { - lualine_a = {}, - lualine_b = {}, - lualine_c = { "filename" }, - lualine_x = { "location" }, - lualine_y = {}, - lualine_z = {}, - }, - tabline = {}, - winbar = {}, - inactive_winbar = {}, - extensions = {}, -}) - -require("Comment").setup() - -require("nvim-treesitter.configs").setup({ - context_commentstring = { - enable = true, - }, -}) - -require("nvim-surround").setup({}) - -require("nvim-treesitter.configs").setup({ - textsubjects = { - enable = true, - prev_selection = ",", -- (Optional) keymap to select the previous selection - keymaps = { ["."] = "textsubjects-smart" }, - }, -}) - -require("copilot").setup({ - suggestion = { enabled = false }, - panel = { enabled = false }, -}) -vim.api.nvim_create_autocmd("VimEnter", { - desc = "Disable Copilot by default on startup", - command = "Copilot disable", -}) -require("copilot_cmp").setup() - -local orgmode = require("orgmode") --- Load custom treesitter grammar for org filetype -orgmode.setup_ts_grammar() --- Treesitter configuration -require("nvim-treesitter.configs").setup({ - -- If TS highlights are not enabled at all, or disabled via `disable` prop, - -- highlighting will fallback to default Vim syntax highlighting - highlight = { - enable = true, - -- Required for spellcheck, some LaTex highlights and - -- code block highlights that do not have ts grammar - additional_vim_regex_highlighting = { "org" }, - }, -}) -orgmode.setup({ - org_agenda_files = { "~/Notes/org" }, - org_default_notes_file = "~/Notes/org/refile.org", -}) - -require("gitsigns").setup() - -require("nvim-lastplace").setup({ - lastplace_ignore_buftype = { "quickfix", "nofile", "help" }, - lastplace_ignore_filetype = { "gitcommit", "gitrebase", "svn", "hgcommit" }, - lastplace_open_folds = true, -}) - -require("nvim-autopairs").setup() - --- disable netrw at the very start of your init.lua (strongly advised) -vim.g.loaded_netrw = 1 -vim.g.loaded_netrwPlugin = 1 --- set termguicolors to enable highlight groups -vim.opt.termguicolors = true --- empty setup using defaults -require("nvim-tree").setup() -wk.register({ - t = { "NvimTreeFindFileToggle", "nvim tree" }, -}, { prefix = "t", silent = true }) - -require("smartcolumn").setup({ - colorcolumn = 120, - disabled_filetypes = { "help", "text", "markdown", "dashboard" }, -}) diff --git a/modules/programs/nvim/plugins/catppuccin-nvim.lua b/modules/programs/nvim/plugins/catppuccin-nvim.lua new file mode 100644 index 0000000..9c3b7d7 --- /dev/null +++ b/modules/programs/nvim/plugins/catppuccin-nvim.lua @@ -0,0 +1,7 @@ +require("catppuccin").setup({ + compile_path = vim.fn.stdpath("cache") .. "/catppuccin", -- fix issue of writing to nix store + integrations = { + which_key = true, + }, +}) +vim.cmd.colorscheme("catppuccin-macchiato") diff --git a/modules/programs/nvim/plugins/comment-nvim.lua b/modules/programs/nvim/plugins/comment-nvim.lua new file mode 100644 index 0000000..bd47faf --- /dev/null +++ b/modules/programs/nvim/plugins/comment-nvim.lua @@ -0,0 +1 @@ +require("Comment").setup() diff --git a/modules/programs/nvim/plugins/copilot-lua.lua b/modules/programs/nvim/plugins/copilot-lua.lua new file mode 100644 index 0000000..7135331 --- /dev/null +++ b/modules/programs/nvim/plugins/copilot-lua.lua @@ -0,0 +1,8 @@ +require("copilot").setup({ + suggestion = { enabled = false }, + panel = { enabled = false }, +}) +vim.api.nvim_create_autocmd("VimEnter", { + desc = "Disable Copilot by default on startup", + command = "Copilot disable", +}) diff --git a/modules/programs/nvim/plugins/dashboard-nvim.lua b/modules/programs/nvim/plugins/dashboard-nvim.lua new file mode 100644 index 0000000..83dcf23 --- /dev/null +++ b/modules/programs/nvim/plugins/dashboard-nvim.lua @@ -0,0 +1,9 @@ +require("dashboard").setup({ + theme = "hyper", + config = { + packages = { enable = false }, + week_header = { + enable = true, + }, + }, +}) diff --git a/modules/programs/nvim/plugins/formatter-nvim.lua b/modules/programs/nvim/plugins/formatter-nvim.lua new file mode 100644 index 0000000..b72b72a --- /dev/null +++ b/modules/programs/nvim/plugins/formatter-nvim.lua @@ -0,0 +1,71 @@ +-- Provides the Format, FormatWrite, FormatLock, and FormatWriteLock commands +require("formatter").setup({ + -- Enable or disable logging + logging = true, + -- Set the log level + log_level = vim.log.levels.WARN, + -- All formatter configurations are opt-in + filetype = { + json = { + require("formatter.filetypes.json").jq, + }, + lua = { + require("formatter.filetypes.lua").stylua, + }, + nix = { + require("formatter.filetypes.nix").nixpkgs_fmt, + }, + python = { + require("formatter.filetypes.python").black, + }, + rust = { + require("formatter.filetypes.rust").rustfmt, + }, + sh = { + require("formatter.filetypes.sh").shfmt, + }, + toml = { + require("formatter.filetypes.toml").taplo, + }, + yaml = { + require("formatter.filetypes.yaml").yamlfmt, + }, + + -- HACK to use specific formatters only when specified + alejandra = { + require("formatter.filetypes.nix").alejandra, + }, + isort = { + require("formatter.filetypes.python").isort, + }, + + -- Use the special "*" filetype for defining formatter configurations on + -- any filetype + ["*"] = { + -- "formatter.filetypes.any" defines default configurations for any + -- filetype + require("formatter.filetypes.any").remove_trailing_whitespace, + }, + }, +}) + +vim.api.nvim_create_user_command("Fmt", function(opts) + local params = vim.split(opts.args, "%s+", { trimempty = true }) + local filetype = vim.bo.filetype + vim.cmd("set filetype=" .. params[1]) -- fake filetype + vim.cmd(":Format") + vim.cmd("set filetype=" .. filetype) -- restore original filetype +end, { + nargs = 1, + complete = function() + local languages = { + nix = { "alejandra" }, + python = { "isort" }, + } + return languages[vim.bo.filetype] or {} + end, +}) + +require("which-key").register({ + ["="] = { "Format", "format (formatter)" }, +}, { noremap = true, silent = true }) diff --git a/modules/programs/nvim/plugins/gitsigns-nvim.lua b/modules/programs/nvim/plugins/gitsigns-nvim.lua new file mode 100644 index 0000000..d16d238 --- /dev/null +++ b/modules/programs/nvim/plugins/gitsigns-nvim.lua @@ -0,0 +1 @@ +require("gitsigns").setup() diff --git a/modules/programs/nvim/plugins/lualine-nvim.lua b/modules/programs/nvim/plugins/lualine-nvim.lua new file mode 100644 index 0000000..b72eb13 --- /dev/null +++ b/modules/programs/nvim/plugins/lualine-nvim.lua @@ -0,0 +1,44 @@ +require("lualine").setup({ + options = { + icons_enabled = true, + theme = "auto", + component_separators = "|", + section_separators = { left = "", right = "" }, + disabled_filetypes = { + statusline = {}, + winbar = {}, + }, + ignore_focus = {}, + always_divide_middle = true, + globalstatus = false, + refresh = { + statusline = 1000, + tabline = 1000, + winbar = 1000, + }, + }, + sections = { + lualine_a = { + { "mode", separator = { left = "" }, right_padding = 2 }, + }, + lualine_b = { "branch", "diff", "diagnostics" }, + lualine_c = { "filename", "lsp_progress" }, + lualine_x = { "encoding", "fileformat", "filetype" }, + lualine_y = { "progress" }, + lualine_z = { + { "location", separator = { right = "" }, left_padding = 2 }, + }, + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = { "filename" }, + lualine_x = { "location" }, + lualine_y = {}, + lualine_z = {}, + }, + tabline = {}, + winbar = {}, + inactive_winbar = {}, + extensions = {}, +}) diff --git a/modules/programs/nvim/plugins/noice-nvim.lua b/modules/programs/nvim/plugins/noice-nvim.lua new file mode 100644 index 0000000..0d6cb82 --- /dev/null +++ b/modules/programs/nvim/plugins/noice-nvim.lua @@ -0,0 +1,21 @@ +require("noice").setup({ + lsp = { + -- override markdown rendering so that **cmp** and other plugins use **Treesitter** + override = { + ["vim.lsp.util.convert_input_to_markdown_lines"] = true, + ["vim.lsp.util.stylize_markdown"] = true, + ["cmp.entry.get_documentation"] = true, + }, + progress = { + enabled = false, + }, + }, + -- you can enable a preset for easier configuration + presets = { + bottom_search = true, -- use a classic bottom cmdline for search + command_palette = true, -- position the cmdline and popupmenu together + long_message_to_split = true, -- long messages will be sent to a split + inc_rename = false, -- enables an input dialog for inc-rename.nvim + lsp_doc_border = false, -- add a border to hover docs and signature help + }, +}) diff --git a/modules/programs/nvim/plugins/nvim-autopairs.lua b/modules/programs/nvim/plugins/nvim-autopairs.lua new file mode 100644 index 0000000..4de6add --- /dev/null +++ b/modules/programs/nvim/plugins/nvim-autopairs.lua @@ -0,0 +1 @@ +require("nvim-autopairs").setup() diff --git a/modules/programs/nvim/plugins/nvim-lastplace.lua b/modules/programs/nvim/plugins/nvim-lastplace.lua new file mode 100644 index 0000000..d97700f --- /dev/null +++ b/modules/programs/nvim/plugins/nvim-lastplace.lua @@ -0,0 +1,5 @@ +require("nvim-lastplace").setup({ + lastplace_ignore_buftype = { "quickfix", "nofile", "help" }, + lastplace_ignore_filetype = { "gitcommit", "gitrebase", "svn", "hgcommit" }, + lastplace_open_folds = true, +}) diff --git a/modules/programs/nvim/plugins/nvim-surround.lua b/modules/programs/nvim/plugins/nvim-surround.lua new file mode 100644 index 0000000..f2499fd --- /dev/null +++ b/modules/programs/nvim/plugins/nvim-surround.lua @@ -0,0 +1 @@ +require("nvim-surround").setup({}) diff --git a/modules/programs/nvim/plugins/nvim-tree-lua.lua b/modules/programs/nvim/plugins/nvim-tree-lua.lua new file mode 100644 index 0000000..a8634bc --- /dev/null +++ b/modules/programs/nvim/plugins/nvim-tree-lua.lua @@ -0,0 +1,10 @@ +-- disable netrw at the very start of your init.lua (strongly advised) +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 +-- set termguicolors to enable highlight groups +vim.opt.termguicolors = true +-- empty setup using defaults +require("nvim-tree").setup() +require("which-key").register({ + t = { "NvimTreeFindFileToggle", "nvim tree" }, +}, { prefix = "t", silent = true }) diff --git a/modules/programs/nvim/plugins/nvim-treesitter-textsubjects.lua b/modules/programs/nvim/plugins/nvim-treesitter-textsubjects.lua new file mode 100644 index 0000000..e60041a --- /dev/null +++ b/modules/programs/nvim/plugins/nvim-treesitter-textsubjects.lua @@ -0,0 +1,7 @@ +require("nvim-treesitter.configs").setup({ + textsubjects = { + enable = true, + prev_selection = ",", -- (Optional) keymap to select the previous selection + keymaps = { ["."] = "textsubjects-smart" }, + }, +}) diff --git a/modules/programs/nvim/plugins/nvim-ts-context-commentstring.lua b/modules/programs/nvim/plugins/nvim-ts-context-commentstring.lua new file mode 100644 index 0000000..42a4bb9 --- /dev/null +++ b/modules/programs/nvim/plugins/nvim-ts-context-commentstring.lua @@ -0,0 +1,5 @@ +require("nvim-treesitter.configs").setup({ + context_commentstring = { + enable = true, + }, +}) diff --git a/modules/programs/nvim/plugins/orgmode.lua b/modules/programs/nvim/plugins/orgmode.lua new file mode 100644 index 0000000..556d5e6 --- /dev/null +++ b/modules/programs/nvim/plugins/orgmode.lua @@ -0,0 +1,18 @@ +local orgmode = require("orgmode") +-- Load custom treesitter grammar for org filetype +orgmode.setup_ts_grammar() +-- Treesitter configuration +require("nvim-treesitter.configs").setup({ + -- If TS highlights are not enabled at all, or disabled via `disable` prop, + -- highlighting will fallback to default Vim syntax highlighting + highlight = { + enable = true, + -- Required for spellcheck, some LaTex highlights and + -- code block highlights that do not have ts grammar + additional_vim_regex_highlighting = { "org" }, + }, +}) +orgmode.setup({ + org_agenda_files = { "~/Notes/org" }, + org_default_notes_file = "~/Notes/org/refile.org", +}) diff --git a/modules/programs/nvim/plugins/smartcolumn-nvim.lua b/modules/programs/nvim/plugins/smartcolumn-nvim.lua new file mode 100644 index 0000000..1858689 --- /dev/null +++ b/modules/programs/nvim/plugins/smartcolumn-nvim.lua @@ -0,0 +1,4 @@ +require("smartcolumn").setup({ + colorcolumn = 120, + disabled_filetypes = { "help", "text", "markdown", "dashboard" }, +}) diff --git a/modules/programs/nvim/plugins/telescope-fzf-native-nvim.lua b/modules/programs/nvim/plugins/telescope-fzf-native-nvim.lua new file mode 100644 index 0000000..d38c004 --- /dev/null +++ b/modules/programs/nvim/plugins/telescope-fzf-native-nvim.lua @@ -0,0 +1 @@ +require("telescope").load_extension("fzf") diff --git a/modules/programs/nvim/plugins/telescope-nvim.lua b/modules/programs/nvim/plugins/telescope-nvim.lua new file mode 100644 index 0000000..d83cec4 --- /dev/null +++ b/modules/programs/nvim/plugins/telescope-nvim.lua @@ -0,0 +1,9 @@ +require("which-key").register({ + f = { + name = "find", + f = { "Telescope find_files", "find file" }, + l = { "Telescope current_buffer_fuzzy_find", "find line" }, + g = { "Telescope live_grep", "live grep" }, + b = { "Telescope buffers", "find buffer" }, + }, +}, { prefix = "" }) diff --git a/modules/programs/nvim/plugins/telescope-zoxide.lua b/modules/programs/nvim/plugins/telescope-zoxide.lua new file mode 100644 index 0000000..bb8f7f1 --- /dev/null +++ b/modules/programs/nvim/plugins/telescope-zoxide.lua @@ -0,0 +1,7 @@ +require("telescope").load_extension("zoxide") +require("which-key").register({ + f = { + name = "find", + z = { "Telescope zoxide list", "find location" }, + }, +}, { prefix = "" }) diff --git a/modules/programs/nvim/plugins/todo-comments-nvim.lua b/modules/programs/nvim/plugins/todo-comments-nvim.lua new file mode 100644 index 0000000..ae7ceee --- /dev/null +++ b/modules/programs/nvim/plugins/todo-comments-nvim.lua @@ -0,0 +1 @@ +require("todo-comments").setup({}) diff --git a/modules/programs/nvim/plugins/which-key-nvim.lua b/modules/programs/nvim/plugins/which-key-nvim.lua new file mode 100644 index 0000000..e70fb09 --- /dev/null +++ b/modules/programs/nvim/plugins/which-key-nvim.lua @@ -0,0 +1,2 @@ +vim.o.timeout = true +vim.o.timeoutlen = 500