diff options
| author | Robert Günzler <r@gnzler.io> | 2022-04-15 15:20:00 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2022-04-15 15:20:00 +0200 |
| commit | e85449522dd08476ed158406f2abfc703ff95c72 (patch) | |
| tree | 46d40566dbb4f57aee72063c9eded8109ce304af | |
| parent | 90c0c328c5bd12c3e6b7c3f9a08a3a9ccd28bdb2 (diff) | |
vim: update plugins.lua
| -rw-r--r-- | .vim/lua/plugins.lua | 623 |
1 files changed, 342 insertions, 281 deletions
diff --git a/.vim/lua/plugins.lua b/.vim/lua/plugins.lua index 237a64c..f5bf50c 100644 --- a/.vim/lua/plugins.lua +++ b/.vim/lua/plugins.lua @@ -70,7 +70,14 @@ return require('packer').startup({function() -- improve startup time by optimizing lua `require` use {'lewis6991/impatient.nvim'} - -- git status in the sign column + -- neat helper for when you don't remember your keymap + use {'folke/which-key.nvim', module = {'which-key'}, -- {{{ + config = function() + require('which-key').setup { + icons = { separator = ':' } + } + end} -- }}} + use {'lewis6991/gitsigns.nvim', --- {{{ requires = {'nvim-lua/plenary.nvim'}, config = function() @@ -90,6 +97,28 @@ return require('packer').startup({function() } end} -- }}} + use {'lukas-reineke/indent-blankline.nvim', -- {{{ + config = function() + require('indent_blankline').setup { + char = '▏', + char_highlight_list = {'Whitespace'}, + -- space_char = ' ', + -- space_char_highlight_list = {}, + show_first_indent_level = true, + show_trailing_blankline_indent = false, + show_end_of_line = true, + use_treesitter = true, + disable_with_nolist = true, + buftype_exclude = {'terminal'}, + bufname_exclude = {'README.md'}, + strict_tabs = true, + show_current_context = true, + context_patterns = {'class', 'function', 'method', 'block'}, + -- context_highlight_list = {'Folded'}, + context_highlight_list = {'deEmph'}, + } + end} -- }}} + -- gcc to comment out text use {'numToStr/Comment.nvim', -- {{{ config = function() @@ -100,14 +129,21 @@ return require('packer').startup({function() } end} -- }}} + use {'editorconfig/editorconfig-vim', -- {{{ + config = function() + local group = vim.api.nvim_create_augroup('EditorConfigDisable', { clear = true }) + vim.api.nvim_create_autocmd('FileType', { + pattern = {'gitcommit'}, + command = [[let b:EditorConfig_disable = 1]], + group = group, + }) + end} -- }}} + use {'windwp/nvim-autopairs', -- {{{ config = function() require('nvim-autopairs').setup() end} -- }}} - -- edit surroundings in pairs - use {'tpope/vim-surround'} - use {'elihunter173/dirbuf.nvim', -- {{{ config = function() require('dirbuf').setup { @@ -115,154 +151,62 @@ return require('packer').startup({function() } end} -- }}} - use {'ggandor/lightspeed.nvim', disable = true, -- {{{ - config = function() - -- vim.cmd [[ vunmap x ]] - end} -- }}} - - use {'jose-elias-alvarez/null-ls.nvim', -- {{{ - requires = {'nvim-lua/plenary.nvim'}, - config = function() - local nls = require('null-ls') - -- local h = require('null-ls.helpers') - nls.setup { - -- debug = true, - sources = { - nls.builtins.diagnostics.shellcheck, -- *sh - -- nls.builtins.formatting.clang_format, -- c* - -- nls.builtins.formatting.gofumpt, -- go - -- nls.builtins.formatting.json_tool, -- json - -- nls.builtins.formatting.rustfmt, -- rust - nls.builtins.formatting.shfmt, -- *sh - nls.builtins.formatting.yapf, -- python - -- h.make_builtin({ - -- method = nls.methods.DIAGNOSTICS, - -- filetypes = { 'go' }, - -- generator_opts = { - -- command = 'sh', - -- args = { - -- '-c', - -- 'golangci-lint run --fix=false --out-format=tab -E gocritic | grep ^$RELNAME', - -- }, - -- to_stdin = false, - -- check_exit_code = {0, 1}, - -- format = 'line', - -- on_output = h.diagnostics.from_patterns({ - -- { - -- pattern = [[(.+):(%d+):(%d+)%s+([%w%_%-]+)%s+(.*)]], - -- groups = { 'data', 'row', 'col', 'source', 'message' }, - -- } - -- }) - -- }, - -- factory = h.generator_factory, - -- }) - }, - on_attach = require('lsp').my_attach, - } - end} -- }}} - - use {'neovim/nvim-lspconfig', -- {{{ - requires = {'~/devel/projects/spinner.nvim'}, - config = function() - require('lsp').setup() - end} -- }}} - - use {'nvim-lua/lsp-status.nvim', -- {{{ - config = function() - local lspstatus = require('lsp-status') - lspstatus.config { - diagnostics = false, - current_function = false, - status_symbol = '', - } - lspstatus.register_progress() - end} -- }}} - - use {'kosayoda/nvim-lightbulb', -- {{{ - -- branch = 'virtual-text-column', + use {'ggandor/leap.nvim', -- {{{ config = function() - _G.lightbulb_config = { - sign = { - enabled = false, - priority = 10, - }, - float = { - enabled = false, - text = '', - win_opts = {}, - }, - virtual_text = { - enabled = false, - text = '← ', - text_pos = 'eol', - column = -1, - }, - -- status text only works on master - status_text = { - enabled = true, - text = '', - test_unavailable = '', - } - } - - -- vim.fn.sign_define({{name='LightBulbSign', text='', texthl='LightBulbVirtualText'}}) - augroup { - lightbulb = { - {'CursorHold', '*', [[lua require('nvim-lightbulb').update_lightbulb(_G.lightbulb_config)]]} - } - } + require('leap').set_default_keymaps() end} -- }}} - use {'weilbith/nvim-code-action-menu'} + _G.treesitter_enabled = { + 'bash', + 'bibtex', + 'c', + 'c_sharp', + 'cpp', + 'cmake', + 'comment', + 'css', + 'dockerfile', + -- 'elixir', + 'go', + 'gomod', + 'gowork', + 'hcl', + 'help', + 'html', + 'java', + 'javascript', + 'json', + 'jsonc', + 'latex', + 'ledger', + 'lua', + 'make', + 'markdown', + 'ninja', + 'norg', + 'regex', + 'rust', + 'scss', + 'toml', + 'typescript', + 'vim', + 'yaml', + 'zig', + 'org', + 'norg_meta', + 'norg_table', + 'hare', + } use {'nvim-treesitter/nvim-treesitter', -- {{{ run = ':TSUpdate', requires = { - 'nvim-treesitter/completion-treesitter', 'nvim-treesitter/nvim-treesitter-refactor', 'nvim-treesitter/nvim-treesitter-textobjects', 'nvim-treesitter/playground', }, config = function() - local enabled = { - 'bash', - 'c', - 'c_sharp', - 'comment', - 'css', - 'dockerfile', - 'go', - 'gomod', - 'html', - 'javascript', - 'json', - 'jsonc', - 'ledger', - 'lua', - 'norg', - 'regex', - 'rust', - 'scss', - 'toml', - 'typescript', - 'vim', - 'yaml', - 'zig', - - 'org', - 'markdown', - 'norg_meta', - 'norg_table', - } - local tsconf = require('nvim-treesitter.parsers').get_parser_configs() - tsconf.markdown = { - install_info = { - url = 'https://github.com/MDeiml/tree-sitter-markdown', - files = {'src/parser.c', 'src/scanner.cc'}, - revision = 'main', - } - } tsconf.org = { install_info = { url = 'https://github.com/milisims/tree-sitter-org', @@ -284,14 +228,19 @@ return require('packer').startup({function() branch = 'main' } } + tsconf.hare = { + install_info = { + url = 'https://git.sr.ht/~ecmma/tree-sitter-hare', + files = {'src/parser.c'}, + } + } require('nvim-treesitter.configs').setup { - ensure_installed = enabled, + ensure_installed = _G.treesitter_enabled, + disable = {'jsonc'}, highlight = { enable = true, - disable = {'markdown'}, - - additional_vim_regex_highlighting = {'org'}, + additional_vim_regex_highlighting = {'markdown'}, }, indent = { enable = true, @@ -336,43 +285,111 @@ return require('packer').startup({function() }, }, } + end} -- }}} + + use {'neovim/nvim-lspconfig', -- {{{ + requires = {'~/devel/projects/spinner.nvim'}, + config = function() + require('lsp').setup() + end} -- }}} - augroup { - treesitter = {{ 'FileType', table.concat(enabled, ','), [[ set foldmethod=expr foldexpr=nvim_treesitter#foldexpr() ]] }} + use {'nvim-lua/lsp-status.nvim', -- {{{ + config = function() + local lspstatus = require('lsp-status') + lspstatus.config { + diagnostics = false, + current_function = false, + status_symbol = '', } + lspstatus.register_progress() end} -- }}} - use {'onsails/lspkind-nvim', -- {{{ + use {'kosayoda/nvim-lightbulb', -- {{{ + -- branch = 'virtual-text-column', config = function() - require('lspkind').init { - symbol_map = { - Text = '', - Method = '', - Function = '', - Constructor = '', - Field = '', - Variable = '', - Class = '', - Interface = '', - Module = '', - Property = '', - Unit = '', - Value = '', - Enum = '', - Keyword = '', - Snippet = '', - Color = '', - File = '', - Reference = '', - Folder = '', - EnumMember = '', - Constant = '', - Struct = 'פּ', - Event = '', - Operator = '', - TypeParameter = '', + _G.lightbulb_config = { + sign = { + enabled = false, + priority = 10, + }, + float = { + enabled = false, + text = '', + win_opts = {}, + }, + virtual_text = { + enabled = false, + text = '← ', + text_pos = 'eol', + column = -1, + }, + -- status text only works on master + status_text = { + enabled = true, + text = '', + test_unavailable = '', } } + + -- vim.fn.sign_define({{name='LightBulbSign', text='', texthl='LightBulbVirtualText'}}) + + local group = vim.api.nvim_create_augroup('LightBulbUpdate', { clear = true }) + vim.api.nvim_create_autocmd('CursorHold', { + pattern = '*', + callback = function() + require('nvim-lightbulb').update_lightbulb(_G.lightbulb_config) + end, + group = group, + }) + end} -- }}} + + use {'weilbith/nvim-code-action-menu'} + + use {'jose-elias-alvarez/null-ls.nvim', -- {{{ + requires = {'nvim-lua/plenary.nvim'}, + config = function() + local nls = require('null-ls') + -- local h = require('null-ls.helpers') + nls.setup { + -- debug = true, + sources = { + nls.builtins.diagnostics.shellcheck, -- *sh + -- nls.builtins.formatting.clang_format, -- c* + -- nls.builtins.formatting.gofumpt, -- go + -- nls.builtins.formatting.json_tool, -- json + -- nls.builtins.formatting.rustfmt, -- rust + nls.builtins.formatting.shfmt, -- *sh + nls.builtins.formatting.yapf, -- python + -- h.make_builtin({ + -- method = nls.methods.DIAGNOSTICS, + -- filetypes = { 'go' }, + -- generator_opts = { + -- command = 'sh', + -- args = { + -- '-c', + -- 'golangci-lint run --fix=false --out-format=tab -E gocritic | grep ^$RELNAME', + -- }, + -- to_stdin = false, + -- check_exit_code = {0, 1}, + -- format = 'line', + -- on_output = h.diagnostics.from_patterns({ + -- { + -- pattern = [[(.+):(%d+):(%d+)%s+([%w%_%-]+)%s+(.*)]], + -- groups = { 'data', 'row', 'col', 'source', 'message' }, + -- } + -- }) + -- }, + -- factory = h.generator_factory, + -- }) + }, + on_attach = require('lsp').my_attach, + } + end} -- }}} + + use {'mfussenegger/nvim-dap', module = {'dap'}, -- {{{ + requires = {'nvim-telescope/telescope-dap.nvim'}, + config = function() + require('debugger') end} -- }}} use {'hrsh7th/nvim-cmp', -- {{{ @@ -387,6 +404,7 @@ return require('packer').startup({function() 'saadparwaiz1/cmp_luasnip', 'f3fora/cmp-spell', 'onsails/lspkind-nvim', + 'windwp/nvim-autopairs', }, config = function() local cmp = require('cmp') @@ -496,13 +514,13 @@ return require('packer').startup({function() format = require('lspkind').cmp_format { with_text = false, menu = { - nvim_lsp = '[LSP]', - luasnip = '[SNIP]', - nvim_lua = '[NVIM]', - orgmode = '[ORG]', - spell = '[SPELL]', - path = '[PATH]', - buffer = '[BUF]', + nvim_lsp = '[lsp]', + luasnip = '[snip]', + nvim_lua = '[nvim]', + orgmode = '[org]', + spell = '[spell]', + path = '[path]', + buffer = '[buf]', } } }, @@ -551,6 +569,11 @@ return require('packer').startup({function() TypeParameter = '', } } + + -- insert `(` after selecting function/method items + cmp.event:on('confirm_done', require('nvim-autopairs.completion.cmp').on_confirm_done { + map_char = { tex = '' } + }) end} -- }}} use {'L3MON4D3/LuaSnip', -- {{{ @@ -644,25 +667,41 @@ return require('packer').startup({function() vim.keymap.set('n', ';s', require('telescope.builtin').lsp_workspace_symbols) vim.keymap.set('n', ';a', require('telescope.builtin').lsp_code_actions) vim.keymap.set('n', ';r', require('telescope.builtin').lsp_references) - end} -- }}} - - -- TODO(robert): look into this more - use {'tjdevries/sg.nvim', disable = true, -- {{{ - requires = {'nvim-lua/plenary.nvim'}, - config = function() - end} -- }}} - -- snippets - use {'dcampos/nvim-snippy', -- {{{ - requires = { - 'honza/vim-snippets' - }, - config = function() - local S = require('snippy') - vim.keymap.set('i', '<C-j>', function() if S.can_jump(1) then S.next() else return '<C-j>' end end) - vim.keymap.set('i', '<C-k>', function() if S.can_jump(-1) then S.previous() else return '<C-k>' end end) - vim.keymap.set('s', '<C-j>', function() if S.can_jump(1) then S.next() else return '<C-j>' end end) - vim.keymap.set('s', '<C-k>', function() if S.can_jump(-1) then S.previous() else return '<C-k>' end end) + -- do + -- local group = vim.api.nvim_create_augroup('Telescope', { clear = true }) + -- vim.api.nvim_create_autocmd('QuickFixCmdPost', { + -- callback = require('telescope.builtin').quickfix, + -- group = group, + -- }) + -- end + + do + local installed, wk = pcall(require, 'which-key') + if not installed then return end + wk.register { + [';'] = { + name = '+telescope', + Q = {'quickfix'}, + C = {'loclist'}, + H = {'help'}, + b = {'buffers'}, + c = {'commands'}, + f = {'fd'}, + g = {'grep'}, + h = {'command history'}, + l = {'fuzzy find buffer'}, + o = {'oldfiles (mcu)'}, + t = {'tags'}, + v = {'vimrc'}, + d = {'diagnostics'}, + s = {'workspace symbols'}, + a = {'code actions'}, + r = {'references'}, + z = {'zk'}, + } + } + end end} -- }}} use {'junegunn/vim-easy-align', cmd = {'EasyAligh', 'LiveEasyAlign'}, -- {{{ @@ -670,35 +709,9 @@ return require('packer').startup({function() vim.keymap.set('v', '<enter>', ':LiveEasyAlign<cr>') end} -- }}} - use {'editorconfig/editorconfig-vim', -- {{{ - config = function() - augroup { - editorconfig = { - { 'FileType', 'gitcommit', 'let b:EditorConfig_disable = 1' }, - } - } - end} -- }}} - - use {'lukas-reineke/indent-blankline.nvim', -- {{{ + use {'ur4ltz/surround.nvim', -- {{{ config = function() - require('indent_blankline').setup { - char = '▏', - char_highlight_list = {'Whitespace'}, - -- space_char = ' ', - -- space_char_highlight_list = {}, - show_first_indent_level = true, - show_trailing_blankline_indent = false, - show_end_of_line = true, - use_treesitter = true, - disable_with_nolist = true, - buftype_exclude = {'terminal'}, - bufname_exclude = {'README.md'}, - strict_tabs = true, - show_current_context = true, - context_patterns = {'class', 'function', 'method', 'block'}, - -- context_highlight_list = {'Folded'}, - context_highlight_list = {'deEmph'}, - } + require('surround').setup { mappings_style = 'surround' } end} -- }}} use {'tpope/vim-repeat'} -- extend '.' to plugins @@ -716,26 +729,18 @@ return require('packer').startup({function() }) end} -- }}} - use {'rhysd/git-messenger.vim', -- {{{ - config = function() - -- vim.g.git_messenger_include_diff = false - vim.g.git_messenger_always_into_popup = true - vim.g.git_messenger_close_on_cursor_moved = true - vim.g.git_messenger_no_default_mappings = true - vim.keymap.set('n', '<leader>gm', function() vim.cmd [[GitMessenger]] end) - end} -- }}} - use {'liuchengxu/vista.vim'} use {'rhysd/conflict-marker.vim', disable = true} use {'kassio/neoterm', disable = true} use {'kristijanhusak/orgmode.nvim', ft = {'org'}, module = {'orgmode'}, -- {{{ config = function() + require('orgmode').setup_ts_grammar() require('orgmode').setup { org_agenda_files = {vim.env.HOME..'/Documents/org/*.org'}, org_default_notes_file = vim.env.HOME..'/Documents/org/todo.org', org_todo_keywords = {'TODO', 'DONE'}, - org_indent_mode = 'noindent', + -- org_indent_mode = 'noindent', org_agenda_templates = { t = { description = 'Todo', @@ -764,12 +769,47 @@ return require('packer').startup({function() }):find() end) - -- vim.cmd [[ command! Orgmode lua require('orgmode').action('agenda.prompt') ]] - -- vim.cmd [[ command! OrgmodeCapture lua require('orgmode').action('capture.refile') ]] - -- vim.cmd [[ command! OrgmodeInsert lua require('orgmode').action('org_mappings.insert_heading_respect_content') ]] - -- vim.cmd [[ command! OrgmodeTodoCycle('orgmode').action('org_mappings.todo_next_state') ]] - -- vim.cmd [[ command! OrgmodeTag lua require('orgmode').action('org_mappings.set_tags') ]] - -- vim.cmd [[ command! OrgmodeArchive lua require('orgmode').action('org_mappings.toggle_archive_tag') ]] + do + local installed, wk = pcall(require, 'which-key') + if not installed then return end + wk.register { + ['<leader>o'] = { + name = '+orgmode', + a = {'agenda prompt'}, + c = {'capture prompt'}, + r = {'refile'}, + [','] = {'set priority'}, + ['*'] = {'toggle headline'}, + ['o'] = {'follow link/date'}, + ['\''] = {'create source block'}, + ['$'] = {'archive current headline'}, + ['<cr>'] = {'insert heading/item/row'}, + t = {'set tags'}, + A = {'toggle ARCHIVE tag'}, + K = {'subtree up'}, + J = {'subtree down'}, + e = {'export'}, + ['i'] = { + name = '+timestamp', + d = {'set deadline'}, + s = {'set scheduled'}, + h = {'insert heading (respect content)'}, + T = {'insert todo'}, + t = {'insert todo (respect content)'}, + ['.'] = {'set date'}, + ['!'] = {'set inactive'}, + }, + ['x'] = { + name = '+clock', + i = {'clock in'}, + o = {'clock out'}, + q = {'cancel active clock'}, + j = {'jump to active clock'}, + e = {'set effort estimate property'}, + } + }, + } + end end} -- }}} use {'nvim-neorg/neorg', ft = {'norg'}, module = {'neorg'}, cmd = {'Neorg'}, -- {{{ @@ -877,43 +917,36 @@ return require('packer').startup({function() end} -- }}} -- use {'masukomi/vim-markdown-folding', ft = {'markdown'}} - use {'jjo/vim-cue', ft = {'cue'}} use {'gentoo/gentoo-syntax'} -- polyglot: multi-language support with lazy loading {{{ -- NOTE: put language specific plugs before this to avoid conflicsts - -- should be kept in sync with tree-sitter, I guess... - g.polyglot_disabled = { - 'bash', - 'c', - 'c_sharp', - 'comment', - 'css', - 'dockerfile', - 'go', - 'gomod', - 'html', - 'javascript', - 'json', - 'jsonc', - 'ledger', - 'lua', - 'norg', - 'regex', - 'rust', - 'scss', - 'toml', - 'typescript', - 'vim', - 'yaml', - 'zig', + use {'sheerun/vim-polyglot', disable = true, + setup = function() + vim.g.polyglot_disabled = vim.tbl_extend('force', _G.treesitter_enabled, { + 'autoindent', + 'sensible', + 'ftdetect', + }) + vim.notify(vim.inspect(vim.g.polyglot_disabled)) + end} -- }}} - 'org', - -- 'markdown', - 'norg_meta', - 'norg_table', - } - use {'sheerun/vim-polyglot'} -- }}} + use {'NMAC427/guess-indent.nvim', disable = false, + config = function() + require('guess-indent').setup { + auto_cmd = false, + -- filetype_exclude = {'netrw', 'tutor'}, + buftype_exclude = {'help', 'nofile', 'terminal', 'prompt'}, + } + local group = vim.api.nvim_create_augroup('GuessIndent', { clear = true }) + vim.api.nvim_create_autocmd('BufWinEnter', { + pattern = '*', + callback = function() + require("guess-indent").set_from_buffer(true) + end, + group = group + }) + end} use {'folke/zen-mode.nvim', cmd = {'ZenMode'}, -- {{{ module = {'zen-mode'}, @@ -992,10 +1025,10 @@ return require('packer').startup({function() them.button('r', ' live grep', [[<cmd>lua require('misc').live_grep()<cr>]]), them.button('f', ' find files', [[<cmd>lua require('misc').find_files()<cr>]]), them.button('m', ' mru', [[<cmd>lua require('telescope.builtin').oldfiles()<cr>]]), - them.button('t', ' tasks', [[<cmd>lua require('packer').loader('orgmode.nvim'); require('orgmode').action('agenda.todos')<cr>]]), - them.button('a', ' agenda', [[<cmd>lua require('packer').loader('orgmode.nvim'); require('orgmode').action('agenda.agenda')<cr>]]), + them.button('o', ' orgmode', [[<cmd>lua require('packer').loader('orgmode.nvim'); require('orgmode').action('agenda.prompt')<cr>]]), them.button('u', ' update plugins', [[<cmd>lua require('packer').sync()<cr>]]), them.button('c', ' edit config', [[<cmd>lua require('telescope.builtin').find_files({search_dirs={vim.env.HOME..'/.vim/'}})<cr>]]), + them.button('M', ' mail', [[<cmd>Himalaya<cr>]]), } }, {type = 'padding', val = 1}, @@ -1032,11 +1065,14 @@ return require('packer').startup({function() } alpha.setup(them.opts) - augroup { - alpha_indent = { - { 'FileType', 'alpha', [[ IndentBlanklineDisable ]] }, - } - } + do + local group = vim.api.nvim_create_augroup('AlphaIndent', { clear = true }) + vim.api.nvim_create_autocmd('FileType', { + pattern = 'alpha', + command = [[IndentBlanklineDisable]], + group = group, + }) + end end} -- }}} use {'ruifm/gitlinker.nvim', -- {{{ @@ -1049,9 +1085,23 @@ return require('packer').startup({function() } end} -- }}} + use {'rhysd/git-messenger.vim', -- {{{ + config = function() + -- vim.g.git_messenger_include_diff = false + vim.g.git_messenger_always_into_popup = true + vim.g.git_messenger_close_on_cursor_moved = true + vim.g.git_messenger_no_default_mappings = true + vim.keymap.set('n', '<leader>gm', function() vim.cmd [[GitMessenger]] end) + end} -- }}} + -- restore last curosr position (and handle many edge cases) use {'farmergreg/vim-lastplace'} + use {'folke/todo-comments.nvim', -- {{{ + config = function() + require('todo-comments').setup {} + end} -- }}} + use {'lewis6991/spellsitter.nvim', disable = true, -- {{{ config = function() require('spellsitter').setup { @@ -1062,6 +1112,17 @@ return require('packer').startup({function() use {'rktjmp/lush.nvim'} + -- TODO(robert): look into this more + use {'tjdevries/sg.nvim', disable = true, -- {{{ + requires = {'nvim-lua/plenary.nvim'}, + config = function() + end} -- }}} + + use {'soywod/himalaya', rtp = 'vim', cmd = {'Himalaya'}, + config = function() + vim.g.himalaya_mailbox_picker = 'telescope' + vim.g.himalaya_telescope_preview_enabled = true + end} end, config = { package_root = require('packer.util').join_paths(datadir, 'site/pack'), |