From 824a9048c13e5dcc54dd98a1d9c3d7e411dd3e9b Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 23 Jul 2021 16:29:34 +0800 Subject: [PATCH 01/92] some update --- lua/core/init.lua | 2 +- lua/languages/config/kommentary.lua | 13 +++++++ lua/plugins/config/todo-comments.lua | 58 ++++++++++++++++++++++++++++ plugin/packer_compiled.lua | 2 +- 4 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 lua/languages/config/kommentary.lua create mode 100644 lua/plugins/config/todo-comments.lua diff --git a/lua/core/init.lua b/lua/core/init.lua index bbdd5a1..f980a5d 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -121,7 +121,7 @@ function(use) {'glepnir/lspsaga.nvim',after = 'nvim-lspconfig'} }, config = function() - --require 'languages.config.nvim-lspconfig' + require 'languages.config.nvim-lspconfig' end } use{ --auto completion diff --git a/lua/languages/config/kommentary.lua b/lua/languages/config/kommentary.lua new file mode 100644 index 0000000..e872ee2 --- /dev/null +++ b/lua/languages/config/kommentary.lua @@ -0,0 +1,13 @@ +vim.g.kommentary_create_default_mappings = false +vim.api.nvim_set_keymap("n", "cl", "kommentary_line_default", {}) +vim.api.nvim_set_keymap("n", "cd", "kommentary_motion_default", {}) +vim.api.nvim_set_keymap("x", "cv", "kommentary_visual_default", {}) +vim.api.nvim_set_keymap("v", "cv", "kommentary_visual_default", {}) + + +--------------------------------------------------------------------------------------------- + + + + + diff --git a/lua/plugins/config/todo-comments.lua b/lua/plugins/config/todo-comments.lua new file mode 100644 index 0000000..8416c7f --- /dev/null +++ b/lua/plugins/config/todo-comments.lua @@ -0,0 +1,58 @@ + + + + require("todo-comments").setup { + signs = true, -- show icons in the signs column + sign_priority = 8, -- sign priority + -- keywords recognized as todo comments + keywords = { + FIX = { + icon = " ", -- icon used for the sign, and in search results + color = "error", -- can be a hex color, or a named color (see below) + alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords + -- signs = false, -- configure signs for some keywords individually + }, + TODO = { icon = " ", color = "info" }, + HACK = { icon = " ", color = "warning" }, + WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } }, + PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, + NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, + }, + merge_keywords = true, -- when true, custom keywords will be merged with the defaults + -- highlighting of the line containing the todo comment + -- * before: highlights before the keyword (typically comment characters) + -- * keyword: highlights of the keyword + -- * after: highlights after the keyword (todo text) + highlight = { + before = "", -- "fg" or "bg" or empty + keyword = "wide", -- "fg", "bg", "wide" or empty. (wide is the same as bg, but will also highlight surrounding characters) + after = "fg", -- "fg" or "bg" or empty + pattern = [[.*<(KEYWORDS)\s*:]], -- pattern used for highlightng (vim regex) + comments_only = true, -- uses treesitter to match keywords in comments only + max_line_len = 400, -- ignore lines longer than this + exclude = {}, -- list of file types to exclude highlighting + }, + -- list of named colors where we try to extract the guifg from the + -- list of hilight groups or use the hex color if hl not found as a fallback + colors = { + error = { "LspDiagnosticsDefaultError", "ErrorMsg", "#DC2626" }, + warning = { "LspDiagnosticsDefaultWarning", "WarningMsg", "#FBBF24" }, + info = { "LspDiagnosticsDefaultInformation", "#2563EB" }, + hint = { "LspDiagnosticsDefaultHint", "#10B981" }, + default = { "Identifier", "#7C3AED" }, + }, + search = { + command = "rg", + args = { + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + }, + -- regex that will be used to match keywords. + -- don't replace the (KEYWORDS) placeholder + pattern = [[\b(KEYWORDS):]], -- ripgrep regex + -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives + }, + } diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 8b2cd7a..8db386f 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -343,7 +343,7 @@ try_loadstring("\27LJ\2\2 time([[Config for gruvbox-material]], false) -- Config for: nvim-lspconfig time([[Config for nvim-lspconfig]], true) -try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "nvim-lspconfig") +try_loadstring("\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") time([[Config for nvim-lspconfig]], false) -- Config for: nvim-tree.lua time([[Config for nvim-tree.lua]], true) From e72e475bc426134052bd61d92ec819fcc4ff1185 Mon Sep 17 00:00:00 2001 From: JryChn Date: Mon, 26 Jul 2021 18:09:55 +0800 Subject: [PATCH 02/92] fix ctrl-k/j cannot jump to next/prev snippet --- lua/core/init.lua | 1 + lua/languages/config/nvim-compe.lua | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/lua/core/init.lua b/lua/core/init.lua index b287363..93e50d5 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -165,6 +165,7 @@ function(use) use{ 'sainnhe/gruvbox-material', config = function() + -- vim.g.gruvbox_material_transparent_background = 1 vim.g.gruvbox_material_background = 'medium' vim.g.gruvbox_material_palette = 'mix' vim.cmd("colorscheme gruvbox-material") diff --git a/lua/languages/config/nvim-compe.lua b/lua/languages/config/nvim-compe.lua index 13067d8..159328a 100644 --- a/lua/languages/config/nvim-compe.lua +++ b/lua/languages/config/nvim-compe.lua @@ -47,6 +47,8 @@ end _G.tab_complete = function() if vim.fn.pumvisible() == 1 then return t "" + elseif vim.fn['vsnip#available'](1) == 1 then + return t "(vsnip-expand-or-jump)" elseif check_back_space() then return t "" else @@ -63,12 +65,25 @@ _G.s_tab_complete = function() end end +_G.jump_next = function() + if vim.fn['vsnip#available'](1) == 1 then + return t "(vsnip-expand-or-jump)" + end +end + +_G.jump_prev = function() + if vim.fn.call("vsnip#jumpable", {-1}) == 1 then + return t "(vsnip-jump-prev)" + end +end -- mappings vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true}) vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true}) vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {expr = true}) vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("i", "", "v:lua.jump_next()", {expr = true}) +vim.api.nvim_set_keymap("i", "", "v:lua.jump_prev()", {expr = true}) function _G.completions() local npairs = require("nvim-autopairs") From 81c8124daef48f03f62c7c44dfccbe09f1c8c0ca Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 27 Jul 2021 11:29:26 +0800 Subject: [PATCH 03/92] decrease startup time and fix virtual test color issuse --- lua/core/init.lua | 58 ++++-- plugin/packer_compiled.lua | 369 +++++++++++++++++++++++++++++++++++++ 2 files changed, 410 insertions(+), 17 deletions(-) create mode 100644 plugin/packer_compiled.lua diff --git a/lua/core/init.lua b/lua/core/init.lua index 93e50d5..b650378 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -42,7 +42,8 @@ function(use) 'mhinz/vim-sayonara', config = function() require 'core.config.vim-sayonara' - end + end, + event = "BufWinEnter" } use{ --provide a directory root 'airblade/vim-rooter', @@ -61,20 +62,23 @@ function(use) requires = {{'nvim-lua/popup.nvim'},{'nvim-lua/plenary.nvim'}}, config = function() require 'core.config.telescope' - end + end, + event = "BufWinEnter" } use{ --a minimalist dashboard for neovim 'glepnir/dashboard-nvim', config = function() require 'core.config.dashboard-vim' - end + end, + event = "BufWinEnter" } use{ --tabline plugin 'romgrk/barbar.nvim', requires = {'kyazdani42/nvim-web-devicons'}, config = function() require 'core.config.barbar' - end + end, + event = "BufWinEnter" } use{ --light-weight and super fast stataus line plugin 'glepnir/galaxyline.nvim', @@ -82,26 +86,30 @@ function(use) requires = {'kyazdani42/nvim-web-devicons'}, config = function() require 'core.config.galaxyline' - end + end, + event = "BufWinEnter" } use{ --view and search LSP symbols 'liuchengxu/vista.vim', config = function() require 'core.config.vista' - end + end, + event = "BufWinEnter" } use{ --file explorer 'kyazdani42/nvim-tree.lua', requires = {'kyazdani42/nvim-web-devicons'}, config = function() require 'core.config.nvim-tree' - end + end, + event = "BufWinEnter" } use{ --terminal intergration 'akinsho/nvim-toggleterm.lua', config = function() require 'core.config.nvim-toggleterm' - end + end, + event = "BufWinEnter" } use{ --NVIM Treesitter configurations and abstraction layer 'nvim-treesitter/nvim-treesitter', @@ -133,10 +141,12 @@ function(use) } use{ --auto completion 'hrsh7th/nvim-compe', + wants = "vim-vsnip", + event = "InsertCharPre", requires = { - {'hrsh7th/vim-vsnip',requires = { 'rafamadriz/friendly-snippets'}}, - {'hrsh7th/vim-vsnip-integ',after = 'vim-vsnip'}, - {'tzachar/compe-tabnine',run = "./install.sh"} + {'hrsh7th/vim-vsnip',requires = { 'rafamadriz/friendly-snippets'},wants = "friendly-snippets",event = "InsertCharPre"}, + {'hrsh7th/vim-vsnip-integ',after = 'vim-vsnip',event = "InsertCharPre"}, + {'tzachar/compe-tabnine',run = "./install.sh",event = "InsertCharPre"} }, config = function() require 'languages.config.nvim-compe' @@ -161,6 +171,7 @@ function(use) --config = function() --require'github-theme'.setup() --end + event = "BufRead" } use{ 'sainnhe/gruvbox-material', @@ -169,15 +180,21 @@ function(use) vim.g.gruvbox_material_background = 'medium' vim.g.gruvbox_material_palette = 'mix' vim.cmd("colorscheme gruvbox-material") - end + vim.cmd("hi LspDiagnosticsVirtualTextWarning guifg='yellow'") + vim.cmd("hi LspDiagnosticsVirtualTextError guifg='#db4b4b'") + vim.cmd("hi LspDiagnosticsVirtualTextInformation guifg='#0db9d7'") + vim.cmd("hi LspDiagnosticsVirtualTextHint guifg='#10B981'") + end, + event = "BufRead" + } use{ 'sainnhe/everforest', requires = { "sainnhe/sonokai", "Th3Whit3Wolf/space-nvim" - - } + }, + event = "BufRead" } -------------------------------- ----------NOTE:tools layer----------- @@ -195,7 +212,8 @@ function(use) }, config = function() require 'plugins.config.gitsigns' - end + end, + event = "BufRead" } use{ --highlight underline with your cursorword 'itchyny/vim-cursorword', @@ -208,14 +226,16 @@ function(use) as = 'hop', config = function() require 'plugins.config.hop' - end + end, + event = "BufRead" } use{ --highlight and search for todo comments "folke/todo-comments.nvim", requires = "nvim-lua/plenary.nvim", config = function() require 'plugins.config.todo-comments' - end + end, + event = "BufRead" } --[[ use{ -- add zen mode TODO: add it later "folke/zen-mode.nvim", @@ -225,6 +245,10 @@ function(use) require 'plugins.config.zen-mode' end } ]] + use{ --markdown preview plugins + "davidgranstrom/nvim-markdown-preview", + event = "BufRead" + } -------------------------------- end ) diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua new file mode 100644 index 0000000..af800a7 --- /dev/null +++ b/plugin/packer_compiled.lua @@ -0,0 +1,369 @@ +-- Automatically generated packer.nvim plugin loader code + +if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return +end + +vim.api.nvim_command('packadd packer.nvim') + +local no_errors, error_msg = pcall(function() + + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) end + end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end + + _G._packer = _G._packer or {} + _G._packer.profile_output = results +end + +time([[Luarocks path setup]], true) +local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end + +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end + +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s)) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end + +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + ["accelerated-jk"] = { + config = { "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" + }, + ["compe-tabnine"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" + }, + ["dashboard-nvim"] = { + config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" + }, + ["dial.nvim"] = { + config = { "\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" + }, + everforest = { + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { "\27LJ\2\2\3\0\0\2\0\f\0\0296\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\6\0'\1\b\0B\0\2\0016\0\0\0009\0\6\0'\1\t\0B\0\2\0016\0\0\0009\0\6\0'\1\n\0B\0\2\0016\0\0\0009\0\6\0'\1\v\0B\0\2\1K\0\1\0005hi LspDiagnosticsVirtualTextHint guifg='#10B981' Date: Tue, 27 Jul 2021 18:21:17 +0800 Subject: [PATCH 04/92] some update and common fix --- lua/core/init.lua | 22 +++++++++++----------- lua/languages/config/nvim-lspconfig.lua | 2 ++ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index b650378..d422dbc 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -110,7 +110,7 @@ function(use) require 'core.config.nvim-toggleterm' end, event = "BufWinEnter" - } + } use{ --NVIM Treesitter configurations and abstraction layer 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate', @@ -124,7 +124,7 @@ function(use) require 'core.config.nvim-treesitter' end } - + -------------------------------- ---------NOTE:language layer--------- use{ --language service protocol client @@ -138,7 +138,7 @@ function(use) config = function() require 'languages.config.nvim-lspconfig' end - } + } use{ --auto completion 'hrsh7th/nvim-compe', wants = "vim-vsnip", @@ -151,13 +151,13 @@ function(use) config = function() require 'languages.config.nvim-compe' end - } + } use{ --highlight and search for todo comments "b3nj5m1n/kommentary", config = function() require 'languages.config.kommentary' end - } + } --use{ --formatter TODO: Not use now, instead by lsp --'mhartington/formatter.nvim', --config = function() @@ -200,12 +200,12 @@ function(use) ----------NOTE:tools layer----------- -------------------------------- ----------NOTE:plugins layer--------- - use{ --add line indent + use{ --add line indent 'lukas-reineke/indent-blankline.nvim', config = function() require 'plugins.config.indent-blankline' end - } + } use{ --git plugin 'lewis6991/gitsigns.nvim', requires = {'nvim-lua/plenary.nvim', @@ -214,13 +214,13 @@ function(use) require 'plugins.config.gitsigns' end, event = "BufRead" - } + } use{ --highlight underline with your cursorword 'itchyny/vim-cursorword', --config = function() --require 'plugins.config.' --end - } + } use{ --EasyMotion-like plugin allowing you to jump anywhere 'phaazon/hop.nvim', as = 'hop', @@ -228,7 +228,7 @@ function(use) require 'plugins.config.hop' end, event = "BufRead" - } + } use{ --highlight and search for todo comments "folke/todo-comments.nvim", requires = "nvim-lua/plenary.nvim", @@ -236,7 +236,7 @@ function(use) require 'plugins.config.todo-comments' end, event = "BufRead" - } + } --[[ use{ -- add zen mode TODO: add it later "folke/zen-mode.nvim", cmd = "ZenMode", diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index e1052e3..a5a2cf0 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -17,6 +17,8 @@ buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()wr', 'lua vim.lsp.buf.remove_workspace_folder()', { noremap=true, silent=true }) buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', { noremap=true, silent=true }) buf_set_keymap('n', 'ld', 'lua vim.lsp.buf.type_definition()', { noremap=true, silent=true }) +buf_set_keymap('n', '', 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', { noremap=true, silent=true }) +buf_set_keymap('n', '', 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', { noremap=true, silent=true }) buf_set_keymap('n', 'lr', 'lua require(\'lspsaga.rename\').rename()', { noremap=true, silent=true }) buf_set_keymap('n', 'la', 'lua require(\'lspsaga.codeaction\').code_action()', { noremap=true, silent=true }) buf_set_keymap('v', 'la', 'lua require(\'lspsaga.codeaction\').range_code_action()', { noremap=true, silent=true }) From 407da53bd7023d15b4178cde810dfbdf0b1acc78 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 30 Jul 2021 14:10:09 +0800 Subject: [PATCH 05/92] format lua files and some update --- lua/core/config/accelerated-jk.lua | 4 +- lua/core/config/telescope.lua | 12 +- lua/core/init.lua | 517 ++++++++++++++++------------- lua/languages/config/formatter.lua | 7 +- lua/plugins/config/gitsigns.lua | 120 ++++--- 5 files changed, 369 insertions(+), 291 deletions(-) diff --git a/lua/core/config/accelerated-jk.lua b/lua/core/config/accelerated-jk.lua index 73b334a..c985ea8 100644 --- a/lua/core/config/accelerated-jk.lua +++ b/lua/core/config/accelerated-jk.lua @@ -1,2 +1,2 @@ -vim.api.nvim_set_keymap("n","j","(accelerated_jk_gj)",{silent=true}) -vim.api.nvim_set_keymap("n","k","(accelerated_jk_gk)",{silent=true}) +vim.api.nvim_set_keymap("n", "j", "(accelerated_jk_gj)", {silent = true}) +vim.api.nvim_set_keymap("n", "k", "(accelerated_jk_gk)", {silent = true}) diff --git a/lua/core/config/telescope.lua b/lua/core/config/telescope.lua index 84af0f7..f15c90e 100644 --- a/lua/core/config/telescope.lua +++ b/lua/core/config/telescope.lua @@ -1,4 +1,8 @@ -vim.api.nvim_set_keymap("n","ff",":Telescope find_files",{silent=true}) -vim.api.nvim_set_keymap("n","fg",":Telescope live_grep",{silent=true}) -vim.api.nvim_set_keymap("n","fb",":Telescope buffers",{silent=true}) -vim.api.nvim_set_keymap("n","fh",":Telescope help_tags",{silent=true}) +vim.api.nvim_set_keymap("n","ff","lua require\'telescope.builtin\'.find_files()",{silent=true}) +vim.api.nvim_set_keymap("n","fg","lua require\'telescope.builtin\'.live_grep()",{silent=true}) +vim.api.nvim_set_keymap("n","fb","lua require\'telescope.builtin\'.buffers()",{silent=true}) +vim.api.nvim_set_keymap("n","fh","lua require\'telescope.builtin\'.help_tags()",{silent=true}) +vim.api.nvim_set_keymap("n","fs","lua require\'telescope.builtin\'.grep_string()",{silent=true}) +vim.api.nvim_set_keymap("n","","lua require\'telescope.builtin\'.registers()>",{silent=true}) +vim.api.nvim_set_keymap("n","sb","lua require\'telescope.builtin\'.current_buffer_fuzzy_find()>",{silent=true}) + diff --git a/lua/core/init.lua b/lua/core/init.lua index d422dbc..29eebe9 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -1,243 +1,286 @@ -- start ModuleVim and install plugin packer - require('core.config.basic-configuration') require('core.config.packer') local packer = require("packer") local use = packer.use packer.reset() + -----------------------start to loading plugins-------------- -packer.startup( -function(use) - use 'wbthomason/packer.nvim' - -----------NOTE:core layer----------- - use{ --Icon sets for neovim plugins and settings - 'yamatsum/nvim-nonicons', - requires = {'kyazdani42/nvim-web-devicons'} - } - use{ --vim plugin to accelerate up-down moving - 'rhysd/accelerated-jk', - config= function() - require'core.config.accelerated-jk' - end - } - use{ --a minimalist autopairs - 'windwp/nvim-autopairs', - config = function() - require'nvim-autopairs'.setup() - end - } - use{ --extended increment/decrement - 'monaqa/dial.nvim', - config = function() - end - } - use{ --a smooth scrolling neovim plugin written in lua - 'karb94/neoscroll.nvim', - config = function() - require 'neoscroll'.setup() - end - } - use{ --provide a single command that deletes the current buffer - 'mhinz/vim-sayonara', - config = function() - require 'core.config.vim-sayonara' - end, - event = "BufWinEnter" - } - use{ --provide a directory root - 'airblade/vim-rooter', - config = function() - vim.g.rooter_silent_chdir = 1 - end - } - --use{ --a surround text object plugin TODO: open this plugin later - --'blackcauldron7/surround.nvim', - --config = function() - --require'surround'.setup() - --end - --} - use{--highly extendable fuzzy finder over lists - 'nvim-telescope/telescope.nvim', - requires = {{'nvim-lua/popup.nvim'},{'nvim-lua/plenary.nvim'}}, - config = function() - require 'core.config.telescope' - end, - event = "BufWinEnter" - } - use{ --a minimalist dashboard for neovim - 'glepnir/dashboard-nvim', - config = function() - require 'core.config.dashboard-vim' - end, - event = "BufWinEnter" - } - use{ --tabline plugin - 'romgrk/barbar.nvim', - requires = {'kyazdani42/nvim-web-devicons'}, - config = function() - require 'core.config.barbar' - end, - event = "BufWinEnter" - } - use{ --light-weight and super fast stataus line plugin - 'glepnir/galaxyline.nvim', - branch = 'main', - requires = {'kyazdani42/nvim-web-devicons'}, - config = function() - require 'core.config.galaxyline' - end, - event = "BufWinEnter" - } - use{ --view and search LSP symbols - 'liuchengxu/vista.vim', - config = function() - require 'core.config.vista' - end, - event = "BufWinEnter" - } - use{ --file explorer - 'kyazdani42/nvim-tree.lua', - requires = {'kyazdani42/nvim-web-devicons'}, - config = function() - require 'core.config.nvim-tree' - end, - event = "BufWinEnter" - } - use{ --terminal intergration - 'akinsho/nvim-toggleterm.lua', - config = function() - require 'core.config.nvim-toggleterm' - end, - event = "BufWinEnter" - } - use{ --NVIM Treesitter configurations and abstraction layer - 'nvim-treesitter/nvim-treesitter', - run = ':TSUpdate', - requires = { - {'nvim-treesitter/nvim-treesitter-textobjects',after = 'nvim-treesitter'}, - {'p00f/nvim-ts-rainbow',after = 'nvim-treesitter'}, - {'lewis6991/spellsitter.nvim',after = 'nvim-treesitter'}, - {'windwp/nvim-ts-autotag',after = 'nvim-treesitter'} - }, - config = function() - require 'core.config.nvim-treesitter' - end - } +packer.startup(function(use) + use 'wbthomason/packer.nvim' - -------------------------------- - ---------NOTE:language layer--------- - use{ --language service protocol client - 'neovim/nvim-lspconfig', - requires = { - {'kabouzeid/nvim-lspinstall',after = 'nvim-lspconfig'}, - {'glepnir/lspsaga.nvim',after = 'nvim-lspconfig'}, - -- TODO: Not need this plugin - -- {'folke/lsp-colors.nvim',after = 'nvim-lspconfig'}, + -----------NOTE:core layer----------- + use { + --Icon sets for neovim plugins and settings + 'yamatsum/nvim-nonicons', + requires = {'kyazdani42/nvim-web-devicons'} + } + use { + --vim plugin to accelerate up-down moving + 'rhysd/accelerated-jk', + config = function() + require 'core.config.accelerated-jk' + end + } + use { + --a minimalist autopairs + 'windwp/nvim-autopairs', + config = function() + require 'nvim-autopairs'.setup() + end + } + use { + --extended increment/decrement + 'monaqa/dial.nvim', + config = function() + end + } + use { + --a smooth scrolling neovim plugin written in lua + 'karb94/neoscroll.nvim', + config = function() + require 'neoscroll'.setup() + end + } + use { + --provide a single command that deletes the current buffer + 'mhinz/vim-sayonara', + config = function() + require 'core.config.vim-sayonara' + end, + event = "BufWinEnter" + } + use { + --provide a directory root + 'airblade/vim-rooter', + config = function() + vim.g.rooter_silent_chdir = 1 + end + } + + --use{ --a surround text object plugin TODO: open this plugin later + --'blackcauldron7/surround.nvim', + --config = function() + --require'surround'.setup() + --end + --} + use { + --highly extendable fuzzy finder over lists + 'nvim-telescope/telescope.nvim', + requires = {{'nvim-lua/popup.nvim'}, {'nvim-lua/plenary.nvim'}}, + config = function() + require 'core.config.telescope' + end, + event = "BufWinEnter" + } + use { + --a minimalist dashboard for neovim + 'glepnir/dashboard-nvim', + config = function() + require 'core.config.dashboard-vim' + end, + event = "BufWinEnter" + } + use { + --tabline plugin + 'romgrk/barbar.nvim', + requires = {'kyazdani42/nvim-web-devicons'}, + config = function() + require 'core.config.barbar' + end, + event = "BufWinEnter" + } + use { + --light-weight and super fast stataus line plugin + 'glepnir/galaxyline.nvim', + branch = 'main', + requires = {'kyazdani42/nvim-web-devicons'}, + config = function() + require 'core.config.galaxyline' + end, + event = "BufWinEnter" + } + use { + --view and search LSP symbols + 'liuchengxu/vista.vim', + config = function() + require 'core.config.vista' + end, + event = "BufWinEnter" + } + use { + --file explorer + 'kyazdani42/nvim-tree.lua', + requires = {'kyazdani42/nvim-web-devicons'}, + config = function() + require 'core.config.nvim-tree' + end, + event = "BufWinEnter" + } + use { + --terminal intergration + 'akinsho/nvim-toggleterm.lua', + config = function() + require 'core.config.nvim-toggleterm' + end, + event = "BufWinEnter" + } + use { + --NVIM Treesitter configurations and abstraction layer + 'nvim-treesitter/nvim-treesitter', + run = ':TSUpdate', + requires = { + { + 'nvim-treesitter/nvim-treesitter-textobjects', + after = 'nvim-treesitter' + }, + {'p00f/nvim-ts-rainbow', after = 'nvim-treesitter'}, + {'lewis6991/spellsitter.nvim', after = 'nvim-treesitter'}, + {'windwp/nvim-ts-autotag', after = 'nvim-treesitter'} }, - config = function() - require 'languages.config.nvim-lspconfig' - end - } - use{ --auto completion - 'hrsh7th/nvim-compe', - wants = "vim-vsnip", - event = "InsertCharPre", - requires = { - {'hrsh7th/vim-vsnip',requires = { 'rafamadriz/friendly-snippets'},wants = "friendly-snippets",event = "InsertCharPre"}, - {'hrsh7th/vim-vsnip-integ',after = 'vim-vsnip',event = "InsertCharPre"}, - {'tzachar/compe-tabnine',run = "./install.sh",event = "InsertCharPre"} + config = function() + require 'core.config.nvim-treesitter' + end + } + + -------------------------------- + ---------NOTE:language layer--------- + use { + --language service protocol client + 'neovim/nvim-lspconfig', + requires = { + {'kabouzeid/nvim-lspinstall', after = 'nvim-lspconfig'}, + {'glepnir/lspsaga.nvim', after = 'nvim-lspconfig'}, + + -- TODO: Not need this plugin + -- {'folke/lsp-colors.nvim',after = 'nvim-lspconfig'}, + }, + config = function() + require 'languages.config.nvim-lspconfig' + end + } + use { + --auto completion + 'hrsh7th/nvim-compe', + wants = "vim-vsnip", + event = "InsertCharPre", + requires = { + { + 'hrsh7th/vim-vsnip', + requires = {'rafamadriz/friendly-snippets'}, + wants = "friendly-snippets", + event = "InsertCharPre" + }, + { + 'hrsh7th/vim-vsnip-integ', + after = 'vim-vsnip', + event = "InsertCharPre" + }, + { + 'tzachar/compe-tabnine', + run = "./install.sh", + event = "InsertCharPre" + } }, - config = function() - require 'languages.config.nvim-compe' - end - } - use{ --highlight and search for todo comments - "b3nj5m1n/kommentary", - config = function() - require 'languages.config.kommentary' - end - } - --use{ --formatter TODO: Not use now, instead by lsp - --'mhartington/formatter.nvim', - --config = function() - --require'languages.config.formatter' - --end - --} - -------------------------------- - ----------NOTE:style layer----------- - use{ - 'projekt0n/github-nvim-theme', - --config = function() - --require'github-theme'.setup() - --end - event = "BufRead" - } - use{ - 'sainnhe/gruvbox-material', - config = function() - -- vim.g.gruvbox_material_transparent_background = 1 - vim.g.gruvbox_material_background = 'medium' - vim.g.gruvbox_material_palette = 'mix' - vim.cmd("colorscheme gruvbox-material") - vim.cmd("hi LspDiagnosticsVirtualTextWarning guifg='yellow'") - vim.cmd("hi LspDiagnosticsVirtualTextError guifg='#db4b4b'") - vim.cmd("hi LspDiagnosticsVirtualTextInformation guifg='#0db9d7'") - vim.cmd("hi LspDiagnosticsVirtualTextHint guifg='#10B981'") - end, - event = "BufRead" + config = function() + require 'languages.config.nvim-compe' + end + } + use { + --highlight and search for todo comments + "b3nj5m1n/kommentary", + config = function() + require 'languages.config.kommentary' + end + } + + --use{ --formatter TODO: Not use now, instead by lsp + --'mhartington/formatter.nvim', + --config = function() + --require'languages.config.formatter' + --end + --} + -------------------------------- + ----------NOTE:style layer----------- + use { + 'projekt0n/github-nvim-theme', - } - use{ - 'sainnhe/everforest', - requires = { - "sainnhe/sonokai", - "Th3Whit3Wolf/space-nvim" - }, - event = "BufRead" - } - -------------------------------- - ----------NOTE:tools layer----------- - -------------------------------- - ----------NOTE:plugins layer--------- - use{ --add line indent - 'lukas-reineke/indent-blankline.nvim', - config = function() - require 'plugins.config.indent-blankline' - end - } - use{ --git plugin - 'lewis6991/gitsigns.nvim', - requires = {'nvim-lua/plenary.nvim', - }, - config = function() - require 'plugins.config.gitsigns' - end, - event = "BufRead" - } - use{ --highlight underline with your cursorword - 'itchyny/vim-cursorword', - --config = function() - --require 'plugins.config.' - --end - } - use{ --EasyMotion-like plugin allowing you to jump anywhere - 'phaazon/hop.nvim', - as = 'hop', - config = function() - require 'plugins.config.hop' - end, - event = "BufRead" - } - use{ --highlight and search for todo comments - "folke/todo-comments.nvim", - requires = "nvim-lua/plenary.nvim", - config = function() - require 'plugins.config.todo-comments' - end, - event = "BufRead" - } - --[[ use{ -- add zen mode TODO: add it later + --config = function() + --require'github-theme'.setup() + --end + event = "BufRead" + } + use { + 'sainnhe/gruvbox-material', + config = function() + -- vim.g.gruvbox_material_transparent_background = 1 + vim.g.gruvbox_material_background = 'medium' + vim.g.gruvbox_material_palette = 'mix' + vim.cmd("colorscheme gruvbox-material") + vim.cmd("hi LspDiagnosticsVirtualTextWarning guifg='yellow'") + vim.cmd("hi LspDiagnosticsVirtualTextError guifg='#db4b4b'") + vim.cmd("hi LspDiagnosticsVirtualTextInformation guifg='#0db9d7'") + vim.cmd("hi LspDiagnosticsVirtualTextHint guifg='#10B981'") + end, + event = "BufRead" + } + use { + 'sainnhe/everforest', + requires = {"sainnhe/sonokai", "Th3Whit3Wolf/space-nvim"}, + event = "BufRead" + } + + -------------------------------- + ----------NOTE:tools layer----------- + -------------------------------- + ----------NOTE:plugins layer--------- + use { + --add line indent + 'lukas-reineke/indent-blankline.nvim', + config = function() + require 'plugins.config.indent-blankline' + end + } + use { + --git plugin + 'lewis6991/gitsigns.nvim', + requires = { + 'nvim-lua/plenary.nvim', + }, + config = function() + require 'plugins.config.gitsigns' + end, + event = "BufRead" + } + use { + --highlight underline with your cursorword + 'itchyny/vim-cursorword', + + --config = function() + --require 'plugins.config.' + --end + } + use { + --EasyMotion-like plugin allowing you to jump anywhere + 'phaazon/hop.nvim', + as = 'hop', + config = function() + require 'plugins.config.hop' + end, + event = "BufRead" + } + use { + --highlight and search for todo comments + "folke/todo-comments.nvim", + requires = "nvim-lua/plenary.nvim", + config = function() + require 'plugins.config.todo-comments' + end, + event = "BufRead" + } + + --[[ use{ -- add zen mode TODO: add it later "folke/zen-mode.nvim", cmd = "ZenMode", event = "BufRead", @@ -245,13 +288,15 @@ function(use) require 'plugins.config.zen-mode' end } ]] - use{ --markdown preview plugins - "davidgranstrom/nvim-markdown-preview", - event = "BufRead" - } - -------------------------------- -end -) -require'packer'.install() + use { + --markdown preview plugins + "davidgranstrom/nvim-markdown-preview", + event = "BufRead" + } + + -------------------------------- +end) +require 'packer'.install() + ------------------------------------------------------------- diff --git a/lua/languages/config/formatter.lua b/lua/languages/config/formatter.lua index bdeb2c5..a62cf50 100644 --- a/lua/languages/config/formatter.lua +++ b/lua/languages/config/formatter.lua @@ -1,6 +1,9 @@ -vim.api.nvim_exec([[ +vim.api.nvim_exec( + [[ augroup FormatAutogroup autocmd! autocmd BufWritePost *.js,*.rs,*.lua FormatWrite augroup END -]], true) +]], + true +) diff --git a/lua/plugins/config/gitsigns.lua b/lua/plugins/config/gitsigns.lua index d106592..41bce45 100644 --- a/lua/plugins/config/gitsigns.lua +++ b/lua/plugins/config/gitsigns.lua @@ -1,55 +1,81 @@ - --vim.api.nvim_set_keymap('n', 'gb', "GitBlameToggle", {}) +------------------------------------------------------------------------------ + +require 'gitsigns'.setup({ + signs = { + add = { + hl = 'GitSignsAdd', + text = '│', + numhl = 'GitSignsAddNr', + linehl = 'GitSignsAddLn' + }, + change = { + hl = 'GitSignsChange', + text = '│', + numhl = 'GitSignsChangeNr', + linehl = 'GitSignsChangeLn' + }, + delete = { + hl = 'GitSignsDelete', + text = '_', + numhl = 'GitSignsDeleteNr', + linehl = 'GitSignsDeleteLn' + }, + topdelete = { + hl = 'GitSignsDelete', + text = '‾', + numhl = 'GitSignsDeleteNr', + linehl = 'GitSignsDeleteLn' + }, + changedelete = { + hl = 'GitSignsChange', + text = '~', + numhl = 'GitSignsChangeNr', + linehl = 'GitSignsChangeLn' + }, + }, + numhl = false, + linehl = false, + keymaps = { + -- Default keymap options + noremap = true, + ['n ]c'] = { + expr = true, + "&diff ? ']c' : 'lua require\"gitsigns.actions\".next_hunk()'" + }, + ['n [c'] = { + expr = true, + "&diff ? '[c' : 'lua require\"gitsigns.actions\".prev_hunk()'" + }, ------------------------------------------------------------------------------- + ['n gs'] = 'lua require"gitsigns".stage_hunk()', + ['v gs'] = 'lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})', + ['n gu'] = 'lua require"gitsigns".undo_stage_hunk()', + ['n gr'] = 'lua require"gitsigns".reset_hunk()', + ['v gr'] = 'lua require"gitsigns".reset_hunk({vim.fn.line("."), vim.fn.line("v")})', + ['n gR'] = 'lua require"gitsigns".reset_buffer()', + ['n gp'] = 'lua require"gitsigns".preview_hunk()', + ['n gb'] = 'lua require"gitsigns".blame_line(true)', + -- Text objects + ['o ih'] = ':lua require"gitsigns.actions".select_hunk()', + ['x ih'] = ':lua require"gitsigns.actions".select_hunk()' + }, + watch_index = {interval = 1000, follow_files = true}, + current_line_blame = false, + current_line_blame_delay = 1000, + current_line_blame_position = 'eol', + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, + -- Use default + word_diff = false, + use_decoration_api = true, + use_internal_diff = true -require'gitsigns'.setup({ - signs = { - add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'}, - change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, - delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, - topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, - changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, - }, - numhl = false, - linehl = false, - keymaps = { - -- Default keymap options - noremap = true, - - ['n ]c'] = { expr = true, "&diff ? ']c' : 'lua require\"gitsigns.actions\".next_hunk()'"}, - ['n [c'] = { expr = true, "&diff ? '[c' : 'lua require\"gitsigns.actions\".prev_hunk()'"}, - - ['n gs'] = 'lua require"gitsigns".stage_hunk()', - ['v gs'] = 'lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})', - ['n gu'] = 'lua require"gitsigns".undo_stage_hunk()', - ['n gr'] = 'lua require"gitsigns".reset_hunk()', - ['v gr'] = 'lua require"gitsigns".reset_hunk({vim.fn.line("."), vim.fn.line("v")})', - ['n gR'] = 'lua require"gitsigns".reset_buffer()', - ['n gp'] = 'lua require"gitsigns".preview_hunk()', - ['n gb'] = 'lua require"gitsigns".blame_line(true)', - - -- Text objects - ['o ih'] = ':lua require"gitsigns.actions".select_hunk()', - ['x ih'] = ':lua require"gitsigns.actions".select_hunk()' - }, - watch_index = { - interval = 1000, - follow_files = true - }, - current_line_blame = false, - current_line_blame_delay = 1000, - current_line_blame_position = 'eol', - sign_priority = 6, - update_debounce = 100, - status_formatter = nil, -- Use default - word_diff = false, - use_decoration_api = true, - use_internal_diff = true -- If luajit is present -} -) + -- If luajit is present +}) From abd5ac0dcce80cbb9708be8e5671e656a60b1e4e Mon Sep 17 00:00:00 2001 From: JryChn Date: Thu, 5 Aug 2021 19:24:15 +0800 Subject: [PATCH 06/92] add format shell script --- lua/core/config/barbar.lua | 42 +- lua/core/config/basic-configuration.lua | 221 +++---- lua/core/config/dashboard-vim.lua | 51 +- lua/core/config/galaxyline.lua | 336 +++++----- lua/core/config/nvim-toggleterm.lua | 72 ++- lua/core/config/nvim-tree.lua | 115 ++-- lua/core/config/nvim-treesitter.lua | 41 +- lua/core/config/packer.lua | 23 +- lua/core/config/telescope.lua | 49 +- lua/core/config/vim-sayonara.lua | 2 +- lua/core/config/vista.lua | 30 +- lua/core/init.lua | 15 +- lua/languages/config/kommentary.lua | 5 - lua/languages/config/nvim-compe.lua | 127 ++-- lua/languages/config/nvim-lspconfig.lua | 269 +++++--- lua/languages/init.lua | 1 + lua/plugins/config/hop.lua | 28 +- lua/plugins/config/todo-comments.lua | 137 ++-- lua/plugins/init.lua | 1 + lua/style/init.lua | 1 + lua/tools/init.lua | 1 + luafmt.sh | 33 + plugin/packer_compiled.lua | 811 ++++++++++++++---------- 23 files changed, 1366 insertions(+), 1045 deletions(-) create mode 100755 luafmt.sh diff --git a/lua/core/config/barbar.lua b/lua/core/config/barbar.lua index 6926341..f566abd 100644 --- a/lua/core/config/barbar.lua +++ b/lua/core/config/barbar.lua @@ -1,16 +1,26 @@ -vim.api.nvim_set_keymap("n","\\,",":BufferPrevious",{silent=true}) -vim.api.nvim_set_keymap("n","\\.",":BufferNext",{silent=true}) -vim.api.nvim_set_keymap("n","\\1",":BufferGoto 1",{silent=true}) -vim.api.nvim_set_keymap("n","\\2",":BufferGoto 2",{silent=true}) -vim.api.nvim_set_keymap("n","\\3",":BufferGoto 3",{silent=true}) -vim.api.nvim_set_keymap("n","\\4",":BufferGoto 4",{silent=true}) -vim.api.nvim_set_keymap("n","\\5",":BufferGoto 5",{silent=true}) -vim.api.nvim_set_keymap("n","\\6",":BufferGoto 6",{silent=true}) -vim.api.nvim_set_keymap("n","\\7",":BufferGoto 7",{silent=true}) -vim.api.nvim_set_keymap("n","\\8",":BufferGoto 8",{silent=true}) -vim.api.nvim_set_keymap("n","\\9",":BufferGoto 9",{silent=true}) -vim.api.nvim_set_keymap("n","\\0",":BufferLast",{silent=true}) -vim.api.nvim_set_keymap("n","\\c",":BufferClose",{silent=true}) -vim.api.nvim_set_keymap("n","\\s",":BufferPick",{silent=true}) -vim.api.nvim_set_keymap("n","\\b",":BufferOrderByLanguage",{silent=true}) -vim.api.nvim_set_keymap("n","\\d",":BufferOrderByDirectory",{silent=true}) +vim.api.nvim_set_keymap("n", "\\,", ":BufferPrevious", {silent = true}) +vim.api.nvim_set_keymap("n", "\\.", ":BufferNext", {silent = true}) +vim.api.nvim_set_keymap("n", "\\1", ":BufferGoto 1", {silent = true}) +vim.api.nvim_set_keymap("n", "\\2", ":BufferGoto 2", {silent = true}) +vim.api.nvim_set_keymap("n", "\\3", ":BufferGoto 3", {silent = true}) +vim.api.nvim_set_keymap("n", "\\4", ":BufferGoto 4", {silent = true}) +vim.api.nvim_set_keymap("n", "\\5", ":BufferGoto 5", {silent = true}) +vim.api.nvim_set_keymap("n", "\\6", ":BufferGoto 6", {silent = true}) +vim.api.nvim_set_keymap("n", "\\7", ":BufferGoto 7", {silent = true}) +vim.api.nvim_set_keymap("n", "\\8", ":BufferGoto 8", {silent = true}) +vim.api.nvim_set_keymap("n", "\\9", ":BufferGoto 9", {silent = true}) +vim.api.nvim_set_keymap("n", "\\0", ":BufferLast", {silent = true}) +vim.api.nvim_set_keymap("n", "\\c", ":BufferClose", {silent = true}) +vim.api.nvim_set_keymap("n", "\\s", ":BufferPick", {silent = true}) +vim.api.nvim_set_keymap( + "n", + "\\b", + ":BufferOrderByLanguage", + {silent = true} +) +vim.api.nvim_set_keymap( + "n", + "\\d", + ":BufferOrderByDirectory", + {silent = true} +) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index 2e8d34b..cba0035 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -1,123 +1,124 @@ -- basic configuration like some original vim options -- -- --------------key mapping------------------ -vim.api.nvim_set_keymap("n","",":wincmd w",{silent = true}) -vim.api.nvim_set_keymap("i","jk","",{silent=true}) -vim.api.nvim_set_keymap("n","",":w!",{noremap=true}) -vim.api.nvim_set_keymap("i","",":w!",{noremap=true}) +vim.api.nvim_set_keymap("n", "", ":wincmd w", {silent = true}) +vim.api.nvim_set_keymap("i", "jk", "", {silent = true}) +vim.api.nvim_set_keymap("n", "", ":w!", {noremap = true}) +vim.api.nvim_set_keymap("i", "", ":w!", {noremap = true}) vim.cmd([[ nnoremap :resize -2 nnoremap :resize +2 nnoremap :vertical resize -2 nnoremap :vertical resize +2 ]]) + -- --------------configuration------------------ global_local = { - termguicolors = true, - mouse = "nv", - errorbells = true, - visualbell = true, - hidden = true, - fileformats = "unix,mac,dos", - magic = true, - virtualedit = "block", - encoding = "utf-8", - viewoptions = "folds,cursor,curdir,slash,unix", - sessionoptions = "curdir,help,tabpages,winsize", - clipboard = "unnamedplus", - wildignorecase = true, - wildignore = ".git,.hg,.svn,*.pyc,*.o,*.out,*.jpg,*.jpeg,*.png,*.gif,*.zip,**/tmp/**,*.DS_Store,**/node_modules/**,**/bower_modules/**", - backup = false, - writebackup = false, - swapfile = false, - history = 2000, - shada = "!,'300,<50,@100,s10,h", - backupskip = "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*,*/shm/*,/private/var/*,.vault.vim", - smarttab = true, - shiftround = true, - timeout = true, - ttimeout = true, - timeoutlen = 500, - ttimeoutlen = 10, - updatetime = 100, - redrawtime = 1500, - ignorecase = true, - smartcase = true, - infercase = true, - incsearch = true, - wrapscan = true, - complete = ".,w,b,k", - inccommand = "nosplit", - grepformat = "%f:%l:%c:%m", - grepprg = "rg --hidden --vimgrep --smart-case --", - breakat = [[\ \ ;:,!?]], - startofline = false, - whichwrap = "h,l,<,>,[,],~", - splitbelow = true, - splitright = true, - switchbuf = "useopen", - backspace = "indent,eol,start", - diffopt = "filler,iwhite,internal,algorithm:patience", - completeopt = "menu,menuone,noselect", - jumpoptions = "stack", - showmode = false, - shortmess = "aoOTIcF", - scrolloff = 5, - sidescrolloff = 5, - foldlevelstart = 99, - ruler = false, - list = true, - showtabline = 2, - winwidth = 30, - winminwidth = 10, - pumheight = 15, - helpheight = 12, - previewheight = 12, - showcmd = false, - cmdheight = 2, - cmdwinheight = 5, - equalalways = false, - laststatus = 2, - display = "lastline", - showbreak = "↳ ", - listchars = "tab:»·,nbsp:+,trail:·,extends:→,precedes:←", - pumblend = 10, - winblend = 10, - spell = true, - spelllang = "en_us,cjk", - } - buffer={ - autoread = true, - undofile = true, - synmaxcol = 2500, - formatoptions = "1jcroql", - textwidth = 80, - expandtab = true, - autoindent = true, - tabstop = 4, - shiftwidth = 4, - softtabstop = -1, - breakindentopt = "shift:2,min:20", - wrap = false, - linebreak = true, - cursorcolumn = true, - cursorline = true, - number = true, - relativenumber = true, - foldenable = true, - signcolumn = "yes", - conceallevel = 2, - concealcursor = "niv" - } - for name, value in pairs(global_local) do - vim.o[name] = value - end + termguicolors = true, + mouse = "nv", + errorbells = true, + visualbell = true, + hidden = true, + fileformats = "unix,mac,dos", + magic = true, + virtualedit = "block", + encoding = "utf-8", + viewoptions = "folds,cursor,curdir,slash,unix", + sessionoptions = "curdir,help,tabpages,winsize", + clipboard = "unnamedplus", + wildignorecase = true, + wildignore = ".git,.hg,.svn,*.pyc,*.o,*.out,*.jpg,*.jpeg,*.png,*.gif,*.zip,**/tmp/**,*.DS_Store,**/node_modules/**,**/bower_modules/**", + backup = false, + writebackup = false, + swapfile = false, + history = 2000, + shada = "!,'300,<50,@100,s10,h", + backupskip = "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*,*/shm/*,/private/var/*,.vault.vim", + smarttab = true, + shiftround = true, + timeout = true, + ttimeout = true, + timeoutlen = 500, + ttimeoutlen = 10, + updatetime = 100, + redrawtime = 1500, + ignorecase = true, + smartcase = true, + infercase = true, + incsearch = true, + wrapscan = true, + complete = ".,w,b,k", + inccommand = "nosplit", + grepformat = "%f:%l:%c:%m", + grepprg = "rg --hidden --vimgrep --smart-case --", + breakat = [[\ \ ;:,!?]], + startofline = false, + whichwrap = "h,l,<,>,[,],~", + splitbelow = true, + splitright = true, + switchbuf = "useopen", + backspace = "indent,eol,start", + diffopt = "filler,iwhite,internal,algorithm:patience", + completeopt = "menu,menuone,noselect", + jumpoptions = "stack", + showmode = false, + shortmess = "aoOTIcF", + scrolloff = 5, + sidescrolloff = 5, + foldlevelstart = 99, + ruler = false, + list = true, + showtabline = 2, + winwidth = 30, + winminwidth = 10, + pumheight = 15, + helpheight = 12, + previewheight = 12, + showcmd = false, + cmdheight = 2, + cmdwinheight = 5, + equalalways = false, + laststatus = 2, + display = "lastline", + showbreak = "↳ ", + listchars = "tab:»·,nbsp:+,trail:·,extends:→,precedes:←", + pumblend = 10, + winblend = 10, + spell = true, + spelllang = "en_us,cjk", +} +buffer = { + autoread = true, + undofile = true, + synmaxcol = 2500, + formatoptions = "1jcroql", + textwidth = 80, + expandtab = true, + autoindent = true, + tabstop = 4, + shiftwidth = 4, + softtabstop = -1, + breakindentopt = "shift:2,min:20", + wrap = false, + linebreak = true, + cursorcolumn = true, + cursorline = true, + number = true, + relativenumber = true, + foldenable = true, + signcolumn = "yes", + conceallevel = 2, + concealcursor = "niv" +} +for name, value in pairs(global_local) do + vim.o[name] = value +end - for name, value in pairs(buffer) do - if value == true or value == false then - vim.api.nvim_command("set " .. name) - else - vim.api.nvim_command("set " .. name .. "=" .. value) - end - end +for name, value in pairs(buffer) do + if value == true or value == false then + vim.api.nvim_command("set " .. name) + else + vim.api.nvim_command("set " .. name .. "=" .. value) + end +end diff --git a/lua/core/config/dashboard-vim.lua b/lua/core/config/dashboard-vim.lua index 110519c..1b43ec5 100644 --- a/lua/core/config/dashboard-vim.lua +++ b/lua/core/config/dashboard-vim.lua @@ -1,41 +1,32 @@ -vim.api.nvim_set_keymap("n","aa",":Dashboard",{silent=true}) - - - - +vim.api.nvim_set_keymap("n", "aa", ":Dashboard", {silent = true}) ----------------------------------------------------------------------------- - - - vim.g.dashboard_disable_at_vimenter = 0 vim.g.dashboard_footer_icon = "" vim.g.dashboard_default_executive = "telescope" vim.g.dashboard_preview_file_width = 80 vim.g.dashboard_custom_header = { - - ' ╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭╮╱╱╭╮ ', - ' ╰╮╭╮┣╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╰╮╭╯┃ ', - ' ╱┃┃┃┣╋━━┳━┳━━┳╮╭┳╮╱╭╮╰╮┃┃╭╋╮╭╮ ', - ' ╱┃┃┃┣┫┃━┫╭┫┃━┫╰╯┃┃╱┃┃╱┃╰╯┣┫╰╯┃ ', - ' ╭╯╰╯┃┃┃━┫┃┃┃━┫┃┃┃╰━╯┃╱╰╮╭┫┃┃┃┃ ', - ' ╰━━━┫┣━━┻╯╰━━┻┻┻┻━╮╭╯╱╱╰╯╰┻┻┻╯ ', - ' ╱╱╱╭╯┃╱╱╱╱╱╱╱╱╱╱╭━╯┃ ', - ' ╱╱╱╰━╯╱╱╱╱╱╱╱╱╱╱╰━━╯ ' + ' ╭━━━╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭╮╱╱╭╮ ', + ' ╰╮╭╮┣╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╰╮╭╯┃ ', + ' ╱┃┃┃┣╋━━┳━┳━━┳╮╭┳╮╱╭╮╰╮┃┃╭╋╮╭╮ ', + ' ╱┃┃┃┣┫┃━┫╭┫┃━┫╰╯┃┃╱┃┃╱┃╰╯┣┫╰╯┃ ', + ' ╭╯╰╯┃┃┃━┫┃┃┃━┫┃┃┃╰━╯┃╱╰╮╭┫┃┃┃┃ ', + ' ╰━━━┫┣━━┻╯╰━━┻┻┻┻━╮╭╯╱╱╰╯╰┻┻┻╯ ', + ' ╱╱╱╭╯┃╱╱╱╱╱╱╱╱╱╱╭━╯┃ ', + ' ╱╱╱╰━╯╱╱╱╱╱╱╱╱╱╱╰━━╯ ' } vim.g.dashboard_custom_section = { - new_file = { - description = {" New File "}, - command = "DashboardNewFile" - }, - find_history = { - description = {" Recently opened files "}, - command = "DashboardFindHistory" - }, - find_file = { - description = {" Find File "}, - command = "DashboardFindFile" - } - + new_file = { + description = {" New File "}, + command = "DashboardNewFile" + }, + find_history = { + description = {" Recently opened files "}, + command = "DashboardFindHistory" + }, + find_file = { + description = {" Find File "}, + command = "DashboardFindFile" + } } diff --git a/lua/core/config/galaxyline.lua b/lua/core/config/galaxyline.lua index 9bfd972..a17d1a3 100644 --- a/lua/core/config/galaxyline.lua +++ b/lua/core/config/galaxyline.lua @@ -1,231 +1,241 @@ - local gl = require("galaxyline") local gls = gl.section -gl.short_line_list = {"NvimTree","Vista","toggleterm"} +gl.short_line_list = {"NvimTree", "Vista", "toggleterm"} local colors = { - bg = "#1e222a", - line_bg = "#1e222a", - fg = "#D8DEE9", - green = "#BBE67E", - orange = "#FF8800", - red = "#DF8890", - lightbg = "#282c34", - nord = "#81A1C1", - greenYel = "#EBCB8B" + bg = "#1e222a", + line_bg = "#1e222a", + fg = "#D8DEE9", + green = "#BBE67E", + orange = "#FF8800", + red = "#DF8890", + lightbg = "#282c34", + nord = "#81A1C1", + greenYel = "#EBCB8B" } gls.left[1] = { - leftRounded = { - provider = function() - return "" - end, - highlight = {colors.nord, colors.bg} - } + leftRounded = { + provider = function() + return "" + end, + highlight = {colors.nord, colors.bg} + } } gls.left[2] = { - statusIcon = { - provider = function() - return "  " - end, - highlight = {colors.bg, colors.nord}, - separator = " ", - separator_highlight = {colors.lightbg, colors.lightbg} - } + statusIcon = { + provider = function() + return "  " + end, + highlight = {colors.bg, colors.nord}, + separator = " ", + separator_highlight = {colors.lightbg, colors.lightbg} + } } gls.left[3] = { - FileIcon = { - provider = "FileIcon", - condition = buffer_not_empty, - highlight = {require("galaxyline.provider_fileinfo").get_file_icon_color, colors.lightbg} - } + FileIcon = { + provider = "FileIcon", + condition = buffer_not_empty, + highlight = { + require("galaxyline.provider_fileinfo").get_file_icon_color, + colors.lightbg + } + } } gls.left[4] = { - FileName = { - provider = {"FileName", "FileSize"}, - condition = buffer_not_empty, - highlight = {colors.fg, colors.lightbg} - } + FileName = { + provider = {"FileName", "FileSize"}, + condition = buffer_not_empty, + highlight = {colors.fg, colors.lightbg} + } } gls.left[5] = { - teech = { - provider = function() - return "" - end, - separator = " ", - highlight = {colors.lightbg, colors.bg} - } + teech = { + provider = function() + return "" + end, + separator = " ", + highlight = {colors.lightbg, colors.bg} + } } local checkwidth = function() - local squeeze_width = vim.fn.winwidth(0) / 2 - if squeeze_width > 40 then - return true - end - return false + local squeeze_width = vim.fn.winwidth(0) / 2 + if squeeze_width > 40 then + return true + end + return false end gls.left[6] = { - DiffAdd = { - provider = "DiffAdd", - condition = checkwidth, - icon = "  ", - highlight = {colors.greenYel, colors.line_bg} - } + DiffAdd = { + provider = "DiffAdd", + condition = checkwidth, + icon = "  ", + highlight = {colors.greenYel, colors.line_bg} + } } gls.left[7] = { - DiffModified = { - provider = "DiffModified", - condition = checkwidth, - icon = " ", - highlight = {colors.orange, colors.line_bg} - } + DiffModified = { + provider = "DiffModified", + condition = checkwidth, + icon = " ", + highlight = {colors.orange, colors.line_bg} + } } gls.left[8] = { - DiffRemove = { - provider = "DiffRemove", - condition = checkwidth, - icon = " ", - highlight = {colors.red, colors.line_bg} - } + DiffRemove = { + provider = "DiffRemove", + condition = checkwidth, + icon = " ", + highlight = {colors.red, colors.line_bg} + } } gls.left[9] = { - LeftEnd = { - provider = function() - return " " - end, - separator = " ", - separator_highlight = {colors.line_bg, colors.line_bg}, - highlight = {colors.line_bg, colors.line_bg} - } + LeftEnd = { + provider = function() + return " " + end, + separator = " ", + separator_highlight = {colors.line_bg, colors.line_bg}, + highlight = {colors.line_bg, colors.line_bg} + } } gls.left[10] = { - DiagnosticError = { - provider = "DiagnosticError", - icon = "  ", - highlight = {colors.red, colors.bg} - } + DiagnosticError = { + provider = "DiagnosticError", + icon = "  ", + highlight = {colors.red, colors.bg} + } } gls.left[11] = { - Space = { - provider = function() - return " " - end, - highlight = {colors.line_bg, colors.line_bg} - } + Space = { + provider = function() + return " " + end, + highlight = {colors.line_bg, colors.line_bg} + } } gls.left[12] = { - DiagnosticWarn = { - provider = "DiagnosticWarn", - icon = "  ", - highlight = {colors.red, colors.bg} - } + DiagnosticWarn = { + provider = "DiagnosticWarn", + icon = "  ", + highlight = {colors.red, colors.bg} + } } gls.right[1] = { - encode = { - provider = 'FileEncode', - icon = "  ", - highlight = {colors.fg, colors.line_bg} - } + encode = { + provider = 'FileEncode', + icon = "  ", + highlight = {colors.fg, colors.line_bg} + } } gls.right[2] = { - lineColumnNumber = { - provider = 'LineColumn', - icon = " ", - highlight = {colors.fg, colors.line_bg} - } + lineColumnNumber = { + provider = 'LineColumn', + icon = " ", + highlight = {colors.fg, colors.line_bg} + } } gls.right[3] = { - ShowLspClient = { - provider = function() - if require('galaxyline.provider_lsp').get_lsp_client()=='No Active Lsp' then - return "  " - end - return "  " - end, - condition = function() - local tbl = {["dashboard"] = true, [""] = true} - if tbl[vim.bo.filetype] then - return false - end - return true - end, - highlight = {function() if require('galaxyline.provider_lsp').get_lsp_client()=='No Active Lsp' then return colors.red else return colors.green end end, colors.line_bg} - } + ShowLspClient = { + provider = function() + if require('galaxyline.provider_lsp').get_lsp_client() == 'No Active Lsp' then + return "  " + end + return "  " + end, + condition = function() + local tbl = {["dashboard"] = true, [""] = true} + if tbl[vim.bo.filetype] then + return false + end + return true + end, + highlight = { + function() + if require('galaxyline.provider_lsp').get_lsp_client() == 'No Active Lsp' then + return colors.red + else + return colors.green + end + end, + colors.line_bg + } + } } gls.right[4] = { - Space = { - provider = function() - return " " - end, - highlight = {colors.line_bg, colors.line_bg} - } + Space = { + provider = function() + return " " + end, + highlight = {colors.line_bg, colors.line_bg} + } } - gls.right[5] = { - GitBranch = { - provider = "GitBranch", - condition = require("galaxyline.provider_vcs").check_git_workspace, - icon = "  ", - highlight = {colors.green, colors.line_bg} - } + GitBranch = { + provider = "GitBranch", + condition = require("galaxyline.provider_vcs").check_git_workspace, + icon = "  ", + highlight = {colors.green, colors.line_bg} + } } gls.right[6] = { - right_LeftRounded = { - provider = function() - return "" - end, - separator = " ", - separator_highlight = {colors.bg, colors.bg}, - highlight = {colors.red, colors.bg} - } + right_LeftRounded = { + provider = function() + return "" + end, + separator = " ", + separator_highlight = {colors.bg, colors.bg}, + highlight = {colors.red, colors.bg} + } } gls.right[7] = { - ViMode = { - provider = function() - local alias = { - n = "NORMAL", - i = "INSERT", - c = "COMMAND", - V = "VISUAL", - [""] = "VISUAL", - v = "VISUAL", - R = "REPLACE" - } - return alias[vim.fn.mode()] - end, - highlight = {colors.bg, colors.red} - } + ViMode = { + provider = function() + local alias = { + n = "NORMAL", + i = "INSERT", + c = "COMMAND", + V = "VISUAL", + [""] = "VISUAL", + v = "VISUAL", + R = "REPLACE" + } + return alias[vim.fn.mode()] + end, + highlight = {colors.bg, colors.red} + } } gls.right[8] = { - PerCent = { - provider = "LinePercent", - separator = " ", - separator_highlight = {colors.red, colors.red}, - highlight = {colors.bg, colors.fg} - } + PerCent = { + provider = "LinePercent", + separator = " ", + separator_highlight = {colors.red, colors.red}, + highlight = {colors.bg, colors.fg} + } } gls.right[9] = { - rightRounded = { - provider = function() - return "" - end, - highlight = {colors.fg, colors.bg} - } + rightRounded = { + provider = function() + return "" + end, + highlight = {colors.fg, colors.bg} + } } diff --git a/lua/core/config/nvim-toggleterm.lua b/lua/core/config/nvim-toggleterm.lua index ce8305c..df5c1f5 100644 --- a/lua/core/config/nvim-toggleterm.lua +++ b/lua/core/config/nvim-toggleterm.lua @@ -1,33 +1,41 @@ -require("toggleterm").setup{ - -- size can be a number or function which is passed the current terminal - size = function(term) - if term.direction == "horizontal" then - return 15 - elseif term.direction == "vertical" then - return vim.o.columns * 0.4 - end - end, - open_mapping = [[]], - hide_numbers = true, -- hide the number column in toggleterm buffers - shade_filetypes = {}, - shade_terminals = true, - shading_factor = '1', -- the degree by which to darken to terminal colour, default: 1 for dark backgrounds, 3 for light - start_in_insert = true, - persist_size = true, - direction = 'horizontal', - close_on_exit = true, -- close the terminal window when the process exits - shell = vim.o.shell, -- change the default shell - -- This field is only relevant if direction is set to 'float' - float_opts = { - -- The border key is *almost* the same as 'nvim_win_open' - -- see :h nvim_win_open for details on borders however - -- the 'curved' border is a custom border type - -- not natively supported but implemented in this plugin. - border = 'single' , - winblend = 3, - highlights = { - border = "Normal", - background = "Normal", - } - } +require("toggleterm").setup { + -- size can be a number or function which is passed the current terminal + size = function(term) + if term.direction == "horizontal" then + return 15 + elseif term.direction == "vertical" then + return vim.o.columns * 0.4 + end + end, + open_mapping = [[]], + hide_numbers = true, + + -- hide the number column in toggleterm buffers + shade_filetypes = {}, + shade_terminals = true, + shading_factor = '1', + + -- the degree by which to darken to terminal colour, default: 1 for dark backgrounds, 3 for light + start_in_insert = true, + persist_size = true, + direction = 'horizontal', + close_on_exit = true, + + -- close the terminal window when the process exits + shell = vim.o.shell, + + -- change the default shell + -- This field is only relevant if direction is set to 'float' + float_opts = { + -- The border key is *almost* the same as 'nvim_win_open' + -- see :h nvim_win_open for details on borders however + -- the 'curved' border is a custom border type + -- not natively supported but implemented in this plugin. + border = 'single', + winblend = 3, + highlights = { + border = "Normal", + background = "Normal", + } + } } diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index b14bae1..49796cf 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -1,52 +1,47 @@ - local tree_cb = require'nvim-tree.config'.nvim_tree_callback +local tree_cb = require 'nvim-tree.config'.nvim_tree_callback vim.g.nvim_tree_bindings = { - { key = {"", "o" , "l"}, cb = tree_cb("edit") }, - { key = { ""}, cb = tree_cb("cd") }, - { key = "v", cb = tree_cb("vsplit") }, - { key = "x", cb = tree_cb("split") }, - { key = "t", cb = tree_cb("tabnew") }, - { key = "<", cb = tree_cb("prev_sibling") }, - { key = ">", cb = tree_cb("next_sibling") }, - { key = "P", cb = tree_cb("parent_node") }, - { key = "", cb = tree_cb("close_node") }, - { key = "h", cb = tree_cb("close_node") }, - { key = "", cb = ":wincmd w" }, - { key = "K", cb = tree_cb("first_sibling") }, - { key = "J", cb = tree_cb("last_sibling") }, - { key = "I", cb = tree_cb("toggle_ignored") }, - { key = ".", cb = tree_cb("toggle_dotfiles") }, - { key = "R", cb = tree_cb("refresh") }, - { key = "a", cb = tree_cb("create") }, - { key = "d", cb = tree_cb("remove") }, - { key = "r", cb = tree_cb("rename") }, - { key = "", cb = tree_cb("full_rename") }, - { key = "x", cb = tree_cb("cut") }, - { key = "c", cb = tree_cb("copy") }, - { key = "p", cb = tree_cb("paste") }, - { key = "y", cb = tree_cb("copy_name") }, - { key = "Y", cb = tree_cb("copy_path") }, - { key = "gy", cb = tree_cb("copy_absolute_path") }, - { key = "[c", cb = tree_cb("prev_git_item") }, - { key = "]c", cb = tree_cb("next_git_item") }, - { key = "-", cb = tree_cb("dir_up") }, - { key = "q", cb = tree_cb("close") }, - { key = "?", cb = tree_cb("toggle_help") }, - } - + {key = {"", "o", "l"}, cb = tree_cb("edit")}, + {key = {""}, cb = tree_cb("cd")}, + {key = "v", cb = tree_cb("vsplit")}, + {key = "x", cb = tree_cb("split")}, + {key = "t", cb = tree_cb("tabnew")}, + {key = "<", cb = tree_cb("prev_sibling")}, + {key = ">", cb = tree_cb("next_sibling")}, + {key = "P", cb = tree_cb("parent_node")}, + {key = "", cb = tree_cb("close_node")}, + {key = "h", cb = tree_cb("close_node")}, + {key = "", cb = ":wincmd w"}, + {key = "K", cb = tree_cb("first_sibling")}, + {key = "J", cb = tree_cb("last_sibling")}, + {key = "I", cb = tree_cb("toggle_ignored")}, + {key = ".", cb = tree_cb("toggle_dotfiles")}, + {key = "R", cb = tree_cb("refresh")}, + {key = "a", cb = tree_cb("create")}, + {key = "d", cb = tree_cb("remove")}, + {key = "r", cb = tree_cb("rename")}, + {key = "", cb = tree_cb("full_rename")}, + {key = "x", cb = tree_cb("cut")}, + {key = "c", cb = tree_cb("copy")}, + {key = "p", cb = tree_cb("paste")}, + {key = "y", cb = tree_cb("copy_name")}, + {key = "Y", cb = tree_cb("copy_path")}, + {key = "gy", cb = tree_cb("copy_absolute_path")}, + {key = "[c", cb = tree_cb("prev_git_item")}, + {key = "]c", cb = tree_cb("next_git_item")}, + {key = "-", cb = tree_cb("dir_up")}, + {key = "q", cb = tree_cb("close")}, + {key = "?", cb = tree_cb("toggle_help")}, +} -------------------------------------------------------------------------------------- vim.api.nvim_set_keymap( - "n", - "", - ":NvimTreeToggle", - { - noremap = true, - silent = true - } + "n", + "", + ":NvimTreeToggle", + {noremap = true, silent = true} ) - local g = vim.g vim.o.termguicolors = true @@ -58,35 +53,31 @@ g.nvim_tree_auto_close = 1 g.nvim_tree_quit_on_open = 0 g.nvim_tree_follow = 1 g.nvim_tree_indent_markers = 1 + --g.nvim_tree_hide_dotfiles = 1 g.nvim_tree_git_hl = 1 g.nvim_tree_root_folder_modifier = ":t" g.nvim_tree_tab_open = 0 g.nvim_tree_allow_resize = 1 -g.nvim_tree_show_icons = { - git = 1, - folders = 1, - files = 1 -} +g.nvim_tree_show_icons = {git = 1, folders = 1, files = 1} g.nvim_tree_icons = { - default = " ", - symlink = " ", - git = { - unstaged = "✗", - staged = "✓", - unmerged = "", - renamed = "➜", - untracked = "★" - }, - folder = { - default = "", - open = "", - symlink = "" - } + default = " ", + symlink = " ", + git = { + unstaged = "✗", + staged = "✓", + unmerged = "", + renamed = "➜", + untracked = "★" + }, + folder = {default = "", open = "", symlink = ""} } local get_lua_cb = function(cb_name) - return string.format(":lua require'nvim-tree'.on_keypress('%s')", cb_name) + return string.format( + ":lua require'nvim-tree'.on_keypress('%s')", + cb_name + ) end diff --git a/lua/core/config/nvim-treesitter.lua b/lua/core/config/nvim-treesitter.lua index 04860db..1381ad6 100644 --- a/lua/core/config/nvim-treesitter.lua +++ b/lua/core/config/nvim-treesitter.lua @@ -1,33 +1,22 @@ vim.api.nvim_command("set foldmethod=expr") vim.api.nvim_command("set foldexpr=nvim_treesitter#foldexpr()") - - - ---------------------------------------------------------------- -require 'nvim-treesitter.configs'.setup{ - ensure_installed = "all", - highlight = { - enable = true - }, - indent = { - enable = true - }, - autotag = { - enable = true - }, - rainbow = { - enable = true, - extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean - max_file_lines = 2000, - }, - context_commentstring = { - enable = true - } +require 'nvim-treesitter.configs'.setup { + ensure_installed = "all", + highlight = {enable = true}, + indent = {enable = true}, + autotag = {enable = true}, + rainbow = { + enable = true, + extended_mode = true, + + -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean + max_file_lines = 2000, + }, + context_commentstring = {enable = true} } -vim.cmd' packadd spellsitter.nvim' -require("spellsitter").setup({ - hl = 'SpellBad' -}) +vim.cmd ' packadd spellsitter.nvim' +require("spellsitter").setup({hl = 'SpellBad'}) diff --git a/lua/core/config/packer.lua b/lua/core/config/packer.lua index cf32355..a2bfd90 100644 --- a/lua/core/config/packer.lua +++ b/lua/core/config/packer.lua @@ -1,17 +1,14 @@ -local install_path = vim.fn.stdpath("data").."/site/pack/packer/start/packer.nvim" +local install_path = vim.fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim" -if vim.fn.empty(vim.fn.glob(install_path))>0 -then - vim.fn.system({'git','clone','https://github.com/wbthomason/packer.nvim',install_path}) +if vim.fn.empty(vim.fn.glob(install_path)) > 0 then + vim.fn.system({'git', 'clone', 'https://github.com/wbthomason/packer.nvim', install_path}) end -return require('packer').init{ - display = { - open_fn = function() - return require'packer.util'.float{border = "single"} - end - }, - git = { - clone_timeout = 600 - } +return require('packer').init { + display = { + open_fn = function() + return require 'packer.util'.float {border = "single"} + end + }, + git = {clone_timeout = 600} } diff --git a/lua/core/config/telescope.lua b/lua/core/config/telescope.lua index f15c90e..cbafc7c 100644 --- a/lua/core/config/telescope.lua +++ b/lua/core/config/telescope.lua @@ -1,8 +1,43 @@ -vim.api.nvim_set_keymap("n","ff","lua require\'telescope.builtin\'.find_files()",{silent=true}) -vim.api.nvim_set_keymap("n","fg","lua require\'telescope.builtin\'.live_grep()",{silent=true}) -vim.api.nvim_set_keymap("n","fb","lua require\'telescope.builtin\'.buffers()",{silent=true}) -vim.api.nvim_set_keymap("n","fh","lua require\'telescope.builtin\'.help_tags()",{silent=true}) -vim.api.nvim_set_keymap("n","fs","lua require\'telescope.builtin\'.grep_string()",{silent=true}) -vim.api.nvim_set_keymap("n","","lua require\'telescope.builtin\'.registers()>",{silent=true}) -vim.api.nvim_set_keymap("n","sb","lua require\'telescope.builtin\'.current_buffer_fuzzy_find()>",{silent=true}) +vim.api.nvim_set_keymap( + "n", + "ff", + "lua require\'telescope.builtin\'.find_files()", + {silent = true} +) +vim.api.nvim_set_keymap( + "n", + "fg", + "lua require\'telescope.builtin\'.live_grep()", + {silent = true} +) +vim.api.nvim_set_keymap( + "n", + "fb", + "lua require\'telescope.builtin\'.buffers()", + {silent = true} +) +vim.api.nvim_set_keymap( + "n", + "fh", + "lua require\'telescope.builtin\'.help_tags()", + {silent = true} +) +vim.api.nvim_set_keymap( + "n", + "fs", + "lua require\'telescope.builtin\'.grep_string()", + {silent = true} +) +vim.api.nvim_set_keymap( + "n", + "", + "lua require\'telescope.builtin\'.registers()>", + {silent = true} +) +vim.api.nvim_set_keymap( + "n", + "sb", + "lua require\'telescope.builtin\'.current_buffer_fuzzy_find()>", + {silent = true} +) diff --git a/lua/core/config/vim-sayonara.lua b/lua/core/config/vim-sayonara.lua index 5bc01b1..f87a230 100644 --- a/lua/core/config/vim-sayonara.lua +++ b/lua/core/config/vim-sayonara.lua @@ -1 +1 @@ -vim.api.nvim_set_keymap("n","q",":Sayonara",{silent=true}) +vim.api.nvim_set_keymap("n", "q", ":Sayonara", {silent = true}) diff --git a/lua/core/config/vista.lua b/lua/core/config/vista.lua index 471f94b..7db3352 100644 --- a/lua/core/config/vista.lua +++ b/lua/core/config/vista.lua @@ -1,19 +1,11 @@ -vim.api.nvim_set_keymap('n','',':Vista!!',{silent=true}) - - - - - - - - - - vim.g.vista_disable_statusline = 1 - vim.g.vista_default_executive = "nvim_lsp" - vim.g.vista_echo_cursor_strategy = "scroll" - vim.g.vista_vimwiki_executive = "markdown" - vim.g.vista_highlight_whole_line = 1 - vim.g.vista_executive_for = { - vimwiki = "markdown", - pandoc = "markdown", - } +vim.api.nvim_set_keymap('n', '', ':Vista!!', {silent = true}) + +vim.g.vista_disable_statusline = 1 +vim.g.vista_default_executive = "nvim_lsp" +vim.g.vista_echo_cursor_strategy = "scroll" +vim.g.vista_vimwiki_executive = "markdown" +vim.g.vista_highlight_whole_line = 1 +vim.g.vista_executive_for = { + vimwiki = "markdown", + pandoc = "markdown", +} diff --git a/lua/core/init.lua b/lua/core/init.lua index 29eebe9..b7b303d 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -152,9 +152,6 @@ packer.startup(function(use) requires = { {'kabouzeid/nvim-lspinstall', after = 'nvim-lspconfig'}, {'glepnir/lspsaga.nvim', after = 'nvim-lspconfig'}, - - -- TODO: Not need this plugin - -- {'folke/lsp-colors.nvim',after = 'nvim-lspconfig'}, }, config = function() require 'languages.config.nvim-lspconfig' @@ -235,6 +232,18 @@ packer.startup(function(use) ----------NOTE:tools layer----------- -------------------------------- ----------NOTE:plugins layer--------- + use { + -- displays a popup with possible key bindings of the command you started typing + "folke/which-key.nvim", + config = function() + require("which-key").setup { + -- your configuration comes here + -- or leave it empty to use the default settings + -- refer to the configuration section below + } + end + } + use { --add line indent 'lukas-reineke/indent-blankline.nvim', diff --git a/lua/languages/config/kommentary.lua b/lua/languages/config/kommentary.lua index e872ee2..0eff38f 100644 --- a/lua/languages/config/kommentary.lua +++ b/lua/languages/config/kommentary.lua @@ -4,10 +4,5 @@ vim.api.nvim_set_keymap("n", "cd", "kommentary_motion_default", {}) vim.api.nvim_set_keymap("x", "cv", "kommentary_visual_default", {}) vim.api.nvim_set_keymap("v", "cv", "kommentary_visual_default", {}) - --------------------------------------------------------------------------------------------- - - - - diff --git a/lua/languages/config/nvim-compe.lua b/lua/languages/config/nvim-compe.lua index 159328a..26c066a 100644 --- a/lua/languages/config/nvim-compe.lua +++ b/lua/languages/config/nvim-compe.lua @@ -1,81 +1,84 @@ vim.o.completeopt = "menuone,noselect" require "compe".setup { - enabled = true, - autocomplete = true, - debug = false, - min_length = 1, - preselect = "enable", - throttle_time = 80, - source_timeout = 200, - incomplete_delay = 400, - max_abbr_width = 100, - max_kind_width = 100, - max_menu_width = 100, - documentation = true, - source = { - path = {kind="﬜",priority=10,true}, - buffer = {kind = "﬘",priority=5, true}, - calc = {kind="",priority=10,true}, - vsnip = {kind = "",priority=9}, --replace to what sign you prefer - nvim_lsp = {kind="",priority=9,true}, - spell = {kind="",priority=4,true}, - tags = {kind="",priority=10,true}, - snippets_nvim = {kind="",priority=7,true}, - treesitter = {kind="",priority=8,true}, - nvim_lua = {kind="",priority=9,true}, - tabnine = {priority=9,true}, - emoji = {kind="",priority=9, true} - } + enabled = true, + autocomplete = true, + debug = false, + min_length = 1, + preselect = "enable", + throttle_time = 80, + source_timeout = 200, + incomplete_delay = 400, + max_abbr_width = 100, + max_kind_width = 100, + max_menu_width = 100, + documentation = true, + source = { + path = {kind = "﬜", priority = 10, true}, + buffer = {kind = "﬘", priority = 5, true}, + calc = {kind = "", priority = 10, true}, + vsnip = {kind = "", priority = 9}, + + --replace to what sign you prefer + nvim_lsp = {kind = "", priority = 9, true}, + spell = {kind = "", priority = 4, true}, + tags = {kind = "", priority = 10, true}, + snippets_nvim = {kind = "", priority = 7, true}, + treesitter = {kind = "", priority = 8, true}, + nvim_lua = {kind = "", priority = 9, true}, + tabnine = {priority = 9, true}, + emoji = {kind = "", priority = 9, true} + } } local t = function(str) - return vim.api.nvim_replace_termcodes(str, true, true, true) + return vim.api.nvim_replace_termcodes(str, true, true, true) end local check_back_space = function() - local col = vim.fn.col(".") - 1 - if col == 0 or vim.fn.getline("."):sub(col, col):match("%s") then - return true - else - return false - end + local col = vim.fn.col(".") - 1 + if col == 0 or vim.fn.getline("."):sub(col, col):match("%s") then + return true + else + return false + end end -- tab completion _G.tab_complete = function() - if vim.fn.pumvisible() == 1 then - return t "" - elseif vim.fn['vsnip#available'](1) == 1 then - return t "(vsnip-expand-or-jump)" - elseif check_back_space() then - return t "" - else - return vim.fn["compe#complete"]() - end + if vim.fn.pumvisible() == 1 then + return t "" + elseif vim.fn['vsnip#available'](1) == 1 then + return t "(vsnip-expand-or-jump)" + elseif check_back_space() then + return t "" + else + return vim.fn["compe#complete"]() + end end _G.s_tab_complete = function() - if vim.fn.pumvisible() == 1 then - return t "" - elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then - return t "(vsnip-jump-prev)" - else - return t "" - end + if vim.fn.pumvisible() == 1 then + return t "" + elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then + return t "(vsnip-jump-prev)" + else + return t "" + end end _G.jump_next = function() - if vim.fn['vsnip#available'](1) == 1 then - return t "(vsnip-expand-or-jump)" - end + if vim.fn['vsnip#available'](1) == 1 then + return t "(vsnip-expand-or-jump)" + end end _G.jump_prev = function() - if vim.fn.call("vsnip#jumpable", {-1}) == 1 then - return t "(vsnip-jump-prev)" - end + if vim.fn.call("vsnip#jumpable", {-1}) == 1 then + return t "(vsnip-jump-prev)" + end end + -- mappings vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true}) @@ -86,13 +89,13 @@ vim.api.nvim_set_keymap("i", "", "v:lua.jump_next()", {expr = true}) vim.api.nvim_set_keymap("i", "", "v:lua.jump_prev()", {expr = true}) function _G.completions() - local npairs = require("nvim-autopairs") - if vim.fn.pumvisible() == 1 then - if vim.fn.complete_info()["selected"] ~= -1 then - return vim.fn["compe#confirm"]("") - end - end - return npairs.check_break_line_char() + local npairs = require("nvim-autopairs") + if vim.fn.pumvisible() == 1 then + if vim.fn.complete_info()["selected"] ~= -1 then + return vim.fn["compe#confirm"]("") + end + end + return npairs.check_break_line_char() end vim.api.nvim_set_keymap("i", "", "v:lua.completions()", {expr = true}) diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index a5a2cf0..a912dae 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -1,103 +1,217 @@ -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffe - local on_attach = function(client, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end - --Enable completion triggered by - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') -buf_set_keymap('n', 'gh', 'lua require\'lspsaga.provider\'.lsp_finder()', { noremap=true, silent=true }) -buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { noremap=true, silent=true }) -buf_set_keymap('n', 'gd', 'lua require\'lspsaga.provider\'.preview_definition()', { noremap=true, silent=true }) -buf_set_keymap('n', 'K', 'lua require(\'lspsaga.hover\').render_hover_doc()', { noremap=true, silent=true }) -buf_set_keymap('n', '', 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', { noremap=true, silent=true }) -buf_set_keymap('n', '', 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', { noremap=true, silent=true }) -buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { noremap=true, silent=true }) -buf_set_keymap('n', '', 'lua require(\'lspsaga.signaturehelp\').signature_help()', { noremap=true, silent=true }) -buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', { noremap=true, silent=true }) -buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', { noremap=true, silent=true }) -buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', { noremap=true, silent=true }) -buf_set_keymap('n', 'ld', 'lua vim.lsp.buf.type_definition()', { noremap=true, silent=true }) -buf_set_keymap('n', '', 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', { noremap=true, silent=true }) -buf_set_keymap('n', '', 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', { noremap=true, silent=true }) -buf_set_keymap('n', 'lr', 'lua require(\'lspsaga.rename\').rename()', { noremap=true, silent=true }) -buf_set_keymap('n', 'la', 'lua require(\'lspsaga.codeaction\').code_action()', { noremap=true, silent=true }) -buf_set_keymap('v', 'la', 'lua require(\'lspsaga.codeaction\').range_code_action()', { noremap=true, silent=true }) -buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', { noremap=true, silent=true }) -buf_set_keymap('n', '[g', 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', { noremap=true, silent=true }) -buf_set_keymap('n', ']g', 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', { noremap=true, silent=true }) -buf_set_keymap('n', 'll', 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', { noremap=true, silent=true }) -buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { noremap=true, silent=true }) +local on_attach = function(client, bufnr) + local function buf_set_keymap(...) + vim.api.nvim_buf_set_keymap(bufnr, ...) + end + local function buf_set_option(...) + vim.api.nvim_buf_set_option(bufnr, ...) + end + + --Enable completion triggered by + buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + buf_set_keymap( + 'n', + 'gh', + 'lua require\'lspsaga.provider\'.lsp_finder()', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { + noremap = true, + silent = true + }) + buf_set_keymap( + 'n', + 'gd', + 'lua require\'lspsaga.provider\'.preview_definition()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'K', + 'lua require(\'lspsaga.hover\').render_hover_doc()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { + noremap = true, + silent = true + }) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.signaturehelp\').signature_help()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'wa', + 'lua vim.lsp.buf.add_workspace_folder()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'wr', + 'lua vim.lsp.buf.remove_workspace_folder()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'wl', + 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'ld', + 'lua vim.lsp.buf.type_definition()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'lr', + 'lua require(\'lspsaga.rename\').rename()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'la', + 'lua require(\'lspsaga.codeaction\').code_action()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'v', + 'la', + 'lua require(\'lspsaga.codeaction\').range_code_action()', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', { + noremap = true, + silent = true + }) + buf_set_keymap( + 'n', + '[g', + 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + ']g', + 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'll', + 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', + {noremap = true, silent = true} + ) + buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { + noremap = true, + silent = true + }) end - - - ----------------------------------------------------------- -local lspservers = { "go", "lua", "cpp", "java", "bash", "css", "html", "json", "python", "rust", "dockerfile", "vim", "vue" } -vim.cmd' packadd nvim-lspinstall' --- NOTE: first, install the servers we need +local lspservers = { + "go", + "lua", + "cpp", + "java", + "bash", + "css", + "html", + "json", + "python", + "rust", + "dockerfile", + "vim", + "vue" +} +vim.cmd ' packadd nvim-lspinstall' +-- NOTE: first, install the servers we need -local function contains(tables,value) - for _, values in pairs(tables) do - if values == value then - return true - end -end -return false +local function contains(tables, value) + for _, values in pairs(tables) do + if values == value then + return true + end + end + return false end - -for _,server in ipairs(lspservers) do - if not contains(require("lspinstall").installed_servers(),server) - then - require("lspinstall").install_server(server) - end +for _, server in ipairs(lspservers) do + if not contains(require("lspinstall").installed_servers(), server) then + require("lspinstall").install_server(server) + end end + -- NOTE: then, we should setup the servers -require'lspinstall'.setup() +require 'lspinstall'.setup() -- use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches local nvim_lsp = require('lspconfig') local function setup_servers() -for _, lsp in ipairs(require'lspinstall'.installed_servers()) do - nvim_lsp[lsp].setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150, - } - } -end + for _, lsp in ipairs(require 'lspinstall'.installed_servers()) do + nvim_lsp[lsp].setup { + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + } + } + end end - - - setup_servers() +require 'lspinstall'.post_install_hook = function() + setup_servers() + -- reload installed servers + vim.cmd("bufdo e") -require'lspinstall'.post_install_hook = function () - setup_servers() -- reload installed servers - vim.cmd("bufdo e") -- this triggers the filetype autocmd that starts the server + -- this triggers the filetype autocmd that starts the server end - - -- NOTE: finally, setup lsp saga and config -vim.cmd' packadd lspsaga.nvim' +vim.cmd ' packadd lspsaga.nvim' local saga = require 'lspsaga' -saga.init_lsp_saga{ - use_saga_diagnostic_sign = true, - error_sign = '✖️', - warn_sign = '⚠️ ', - hint_sign = '☀️ ', - infor_sign = 'ℹ️', - dianostic_header_icon = '  ', - code_action_icon = ' ' +saga.init_lsp_saga { + use_saga_diagnostic_sign = true, + error_sign = '✖️', + warn_sign = '⚠️ ', + hint_sign = '☀️ ', + infor_sign = 'ℹ️', + dianostic_header_icon = '  ', + code_action_icon = ' ' } ------------------------------- @@ -108,14 +222,13 @@ vim.cmd("hi LspDiagnosticsVirtualTextError guifg='#db4b4b'") vim.cmd("hi LspDiagnosticsVirtualTextInformation guifg='#0db9d7'") vim.cmd("hi LspDiagnosticsVirtualTextHint guifg='#10B981'") - - - - --NOTE: define the auto format on save -vim.api.nvim_exec([[ +vim.api.nvim_exec( + [[ augroup FormatAutogroup autocmd! autocmd BufWritePost * lua vim.lsp.buf.formatting() augroup END -]], true) +]], + true +) diff --git a/lua/languages/init.lua b/lua/languages/init.lua index e69de29..8b13789 100644 --- a/lua/languages/init.lua +++ b/lua/languages/init.lua @@ -0,0 +1 @@ + diff --git a/lua/plugins/config/hop.lua b/lua/plugins/config/hop.lua index 483f4e0..4932295 100644 --- a/lua/plugins/config/hop.lua +++ b/lua/plugins/config/hop.lua @@ -1,15 +1,15 @@ -vim.api.nvim_set_keymap('n', 'jw', "lua require'hop'.hint_words()", {}) -vim.api.nvim_set_keymap('n', 'jl', "lua require'hop'.hint_lines()", {}) - - - - - - - - - - - -require'hop'.setup() +vim.api.nvim_set_keymap( + 'n', + 'jw', + "lua require'hop'.hint_words()", + {} +) +vim.api.nvim_set_keymap( + 'n', + 'jl', + "lua require'hop'.hint_lines()", + {} +) + +require 'hop'.setup() diff --git a/lua/plugins/config/todo-comments.lua b/lua/plugins/config/todo-comments.lua index 8416c7f..d38c15a 100644 --- a/lua/plugins/config/todo-comments.lua +++ b/lua/plugins/config/todo-comments.lua @@ -1,58 +1,85 @@ +require("todo-comments").setup { + signs = true, + -- show icons in the signs column + sign_priority = 8, + -- sign priority + -- keywords recognized as todo comments + keywords = { + FIX = { + icon = " ", - require("todo-comments").setup { - signs = true, -- show icons in the signs column - sign_priority = 8, -- sign priority - -- keywords recognized as todo comments - keywords = { - FIX = { - icon = " ", -- icon used for the sign, and in search results - color = "error", -- can be a hex color, or a named color (see below) - alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords - -- signs = false, -- configure signs for some keywords individually - }, - TODO = { icon = " ", color = "info" }, - HACK = { icon = " ", color = "warning" }, - WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } }, - PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, - NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, - }, - merge_keywords = true, -- when true, custom keywords will be merged with the defaults - -- highlighting of the line containing the todo comment - -- * before: highlights before the keyword (typically comment characters) - -- * keyword: highlights of the keyword - -- * after: highlights after the keyword (todo text) - highlight = { - before = "", -- "fg" or "bg" or empty - keyword = "wide", -- "fg", "bg", "wide" or empty. (wide is the same as bg, but will also highlight surrounding characters) - after = "fg", -- "fg" or "bg" or empty - pattern = [[.*<(KEYWORDS)\s*:]], -- pattern used for highlightng (vim regex) - comments_only = true, -- uses treesitter to match keywords in comments only - max_line_len = 400, -- ignore lines longer than this - exclude = {}, -- list of file types to exclude highlighting - }, - -- list of named colors where we try to extract the guifg from the - -- list of hilight groups or use the hex color if hl not found as a fallback - colors = { - error = { "LspDiagnosticsDefaultError", "ErrorMsg", "#DC2626" }, - warning = { "LspDiagnosticsDefaultWarning", "WarningMsg", "#FBBF24" }, - info = { "LspDiagnosticsDefaultInformation", "#2563EB" }, - hint = { "LspDiagnosticsDefaultHint", "#10B981" }, - default = { "Identifier", "#7C3AED" }, - }, - search = { - command = "rg", - args = { - "--color=never", - "--no-heading", - "--with-filename", - "--line-number", - "--column", - }, - -- regex that will be used to match keywords. - -- don't replace the (KEYWORDS) placeholder - pattern = [[\b(KEYWORDS):]], -- ripgrep regex - -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives - }, - } + -- icon used for the sign, and in search results + color = "error", + + -- can be a hex color, or a named color (see below) + alt = {"FIXME", "BUG", "FIXIT", "ISSUE"}, + + -- a set of other keywords that all map to this FIX keywords + -- signs = false, -- configure signs for some keywords individually + }, + TODO = {icon = " ", color = "info"}, + HACK = {icon = " ", color = "warning"}, + WARN = {icon = " ", color = "warning", alt = {"WARNING", "XXX"}}, + PERF = {icon = " ", alt = {"OPTIM", "PERFORMANCE", "OPTIMIZE"}}, + NOTE = {icon = " ", color = "hint", alt = {"INFO"}}, + }, + merge_keywords = true, + + -- when true, custom keywords will be merged with the defaults + -- highlighting of the line containing the todo comment + -- * before: highlights before the keyword (typically comment characters) + -- * keyword: highlights of the keyword + -- * after: highlights after the keyword (todo text) + highlight = { + before = "", + + -- "fg" or "bg" or empty + keyword = "wide", + + -- "fg", "bg", "wide" or empty. (wide is the same as bg, but will also highlight surrounding characters) + after = "fg", + + -- "fg" or "bg" or empty + pattern = [[.*<(KEYWORDS)\s*:]], + + -- pattern used for highlightng (vim regex) + comments_only = true, + + -- uses treesitter to match keywords in comments only + max_line_len = 400, + + -- ignore lines longer than this + exclude = {}, + + -- list of file types to exclude highlighting + }, + + -- list of named colors where we try to extract the guifg from the + -- list of hilight groups or use the hex color if hl not found as a fallback + colors = { + error = {"LspDiagnosticsDefaultError", "ErrorMsg", "#DC2626"}, + warning = {"LspDiagnosticsDefaultWarning", "WarningMsg", "#FBBF24"}, + info = {"LspDiagnosticsDefaultInformation", "#2563EB"}, + hint = {"LspDiagnosticsDefaultHint", "#10B981"}, + default = {"Identifier", "#7C3AED"}, + }, + search = { + command = "rg", + args = { + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + }, + + -- regex that will be used to match keywords. + -- don't replace the (KEYWORDS) placeholder + pattern = [[\b(KEYWORDS):]], + + -- ripgrep regex + -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives + }, +} diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index e69de29..8b13789 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -0,0 +1 @@ + diff --git a/lua/style/init.lua b/lua/style/init.lua index e69de29..8b13789 100644 --- a/lua/style/init.lua +++ b/lua/style/init.lua @@ -0,0 +1 @@ + diff --git a/lua/tools/init.lua b/lua/tools/init.lua index e69de29..8b13789 100644 --- a/lua/tools/init.lua +++ b/lua/tools/init.lua @@ -0,0 +1 @@ + diff --git a/luafmt.sh b/luafmt.sh new file mode 100755 index 0000000..4a19363 --- /dev/null +++ b/luafmt.sh @@ -0,0 +1,33 @@ +#!/bin/bash +function getdir(){ + for file in $1/* + do + if test -d $file + then + if test ! -f $file + then + for luaf in $file/*.lua + do lua luafmt/luafmt.lua --f $luaf [max column hint=80] + done + getdir $file + fi + fi + done +} +if test -d luafmt +then + cd luafmt + echo 'luafmt exists, start to update' + git pull + cd .. +else + cd luafmt + echo 'luafmt does not exist, try to download....' + git clone https://github.com/CurtisFenner/luafmt + if [ $? == 0 ] + then + chmod 755 luafmt + fi +fi + getdir . + rm luafmt -rf diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index af800a7..edc2cdd 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,369 +1,482 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) + end + end - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) end - end - -local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) return a[2] > b[2] end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end + local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) + return a[2] > b[2] + end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end - _G._packer = _G._packer or {} - _G._packer.profile_output = results -end + _G._packer = _G._packer or {} + _G._packer.profile_output = results + end -time([[Luarocks path setup]], true) -local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" -if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str -end + time([[Luarocks path setup]], true) + local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" + local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" + if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str + end -if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern -end + if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern + end -time([[Luarocks path setup]], false) -time([[try_loadstring definition]], true) -local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) - end) - end - return result -end + time([[Luarocks path setup]], false) + time([[try_loadstring definition]], true) + local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s)) + if not success then + vim.schedule(function() + vim.api.nvim_notify( + 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, + vim.log.levels.ERROR, + {} + ) + end) + end + return result + end + + time([[try_loadstring definition]], false) + time([[Defining packer_plugins]], true) + _G.packer_plugins = { + ["accelerated-jk"] = { + config = { + "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { + "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" + }, + ["compe-tabnine"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" + }, + ["dashboard-nvim"] = { + config = { + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" + }, + ["dial.nvim"] = { + config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" + }, + everforest = { + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { + "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { + "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { + "\27LJ\2\2\3\0\0\2\0\f\0\0296\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\6\0'\1\b\0B\0\2\0016\0\0\0009\0\6\0'\1\t\0B\0\2\0016\0\0\0009\0\6\0'\1\n\0B\0\2\0016\0\0\0009\0\6\0'\1\v\0B\0\2\1K\0\1\0005hi LspDiagnosticsVirtualTextHint guifg='#10B981' Date: Fri, 6 Aug 2021 12:03:07 +0800 Subject: [PATCH 07/92] add which key plugin --- lua/core/config/barbar.lua | 1 + lua/core/config/telescope.lua | 12 +- lua/core/init.lua | 14 +- lua/languages/config/nvim-lspconfig.lua | 12 +- lua/plugins/config/which-key.lua | 176 ++++++++++++++++++++++++ plugin/packer_compiled.lua | 37 ++--- 6 files changed, 215 insertions(+), 37 deletions(-) create mode 100644 lua/plugins/config/which-key.lua diff --git a/lua/core/config/barbar.lua b/lua/core/config/barbar.lua index f566abd..298e1ba 100644 --- a/lua/core/config/barbar.lua +++ b/lua/core/config/barbar.lua @@ -12,6 +12,7 @@ vim.api.nvim_set_keymap("n", "\\9", ":BufferGoto 9", {silent = true}) vim.api.nvim_set_keymap("n", "\\0", ":BufferLast", {silent = true}) vim.api.nvim_set_keymap("n", "\\c", ":BufferClose", {silent = true}) vim.api.nvim_set_keymap("n", "\\s", ":BufferPick", {silent = true}) +vim.api.nvim_set_keymap("n", "\\e", ":enew", {silent = true}) vim.api.nvim_set_keymap( "n", "\\b", diff --git a/lua/core/config/telescope.lua b/lua/core/config/telescope.lua index cbafc7c..9ea767a 100644 --- a/lua/core/config/telescope.lua +++ b/lua/core/config/telescope.lua @@ -1,3 +1,4 @@ +--HINT: these keymap has already transformed to which-key vim.api.nvim_set_keymap( "n", "ff", @@ -30,14 +31,13 @@ vim.api.nvim_set_keymap( ) vim.api.nvim_set_keymap( "n", - "", - "lua require\'telescope.builtin\'.registers()>", + "sb", + "lua require\'telescope.builtin\'.current_buffer_fuzzy_find()>", {silent = true} ) vim.api.nvim_set_keymap( - "n", - "sb", - "lua require\'telescope.builtin\'.current_buffer_fuzzy_find()>", + "i", + "", + "lua require\'telescope.builtin\'.registers()>", {silent = true} ) - diff --git a/lua/core/init.lua b/lua/core/init.lua index b7b303d..34c0fa2 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -236,11 +236,7 @@ packer.startup(function(use) -- displays a popup with possible key bindings of the command you started typing "folke/which-key.nvim", config = function() - require("which-key").setup { - -- your configuration comes here - -- or leave it empty to use the default settings - -- refer to the configuration section below - } + require 'plugins.config.which-key' end } @@ -299,8 +295,12 @@ packer.startup(function(use) } ]] use { --markdown preview plugins - "davidgranstrom/nvim-markdown-preview", - event = "BufRead" + "davidgranstrom/nvim-markdown-preview" + } + + use { + --BookMarks toggling + "MattesGroeger/vim-bookmarks" } -------------------------------- diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index a912dae..0e42ac4 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -20,12 +20,10 @@ local on_attach = function(client, bufnr) noremap = true, silent = true }) - buf_set_keymap( - 'n', - 'gd', - 'lua require\'lspsaga.provider\'.preview_definition()', - {noremap = true, silent = true} - ) + buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { + noremap = true, + silent = true + }) buf_set_keymap( 'n', 'K', @@ -75,7 +73,7 @@ local on_attach = function(client, bufnr) buf_set_keymap( 'n', 'ld', - 'lua vim.lsp.buf.type_definition()', + 'lua require\'lspsaga.provider\'.preview_definition()', {noremap = true, silent = true} ) buf_set_keymap( diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua new file mode 100644 index 0000000..67c7e3e --- /dev/null +++ b/lua/plugins/config/which-key.lua @@ -0,0 +1,176 @@ +require("which-key").setup { + plugins = { + marks = true, + + -- shows a list of your marks on ' and ` + registers = true, + + -- shows your registers on " in NORMAL or in INSERT mode + spelling = { + enabled = false, + + -- enabling this will show WhichKey when pressing z= to select spelling suggestions + suggestions = 20, + + -- how many suggestions should be shown in the list? + }, + + -- the presets plugin, adds help for a bunch of default keybindings in Neovim + -- No actual key bindings are created + presets = { + operators = true, + + -- adds help for operators like d, y, ... and registers them for motion / text object completion + motions = true, + + -- adds help for motions + text_objects = true, + + -- help for text objects triggered after entering an operator + windows = true, + + -- default bindings on + nav = true, + + -- misc bindings to work with windows + z = true, + + -- bindings for folds, spelling and others prefixed with z + g = true, + + -- bindings for prefixed with g + }, + }, + + -- add operators that will trigger motion and text object completion + -- to enable all native operators, set the preset / operators plugin above + operators = {gc = "Comments"}, + key_labels = { + -- override the label used to display some keys. It doesn't effect WK in any other way. + -- For example: + -- [""] = "SPC", + -- [""] = "RET", + -- [""] = "TAB", + }, + icons = { + breadcrumb = "»", + + -- symbol used in the command line area that shows your active key combo + separator = "➜", + + -- symbol used between a key and it's label + group = "+", + + -- symbol prepended to a group + }, + window = { + border = "none", + + -- none, single, double, shadow + position = "bottom", + + -- bottom, top + margin = {1, 0, 1, 0}, + + -- extra window margin [top, right, bottom, left] + padding = {2, 2, 2, 2}, + + -- extra window padding [top, right, bottom, left] + }, + layout = { + height = {min = 4, max = 25}, + + -- min and max height of the columns + width = {min = 20, max = 50}, + + -- min and max width of the columns + spacing = 3, + + -- spacing between columns + align = "left", + + -- align columns left, center or right + }, + ignore_missing = false, + + -- enable this to hide mappings for which you didn't specify a label + hidden = {"", "", "", "", "call", "lua", "^:", "^ "}, + + -- hide mapping boilerplate + show_help = true, + + -- show help message on the command line when the popup is visible + triggers = "auto", + + -- automatically setup triggers + -- triggers = {""} -- or specify a list manually + triggers_blacklist = { + -- list of mode / prefixes that should never be hooked by WhichKey + -- this is mostly relevant for key maps that start with a native binding + -- most people should not need to change this + i = {"j", "k"}, + v = {"j", "k"}, + }, +} + +local wk = require("which-key") + +wk.register({ + ["a"] = {name = "Starting"}, + ["b"] = {name = "+buffer"}, + ["c"] = {name = "+comment"}, + ["f"] = {name = "+Find"}, + ["g"] = {name = "+Git"}, + ["s"] = {name = "+Search"}, + ["j"] = {name = "jump"}, + ["l"] = {name = "+Language"}, + ["w"] = {name = "+Workspace"}, + ["\\e"] = {name = "new buffer"}, + + ---------------------------------- + ["aa"] = {name = "Welcome page"}, + ["bf"] = {name = "format the buffer"}, + + ---------------------------------- + ["cl"] = {name = "comment line"}, + ["cd"] = {name = "comment motion"}, + + ---------------------------------- + ["ff"] = {name = "find file"}, + ["fg"] = {name = "live grep"}, + ["fb"] = {name = "find buffers"}, + ["fh"] = {name = "help tags"}, + ["fs"] = {name = "grep string"}, + + ---------------------------------- + ["gb"] = {name = "Git Blame"}, + ["gr"] = {name = "Git reset hunk"}, + ["gR"] = {name = "Git reset buffer"}, + ["gp"] = {name = "Git preview hunk"}, + ["gs"] = {name = "Git stage"}, + ["gu"] = {name = "Git unstage"}, + + ---------------------------------- + ["sb"] = {name = "search in buffer"}, + + ---------------------------------- + ["jw"] = {name = "jump to word"}, + ["jl"] = {name = "jump to line"}, + + ---------------------------------- + ["wa"] = {name = "add worksapce folder"}, + ["wr"] = {name = "remove workspace folder"}, + ["wl"] = {name = "show workspace"}, + + ---------------------------------- + ["la"] = {name = "action"}, + ["ld"] = {name = "preview Definition"}, + ["lr"] = {name = "rename"}, + ["ll"] = {name = "toggle line diagnostic"}, + + ---------------------------------- + ["gd"] = {name = "go to Definition"}, + ["gD"] = {name = "go to Declaration"}, + ["gr"] = {name = "go to Reference"}, + ["gh"] = {name = "show information"}, +}) diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index edc2cdd..6e827cc 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -215,9 +215,8 @@ local no_errors, error_msg = pcall(function() path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" }, ["nvim-markdown-preview"] = { - loaded = false, - needs_bufread = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-markdown-preview" + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" }, ["nvim-nonicons"] = { loaded = true, @@ -313,6 +312,10 @@ local no_errors, error_msg = pcall(function() needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" }, + ["vim-bookmarks"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" + }, ["vim-cursorword"] = { loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" @@ -358,7 +361,7 @@ local no_errors, error_msg = pcall(function() }, ["which-key.nvim"] = { config = { - "\27LJ\2\2;\0\0\2\0\3\0\a6\0\0\0'\1\1\0B\0\2\0029\0\2\0004\1\0\0B\0\2\1K\0\1\0\nsetup\14which-key\frequire\0" + "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/which-key.nvim" @@ -384,7 +387,7 @@ local no_errors, error_msg = pcall(function() -- Config for: which-key.nvim time([[Config for which-key.nvim]], true) try_loadstring( - "\27LJ\2\2;\0\0\2\0\3\0\a6\0\0\0'\1\1\0B\0\2\0029\0\2\0004\1\0\0B\0\2\1K\0\1\0\nsetup\14which-key\frequire\0", + "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0", "config", "which-key.nvim" ) @@ -426,14 +429,14 @@ local no_errors, error_msg = pcall(function() ) time([[Config for kommentary]], false) - -- Config for: nvim-lspconfig - time([[Config for nvim-lspconfig]], true) + -- Config for: neoscroll.nvim + time([[Config for neoscroll.nvim]], true) try_loadstring( - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", - "nvim-lspconfig" + "neoscroll.nvim" ) - time([[Config for nvim-lspconfig]], false) + time([[Config for neoscroll.nvim]], false) -- Config for: nvim-autopairs time([[Config for nvim-autopairs]], true) @@ -444,14 +447,14 @@ local no_errors, error_msg = pcall(function() ) time([[Config for nvim-autopairs]], false) - -- Config for: neoscroll.nvim - time([[Config for neoscroll.nvim]], true) + -- Config for: nvim-lspconfig + time([[Config for nvim-lspconfig]], true) try_loadstring( - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", - "neoscroll.nvim" + "nvim-lspconfig" ) - time([[Config for neoscroll.nvim]], false) + time([[Config for nvim-lspconfig]], false) -- Load plugins in order defined by `after` time([[Sequenced loading]], true) @@ -467,9 +470,9 @@ local no_errors, error_msg = pcall(function() -- Event lazy-loads time([[Defining lazy-load event autocommands]], true) - vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'dashboard-nvim', 'vista.vim', 'barbar.nvim', 'nvim-tree.lua', 'vim-sayonara', 'nvim-toggleterm.lua', 'telescope.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] + vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'dashboard-nvim', 'barbar.nvim', 'nvim-tree.lua', 'vista.vim', 'vim-sayonara', 'nvim-toggleterm.lua', 'telescope.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'compe-tabnine', 'vim-vsnip', 'vim-vsnip-integ'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] - vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'nvim-markdown-preview', 'everforest', 'todo-comments.nvim', 'github-nvim-theme', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] + vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'todo-comments.nvim', 'github-nvim-theme', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] time([[Defining lazy-load event autocommands]], false) vim.cmd("augroup END") if should_profile then From a17404730883d446750e0434db39b2584e478326 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 6 Aug 2021 12:17:24 +0800 Subject: [PATCH 08/92] fix hop color issuse when use grovbox colorscheme --- lua/core/init.lua | 5 + plugin/packer_compiled.lua | 826 ++++++++++++++++--------------------- 2 files changed, 366 insertions(+), 465 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 34c0fa2..837764a 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -219,6 +219,11 @@ packer.startup(function(use) vim.cmd("hi LspDiagnosticsVirtualTextError guifg='#db4b4b'") vim.cmd("hi LspDiagnosticsVirtualTextInformation guifg='#0db9d7'") vim.cmd("hi LspDiagnosticsVirtualTextHint guifg='#10B981'") + vim.api.nvim_command('highlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold') + + vim.api.nvim_command('highlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=bold') + vim.api.nvim_command('highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33') + vim.api.nvim_command('highlight default HopUnmatched guifg=#666666 ctermfg=242') end, event = "BufRead" } diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 6e827cc..e608555 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,485 +1,381 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) - end - end - local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) - return a[2] > b[2] - end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) end + end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end - _G._packer = _G._packer or {} - _G._packer.profile_output = results - end - - time([[Luarocks path setup]], true) - local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" - local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" - if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str - end - - if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern - end - - time([[Luarocks path setup]], false) - time([[try_loadstring definition]], true) - local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify( - 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, - vim.log.levels.ERROR, - {} - ) - end) - end - return result - end - - time([[try_loadstring definition]], false) - time([[Defining packer_plugins]], true) - _G.packer_plugins = { - ["accelerated-jk"] = { - config = { - "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" - }, - ["barbar.nvim"] = { - config = { - "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" - }, - ["compe-tabnine"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" - }, - ["dashboard-nvim"] = { - config = { - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" - }, - ["dial.nvim"] = { - config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" - }, - everforest = { - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" - }, - ["friendly-snippets"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" - }, - ["galaxyline.nvim"] = { - config = { - "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" - }, - ["github-nvim-theme"] = { - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" - }, - ["gitsigns.nvim"] = { - config = { - "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" - }, - ["gruvbox-material"] = { - config = { - "\27LJ\2\2\3\0\0\2\0\f\0\0296\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\6\0'\1\b\0B\0\2\0016\0\0\0009\0\6\0'\1\t\0B\0\2\0016\0\0\0009\0\6\0'\1\n\0B\0\2\0016\0\0\0009\0\6\0'\1\v\0B\0\2\1K\0\1\0005hi LspDiagnosticsVirtualTextHint guifg='#10B981' Date: Fri, 6 Aug 2021 13:13:33 +0800 Subject: [PATCH 09/92] some fix --- lua/plugins/config/which-key.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua index 67c7e3e..0bedee2 100644 --- a/lua/plugins/config/which-key.lua +++ b/lua/plugins/config/which-key.lua @@ -166,7 +166,7 @@ wk.register({ ["la"] = {name = "action"}, ["ld"] = {name = "preview Definition"}, ["lr"] = {name = "rename"}, - ["ll"] = {name = "toggle line diagnostic"}, + ["ll"] = {name = "toggle diagnostic"}, ---------------------------------- ["gd"] = {name = "go to Definition"}, From ea2c190f4e79bc3168cb6ab08edcd7bbb9a761b0 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 6 Aug 2021 13:38:33 +0800 Subject: [PATCH 10/92] update about which-key --- lua/core/config/telescope.lua | 28 +++++++++++++++++++++++++ lua/languages/config/nvim-lspconfig.lua | 6 +++++- lua/plugins/config/which-key.lua | 8 ++++++- 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/lua/core/config/telescope.lua b/lua/core/config/telescope.lua index 9ea767a..4c91f97 100644 --- a/lua/core/config/telescope.lua +++ b/lua/core/config/telescope.lua @@ -41,3 +41,31 @@ vim.api.nvim_set_keymap( "lua require\'telescope.builtin\'.registers()>", {silent = true} ) + vim.api.nvim_set_keymap('n', 'gr', 'Telescope lsp_references', { + noremap = true, + silent = true + }) + vim.api.nvim_set_keymap('n', 'gI', 'Telescope lsp_implementations', { + noremap = true, + silent = true + }) + vim.api.nvim_set_keymap('n', 'gc', 'Telescope git_bcommits', { + noremap = true, + silent = true + }) + vim.api.nvim_set_keymap('n', 'gC', 'Telescope git_commits', { + noremap = true, + silent = true + }) + vim.api.nvim_set_keymap('n', 'gB', 'Telescope git_branches', { + noremap = true, + silent = true + }) + vim.api.nvim_set_keymap('n', 'gS', 'Telescope git_status', { + noremap = true, + silent = true + }) + vim.api.nvim_set_keymap('n', 'lq', 'Telescope quickfix', { + noremap = true, + silent = true + }) diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 0e42ac4..dfd6d51 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -106,7 +106,11 @@ local on_attach = function(client, bufnr) 'lua require(\'lspsaga.codeaction\').range_code_action()', {noremap = true, silent = true} ) - buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', { + buf_set_keymap('n', 'gr', 'Telescope lsp_references', { + noremap = true, + silent = true + }) + buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { noremap = true, silent = true }) diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua index 0bedee2..4efec3a 100644 --- a/lua/plugins/config/which-key.lua +++ b/lua/plugins/config/which-key.lua @@ -140,7 +140,7 @@ wk.register({ ["fg"] = {name = "live grep"}, ["fb"] = {name = "find buffers"}, ["fh"] = {name = "help tags"}, - ["fs"] = {name = "grep string"}, + ["fs"] = {name = "search cursor string"}, ---------------------------------- ["gb"] = {name = "Git Blame"}, @@ -149,6 +149,10 @@ wk.register({ ["gp"] = {name = "Git preview hunk"}, ["gs"] = {name = "Git stage"}, ["gu"] = {name = "Git unstage"}, + ["gc"] = {name = "Git buffer commits"}, + ["gC"] = {name = "Git commits"}, + ["gB"] = {name = "Git branchs"}, + ["gS"] = {name = "Git status"}, ---------------------------------- ["sb"] = {name = "search in buffer"}, @@ -167,10 +171,12 @@ wk.register({ ["ld"] = {name = "preview Definition"}, ["lr"] = {name = "rename"}, ["ll"] = {name = "toggle diagnostic"}, + ["lq"] = {name = "quickfix"}, ---------------------------------- ["gd"] = {name = "go to Definition"}, ["gD"] = {name = "go to Declaration"}, ["gr"] = {name = "go to Reference"}, ["gh"] = {name = "show information"}, + ["gI"] = {name = "go to implementation"}, }) From c4ecb00b9d1d4f351c883f2834bfc0ebeab18285 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 6 Aug 2021 14:08:34 +0800 Subject: [PATCH 11/92] add some style plugins --- lua/core/config/telescope.lua | 58 +- lua/core/init.lua | 41 +- lua/languages/config/nvim-lspconfig.lua | 10 +- lua/plugins/config/indent-blankline.lua | 1 + lua/plugins/config/nvim-transparent.lua | 22 + lua/plugins/config/which-key.lua | 9 + plugin/packer_compiled.lua | 848 ++++++++++++++---------- 7 files changed, 588 insertions(+), 401 deletions(-) create mode 100644 lua/plugins/config/nvim-transparent.lua diff --git a/lua/core/config/telescope.lua b/lua/core/config/telescope.lua index 4c91f97..1e77488 100644 --- a/lua/core/config/telescope.lua +++ b/lua/core/config/telescope.lua @@ -41,31 +41,33 @@ vim.api.nvim_set_keymap( "lua require\'telescope.builtin\'.registers()>", {silent = true} ) - vim.api.nvim_set_keymap('n', 'gr', 'Telescope lsp_references', { - noremap = true, - silent = true - }) - vim.api.nvim_set_keymap('n', 'gI', 'Telescope lsp_implementations', { - noremap = true, - silent = true - }) - vim.api.nvim_set_keymap('n', 'gc', 'Telescope git_bcommits', { - noremap = true, - silent = true - }) - vim.api.nvim_set_keymap('n', 'gC', 'Telescope git_commits', { - noremap = true, - silent = true - }) - vim.api.nvim_set_keymap('n', 'gB', 'Telescope git_branches', { - noremap = true, - silent = true - }) - vim.api.nvim_set_keymap('n', 'gS', 'Telescope git_status', { - noremap = true, - silent = true - }) - vim.api.nvim_set_keymap('n', 'lq', 'Telescope quickfix', { - noremap = true, - silent = true - }) +vim.api.nvim_set_keymap( + 'n', + 'gr', + 'Telescope lsp_references', + {noremap = true, silent = true} +) +vim.api.nvim_set_keymap('n', 'gI', 'Telescope lsp_implementations', { + noremap = true, + silent = true +}) +vim.api.nvim_set_keymap('n', 'gc', 'Telescope git_bcommits', { + noremap = true, + silent = true +}) +vim.api.nvim_set_keymap('n', 'gC', 'Telescope git_commits', { + noremap = true, + silent = true +}) +vim.api.nvim_set_keymap('n', 'gB', 'Telescope git_branches', { + noremap = true, + silent = true +}) +vim.api.nvim_set_keymap('n', 'gS', 'Telescope git_status', { + noremap = true, + silent = true +}) +vim.api.nvim_set_keymap('n', 'lq', 'Telescope quickfix', { + noremap = true, + silent = true +}) diff --git a/lua/core/init.lua b/lua/core/init.lua index 837764a..c00ab25 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -202,10 +202,14 @@ packer.startup(function(use) ----------NOTE:style layer----------- use { 'projekt0n/github-nvim-theme', - - --config = function() - --require'github-theme'.setup() - --end + config = function() + vim.api.nvim_set_keymap( + 'n', + 'tc1', + "lua require'github-theme'.setup()", + {silent = true} + ) + end, event = "BufRead" } use { @@ -219,17 +223,31 @@ packer.startup(function(use) vim.cmd("hi LspDiagnosticsVirtualTextError guifg='#db4b4b'") vim.cmd("hi LspDiagnosticsVirtualTextInformation guifg='#0db9d7'") vim.cmd("hi LspDiagnosticsVirtualTextHint guifg='#10B981'") - vim.api.nvim_command('highlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold') + vim.api.nvim_command('highlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold') - vim.api.nvim_command('highlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=bold') - vim.api.nvim_command('highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33') - vim.api.nvim_command('highlight default HopUnmatched guifg=#666666 ctermfg=242') + vim.api.nvim_command('highlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=bold') + vim.api.nvim_command('highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33') + vim.api.nvim_command('highlight default HopUnmatched guifg=#666666 ctermfg=242') + vim.api.nvim_set_keymap( + 'n', + 'tc2', + "colorscheme gruvbox-material", + {silent = true} + ) end, event = "BufRead" } use { 'sainnhe/everforest', requires = {"sainnhe/sonokai", "Th3Whit3Wolf/space-nvim"}, + config = function() + vim.api.nvim_set_keymap( + 'n', + 'tc3', + "colorscheme everforest", + {silent = true} + ) + end, event = "BufRead" } @@ -244,6 +262,13 @@ packer.startup(function(use) require 'plugins.config.which-key' end } + use { + --transparent function + 'xiyaowong/nvim-transparent', + config = function() + require 'plugins.config.nvim-transparent' + end + } use { --add line indent diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index dfd6d51..40538cc 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -106,10 +106,12 @@ local on_attach = function(client, bufnr) 'lua require(\'lspsaga.codeaction\').range_code_action()', {noremap = true, silent = true} ) - buf_set_keymap('n', 'gr', 'Telescope lsp_references', { - noremap = true, - silent = true - }) + buf_set_keymap( + 'n', + 'gr', + 'Telescope lsp_references', + {noremap = true, silent = true} + ) buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { noremap = true, silent = true diff --git a/lua/plugins/config/indent-blankline.lua b/lua/plugins/config/indent-blankline.lua index a17c660..ced10d1 100644 --- a/lua/plugins/config/indent-blankline.lua +++ b/lua/plugins/config/indent-blankline.lua @@ -1,2 +1,3 @@ vim.g.indent_blankline_filetype_exclude = [['help','dashboard','NvimTree','vista','sagahover']] vim.g.indent_blankline_use_treesitter = true +vim.api.nvim_set_keymap('n', 'ti', "IndentBlanklineToggle", {}) diff --git a/lua/plugins/config/nvim-transparent.lua b/lua/plugins/config/nvim-transparent.lua new file mode 100644 index 0000000..e9f12ec --- /dev/null +++ b/lua/plugins/config/nvim-transparent.lua @@ -0,0 +1,22 @@ +vim.api.nvim_set_keymap('n', 'tp', "TransparentToggle", {}) +vim.g.transparent_enabled = 0 +require("transparent").setup({ + enable = true, + + -- boolean: enable transparent + extra_groups = { + -- table/string: additional groups that should be clear + -- In particular, when you set it to 'all', that means all avaliable groups + + -- example of akinsho/nvim-bufferline.lua + --[[ "BufferLineTabClose", + "BufferlineBufferSelected", + "BufferLineFill", + "BufferLineBackground", + "BufferLineSeparator", + "BufferLineIndicatorSelected", ]] + }, + exclude = {}, + + -- table: groups you don't want to clear +}) diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua index 4efec3a..a8a8315 100644 --- a/lua/plugins/config/which-key.lua +++ b/lua/plugins/config/which-key.lua @@ -122,6 +122,7 @@ wk.register({ ["f"] = {name = "+Find"}, ["g"] = {name = "+Git"}, ["s"] = {name = "+Search"}, + ["t"] = {name = "style"}, ["j"] = {name = "jump"}, ["l"] = {name = "+Language"}, ["w"] = {name = "+Workspace"}, @@ -157,6 +158,14 @@ wk.register({ ---------------------------------- ["sb"] = {name = "search in buffer"}, + ---------------------------------- + ["ti"] = {name = "toggle indent line"}, + ["tp"] = {name = "toggle transparent"}, + ["tc"] = {name = "change theme"}, + ["tc1"] = {name = "change to github style"}, + ["tc2"] = {name = "change to gruvbox-material"}, + ["tc3"] = {name = "change to everforest"}, + ---------------------------------- ["jw"] = {name = "jump to word"}, ["jl"] = {name = "jump to line"}, diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index e608555..4bca47b 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,381 +1,507 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) + end + end - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) end - end - -local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) return a[2] > b[2] end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end + local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) + return a[2] > b[2] + end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end - _G._packer = _G._packer or {} - _G._packer.profile_output = results -end + _G._packer = _G._packer or {} + _G._packer.profile_output = results + end -time([[Luarocks path setup]], true) -local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" -if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str -end + time([[Luarocks path setup]], true) + local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" + local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" + if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str + end -if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern -end + if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern + end -time([[Luarocks path setup]], false) -time([[try_loadstring definition]], true) -local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) - end) - end - return result -end + time([[Luarocks path setup]], false) + time([[try_loadstring definition]], true) + local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s)) + if not success then + vim.schedule(function() + vim.api.nvim_notify( + 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, + vim.log.levels.ERROR, + {} + ) + end) + end + return result + end + + time([[try_loadstring definition]], false) + time([[Defining packer_plugins]], true) + _G.packer_plugins = { + ["accelerated-jk"] = { + config = { + "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { + "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" + }, + ["compe-tabnine"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" + }, + ["dashboard-nvim"] = { + config = { + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" + }, + ["dial.nvim"] = { + config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" + }, + everforest = { + config = { + "\27LJ\2\2{\0\0\5\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\1\3\0'\2\4\0'\3\5\0005\4\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { + "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + config = { + "\27LJ\2\2\1\0\0\5\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\1\3\0'\2\4\0'\3\5\0005\4\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { + "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { + "\27LJ\2\2\a\0\0\5\0\23\00096\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\6\0'\1\b\0B\0\2\0016\0\0\0009\0\6\0'\1\t\0B\0\2\0016\0\0\0009\0\6\0'\1\n\0B\0\2\0016\0\0\0009\0\6\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\15\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\16\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\17\0B\0\2\0016\0\0\0009\0\f\0009\0\18\0'\1\19\0'\2\20\0'\3\21\0005\4\22\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi5hi LspDiagnosticsVirtualTextHint guifg='#10B981' Date: Fri, 6 Aug 2021 16:08:11 +0800 Subject: [PATCH 12/92] improve startup time by remove system clipboard --- lua/core/config/basic-configuration.lua | 3 +- lua/core/config/telescope.lua | 4 +- lua/core/init.lua | 9 +- lua/plugins/config/which-key.lua | 1 + plugin/packer_compiled.lua | 850 ++++++++++-------------- 5 files changed, 374 insertions(+), 493 deletions(-) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index cba0035..269b6de 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -25,7 +25,8 @@ global_local = { encoding = "utf-8", viewoptions = "folds,cursor,curdir,slash,unix", sessionoptions = "curdir,help,tabpages,winsize", - clipboard = "unnamedplus", + -- clipboard = "unnamedplus", + -- HINT: neovim not support system clipboard wildignorecase = true, wildignore = ".git,.hg,.svn,*.pyc,*.o,*.out,*.jpg,*.jpeg,*.png,*.gif,*.zip,**/tmp/**,*.DS_Store,**/node_modules/**,**/bower_modules/**", backup = false, diff --git a/lua/core/config/telescope.lua b/lua/core/config/telescope.lua index 1e77488..f541463 100644 --- a/lua/core/config/telescope.lua +++ b/lua/core/config/telescope.lua @@ -36,8 +36,8 @@ vim.api.nvim_set_keymap( {silent = true} ) vim.api.nvim_set_keymap( - "i", - "", + "n", + "\\p", "lua require\'telescope.builtin\'.registers()>", {silent = true} ) diff --git a/lua/core/init.lua b/lua/core/init.lua index c00ab25..936709c 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -260,14 +260,16 @@ packer.startup(function(use) "folke/which-key.nvim", config = function() require 'plugins.config.which-key' - end + end, + event = "BufWinEnter" } use { --transparent function 'xiyaowong/nvim-transparent', config = function() require 'plugins.config.nvim-transparent' - end + end, + event = "BufWinEnter" } use { @@ -275,7 +277,8 @@ packer.startup(function(use) 'lukas-reineke/indent-blankline.nvim', config = function() require 'plugins.config.indent-blankline' - end + end, + event = "BufWinEnter" } use { --git plugin diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua index a8a8315..2596a86 100644 --- a/lua/plugins/config/which-key.lua +++ b/lua/plugins/config/which-key.lua @@ -127,6 +127,7 @@ wk.register({ ["l"] = {name = "+Language"}, ["w"] = {name = "+Workspace"}, ["\\e"] = {name = "new buffer"}, + ["\\p"] = {name = "register paste"}, ---------------------------------- ["aa"] = {name = "Welcome page"}, diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 4bca47b..be9f80f 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,507 +1,383 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) - end - end - local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) - return a[2] > b[2] - end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end + local time + local profile_info + local should_profile = true + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) end + end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end - _G._packer = _G._packer or {} - _G._packer.profile_output = results - end - - time([[Luarocks path setup]], true) - local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" - local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" - if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str - end - - if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern - end - - time([[Luarocks path setup]], false) - time([[try_loadstring definition]], true) - local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify( - 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, - vim.log.levels.ERROR, - {} - ) - end) - end - return result - end - - time([[try_loadstring definition]], false) - time([[Defining packer_plugins]], true) - _G.packer_plugins = { - ["accelerated-jk"] = { - config = { - "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" - }, - ["barbar.nvim"] = { - config = { - "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" - }, - ["compe-tabnine"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" - }, - ["dashboard-nvim"] = { - config = { - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" - }, - ["dial.nvim"] = { - config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" - }, - everforest = { - config = { - "\27LJ\2\2{\0\0\5\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\1\3\0'\2\4\0'\3\5\0005\4\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" - }, - ["friendly-snippets"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" - }, - ["galaxyline.nvim"] = { - config = { - "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" - }, - ["github-nvim-theme"] = { - config = { - "\27LJ\2\2\1\0\0\5\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\1\3\0'\2\4\0'\3\5\0005\4\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" - }, - ["gitsigns.nvim"] = { - config = { - "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" - }, - ["gruvbox-material"] = { - config = { - "\27LJ\2\2\a\0\0\5\0\23\00096\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\6\0'\1\b\0B\0\2\0016\0\0\0009\0\6\0'\1\t\0B\0\2\0016\0\0\0009\0\6\0'\1\n\0B\0\2\0016\0\0\0009\0\6\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\15\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\16\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\17\0B\0\2\0016\0\0\0009\0\f\0009\0\18\0'\1\19\0'\2\20\0'\3\21\0005\4\22\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi5hi LspDiagnosticsVirtualTextHint guifg='#10B981'colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\bvim\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + config = { "\27LJ\2\2\1\0\0\5\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\1\3\0'\2\4\0'\3\5\0005\4\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi\bvim\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { "\27LJ\2\2\a\0\0\5\0\23\00096\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\6\0'\1\b\0B\0\2\0016\0\0\0009\0\6\0'\1\t\0B\0\2\0016\0\0\0009\0\6\0'\1\n\0B\0\2\0016\0\0\0009\0\6\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\15\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\16\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\17\0B\0\2\0016\0\0\0009\0\f\0009\0\18\0'\1\19\0'\2\20\0'\3\21\0005\4\22\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi5hi LspDiagnosticsVirtualTextHint guifg='#10B981' Date: Fri, 6 Aug 2021 16:18:09 +0800 Subject: [PATCH 13/92] improve startup time --- lua/core/config/basic-configuration.lua | 8 ++++- lua/core/init.lua | 9 ++++++ plugin/packer_compiled.lua | 41 +++++++++++++++---------- 3 files changed, 41 insertions(+), 17 deletions(-) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index 269b6de..3be209f 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -25,8 +25,9 @@ global_local = { encoding = "utf-8", viewoptions = "folds,cursor,curdir,slash,unix", sessionoptions = "curdir,help,tabpages,winsize", + -- clipboard = "unnamedplus", - -- HINT: neovim not support system clipboard + -- HINT: neovim not support system clipboard wildignorecase = true, wildignore = ".git,.hg,.svn,*.pyc,*.o,*.out,*.jpg,*.jpeg,*.png,*.gif,*.zip,**/tmp/**,*.DS_Store,**/node_modules/**,**/bower_modules/**", backup = false, @@ -87,6 +88,11 @@ global_local = { winblend = 10, spell = true, spelllang = "en_us,cjk", + + -- optimize startup time + shell = "/bin/bash", + shadafile = "", + lazyredraw = true } buffer = { autoread = true, diff --git a/lua/core/init.lua b/lua/core/init.lua index 936709c..9465877 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -58,6 +58,15 @@ packer.startup(function(use) vim.g.rooter_silent_chdir = 1 end } + use { + --provide a single command that deletes the current buffer + 'norcalli/nvim-colorizer.lua', + config = function() + require 'colorizer'.setup() + end, + + -- event = "BufWinEnter" + } --use{ --a surround text object plugin TODO: open this plugin later --'blackcauldron7/surround.nvim', diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index be9f80f..353accb 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -11,7 +11,7 @@ local no_errors, error_msg = pcall(function() local time local profile_info - local should_profile = true + local should_profile = false if should_profile then local hrtime = vim.loop.hrtime profile_info = {} @@ -164,6 +164,11 @@ _G.packer_plugins = { loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" }, + ["nvim-colorizer.lua"] = { + config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" + }, ["nvim-compe"] = { after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe/after/plugin/compe.vim" }, config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.nvim-compe\frequire\0" }, @@ -210,7 +215,7 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" }, ["nvim-treesitter"] = { - after = { "nvim-ts-autotag", "nvim-ts-rainbow", "nvim-treesitter-textobjects", "spellsitter.nvim" }, + after = { "nvim-treesitter-textobjects", "nvim-ts-autotag", "nvim-ts-rainbow", "spellsitter.nvim" }, loaded = true, only_config = true }, @@ -324,10 +329,6 @@ _G.packer_plugins = { } time([[Defining packer_plugins]], false) --- Config for: nvim-lspconfig -time([[Config for nvim-lspconfig]], true) -try_loadstring("\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") -time([[Config for nvim-lspconfig]], false) -- Config for: nvim-treesitter time([[Config for nvim-treesitter]], true) try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") @@ -336,14 +337,22 @@ time([[Config for nvim-treesitter]], false) time([[Config for dial.nvim]], true) try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") time([[Config for dial.nvim]], false) --- Config for: kommentary -time([[Config for kommentary]], true) -try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") -time([[Config for kommentary]], false) +-- Config for: nvim-colorizer.lua +time([[Config for nvim-colorizer.lua]], true) +try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") +time([[Config for nvim-colorizer.lua]], false) -- Config for: vim-rooter time([[Config for vim-rooter]], true) try_loadstring("\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") time([[Config for vim-rooter]], false) +-- Config for: accelerated-jk +time([[Config for accelerated-jk]], true) +try_loadstring("\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") +time([[Config for accelerated-jk]], false) +-- Config for: kommentary +time([[Config for kommentary]], true) +try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") +time([[Config for kommentary]], false) -- Config for: neoscroll.nvim time([[Config for neoscroll.nvim]], true) try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") @@ -352,10 +361,10 @@ time([[Config for neoscroll.nvim]], false) time([[Config for nvim-autopairs]], true) try_loadstring("\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") time([[Config for nvim-autopairs]], false) --- Config for: accelerated-jk -time([[Config for accelerated-jk]], true) -try_loadstring("\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") -time([[Config for accelerated-jk]], false) +-- Config for: nvim-lspconfig +time([[Config for nvim-lspconfig]], true) +try_loadstring("\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") +time([[Config for nvim-lspconfig]], false) -- Load plugins in order defined by `after` time([[Sequenced loading]], true) vim.cmd [[ packadd lspsaga.nvim ]] @@ -369,9 +378,9 @@ vim.cmd [[augroup packer_load_aucmds]] vim.cmd [[au!]] -- Event lazy-loads time([[Defining lazy-load event autocommands]], true) -vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'galaxyline.nvim', 'dashboard-nvim', 'which-key.nvim', 'barbar.nvim', 'vista.vim', 'vim-sayonara', 'nvim-toggleterm.lua', 'telescope.nvim', 'nvim-tree.lua', 'nvim-transparent'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] +vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'galaxyline.nvim', 'dashboard-nvim', 'which-key.nvim', 'barbar.nvim', 'vim-sayonara', 'nvim-tree.lua', 'telescope.nvim', 'nvim-toggleterm.lua', 'vista.vim', 'nvim-transparent'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'compe-tabnine', 'vim-vsnip-integ', 'vim-vsnip'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] -vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'github-nvim-theme', 'todo-comments.nvim', 'everforest', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] +vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'github-nvim-theme', 'todo-comments.nvim', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] time([[Defining lazy-load event autocommands]], false) vim.cmd("augroup END") if should_profile then save_profiles() end From 742938f570eef4406469002f45b2742208547904 Mon Sep 17 00:00:00 2001 From: JryChn Date: Sat, 7 Aug 2021 18:42:10 +0800 Subject: [PATCH 14/92] common fix and add rome server for js --- lua/core/config/galaxyline.lua | 2 +- lua/languages/config/nvim-lspconfig.lua | 1 + plugin/packer_compiled.lua | 72 ++++++++++++------------- 3 files changed, 38 insertions(+), 37 deletions(-) diff --git a/lua/core/config/galaxyline.lua b/lua/core/config/galaxyline.lua index a17d1a3..d31d6bd 100644 --- a/lua/core/config/galaxyline.lua +++ b/lua/core/config/galaxyline.lua @@ -1,7 +1,7 @@ local gl = require("galaxyline") local gls = gl.section -gl.short_line_list = {"NvimTree", "Vista", "toggleterm"} +gl.short_line_list = {"NvimTree", "vista", "toggleterm"} local colors = { bg = "#1e222a", diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 40538cc..ce3223b 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -150,6 +150,7 @@ local lspservers = { "bash", "css", "html", + "rome", "json", "python", "rust", diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 353accb..7f47094 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -44,8 +44,8 @@ local function save_profiles(threshold) end time([[Luarocks path setup]], true) -local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" +local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" if not string.find(package.path, package_path_str, 1, true) then package.path = package.path .. ';' .. package_path_str end @@ -70,12 +70,12 @@ time([[try_loadstring definition]], false) time([[Defining packer_plugins]], true) _G.packer_plugins = { ["accelerated-jk"] = { - config = { "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" }, + config = { "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" }, ["barbar.nvim"] = { - config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" }, + config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" @@ -87,18 +87,18 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" }, ["dashboard-nvim"] = { - config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" }, + config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" }, ["dial.nvim"] = { - config = { "\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0" }, + config = { "\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" }, everforest = { - config = { "\27LJ\2\2{\0\0\5\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\1\3\0'\2\4\0'\3\5\0005\4\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\bvim\0" }, + config = { "\27LJ\1\2{\0\0\5\0\a\0\t4\0\0\0007\0\1\0007\0\2\0%\1\3\0%\2\4\0%\3\5\0003\4\6\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\bvim\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" @@ -108,43 +108,43 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" }, ["galaxyline.nvim"] = { - config = { "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, + config = { "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" }, ["github-nvim-theme"] = { - config = { "\27LJ\2\2\1\0\0\5\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\1\3\0'\2\4\0'\3\5\0005\4\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi\bvim\0" }, + config = { "\27LJ\1\2\1\0\0\5\0\a\0\t4\0\0\0007\0\1\0007\0\2\0%\1\3\0%\2\4\0%\3\5\0003\4\6\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi\bvim\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" }, ["gitsigns.nvim"] = { - config = { "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, + config = { "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" }, ["gruvbox-material"] = { - config = { "\27LJ\2\2\a\0\0\5\0\23\00096\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\6\0'\1\b\0B\0\2\0016\0\0\0009\0\6\0'\1\t\0B\0\2\0016\0\0\0009\0\6\0'\1\n\0B\0\2\0016\0\0\0009\0\6\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\15\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\16\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\17\0B\0\2\0016\0\0\0009\0\f\0009\0\18\0'\1\19\0'\2\20\0'\3\21\0005\4\22\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi5hi LspDiagnosticsVirtualTextHint guifg='#10B981'\0\2\0014\0\0\0007\0\6\0%\1\b\0>\0\2\0014\0\0\0007\0\6\0%\1\t\0>\0\2\0014\0\0\0007\0\6\0%\1\n\0>\0\2\0014\0\0\0007\0\6\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\15\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\16\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\17\0>\0\2\0014\0\0\0007\0\f\0007\0\18\0%\1\19\0%\2\20\0%\3\21\0003\4\22\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi5hi LspDiagnosticsVirtualTextHint guifg='#10B981'\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" }, ["indent-blankline.nvim"] = { - config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" }, + config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" }, kommentary = { - config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" }, + config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" }, @@ -155,23 +155,23 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" }, ["neoscroll.nvim"] = { - config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" }, + config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" }, ["nvim-autopairs"] = { - config = { "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, + config = { "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" }, ["nvim-colorizer.lua"] = { - config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" }, + config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" }, ["nvim-compe"] = { after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe/after/plugin/compe.vim" }, - config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.nvim-compe\frequire\0" }, + config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.nvim-compe\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe", @@ -197,19 +197,19 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-nonicons" }, ["nvim-toggleterm.lua"] = { - config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" }, + config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" }, ["nvim-transparent"] = { - config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" }, + config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" }, ["nvim-tree.lua"] = { - config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" }, + config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" @@ -268,13 +268,13 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" }, ["telescope.nvim"] = { - config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" }, + config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" }, ["todo-comments.nvim"] = { - config = { "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" }, + config = { "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" @@ -288,12 +288,12 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" }, ["vim-rooter"] = { - config = { "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, + config = { "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" }, ["vim-sayonara"] = { - config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" }, + config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" @@ -315,13 +315,13 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" }, ["vista.vim"] = { - config = { "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" }, + config = { "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" }, ["which-key.nvim"] = { - config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" }, + config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" @@ -331,39 +331,39 @@ _G.packer_plugins = { time([[Defining packer_plugins]], false) -- Config for: nvim-treesitter time([[Config for nvim-treesitter]], true) -try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") +try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") time([[Config for nvim-treesitter]], false) -- Config for: dial.nvim time([[Config for dial.nvim]], true) -try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") +try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") time([[Config for dial.nvim]], false) -- Config for: nvim-colorizer.lua time([[Config for nvim-colorizer.lua]], true) -try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") +try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") time([[Config for nvim-colorizer.lua]], false) -- Config for: vim-rooter time([[Config for vim-rooter]], true) -try_loadstring("\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") +try_loadstring("\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") time([[Config for vim-rooter]], false) -- Config for: accelerated-jk time([[Config for accelerated-jk]], true) -try_loadstring("\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") +try_loadstring("\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") time([[Config for accelerated-jk]], false) -- Config for: kommentary time([[Config for kommentary]], true) -try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") +try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") time([[Config for kommentary]], false) -- Config for: neoscroll.nvim time([[Config for neoscroll.nvim]], true) -try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") +try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") time([[Config for neoscroll.nvim]], false) -- Config for: nvim-autopairs time([[Config for nvim-autopairs]], true) -try_loadstring("\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") +try_loadstring("\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") time([[Config for nvim-autopairs]], false) -- Config for: nvim-lspconfig time([[Config for nvim-lspconfig]], true) -try_loadstring("\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") +try_loadstring("\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") time([[Config for nvim-lspconfig]], false) -- Load plugins in order defined by `after` time([[Sequenced loading]], true) From c7b1eac61b764a8eacc02f237eade43d44f600ed Mon Sep 17 00:00:00 2001 From: JryChn Date: Sat, 7 Aug 2021 20:07:31 +0800 Subject: [PATCH 15/92] change ReadMe file --- README.md | 39 ++++++++++++++++++++++++++++++++++++- ScreenCut/github-theme.PNG | Bin 0 -> 117186 bytes ScreenCut/gruvbox.PNG | Bin 0 -> 151217 bytes ScreenCut/transparent.PNG | Bin 0 -> 789374 bytes ScreenCut/which-key.PNG | Bin 0 -> 117272 bytes 5 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 ScreenCut/github-theme.PNG create mode 100644 ScreenCut/gruvbox.PNG create mode 100644 ScreenCut/transparent.PNG create mode 100644 ScreenCut/which-key.PNG diff --git a/README.md b/README.md index 357a6cd..71951b4 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,39 @@ # ModuleVim -A NeoVim configuration +A NeoVim configuration with original LSP support([lspconfig](https://github.com/neovim/nvim-lspconfig)) and some +fashion plugins + +## snippets +gruvybox theme +![gruvybox](./ScreenCut/gruvbox.PNG) +github theme +![github](./ScreenCut/github-theme.PNG) +which-key +![which-key](./ScreenCut/which-key.PNG) +transparent style +![transparent](./ScreenCut/transparent.PNG) + +## features +- key hint.(support by [which-key]() ) +- easily change colorscheme(`SPC-t-c`) +- lazy load + + +## plugin table + +| function | plugin | +|--------------- | --------------- | +| statusline | galaxyline | +| tabline | barbar | +| file tree | nvim-tree | +| tags | vista | +| welcome page | dashboard-nvim | +| fuzzy finder | telescope | +| terminal support | nvim-toggleterm | + + +## support languages +For now, ModuleVim supports some common used languages, you can also add +language by `:LspInstall $language` + + +have fun diff --git a/ScreenCut/github-theme.PNG b/ScreenCut/github-theme.PNG new file mode 100644 index 0000000000000000000000000000000000000000..34c087c642501239f560cc3622847bd70e208a2c GIT binary patch literal 117186 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

`MM+U6U@%eJhqJA~*Rg5ek^I7}5btcauRZ!$ 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

4}jC((K|Lc^kclVXZG-Ep5E5 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�=Ve>EU=QO*dGYplIpu`5BI(#rRSbrR|9xjTm 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 NYr9{Ij(hyizW_w*uz&yn literal 0 HcmV?d00001 diff --git a/ScreenCut/transparent.PNG b/ScreenCut/transparent.PNG new file mode 100644 index 0000000000000000000000000000000000000000..581bccc64f7319ec16e12837221359fce9698485 GIT binary patch literal 789374 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%0DSFie1&8OII4qG zblpDRG?8YO|N7SLk%w&?Y*ubZVlyfjc|bFEam+2Ka!q+VKz@cwhfZyNGhlR`ia#U$ z*~#xRbSBPI5C(JW3iXatJSBL?Y-^YN2Fy8aGuP2Jo7Zlyp%^0}Efm((QqZoFM6E6q zt#sTFjKlqFm-Bt%)5Nq{PK*21cA(SR+yB%qjHiO#UaGk4SPLdh9HYA~0^&LM#Ljfa zfv{ln=E3OM5xLje&#tb?X^Wje_5|w`KwDA|K5S^ko4xZ$8L3P%ft*M3?%v>0S-J$< z1L!tOgub$xoM`&na*m)AI3a9Wm4Us7{QMpz%YdQqnw>9AHNo(pTxpI{PwVNYCo(Y z+++Sw4fTgfJOf}24)hm)(sTToJFsA2FNtT?^UQCxdsXGsGb16#ZuUEz@apg79N6F) zU3}#UF=RlxujTLnW4!wLjGkwfp$@5Iwr|D_>^&{xe?`SNpC>u`h>owU7Rq~ed^^3P zx9~FoPz%;Ct5OpS`V=W<{eJFls#k~eEXpJuXc*1)zU|*Qi_31`x zPXD?4xACeAjPJz=_Pkybz%$YFhw2NjrL*v;?qbSh+p5F zKAK6C56ZF#O5d>@Qzocrrjh4H5H3km$~q322a&GClZ|V1B8ow28Q2jj#WFF5j_&K0 ztKOWfYx+9sOWvNOOPgqbT_u7kbwk|0Pgv*0_jM!j$NZN0|!B3HILCO zt-D)aE+LpGlwS&`gAk{BR2)qAYhn8>rpkP;%EBZuLE6IXV%nP3=L<`KS*H5{TKM;cpchKso=}co^_|PsKmU9V&q8 z0A)+)T>xf-1&?u zEZn%@m0?d<0?CrVF@np%%Ryl#g=VysD{xyXH?@oKsHz`Uy@~hbCZ;`t4?u`a0 zWpQ;rnf=*8ZW}!%_OII2T`YH&|itsE%KP!?hN2 zP(-)lzlZzz`V;lxzC+{0YxTO-J^@Mf9#iATr9yZ)u*Bd>^GC@}hsr!i(2?!hHpUjXv2q({WpSje6)c;TtV;`br#6^qGC1Dtyr)MXPjmDBM6h+;7bQ8f%K zP=na*h*YGp{XtufHnMX&zOmD7URh1|pbb{q*@T$=Va41ws=w4{mchx~^bA)V8qU-n zw4^%ZmQlYS;Fb91?IVc=5wkz};hzkT4gFjX9?TxK`}XBDna(2XW<^{ufGe&nP@9tL zY!@f@w+l6}1>&&MlDN5Doy??`ms=IpkFDJ-SQl#FZ0L^V0(g2!aaZ^H8?ty@KBKIQ z>Ek4GG?tJ1p(vsMB5ajX5;l;uCqSS3FqvEFdKoRd8wJe?R(kp1WxP2dk^R4F$`8-} zU*rf6E@7eIBG4k&@!{u6<+i@OwZbDlbD95{Z(QH&As?7(rRs!8Mels-+_fD3mknlK zc5#tW6|Wss?3e3ZjMMvd5IW1I1?`n99rocFNH*%a4C6ZoD%|WWgZRv~KCymZm5;jS zew~2yRdNr$>5y=!55$#4Rk&wnp<`Wk%9A%)z4G)ib}0SRs2-1mcf=uiH(cjG7g2I6 z;9oGj&#?IfR*U^rf_DhkoVX2PrK`oSGzQ(Tkt~r}EON^9u^0Gaq+SVb5TJbBP?-Q5 z9$CXoSB{*TQ+fT^rY5wRd}EKqI<2Do*4@{_1Sa;!n%bg=)?gMSR+sa2f{*GhAp6~{ zdwt>9Kj^}!>;ZAo-h<}Yu8oy9A8)&jjC;5ECf75g%GWc3G`cq%Upoew2z8(+K8le; zK)iC?0F9{+1BBfymht&LXfWa^Kwrp^_Y+!qX28ycST&yD)Qr6mEzek`>*MV+})UdWiNtbbZ9=sPKJN$nvoqIf!{~z}&mHG-DgmRctkz?wcv&|vtgbv?G4s$+_ z<}k-?MTO>&B;+s=D#tN%p5!phSxy_~e4ZJzu^IP%_kI7dzpuxx?fP7w&+GkuKcB0X zfUJFXq?;!Pgq$m4&BkqVL_l)Gxicv8;Y(I~v9+bjKVM&Vmkc;tbHY7)Vo4T}DCm@+al}dETs==$_KgQ{`i8GQ^AG-cxRLKm z2MKCXrU8J^!QA;b_}Ov$X58{aogD*FpHP0a_O-EI*nE8Zq6F2_`p`Zc^Ix=p7OBp>a-#xaoXHm63UErT z|MXn#X0ngadM-3diy+#<7YaL{H}%o~vL$2|Zjj!}e~ER8v#xSg1IM?1^ zKW0y{9}^XFC^q&K_U9w!rK(ofX0sm=F5Lt)>)MkKtC6|cbmM~7n%!e$C5_q;f3QE& zL2h%Y_j0xv-_Uw zb5o5P311bf_>WR*el*C;c5Ml3G4H>x?VL0qGl#_c@!fSY6Mq8EE3VE0FN_-b&f$+C z9gCU@)NY?`->@GkgX3LB_*dan*6?|%T4*4g<1 zsJcxl%7Jv8JZ?;`2F7@aZTD_YYPWJDP3L{pYTxy>H4e|$Co4T}C1q}}r$4GxudEEP z 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

KIh3 zEzmxUL#|@25#5;IE|C>c2q+7T-TP15O5@AfaVB*kna|cMR>6N(y$*UZ8z8qUwQ3oI z<}L#p6Ao57QTHk6B6JQ7i9PV)<=e0OzPw^JH)Z_+FpT<2F}B}YS0S_fl@n_{#qNF> zcii5zGH-y1-QS0kd1zmPdB8N{@A7i&u42)Z(3OQuEthcdt|HeE>iNpLjV#3xEGq*fJz-4s^!vPd6(deSrB znrD?DaXbc1b4n;`pNh(w`nFv9E!_+Zf2bY0yXs4dl#VIh12?&0w*GIhVq?`_ZxDIX zG9bS+Y@_vGn5x5lkBP@wjpR~wZf}C5-z$Ufa0AxA`U2h%&$E+<`Hk&N#0zR(f@EdDOf<8b6?dn|y>l+QB8xy}QVU_rCZ=fF4xTZ z_ICKPSV`nOMq}G-!#5ENe$JWcz?oAzAB04yRWcH#b{WcAp@^yL<1hB`{<9sv>|)Cw zBN{~&4773rg&+@@&d}e%1mszntmu_|SiC-U0eEMuJvDSc$yOjk$ZyC3St>y+c1`D) z>tdW!XjbK(L0Xub7D}u7UIF^NC>*F2fCG_U5ekPwlPqgLTRNU75je=^66!|Z); z^(oRONs;8jW(h!~FLv%j7fMd!|J(0lW>p!KaEH+t0nTwfpc*I}b5yb>PA~A8jkB+Z z7H}dt2gLOB=nO@#Olfz7-m&v#U4=J{@mKd9>VZ6-smX9*9HI!sp+48JRD&v|3(*mJqL96kO;HtX`* zeHT=6B{OQa-wAsAaQ!1+gwXQSn(q5oYZev75wiY+N1s^WyPFR}e(tyVcg^cX(06BZ-s;u9&-Fh{Hx8T|>LbU2bic*h z1~^-n`IuQF#(4b0V)v1L9{;d%e)>HbaIo?scy9(g;?`=_;AhAht^wo^ggS*O^J|-n zF33Mx^#_VxQF|MSu4KhHA|W5VeTBspwN7sUQR-8~&TmFvz;V0%`C?90H# zvR9tv8-YWd_&o%#Ov&lg4`?PRc(1CniXY9Kq*>s*@!LwFs+;j@9?GD+;unK<~=Zk4^|r zfR>MCd@Ow1cy%hc&$lXn$^aHivCe(^Vn{vUWaH&$*>lvx|4-MA|G;{u)^X7Cybb$3 z=z%4CN5P`3=^#B!!&9QF2VdWzb%cF6qT7u*WXpBdnwYmm{(JfTQUEX{8 zX)5<~F}XdGurIBbU0+SHEa)Q@)i9X7w!ROieEKKJ{nDjoY~=|ly58mmfjJvqZa}bk zSacAUJnUQHvGy{|V@9}gNWtqoxYEOpWxr8-O|QY-(W+6?M=nj`t=$y6-^Ss9?&cj? zx6S-h$J{-dWGV=hKi?7mBBB#Gp9A4B`XI@DkAzgFJu5OvIL+6FRw{2!Ierjx=l&0l z4%-oO3-$hOUc(9ChS3l9-Afm>0e7*dXva^g9rZe7`1$aIlZO<%4jqf2UHtFjCGRs= z6E0l+^v{C_XRdxaThx8FD5&DKNyXCrcqfwz2c7kGP1(**rxogC6=oi+n+~u0mYTWD z_>EBLpvM8A270BtWv2E9BmAplL1|dvm{v8TGU_)CLwZKt2;Du{D$QfBYuS0@g2K&R z1#5s)sRyM9y~V z5wvzN@)|0lPDEwdh0_kPgFX7#h~lvDmR+Rymk6Sj(_@Rk?0^`&_JTw zRl+?n&cnL#@8?1$i4yn09(NCR($`07p5{_HjF}&*=ryZsSNEW0%30qpr0Q`~8P(_9Lna1_Kf5>Fc2G$P*|}-3 zycHd)uUKD~6!E+jEbqU!_-i?;HA9A)^?fi<9PB^_%JARlcy8Zh+RyJe8A;|r<_oUH zcngoes&CKfYl=EAMAG}~FEF8}!+$es%SL1KfmMtJ5E5M?of7O`XqQE?atW3O1BDjF z2~6vsS^CHC*tv~6K1?;O0zAg{0)Fm`p;U!fpGZm<0*;G;dc$v?!)J z_EB`;)Z6JUTvy%k&?6p`mDVvu4Bfzcmgc(b1t!bhb|Nyl;*O=qP~D1A3Y6Y@f#9jf zY4lTWSYT1F;Ul<5)TCmfu1_uW*&qujjzOaDZr!}`%at9DlzoU|_BbW27Z0EcFl-~d zlD5BfmFy=8jw2L55Vptk-EcRn6%C|!v;AV;EjU`#7{A@XL+iBhg(Z8@(-HC04z6PM>Wk3WpHST@3^CU)jb_lvdrzYPb_PE!Rs z*_OaS_|o{uEhN^S*QiHOfCae$dKv5c%bwWG0?DfX-g@3rWBp_S#O*SgzDX*40aA0Zhs=#OFy20Gc zBu<#yULSsrXXY!qP6bS-$_206wLkAvDHTRHp9ThLHqrZP3J+RH>r#KBy$FFT0x>*1 ztqj3LCNefrfFv0&qi@fy46f9@9=A9xY7d z!d0Ii0Oh_4>b)j;*cVVgeqnojOQa_XnVECvk_(5!8W~5b&zI=H3%y#@y6Pk#GnV>e zM>$EkNWLlcEOU@|jRa)$-s=<_@fh@EXZ%Qw>-Q}U470^||Id8Y7#i{zt8Lgv=WcHt zJY@A6XURSKFN_<7dI&_2RTsq&hJ8XdQM6-&?MLw)rE8H;aYzc}D9A>^XNj`_1Jo*s z&mi@D+*y%?Jzri&V<&T!9kOPvC~jhN=D+i8$wyS}?sdO6!rOCM?43O_QkNJc@U7wP zqH%*vL9D%9=rPOY9BL$k@M6DNp`~4GiEq+n?%0c}QNg@dkE_HQo|=L4uodi~0htF; zPB}5RuRE%V#uKt#1U$#E;XWb`OS<(E@4h;GeEI_fHP8(ebpsTVZ>rr4BfHVZ?_qL_Tgko#$p(_u0k5s%Z97xb1e4X9jv`zA0E++-; zduo5<+z(UH`39Se54rAm7KM3ov~AB0Mr|iI4P(u3jk7aE7|znT6QuDy`iXXX!+1T- zl)$Y@!xg_S`lJc{DNDEKxDQ~6?fsU}c8s*Bi>~aYUNZv>m3X}w`VKPOI(UcqV^+AZHiP6dorvm(Ap_!*iV&deD;HojASWxRvV#B3i+ z{MFbz4)qZ=`>-b;a6Ac01H`V}>U=ps0^*fwmiX=4l^6CP4ZiVpY!54-pw{^7KbDBy z9-a{-1;__3_x?0Bs{peUmtf{o8)I)dkz~8Ms_2b~6UqW*N1~0uNokGO=F&pfqPpI0 z>~E%G1bfv(Gi&u2#gyyoT&9(g)7a?2H@#=)8Ztq)527NeugrZIO|JN z;eLW5y*MU>`<8l}bYCW=0XA}5!Qz=oEv(wBnz_zgd)viv9 zfK{?i6{sMqysb_kD|;6R`&^&rEknh?4 zoFeNo4`aM`x-fL5Pn6B$KuY+OOHl)Kc}rk3(KXPme8tx*iY#xcUld%G_9uP)@nnZA zMak~ofrm49F4J#Tj`(T-ycQSJez*V=_{%JQOXbxBmeMQogPU)BO2FSS(C{+h#phr{W16Ae zyY6co$%xE9B?j@;T9>JNkMl{flYf>|%Vhmx2y%S%mZ+C=%!6Eaj z9nmT~PaadBi`02_$EXHF9d08ITHy5(*P~kk8y4#nfcFcss@t?+(#gTt;AXqh9x(P9 z6`Ig4FeS4X8AZG8Smo;8_{QUI$@{B{X1tP5`2i3Y}8un*4iRD7E=^^5KQlUgUl5Ej~Z0FxBpkN;+T+)q1>io93iD8ZbU z*`!Fn-ZEWXaIp(JT2hbkL9AjjnUH7Y;I&=ZSWAJW`?VSB(LNCQf5-U(PPy*)TD^Ks zI)i&1uMf)1cP@C{s*;-Za72xF7wYZOx}l>OlOTM-_*6juTmJR`5>!wou)<3nXa89J zW;9M)N;x)+1@~QU*?v}XzNcRO?h?gC3!3sD-2SJ;vx8A%W|30^e~*L+qQu&&j$mYK zez`2f_wc%tUY-1uVny6kT*vXv@|7h#t0r{^^f7!Z4*h$e{wA7dnj85+qnV#s*VF=+ z?i#HPwhJ9XFCh8+ePXA@mn?iTg}jwt9}TWK#>y%Z)OrtIw!IU(^+Ptaiggne&-#w+ zvD3OxL;G2{qdq`y{lU64=)8YLMLTLLc^Cik#7pmb$-VVG38@m;P%%--bQtm zL^d}7Gw+*u+5!B|0=Pv5%9uby7~$3!A2a)Nfjhq{0(f*XZRCkY7y$ZLk`3_mlJlF< zfbfmIJCq17QkwcE$7$BxJAtGsX}36ydp;%Ljd|195CjRAY;DMkES#D=sM(3aXfe*B!UGfz+G2g}AyUzC-Kc7~ly0KbG(}6`v zS8FN+QxM0xE_?{?8yQ@^Mo`rts*@7u=%->Q$Bo!8auku6NIId3`Ds-S1GDds4F*5cU=zjP5iuqQ0FKxK!Q4R(x7j9aR{nbw%TDx_lHM zUjsfD?z_}w$k{44o~3Eeh|j;$%BqEXzX!9Fn(rPmunC$tz5RCl*ilT1fHdFbBdLdW zmm;2;6G}Kd-mH>k_UYKc_&VivQ+!(zHtA;F`xCQOqn~2B+u&(PRNCyUebIJ&#cntrKxwt!$ZAdHeS+zHwY+>*a}#`qO3N9i@gf3}L~7h$(398f9-*|NA!@8^&i z`pE~g=9teGP^%=E`pVt|xhLvJFm8oRgZvmZ<&%&Wp&%KdMD~SYuarmrVKkRr`cVnn zBrb>d=lKuogWLAq`4hj>w_#r#GI~#xUI}0N#SvFnYHQ^aulum3LLwb>KLsb;G1qeH zanf(Wd=WV(WKR|TT41wi)vK-IKZyj4o>iw;RUcm8Q-{)%}cH-BW)xtM(7Hsnys? zdJZ~O59j0;A545*DN7P~tz$+|?}Cel+{c~TvJ38XB?v_EbI@3&mm({rM1#HpM`wE|WBEo9iI17@2d_!{3&z6`q zU7x_&?HfYFK!rA&k>%S~b~IY!#euX?#6L@U5ZX2O#5Tt*)w|14jUMrZkVsTp2drfA zs!*`8XG8qk{(eO;fAG@VR-rNd)q-Y6ce%?#gt=hWsXf+-igQqiVvxk3(K%GaiU33x zydx!{^�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

>>lE z%~M0twqC;U4FH|lF8`~-^W&o;@PbjbmMIsS!=RKCeVxOE+MPA7LKFO2oW6Zdd^Y0L z!@5If<80WeQ!cW}qqv#~uk7${(?ty*t|>N)oGAHq*9sd{Ep2VLMdD+B2^1ba)ie__ zvlaFY>7_p&xE?d}@?b8A3*{1c-3F{(gS*H^nb>)p&wYeEP&{%wsLPL(JQ2y$Cg1eA z_Aa@I5O^V?PkkUGRleG-zd=1AwS8QyW5i;8M=$ z-m=!T(RlvD#dtQw{4mwNL$>4mjg=)GOk7dY9DO0EVTQ5lR|K6P93}f9`abG3K!u-` z{m31&PPcgZ>wcf~#FoazQ9hMb{`6MKCJg8uaFa@8uPcd0WlV|Yn;GpS<*+J|6GG11 z;$Fmm=W=-v!^+{IiH`{UZk}b)I$AXe-}Y}gzHJrLq6s{+%&$V?(uXQEUTy=m8iZe4 zqV5OSmpJBQ6EaWKRbzTjf>Y6)7uU~(FTb?)bzuiDZku{^RBx0H4f{TVX-}i{l>IZo zYWkzaYG+NGah++*raN)Q^^E@i0?blA1MocgTlS1xQ6U;HqhIM3F|Phj`hI1IX^ zUP=GB^$(Y-yOS#7$ArkNh3oqCqJ-jo4wt0>4`81Q1<@Uon(}Rhaq#1gy$rXsJcq#$niGLHWVQWk^WJ#>t&JTJ(vnt$qZ&3Ux%G>2Sf?Q-;J@xd$}qEVodsFU>vn2dd7g5yYVuEp1q#`ne==zO z^UITzm)Tf8lgqX@eaZhWi4}q30!@@w%-m>`;PnbyFaBQ?t8?kg+Ml=^;bYL3kJ@Cs zKGOv4n}V~iZ*$Q$CYSBWOQ8#g<1r!>>+9Q6xVoKg&7FoK8-Lvx+6>ZNg_CRR+E~(V zck`G`+fU|mhb7EU;ru3{jO>di>O#bql&{Y3mP^L@LH);3oK6UN0~fl_KR?|IKI1$F zb;IMhgKiFSa@BA7(j^$~_)_`&!;oy=A4-LlV380y&Cj-D>Y07T6iTJe*QLq*hQH93 z)vkulNg{Tz;7Tn1*1~4<*}0^UA_{)10|xeH`FD{R-7r{^K8Oho5J8y7KapIl$@z6k zYv#7T(ej_#9w(@Lb=#ifTj5@kO+!xKB~*d?o#RA+=SQ0X3e7_%K=%_X;(~xT72cLR zI-_ugSQxEZPPdWz1q}iX0j#o`6N-#H5g@SK+`gcm!K#SkSsAb^08*C-@t^Z1bPyPhx zLc-CsJbW$W<2Pm7f)POBVezW|TP=NmT2s+YkNE1vqk1HK5sQFdn73G;At9mky`l8E z6HFW>SZ6Gde=(2lk|UeRlAU|rSfs~cj``bR7DTI9?jpBh)tcqf$HXWLE&wfC6kPOReceKv zE%q`vb!IQ6&woIQ@&~c=DzFJ`aNNy63{^_{a5#x}x?M0H92f2Z$kWnWx$tAUe5IQ} z4$y>Auw;mxwlr;7bb;Tt(?7IS9Xze0F@whhIV+5UYDNxx!7siqkI z=khwDo_!ySi;Y9-vA66M-ttkE#_@g7b5A}{xcAid?sY1A;`0#Vwhwa$56cj3-Bn@v z9yRWF?HAwnOr4}7-X%}>)}IRzop1O^D0%I+_TLX|64*U98pP* zlx64JcyRnlii%EoatypUqoIEj+Aqn^L0t*144X23x^YJZYB@XmGAy!M?5y?{X7ARj z|L;%+Xad#g{C@>{31&_`^RW?CbZa~_1Qs{P&`aOfK25AxQwwbeo`$=;t4xbOi@~aZ z4dJ_hTX}~QC+q~D3L>|&kKnrXpaSB2-|@=&a`V+97j+kqA~p#dHL$MN*|4{(xKDmT z(Wi2Na5_#cuJI(lncWdR^qduS9NfBnbWiz`XYRjCZ}u7CC17iplGv)thc#Dzy8bG? zDdW`}JOe>tlHpIQ4v|8iA%tW_E6w&&y|Aw?<02Pa_ET zH~v!1ct_jgS|4Cc_<8otjU~LF?Pq5Q{hGN3O;f7gk`(|MpDdBG$pE>N4 z9^ejTThE)DY`=^N(iWVSv6~NP$sX7A;b>57xuBrynJ^L6DsIx0_1&#MF%%BSlzd+< zX$_1jJP4gs7_#t?0Hglf*8{FQO-vJs!xc*5zTy-?jt1M1s(cME>xHBR z$crfPYBA;ZJ;Srq!ph&T8ann$%HxfvZ$Hc!bLY^jYUCag5GmiKdAL-zH0TmFFDM~0 zpg3H_dXzBCubW1C>dEjcv9U6=5>sEUQD1TLA_w*QkH|+Vs;lE?y4o*m)M*a*2rPrK zcF@W|4c!XP{yjd~xT~mpYRJafbH*$Su*9WN8^f7pXy>~}+z}K+NH$#@+_`I;k)2wQ zpnHB#_8+$M6Fq*0r3UB*YA^LN+syLErOkpImu&nVZWMNZ*eBO9&tl%hVkj{=tVocK zgT%-My}n4^Z`U6#D9XyQBssru{*t$+%@+?pz~)K|x+ruchIG2(UOLe%_TmDh5rgMA z*+H+#b?*DvCgdK~26sICZ!Ub$*kh;JD!S?PaQG|lByr;r3zW-A`R3?(y!|3r?@MIC&m~c8Mv&Ibm`NeqIpmN2^Z%XxI7xXq2ISgDDREHpRMn) zO*1#?D}fHAK<>F;BDY0*ll0Ko_TN52vWrmYZA%N}_%x<8bQ4<8oo5&mhZPbWWr{TM zgehO_7AuDm(vQ;;6KH+!RO0eh<|(y`guzW7Y@hzw20%#XUhk!|ZPHf0RQ`Di{%t`q zvH5OYP`I7=no11glgORlwRj$T$6Igh`Z4x)_HI?X^(y`t7QdE}OX8e-Gn!KfE!EDVd z%(?u}>?dQDIe1;}c)uwJ za~dB$VV;+3;QRx6tEH>|^{p7axlOb9dXYda3!>a~^6fzCPv9_7E|1^ojtfoiZ5o&% z6QyeClC%|OVE2^Yx14V8=S_MUw#qpcAlol#1E5>hevB0`86GZ>%VhQl=zs2U&+@`b z8y8CT@!0Ap9;!`vl#_&9R*eYIonlswL|Vm8q%zpHFwomkot&sk;)`q_d{`!UWvo24MT`I>;JXn^leANSCoo+Hyv)vd1LUCB`^ntKi_jda8X^d#3#XoY@_ zfRJ;AzLz8;C6BTHfD`m1UL*Y3|Nd8jw2MsBDmrEj#hTdvxRunEmm1Ws-q&aQuAQW( z@3DPnM$8MYti~f5PeFS^Q-Jm{Q;c=#p*8afvsj?|p4@h@KI^ix(TX16kHwOYpzoGX zOxd=_uQQ(2qMwKsL`7u9&%8t}QfBq4^zdfsQ@C$Vu8VDIa?$Aue>}h+8t&-Dm%mb= zamW2D2t9#HIu9v+Z4>!FuFwxpSp~6R?GG<4ThQ7HVRB+&X64P5drp^QS!czXu%)Q2 zG)Bemjk0V@ZNARLAA{uI^$bVch@lR*WIM4ItDIVESRxzU1VqirAl*0Xg|TKx?&3d4 zH89lLf9Q|j@Iu>UHEGoSSmbMyepk9rCkN;baP==**a>m&uQzy$6@7=l z%hAos*oBMf?Zswe%|K6-h%%+i(S>>JKKST++zOh@JM{7$;Ole|e3h35e)Y|0q3P+_ zPNUdpiX?+&)fNt@6kZ-b>qAzX&{*iiSO!z(Q%I8`Ry5SVJA|SXNHLMob{>?+z zKBea0#kdpkKMPH^fUsB(f0eM^BTB;dObJ20j>?BmepjR)=Otugze zn&)W^*b0H81)EHk|1nOV97RY%s9>=Y+#v5!-Nnq8Pde9*FY{q%K)?`jIY!Mh+3UI< z(5>8#(hUB!GW-P2I6s!egH5TchI6;!{hYOQEJB_&?$ zPycyTpCloeiBw5yy57zMobXDtyiAh(<_laG5k@*|V?neeT$yXoF*`K4d)mo!>9ntZ zG~SerLTb1D9od<7V`jPTwAJ7mUOY_bs}8LDKzB?RiulA$&~2g;ya0sis-|lvKLNx; z`+H0g7u7e50m01TwjbF|*DbvvxxSJ|(=oGa^#zWPj*V5Nhw3V2aXWq1I#W%t9XV-qSLlm=QCN?4%^X}84=%DR$H60(Y{|~ z`_!0gjkAra0jREZVKKcO(jJ@7(8?d#KLcUJ3efxXCi~3xLzcbA29(XIoiTDOrW9Ib zwTy}wZl$UBp@z!oC$zHv*bk47Wr{`_w5l&%$}l<@na#sW+hp?|nU~p5jrgjTtaE)` zU5Ifpj$hdXvYtyF5}$sO#dIB=+58No++iBAKEOY z+W;_}+tt0gM6|;9CIq4L_{bM*^x{w;08yYZP6wg3V05q*9j39iTC1)KVJdJe$2J;H zzd*m!H?N>}Rn?X7X|;EAHw3?zx&U=)1lvPA!#ISGa+9O61Owd~^9w=I{5U>;^~}2* zdhUxEP;nS%Y%Q~0`nK1vT)5W1{nz)xxAm$qzmg*z1H#ON2MDqs-J9d`T`s01hbN5% z(WT(&+pyEi2)}N(a(qlBE(@(rxHYrbZpK(Rn@p#e-sn^R8~WuVuEcpO^NfG|iCA1_ zkQp2$s2wCGg%f$Enm~J&pQs0<0-uGgwOKyAV$W;)r=x!{f1xgHqPE=V%jNWEy-?l&n1Jv2Sfwf6oQVOwNzHAn*jH5{BCsT&n+)+!1G# zV+eqZY3_uCOxm_h{%6qtxT&Q;e3<7PPFg z&Zn~vSXPWQ9wJS6 z;HM_zYa!$%Xcn#^fFRcS9SA5ssA@U-((qL9^*0w_L*k%1LoCwKwR5f{PyvjeULR{qgY`WcKE<>#@-&TKi-_(PRS-) zVemA79rEQFU7Z3#rAd)_&7~)brrPuW`-5IY^>2C=w1AE%5-dVan3L4gLyYgr>S}uTA zvJr<=$j-jY!@5lxovnNQp0||c*LX*?;qR!k`Wh%$Eiad(*Fd2Sbg?F%d8#%b0*bK< z*iRo<@}8?PSzj47l3dOu#N^8c8VPV^d?Fh{x6sq6;GhVRV7VBOiI3>R(-og_8d-Tm zNpVQGyS$P4k+Wld-9-#h^72M|^zsoQEJd_4c5k|w!bwu030C;r>~PqswElF#r?l7r zvqf2z753E`^4RMOx^yVG_O$Pgbe&afdJ4=|LAybh9_z3e?2>u=*-B-Zua9dEE9g_S zKB?@SCPe;dW=fG%98*J{OK~F`KY)Bw-(QAvmQsV_1o5O5dld<*O9eg!Bjks9|E@X3 zOTWqg{+3IucPTnT(ZOo7+5fyTYb0~Oa33Oe2P}W&?~;LFUmeA~avQnCutScczIw6s zo{5&lj@-7_0WM1mZ24>H!Ep{%CBuLf*3V+q$Zp}T(0y6lnkZ&?*ch`6aD8L%c{BF~ z9UL-He^{XVZkwj@cE;>~&~wxIV|rVd7~pXHyi_4YfKXTsLHW>F4)hsMqBK{Q{c=z`SNF2 zUy=H>!|H9z&*LAqfoEELps5}ZD2Zc@&2nUoy9GUp;h_H6`joGSM-m!*%?!&S*vbOfaaX>$-EI!bJoFY~G*!L}x6|eq-@mCbRY`epZq#!-d!s=jU{ z0&R|gG7=hDVCOHE;P~U9Y6-ScL~vqr&TAJU%cq;J-*%OWwFnQE*)ezd%t`K zx>9@5vPb>(X9~vzk*ebZN8qXrvw{Uo-~PzTZ`=87gORDN3w$|dz>erq;C&Oose|_* zcDn><5@>5l?knaz8>L08jyf0ref&sRRS*Er-OhINnDGq&;iM97JB70?#A<`3({cLCQhD-yTMRjLNstP!SgdNto^>vUb zD#t6=3%Kdv)rYt{6ynhq{{uUXXx$mekpB@B0zB)IzpjV*l*__YgyLiH;)mNw{+dZ0f6T zS~_wk;>AUIT~`O3sK^bJp@tdZB|-EL$3y<_(w734Kn$-JY5nK9L)?-rA-q86jfYbxo? z`G>F7Of^3zPA(q>lojYU^J*~n@D7$n7Sfnt+ zdsqOoY&IqS`)ku8DV#|y?<1awAl%Ru%V?~6KxwHRC>N9D1+#tFCuod4A8TYD zugNvEWSp^C`U7ZCyBVa!-OcjpAQ4X7EV)8-1};TLgd%h<8{C}IGWi;5@B{zM**z|Q zYXA41-_!Eb=)CMY$Q2FJCz&VTB@ponJkjeFNqlc{Qfbt>mKPY__e8c4Q*B;OZEL@e zo=E(?YW+3DI@PEIulrG|=l5v(~ z7r{uBI6AXR#`BWyyg_8P7_vU1?s;OKJM)q0C_R2#5aW}(Zd?(*w#@n_+4`0;#$c^m zwf}7{NE_t`n9wlReTVafJ4myUjX6cZRFlNQUlHBJ3DY>4e}F2-iPHDUt;=wB8k#sp zZ9^Mc`#VJ5)iUY&4|C#oF-ev0=M2R*KCi?}8vJF8^=ztc-uG&~eK#8&BG3S+Eoj{o z942-;t@O+Vp++TeF?tt=4O+dYun>Vl*|KJ{`2|6<2z z{X=o#e)S7R^?Y zU8d@;c`rRrw37I6*$?97FL=#sf1J^J&}q-^z?jpLZjl|Xkj&^DcOp&|S~+XsqF_lU zcxG~o|H+&U@pz#sfA{Tu^sjRdWrj(A%2VRVFx|Zd4K+X`qh&?51ppQ+goZ!jJMJI; zT`b!e-gs}G76DOGXBECNC|&(>Wxx#f9PSMehQvoYMAU7Iv(Py?kFrYvwuFCOu^u=@ zdG=K+Vs@LzLZ7^2*6*E+8T~jmRmbAjz6sMemU+HQ`BAz}dHVqvp|}ruS-e9S^I>b$WqK@AJ&ur&*nxVu*fyEA zXM`B?`A{RlaKbpjm80Uo*&n>RZ0E#*@f!B3Sn(d+8iasQn5@|namdsYQ8m5vft`iIK)03N#+JvV| zssn}2X(uf|4BwlqI2tsh{0^x1qH4E1aH^h3^ks&naMcdB1ni;g^?Bi1dfoAPy0zly zO5jdW+vgizlJf%kq00F>(us?m1CA!wRvE(N1--Yz&i?2&Dy_j&P;2gcRA~U0B|_ZI zX`5`gxqlu%ao6?F`P5L;j+h`WHPa)hY8U9!df3NN+$7DYZh2_^$3Fd9PC;EaF7Ls~W8y z4bOeb!voJstB#4Egy~{EwjMe(aMBDIfyU%-Mu)B-==vHRqC!2-+`PhrOtetPxq=@+ zXc#e0#+e}NeW`Bi)gC{CiV0iw+n6nGroU(_b+$NsIoHP_uzR_^!J=MKnI&p5C>hv) zho@_gGI%8kicsQ5=a+BC9?`Al1+4nEiSP#h>rgFP*sTsTt4wUl^YgZajacOF3LHNx z?e=PRbZaUG#3QO(*q&XxD0G^f&u|hhZfRQHJ(m4sYH1e5%!|`D64+37g>cZL6nzzG z3S)zn0CASLZ4a!|En~OoxaV+b-!{K{k$%C)Pe1Jb9R?7{%zp7&>{V^{3o+C(BkqTJ z`bh-BwIHe~SP7+v;bb=n9h#BOHrh>3&MI7Ocw;kMIN4liCjm~ex3`7KiyeOpYYYHM zWQ>N8Ph;N{_w@I$iBt)5}u;I==#bkC(A z2zqQn+LC=$7rVTUbl154`+O7OcEFd$CVy%M=DS%g5;m#M zW3~`BH)N<6!rhD!)5E2~ayQxrdxJGM9MTX=c*W$+gXPSun$z`@r=(|$y>PqCTPwAS z2#uVplo_oYmNoIa!(RVR1Wp=W$GY+);g+D;EO>;E<7gJQqETiV8EN~+Y+o>Q^7jC(>d}Rq& zib)0Fcn>JQ17EFNq)}Bf(J;GJi2*l9>aD1X`5+plZWnxBg5Vsbr@2OYu1S%}!c31B zo*L)rf3+KS!hBYc(ZF@1MMAur%rtaJJI!DUzyPg7OozQWhX`5~M@ z&zh%4w5Nv3OW51ZI@N=G2#pC1;6`NM@4?vnb#)3knZ#&!9L1?1{-Gm+!JyD{4XVo9 z>RIWy(kQSc>j|J4p$6O|%|uEv#c$(pjXK<*IR9pV>x4aZUjk4+udC}8uxov9L%rf> zCu&L8QSNL>T0_zYK1Bz`dg0$iQ1r?aU^@J6#!i4eXV0`g!oy_WGf;q&r#`d z?%9u8!spFeo6KG3=0A5)EU;JET*z`8kA|YpQSh6Z&Eu5eYBd7 z2w5?TMLBy?Dknfxi~@A9!;rz~u=0<5(4>Q5`C;~<-g|o;hkUpz32(I!7YNwE zxI1rP-o6~&mc*epyBNghZBVX^DUN-0H8LMS7#&|yUg!3A5fdqx!Hu_d8<3Qpw+Br(*;1@#o{ZwRjI1R*Kg{read`EmD) z=kST29dcFP5Z?tjq(QFeB>SR^@pIYRz&e2k&3D)RyhG*=dMaOy%9rno&NRr}NZ=>c zrUQ)LY;Q7pw9b^T(Ksue%;v3WMxl>zSf;Q#DQg+5_HFKRC!~dv8evvr@$IgSWwl<7Jrs-H9&Qw@j&ht{N|h|OdN;n#)m!j@ zdt+7TwQJ{BfJz$^iG5^#H4=!{!*Yq3bw7yGl7ZBM^f5I#!pblAvCW z1XR7w*8Q-onGFAq-bj==2CmmUJFw7oRN74s{eX$c{f`;$+RevyI-0cL+Yx)=QS-yRy zX`$&1_`OK-#Woe-mc{4#V2l%MPwm?MfUfi`aysu$pS)Uyq zW#l3GcVp_V3!G@C3v|&uK_0ETf1|i;gs*y`cCTL+9m7yFZR}dmKhx~cM>@YRowV0q zjKNeMpZZ7oO0*f^?!PL{-#xwgR|}U>`_|#w;P3k}#)vfP?!SHq80{URE6N7E+*N_e z_NhY{KY{y*70%i8b9@IFAYQa|=flDi_1-p1+A{-eia7DzTE6r{GuUFaHVfD%X78{~>E1OGqJ1+wWDxZ>7Cpn!xQ!@N zdum>rasksXUoq>wZVcc4Y2S+9Zr7gbds4b8sLBy>VE`>p?*HO9;@V)yB>t|*Em<^F zKuRyV$k*uDy)q|!1}mgfF6H{(h4qS~F&jDr7x5`YhupVGCIkAHQ|YvX!}L5c(*-l$ z)>oKo5g@oWa?XeMO6~N;y{og!I?@AJ?d~KGt=#h^vo^NRhFQrP!M}_;lts>tRsT1J z(ya@ck$51eei%-1S*Sfv7s_C~XPL=|4)(&fA{uM)WABS9^xPU&KYJg}PlorZKkErRCXxHM(>p3j5g@Nux?Q3qMRsg z&kaP|&8>9+hpFbkR$1X?UlGO|Iu8QL2wyX$Q=G7JJo;k^Kzu;I-#QCbCR6vsT<6u* zg9pk$R6KnxnoY5>#6YM{BS5uYf&JH7hXbkzt+m_yC62bSC+z8lSVGT#sNVN{v7aME zb2ol{y3&1y>TSegBT7yTezz9|->$WY0#dB_u@|SbVPd6_(=?7m#;l6n>WveB$C?`# z+6j*sWa$}-+;oTxlf}*tJ)>D*#zpTFzYlG8mtDS=7_qtKqt1tD|KZIvQ%eprb%x%4 z%Cwr^gNRXlhof!Vl}DVb$!B>1vtA!#P>ejxjmwiKlQaTwmKJjO7#XYsj5( z*&dNEmyA`<*FrXGPPUKqT+kNIRvkv* z0weUkJHBviu7oQfCz{DbHYFAD8+>WV;Y8nncqVq!2=8?F8gf2ZV z^9-))GDl;vVfaB+n`jMj#hu|rGodK#s1uk?bT&8?0cO6S9qC!$L5Da8h;P)t-zeea zWrDMO5+@IPBI7-b&t8Pr@mp6nNbHnRTe$iraj!99@u*Olt2y;c)&C{8 zb>l&%l@y8{OdDjIf}23gO`*l6Wy`i2iFqHK4nqexkn{m9&v7?I!H;9p`$~UQ722hY z*VSwr-HG8|I6b8!h`OHUM~>hi3DVMr`>pyTV2QAZERvZj(@JTvN<0uW1?27crVw@! zhCJ=?x-Zu3HlwYOi`O{l*sRWBR&vN{0xU0Juh*n9JAP$K^MFFLI2L|=MCuz6?;NEI zvYceRzO-iOZGfM$DJCcXKS(bj`QhsH?(y$1^s^9^Hc>%I_w7551$YpSGVAB5Ez4-z z(T?(VM5xv%z7TIkLz<61je8W8JwH;wz)>Lp~SYFr(JhjLb z%Dj!A%`d5@r!O;eZR!zvww4cgnqGjWI$@s4uckN+pWdh$i1F?D%5WgB4t1^%L_vv~ zCQmd(hjGw7Qy1Q%30%>1 zoUd|I>sJRbmN5|}?tA4qvoyr2uL*CFk8kcA-3{N~HDb43`PXtkiHAM>ys+{jCM!oj zHf7~6^@aN`V$jau+5;ZNrl?@%KJykI#n#(ydU;k*vYvn}ESrr}-u`LT{MJmmo>J>| z%bzc?D55y-so-@#8^VjP)K{-)QfYnszdBj7+U`@j?^g5!-!=m_>E{zV72d3vlvDRU zPJr`OU^q7XinVJuVPbtkUFGL$=L75M8WxXP&+$Q;`;OkOg7`ybmBn~sto+XOj6a*} zfjW)?U#FN{A4Q^@q!bLKJy}xRs4Mo4Z>>|I?Tb(zDpfExpo8?%W>Mg|94*(KJ@r$q`ZrRZ76jadfDBz1g(^nCrH-%kjJ|- zRk1CF_q{^7~1muKM=ZrRhWQbn>igF7=$_(JkCHOX8o6p>8{q0<9Hl@CA~R zlkLUjzdviKu&BN+q0W8htx|0Xto*Y#%U7L#d5SbH-d&|)*cTrW_bh`PUz6HY0~IW) z{o=PI7V3>~4!dSQ5WX_lZMBS+jX_~`)At)ilPpQBqX)`E=7C3P^XaN5w313C=c^#_ zDsJn^b~jbi9K-4X1_G1B6C^ng;CiO}z>#p(b|0=Sa0u6GF*P*pmn7f24q9?_b&Yp} z>hC_sZB@_tkY5a*!~M3C8kX%J8&n(M3|Q)*6K1s6SNPmP7?WZm+&#fsXHUvV6zy zuJD$d{l&Wrmt7?u>=EZlpew46H@5q|$eQlcqoW9S+fnvcn-hNV)$Ppk>PAE2!u=m( z4@GGLDk+VVh+05%9Y3T=bKUMHG}K^UM#(Lf0**>qD0Czv5BX!|4Pd>I<=u}gK3L*e z7(DNI4*r9@J(Rb|8g>c2t#UDQDoa)U*YJu=PPaG6B``n}op+yiclQ;BT*0U@AUJ~! z*Mc3TxV{|%Jjw*mb3~4Yg#CA;Cghtl9maZZSs_=(^H~SEF)JHhq;dxomR|avvq|xF zW<%>9=?-F<6KA0)S=m$6?%e064fd;`zWg#aS06Xrzj<~^^6YO7o|oPI8A@r=$m=${ z9ISm-XVHxO=L<}}%xxlHvMFtMK<7(M=PuzdkR{@3`pW3yz=PniHnV;#lTfF7isL^D zl9|EQMR}gkHX@Az_&|}U-^&gyMX|d^5ah*2)oCt_S0mx&O_Vy<&LHIQm&0A_EcTxL z-*kA2vh3gNW7`J9&Ics1G*ptC=f<5r^8{i<_%IAR)^?GfWnRac0l2`JgZwVAkQ8Wt zhk1=K$D07iO<(ENQP%E`7|sZ6ReF>Uk5e?FS{3OX!#_=|-l@@E@>7rp?p_OLZJGg6 zRIHS@8s~opI3%3T63ViFtq!qfR1j}f)L&D;{u!ORYWc6uAo6XtqqH!Q7y26JJBT8D zcY`H`5NcRAd)q>hO$2P&a_>}02fkM|$Rm&pp4@Io&Qslzb31i7LLug+z&Tv|0XRX$ zDGnaxewW)~>tlt8?Qs=9Slax}Q14g~_&_IcU)D{hw_Nq9yvz`R<5h3J>IXT-+B=^4 zXmyO?D5h0X6fzg*%4q*ErmWLtC6(@A_AJw`Jof4>%awC;_)#&lGDIx4H>$)RGOoszXPBwL(X+bB38#8TF@YeK3K)`4=L2%y`L zQ8JEleN`Jzimn_o9q`#sb4)s&`_uTmSrbj+xZr*rh&US=EWKEwim`~tm`2h6ZJuZy zNVGCPY3eU?YFzHVE4glC3yqcx~7$WfxGrLLhG`FrXr!Q<-yEe_$^BeP?G!9;~CgGCn ziWRn+F%m8AZKn={PfBCs^&EH1SuQ>${%@-DwrIsx>LQn(eX|}IeWV(L$oQ6Uv8h+0 zIYs`OHn=$GMRBYuC(0ZJs7~OAt=;nDQGL=+5Cnu?$!k7#(O<28a&maocjg!NYJk-I~l&& zP(BT6Y)|*C=Au~nSqDJebX`$7qF&0vLga~Oz2NYor`Ug8(uruyFx+&t_KD1fAbUZ7 zRTNrRToUB#dFvPo1``?J`H#6~<-0;^YyRS3<^^ff>V%cOkB2)!0I#glB%iktP3b()sgcjABQ==)H?)z19TJ*3VlE2n3{dSoH;u zld(s2d?+5unYiHd9s||1tQ8E^*$d>~aNmRf^~#3LmF$#zi+-3V_@EJo^D?xvj+=0c z%|T8O1LFT#0qoMK77XA;iO*GbXypgV*W;18owotl4_U8}m0AqbY}{Kd;(>`(_ul0u z?S2F+3L!ED*Hzg^gz{Hk)cOh(k_Pdsy(llb7)0%6RH*C8k@P2E zkA)h(O0h}83`VQVSS^ax&LRE`>C$->znhZa4{u6SAp4#dfibZW%f$pMa_VWck z=&e3Fx_-l8M$JL|nJ0?<*MSuN^V!~0+;*#D^9$Tl?7Z(1&C0vE9nLk0m5=Ha8KD_J z{9es#^v7=;zq~AT+&+|bTXYa0FEhw!Lxu}W@4#{(Z_@EEULWy#yoSM9E^syYwR~>i zkZ)>tru-7K0mwM_(|DTN!s`3hzRq9r=XttGX_BwGJLK`1h@*znyR|Ck zk7#?PXhKIvlpp6Limxc~)8~nwxNs{FcYYr^2)IYJYc;!n1dTvyV}nWMcGOvMiG4l~ zneN|6(|A9fNhOPm-{c_gjfZXJBVDJ%lySZF+J?dqiF=-|vpse_!Zw$82P8@F7>6y` z`FCA1y;dXSj=wa#+a!mFs$zK)xJoR=uGt#1eFzo}SegYjy#$sX+rP{JpEFt#rZpC| z$&YQ($(&?8`pa8Hp=waIo9Cn^d^ws2WVF}6DBokqHQb81g}l9{Re_$=pAh6*nZAs8 zc*Xjk@II1p9s6 zmrLx_xCra7C-~?TlAx^!JK6uBv=hJB_}I*UC}`#d;GhserpH%6?crl{R6Y#bhl49H zsyT(!Yp$>a`M{q@!|8}4M{e(-D$WT9CYIG6I4sAK_4P4Ot!)HwB4V7q$@{sR(}mvi zdU4HU7OmF15bPAHxnK3oqP32`>q6-(s-wK)*)bIaBZj9j3CZ_UI)>!d8sD%)$yr}w z44~P=oB$c+8@9t1+Kk9wxx|trazZU*Xjf|rTQWdUOsoki@^a@JIo^MDVP<^kfXop4 zqDyr|9=jyv`p}%$cpbfnYnO)g3y36gu2k-B19zR(Dg_#*M&;felI=JjSQAy$@F$EG zkz5h;)21B~R81ZWvF|w^DK$k`nkTKG#*Mdeb!j}maCM*H7IYSiwC?dgNL4cr&+2L} z;`l3^=t~+Nk`HDyNE5U<|4hTY4l5nSNGsE@|5D2>Qjwf{=#?e{kr`YhDehD*TBJ)c zedJ2kq&WO}+EwN1?o3{$)n%VkcRJUyV*3H+5RN3*v5G98rDXWAAW z2Kd;W-$n`E3gkRe2114tXQdORuPEda;Y;tQU%9=Di@J&QN(^o%-c9{h>g8Q9m=<#LiAWx=JnGV1sF<8kJEumuT|X!+cDKFBn1VZmP> zdFdeeT^M}v99!*ILzDrpm)=LjJ|(rBc9f3w-b`JH{@MJf_c~LBR^Nxu{d}E%oPGh> zd_+!O1HU^1nqCBC4l6u9Sbw9vk%?M{y1fyQU&--0ncXD1sgzy$Stgd0*^-IU6g!k zPVM$*gUpRONZ;F6#WwyoDEs?H>lC~$f0yutzmGP#f=~b6?vHV=VAop}^ttc;im!<3 z8&XI&hh+cW^rIt{+MRrp#gBPrIhf=9U8scStizvK45cmR=TSFi0PIA83$v)C-l{yk zHT%dc7wgoOmpB{SAQ0`GWo5xo`{f^|5S^mHu8od!6{R$&&LqU*lMj-%OH~tK{)pM; zZ#Wy`p*bJi$ChB}%|2`!Ney;!e}i6?ARi7jp4+>usqN+FX4Usrc2XiRew@a=;pRu& zdKF-erym@o{|Mh@HH8FRo5$#^KD~@zhm5d?P?GUjah$S|)&4m+Of*JjG;_$BC^fCR zvv4sf9Glq9VY>rfk^1;kG8o(71~N8vgg~!geJt;h;(M$Ft!C=HDkuoLT#Pi+18yFNrweBq&&Ev`gu0j1U9+v{ysg(#%Zve=+( zVJl64(f_Vl$Hn~}FR1_aY~jog{TVK|A2Stma>+)B+~oH)1M%yRg$a~y(?c&3#)QS^ zhhF4resu7Vpt&n0@nNe54lm7%Q`V@W=bh&0nYYBfZQ-#K3uhd7JJn^ zMn5oRePrOO%wY?ox-=+ofFn-T5xT>}9$doau>+FF5jz?e|3KA;bB}ajhqwLh50oR6 zJ>j`o1&Eq@ulJiN1ufbMmk%ET+t)T^J()469z&$|w(-iB*5NXK;KDgo!@`B)X^i7* z5B}uqi-0mo`BjLm>-uWd6XZSj9Fby@IO1ym+41Wg9sS0FLnlN^M(Fx7BJyaYO#~=` z6!FgfY~T^e=x^ROnjl>Oz!tah15U(Ep6{P9f`*-WNdu&RP~xt^gL{O=3X7bOm7?kI z6`^M(ghkf>*&{u#G$En1lDI6@lkS%($E^!3LMj)_M5n9MwUpdxRex<#W}BBq)A?4} zCVgA*o5nW6WdFEo%c4EcITdp^mQSMDH?x;IUjpsKP1!a**CLC&QZjyfsUNcRZ(`NT zz~o6&vXm0!>tWfk!@*Xiz$H;hMN_WASL3))Qy> zrb`iuxcee2il=|{R4ebI{-OqKmKO(;GR$fB8kl1kH>{R^ zIuL)@?0D|8&}DRV+%(Z1LKgLky{~Pi8gm!@JFxAC+);RTWMqWBGh_0%zIi#2`sEF@o3>JFL9DZ4rtOl_Ll}N!I!U@oumx`{C$!kFoV(4 z1HQUhFZcSx^|1_y-gv{bvb&vGV}POJ{?^qdN5~OuEhQgu80)pbXZ>hT@_Lu~oA9Hv z_#%XkvtOC6e&}@-A!q+N_*Q62*R!hAA@Wh$@g&r^NCRl`sXUbMWlZ=MIw0~Hv>e*< z+Zaeq>83p^j|n(7qg$UI?cyVE#3Oy*9eqF+6RQ5?SJ^Gh-taZ?#Ex%?CM;FIl+Zc* z<56>6`n;5zg0*U7k31!bl25+pl}#6{|B!tQl8|-rXh4lg*dRqRvJdePn;EAKj>%zO zVQlyu&T-l6FE^kqysTykez#egwOY*TJIdNKew`tae_n!%%xd=KstfKaH1*fIz<%&W zZAgvi4G$XY@3&O)d#kw~%=8#%CabR~kxlGHo?EJ~3-P=DoNwkg0S5lbUwPK#K+n0m zlUw*DI7wMqwC&OpC=wf*{YA{rTe}oX0S4v0rJj@zi;8F;3fo|QcRTh|w>M($r{cOU z*`Ep9i^tNTxm^t#DALDm?(IGlwUGR%H^)u|@SF%)5m~|UGLLp&3bps<9GD2wna?cO z%&;Q_{b*us*byDFuId<2XT!CrlkMWU0jZ2<7d$`IAD|}xJ*aIRNG98BQTjcg9=03z zNkSRdc6-R7UbOSoi;OLQ?67aG>;u{ylVRIW@a=bTFDQfSJO)HeHo8w~$;*WKMY#=J z9ffyuUhd16KuiSu2f4s2ie_ZW-SS8-H+i5cD+nXb<=(`_C`ubPFlDYQ=53=9)Pioz-{IdL?Wr8{W8|8%A zw1te+3QN_0{l78b83%-&S!U4~Sw}EeH!M$DDP-nM??wz~!u(_P>kMtiMZ{0{yCU0c z2tmn>rjS6+74b*8?>Z$<+T&bzC8usygKHI(H{5X7ApZ6Hqbo)jP@qN0iXaDKO|xFR z9Ys4s&*Ii2Sx{ojrQ8~tJ7G{puy9hKNkf?;jF3DlmOFBs`jj2T~TSl;qIEb<1-Ih_U0pmB|C5b(^@FZ5&-SQrI?N1wmz4x**fkF=um#&@ z_dc2c3LxfRUG~UOE)N4f^CDBH(N_WmJV~-4V!{i2Ti0v+!$f-kqLWJIqM#*jqvnqq z&;}oP>r}|?gbIBQB`bxR&JwuCQ_=u3NR{7F8=L>XZETii@N}_G7K0>GEh@$z5FThF zKP8gB=?Uekx&3u__StD9r_k%h{+Jt=G&}0gkcpJ2@CwNJw=Oq;b36y>2Oo^r`Ndzb(PVlw=5(us!H;d5{bwJ8FKJJ z;vsenJtKFdZS3*GjpbrWJ(CJcDAj_xafCSe+0bTq{%UZ@^-20!9X_yQ?)sihVqiOh zj$;0IUfn)1DuBI_!|Z7hr6vbG9ZzIQq6_y?!);`gG4`Z^ku13GYN5eUKPL#cO{Ndi zUcI)2OMC96#PiUGWHF~J6WVT_P8p>&G40G#aaF{Q?lVC7_GJqGb136?-;K^q8%D4Ki`hA_-C{@F? zd?@tG>9F(I;~y40TTox4MKUZN4-gfMO?Ri^eRE>i0H#H2h8bVZ;o#zmyt4*T%jcG> za@7dUO~{|AIgtKjV+m#exX?h|$H~^*gg_VM8VR|VXI-S;?kT;bC>e(QG`wG4ab>s- zOn%}BjNmD-%9l9*7IzXa9U``E-S1RdhY1{xbYSo{2UGf&o*IX``+Vu8XGDc42Y0iJ z$H2Ua_Vr7+vZCB(yf|6^C#HZ66nVPP(#zWcLeIyU$+xamx8dQ%p%W|n&o_PPM0)$if&@kTx1v+lFS zK;*Y`-xH3vx@&5?ghmpp_)W#ETmFiISHEdociJ3e@?q-2hVl71f&>O(he5SBtm zFS{0$UE6E#08m&5ki)1i-_4%7Qpd;83zf~(dUH3#N-UUMNdR}ZL!V&TEuLU)N^hNK z=t|xU;>VqH8Xx0K<6_;Ez9~y$zht3FTDVIs$SAuTcG(ifwG#I$0Q%t%$6nv{?QOp@ z{oM0EXGQhFr%AOpeMqvkmTfk7v&Jow=)vo%d1z0#yToinV$Tiszkeg(`*;|?^^5Q4 z^%|#pY+_&A_Dh^wivcZ^%zA_ZYNI!Bz@{7>ckH|cHZeQsU|&30n31YAPV0ZJ5xXK%^zwa!FqV_mcUt^wdt$4mv$|nk z8JWcL%XjJ61ovi!`pu1+iuQd^51!5|n&v6X-BPPp?olliXLsnBwGvD!ciF^CluZ<* zT8|>z7_xF1V%pG&)*iKe$sjF->3bxW3xLmefO=70+)?n)SX7b*EHd4awsGSz$`RLC zAL*i;dh!d$Tb$c7PqK(-%p+OVKX)9>Kvda*TfhX+I&iC3fri~EI{bzr!ROR;PYBp6n4>AM$Gmj3bOT)?V? z$4R`|Z>`w+aZd>(TL!yl+LC4WF*nL*R6cI@S*6EB)y`(PyZG|S(_D`H4W9VW>!47e zelmwj(#c~Oy#C%m(Z%Dr(4OMZ8XtiA9{v<$cyYdCnDM*AEvH|UJ}-3ZGK5mVvXo)j}ov#JkN~}gTMRjsvAxLM-owu(n z7rp*PAyocdPvoKU97r1k9AC;^{NDH-0Y(+*+zT+Pm19~fV?3TPH>AzHg*_(?1~*9_ zvm&)jyB?|dl;xbn=U8xuGW5FPzP}%QJq%MC>6V)}4ms%~EPrIS&n`PNaxpJKov8#D z;tq6i0l|7YzVk`CeK@}knzJ7vc1Yse7*u((Ir{h)oWw3Q-QOOK^I9k&laHO%6Bg0U z75ad{X;!DrFD;h4HZiDDVA%^m@bw|#+5zygANa1`#dO;W_bE2pV8~Z&-zxlaQg!NC zN#OGXao@GTPswYug?R*8OkJh0R_kWOvM^)ji$i zOnuXm?%8@?oDt))f$k3sv9=SPawyMSFcD0;2R!*h#wvED7 zS+jCj8rNof$59f0ZCrilAkzZ);p?QSlIok%kE(g*#4!Q=zT13a=Qd2glw)?!ZLR1g zGj3k6OMT+LIiF1X-t4OK75s0Zv_N7D^$1xxI#PptJmM@R-k+j8gW zT)8WpL)CQ8H-iF_Bi2QuS}dz{G?%+ot;)_DJG7%yD247kFX* zGWBEow5>pY<&=K?&lu%6{VHceugQwOi--I3a%?R$Oc2tBrqT?-u}hI#IDEmD*igU1 zs;Z1pC78?PCp$ff-WOD_y^!Avpp1nYj;023v+jb4pPq2I%}OLupZt48S6OGXe$S?1(!EGifpW^LDh1RJ;>= zN((I-KN6R9BCcoDGAK}|8$SK>$P3RX>lBjR^;g^Le(D(}$^aZUili+bqKweq`(5)N z?HVand{61+%MNx3a$6w|O4Y{1^D<6gwQ$w6?#!tbN6+RKr|}enWV0Dv zA1L(4dSJ|#v_>shzs#2J>P#Zk>E{&sbQEi^XK9S9{*#ZQ4u;+B3Mja#0`PxCQBQEx z${RRTkA%9Bmv_@fBd8ii1DD_{ZB>?CMJs_+&W&z}zMel)5F>OL)Np)KNgOON+gE@F=@)BsmPC zG1lQe8TGUaYphm5ACPo}Ns1T3Fyu1Kn8qjs?0 zWF`&e-p4)tm?LHC$o!U-rFHJkS~_4#U70o+0#re;G2hBpKKPNj>SZ7W&~5cFp|^e7!4KJjD^bCx0d4Gr+4F<|e+g=h8x6q7 zF}g=3prC>rz+`Q)Q1V~%|H~`~^evd|$5=k-^riKd=T-HJXLoQ@2t`i*w(}hSa7m)t zR;t<*BT?VQ-))S(BD(P$N9+!(`aD8lo8|}|s7zxQ{gCm~DPdw^S^MRr7Oqpcyz!=w z5WP@V51H}vb|YUv9%Z6{#w{;hncc85km%o%m&t8}9zqm5qDDDni3|cFiMe4(CdX~bz;Qis9xc4K-8A^mY!k@@)i;phr{@O>>}^LW zJ|N%GMlk7>Yo(LAl0?pfoa^*=zX^lTyh#*IO)|nZV>jZ<)uu8L2e;b1jP>BEOL;g ze5@bDnl8gd)i$LdLxYWKR0SN;I^9=3EP#_fAf93+l1^i~*~y2pG4+k^u|W63De;A= z$$Ix`I=3>+)ScDhpe2d46`9c`#4Ly^rl);?^Qpt1K6Q3h&vNL)=K%6?P)@2tM;sdh zuUW6$W>*?CYop^5d{PW|gukK88Yu1YZg;l2K5~dwz3Y#>Q}=bhClr|Dp#pe@Ov*(z z-*i7DIWHbQ9cm9<^oNc5QLX*15ja|uN-alc-vHQNi-|O?a&eOdZ zYqu{r?mnl_KG&BX)Zjqd=))86PaL{_n3IdSPH8n24&!`cT7@9V$l8asQK& z&`phezAon-(lRyaHr)7ZMQ_txKj@^}>!t{A5We>Bo$O6@y933}f&taCU4F8{%EXjC z!#$O07n_RiW%+0plVWe>z%Z6$ucf|E^|Ql{qtAeL&ZYxVT;ZLCULk6@NV~AWZQYB z(Ae$q+S*O`J{;&JxE0z=h&-=Q_SHp4IV%M&V|qlW-q!}KVIK}FOfLDw?-)8;*deR7 z(+G&3uJNd&?vkTBaOl;|DZ}2!-E;TtMen5?B{m3JY%(F6-eoS$g{RqpllbZ|J(q90 z!aO@6jAtyV?rE7Wy!$j!e?K>X>4>ux84ut1S7Jx6j!Vem?U0z}IrGR-9@mXBEH4lC zT9Ynnh;ovmxwlGqx0nB7p4|Q;fQSn}#P)3S>OQ6UUt;0c;#Y)?X?rfH6Yke=*Du>C zo_+K)inqR(DM2^;j{)+yDR$dc8^dwr>Z~Wv(GYxcYRf zfDeWq4ZBae(iJ(Q(89z3;|`|M6pEm4oaxqazw za~zk=1Jjw<;~8~l{#t7gSEzNUO@eMvYmUO*2Vw;5RfzMlI!>NAdu&q)44QpSM)-04 zEgCtxhzB5AyO}u6?3GcB*^7}D;pA<1KKM`voa;0ZF(})2 z^{MA1gBo};C`t^8R%<^4_p350CV2cZ6YP}TdEv)Vh`+t~mkmYsjS+L2jK1bfcB7Bh z4|^(;Fy|==J55p>PwOai;?R_38M8maC9dj4 zXVa05)y&XCHVc12|GA`$09|z6Sr*cyntr#-sQN!R{R zdbf|9Qbv^%ef2zbbN;eMc4MLYto!Rcam6)Q2y2v39QBR=Gx&`&@E!X`0p}5W)SOow zSU+kaSyw(*#QRPH-i+O3B^|e(QDhi9%})@7DNtV@HT=L6qm7IQdtlCCfrmF+Gt2bm z^5Aj@&ebVyrh4=s`z{^Y_u#ku~ox`|N2q9jpGr2-vqIn`bCwMcUmqgD|Pc}ae< z+2~c+dOO)a7JThEZsVPmc5_Xv#1G;NAQj$UxFoF=*&!96Hc2q_SyVnTKG1TxSr6Ur zI#fKoeVPIxUE^X?w&nfBx7A(Add^3@GKlfJb1JWb{N3b25d!j;H*BrI7F?824e) zEbNVSo`WQMW9ny$QC4 z8BuX5hKE?6#Wgl#+N#~3X+_LLKaT4^rE88d9bsK{fZ<`B90L8RKMdZ}$Ebg&Rh0Rs zwmh4ekxzxT5m)yxFa{L{C%d^5$>`fd{&R_@JL;$|sOy|7S9=}g^M_%WEm3vTBZw=l z%U%hS1x;*tLLcnPl{Z^;69jjWSI=vnq6vO%2<|bglP#Hw)>G z{ewbMb1*k`^%5w%EyGpFP)N87X}3cgUg>T%akn;r|lYh{`i_)1R{Sh={%!K=Kp!ATK(#sBQ%LPE6|?;2TnZcLagL;(Lv9o zDP;qjC(%4L974{Hfw~|5ZyMv*|5k)7@K$p=mJQ;aA%lzPVKLApAv&3pE&N(;j%MtV zS19Tg3VZZ@nu9ADmQKpOXg43^D4ewWX|ST6mWR?0yDLurOWjAYI_zjNHstxeN1A)> zpFWYFVr{ooi)TmoKZ!A0-I%80huxs+)!$|3e=FZTO@*X@5u4O?O3_-#c;7g8Y<$Xu z{p8o%T)54Bx8HK@NVPq!emk(9=@}vIMC;E=I`YHTbEN5WXDXP!yV00RxNrAB*gv{*h-csYwb`EG#B$bidb#v~RacJp(LARSV|yl@L?;8Su-U$Ng4+N6r*fv2@^>g=Dw{y< zM-;>TSJ1ZVy62`NQmLdP>bP#CK)N5q{E-6Mm9a(TJCoZkKk-!)Rcm#C|xa?~v28*L@7Y)vBq(-kW{oNbeF@>o!_AtFVpi1({EiXwl!R609yd&5Q}v{Z+&Tq|Ke=za?m4R` zx75wIC6fc0T_TAw_m%js1%;`oQFHvxnW*pJtIJeNhpXl}|vB0y*- z0uk$@2W4bbdBd&;Uuw{I*SyjVxcPpXCcA#^SG#AN-$H%4R3X3u35AoHG7D|?XCbLX z9$obuE4%o2BGjYY8TSS~DM}@613fc&0Yb)ciozHPQ7vH)V!??cJ5wrJmjEziRq?owTKXw?_SXLHg0GZos# z{fS7G(>yL_+AMf*i(kb%m$;M55x&Znp(W2jU&aZch>ANPAn@b=9|K1|5s2Ys4QxJsV46lA4;j0ALYc$xeZwVo!3hFUN{#+rF4?7indj5+3dXfm3boC z(OtCKVcP32b2-$CR~8$?&xYzB&^kr@ba_tmCsMZY)7Mtx5{e>e>p@3El8kH~cBcmQj)~r>W4x)Oy zyROrLNd710k!r1_I*8so%KO2Wd);-%ehm1RI#jsSbPR(slotQki^hU}0~>+kBIez=?3I5?VZpx}{7b>fF zuQIp84qKELuJ<6_ys|T2RTe!~IV&cLvmmv3*=%aMD$nc0;iS_w{^XTj`LsnYX^|pv zMw8_2%S7QQnh(whg_e(ppEI=&@nX+|JNH?rfz>7!Vd0X?RL0Lw-}DNoqAKFgh&g7p zm&mItuFwRbOkp+P$FTx0(!WCIZ`kBSdTLL;IzR@)#n;_9b^#y9walnp`Ebzsr0dS@?5PH zMCz@ht;VO19}A@OvQlrTtj}xB_ad1wEy*NWj#4TCyBd4f5N6jQWdZBflOa#zxW;H8 zt$)v-7fg0JaDkF0OU~0#L#-i+r2fKd$G`~Pa_w5Q;476*dJwDT@>2lJZ`7s#p|L25 zgU<5D`Pg~AZS5>V$dFHUCI+;ppet3PdtBJ?l#vHj&y;GY>Ymg@v8nGSDsL^DdiZv8 z?QK0OSa|c(b(@_LQ8DSt_$PBhKv9ETE#&mXTO zz>gf)OC@e}#&8l+Hb0`$uRh%o`Q}FIkz&jI)+ZC6fc(250D1E>Q~l;4*LI;5kc$AW9!r^L>$V08Dd07-+phvz+1|~!ZTEOU4F9wbOl`KWw~NiGk9Lz} zx@FM5J8!b!^EYih%~{LV+bX&0(!j3y1amS$jTP~|3cdR4-)j+P?+l(fEr2z_dAAoLt+>CP&T?z!=oPq#hTaxtgbDVgr# z`gwTEgOp}lCFp6X`N#2tu#eq;w?D3xQEWG=D5PfjeM~1jwr(2&rnfDoZB`cVl1}pr zGSuMY9F|T!n{$iR=;x|3icN~v`=R@vlxX&F)YmPN1$Cq&{Y?o1F%s z8NQjhso;NKYorSQ`>yQVI2mUcVi1fBOM=jTw@J|t6`jZO{T`E~a{C-DAoF4PdM?~^ z6@G01g;Pv;g}2!~44fpIp%K2eDco0`uq5ArHnx4Fk!HGQ-=v((B1fTdH9f2|dAni$ ztpWP$koBY+C7$#T!md36oi-$+Ov;8@u9zsBLKh6HRc;BPFD@~<75z{$h~Vxsv*+vV zm04zK873e0fhpXyLj0-TmEI2@3e+N80}3R!Hr z$l32ulMtKX0EBUExa+(z7$j{bpgvtkAC_^{ZD0 zPp?@5P}2gJGtqG5Uk_s!Jpv!H%@cYw^WBC1Vm4x{e`MJg2m)WHXZFzuwgw$X;qKih zNHt@-7|nI{Y_k+aRitF3VzPD4LPThOb&NZRgi3de{D?xHdz3amP+PQel)#1>^1bUa z6rCdztTb^&QaLm4>0L@kA33u97)Ct*d5pde!RTSEB|7WrPCk~etyJz9l`rn`!>uYK zE!pw+|E)5kqtM-_fmTNxRvs2XtidbDN3>AR!oftS0_qLctW2V@kYTl4_}Q6ro>^$G zIrzepA<7r-w`rRVJ4CwwCao>8eI)Czc1|VNI!=Y4?9GX?Z2SX1w;MIs`0bs=J0oGq zymz9|M-tn4pW0Lf|KROavM+HDMn}eT>53$mUqv)I<6p6OQ|f$RzARPn%t zOZQhj=ONxpn#f)JgR_QgHP}urBw;%AqCt~ffzV`q7|HcolrUaE|5IVSQK`pl$p7`3 zz1NfhQJ<>>#ieUrUNPpd-{*C5m*n5|#79*FUtGcq&{gyPO z$m>M=hdc!5o|=6dad~*yoN7+vKW(j@TbGOq)3TqkAaUFnL;O=y*mW3=G%|FW_tLX; z&d$y7ZtVMs+RS>(!|7Rk{!?Ejp4^hFeF(h4=E9 z9ALX#*EAOYTGY~`U0jF!?b5 z{)By{O&vIKAr>JbI8l2-f1pKdpmC9x<^)^q&(K>z?%^ zDJ%qMT_Z=j&_6-%ESz#OSFV%jErEjwWE6-~4}G66881^P4c~Zg5f->l``pD$)2s;9 zRo!*h>;wSSP{u4^-@8gYm+9%YnN&EVicTOeXCM9CWR7-(L2WprSk#8apP}0%zHwhmQ0W04)q4F%%}^1c zy39vz6J!=bzp*+yngvv5^9T-)9`(zMXXCB1t{ zdKG5+cqCUj=2CDD3y&S-(i!hAb_tvM*jYvPht;_7i`gGLm4Bl?gMI$8IS$lI=_+}B zLNnT({ghMj0Q%~znVkp2wJv-%PR2-D@RKc>CtQeS3YPlk(AX|ZK)bU=$c)zrg8hyBO$>I!{LGEax)dcs9 z3U>akBg5Mm&4FXSrvRJ>l_o-7$_6Gl+dN1jm;888-uFp0TPI`L9@j zH>8Yu2X)~xS{v*mbKqdJWx8~d)rXb259htu&4pwd(q>+x{e#fEi-^TraYp}l0Z*nO zB*6M2Zfd$i|ieUj=%I3SKpQP?+k++!C=klL^}G70je=XZDsB>YL~K z@~T5$l|Hdk$?bfq_NX!6)AZG{#{!`--_Ts{N$e-;(E7+x3KUTU@5%|f!g^wAshk90 z3&0S$Q5OMllD9ikeQuKBGAH@mSr=Gr?^+^S7xhAd;I@odJ175eK>YDl%%=4zT0BEl zUO&hW_#f_2wOLO@0%_zwQ{2#(l0j&@#a1Ur!oJTFp^Wl2zR!orG}%=uNBXc$mqNaW zciDuVdA9WE`|_xVV>atOtZ;0;ih|*yGj^k8*eBt$Um1I&?8374Ryu-OdU5(tpFe-# z@+sis(yP9Ru5Vs;W}$9_Lzk}l1(7Xgg);HuD+VpEd2ER1zV(>=6DRlk>*Q9P+RwDI zp|8qfAC}-2Wn)=mLdqPNQCa0R0LASS^L~FjVMFdb2=f~j&T2VprK){AAgIRcmf!KlXf!|0F`5tc)3Hy;{B#z(bQU~3He|I{%p`|fC^Iqo@)}C>3YJ9sD~J_q z?VIG9^*f5I(_!<9$LeN4AX`&G=6<$XE7kJDY=wvrA((ktM$*7~O{-Gvlih(ZY_9Ic zvu=$S!vz1{$-(7^ALID>^ZXOu~v!Wg6Vd;Z#=GM_Pt_@c6M+^+vX21LvL z`vm=hD}u5*GHQGj$Y^?030wD9{G4J>4Rkb(w^P30pAgeSV`{Q$1gOwEbAwiH8|!De zTZ-r5;cy1{{)%qf$%f3MVJ~Y=xjxRww#Ta^?QnM4kmww<+R{^t=#q81Ih9!svkz;_ zup*a~EP3S{YFGGFqe~juJaCVnwpIAhx9Eju0UVZI&e4Fe^YEZa^tL8bCSDhqR^L}F z)b3JPM5R3Tq(i7|`3&lAz5#sBQXRT0FI#86-3(-U<4*lgD`z^Iw+urbr!?*QZc}0O zqC<|}`BeW>@($n)_^2OmI#5r)Rk;XBhn~DA^kbF89u*FMf;FCB3kDRMKd$nk#EcXf zD$vy925&OQgDwXGTFc%msV;s*>v`x=)V!3c%Zk7KXM?LIcrlQ^lxjJ1MoCQB!{cRx zAC4|*-$GV#!Qa7Eq0UP5j0%lv_qL>}|41d}v`CB6%?&Rr-&G%sInSTpoLRpK`}P!u z(1E^fEk}58Lm3;uJ8#8cLbELG?C%2721M5>lk{ItZoq;TgRc9n+|E{RXiO7}Th?vO zsR{s{+reGiosPY%o`DZ142fT~klC75h4ST9xozu34Csw@&l`-y*!DcRYM5WVzUc6auh6{|FMsXJ5S4f)59__~ z8DUpQY}ZgJHAkH(y+@fXT!J`vHB$-H4GcZWC!|sAdgvf_ba>C>(>RX$y8LVQe0O-0AmxuWY1n+7JD?&b;D2w_^ZXZ5;U~YJD$i?m!Z$b$dYm6iPq9og-}Y&nKRn4GYh=TNQPb zYZ}IeJSa=7f?>Z3>Y+tXsi>4T{gI8H@#+108_TRGrn9WrmzHafyD8!Ta7VLDa$@BQ z!~qT#0Ib+Vk}O?HI|PaZv%M{KP?QQ@En%??e#{C{_xE7{_GVqZ<_r$pL6McRg9|OH zrOO^}#T^RvIw*@BA`$_{oPUMh`|#M6DV&hkt8Z4QF5j&clC0n2dzINK=J}t>&JS># zlf-;&=(<-^W&%2P&RdJ;Qbx0&>O}OJQ?7Y_)m04u5~ClTuX%W*&2|b^pgd47FpO-a zyU2Tr7EGt((S5UZ3N%~laP0KdvLZL9*hG0*30-d~^5IFB?3~4V99!Cp_VLqjme$QX zzFM-Zk;+(sy3%uF`{Th!ZjuQ0b}$odxzC-YR*L)lSfTXdpcCgF`oY|Nk{Q^?<(7{$ zk>}chG0i!<5XJ}R_1!U0jrkLex|WbWMe$%BXU(#>h{Cysl;jDLt@%j5(#N*Oj$9L( z+I&4tFG}iN6}Or#TtS|+Q47zO<5fylUT_yqY&>}NWt-BKWGp^gPLn6kCRv^$gWYaa zln-0@EnJ(ama=yjCtL^hI%M1s|NYbRO?7_DM~BZQ)H3RKTFX3r45~A~s|S2A=2G>( z7n2JavC&&Rl)t;!RIPBmYv}zekg%C`dcN^~d#Sl9nQ(hEP8jn(w3uG8Uk^4-w-O)) zEUW32WlO1sV(=z~ZWnKM$?YHVA=1>b{orR~6&djOE6?8SvdJhNBtOuJ1@`9m=_>zc zX;?JvZJ8{~`DUZi(19VrknB8fA0J{eFIaTQ4s9kuv!k;oC?nrL0qx-7g83Ix7c0k$hAEH$G10u8>6W}DqpKC|fC)}BMzDhYgAT%@ zaW5+b_OHwGoY;~#sz^MS&WrU`I%P`4Fpm`OdRb{U37?Yw3fw`%pJZ<@tUr+|j1rh> zjnK?;Ek$@yoTgx1rQ?*?RQJBNkA^Xu)z#FkN|IeAz21{lA+Qy3`Gv)_W7r=8G6ZT) zW(HC3NLtkFcE*GMdI;*UD>-U5nrLKa8Fp1<@bifcHN&$ps%H}imo;8njHC5Ig?gIX zJbx*4S%A2^MvtR&? z^4Onw@gSYI%S2vw%S4i~+!Y?ha7_cuPI1Z91)|6V+zA^J7ys>XB>Blt&kn5?&+oq* zQqYJlIhQy&>`wCLUX&BPfBQdW@{3-13M!z(w9z~u+7X_h;yaygrdCdQum z9sXgGKi&?U8n@3l>9JE@a_RT%wk@ygx^^b9jp4hRPp%7jwG=uAmOb1PAi}*L$s*GK>n(^qS zpk3tj4cmp-ol(rS=0xu$TIKm8yz@YvVY-ux%>7qjDGc4%G4Q{`TfX_lbBXT!VFr}% z2yMjZsNq8*3mWKO*R1f&`_{QUgIe-&_>_FzqNOLz>etseVSV2p@6YZ84QuVJMaVFTLzx~q_`sshCh8C)sxgjlEI`9Iu*JJGF?qdAWM0D`6%ipo?Om*&-BMl zM+jiXSz{N;fYoD)=V^K5uo&ZLYI(6xXA&^Lh^S=}OQ=A6waF|_K0Z)CKL=kjAiYYpe4 zk3b_$v%}qRh76L^W=qbtd6J=Em9B88xfL@2YEyTzmqPerclHz6l4@CPcx}pJH^KxCUg|1&C=S!JcU8yTCD@=Yez^qf zBud$cmxevLb?~-*!*E+5MiP6()p>@~WawFNla>#t676qBNN@_xohfB2>Ylt-5;8b} zdxy!*$`FELF-$W5M)`VRtpTJ`-8Lxi{wtBxeb-dSfCq}3PXLUh7pckar-yWBxcPsF z?$M;}IC^YyumkHY6(A-LkbifmYwX8N*uzX%tm`e)X)7UgqfjkyVH?N-`;h`&%wl_2 zecWLolFKAuP}c(S5ZW{sd_m!NfWGRxkb|orOI;uu(%G}RU;jS(yRT(T-^#;u#X+X# zJa00LTx4ILe_@Z&{4)1o9{j_xHPW8i?`QR}jEt;}+~GZ{i!b;Vl4X3!v}G;*Im67P zp08Em=UDL4`$G9s?#5Wg@znV}ZGa`V2oAvRu$1q#sTVP4{ znbkH+m$dSvGZw615V3oA~nHSMd1QK|~8eLcwLN@+8&L31jqm5giA^T-2_WjFVq5Qu0 z!-Nm(qcMbT4#jo1^;7KW;2}Ua@RA)Dci36UR;xHsOpR&>Y0k!AkpD zT;c9$D-1(cBXXUjXRgFy7?iv?liGqUCeL*-IKhvFUiDMA<{) z#1+Fl8aciqXrho57PI9)ih})Uq^D68q?zzjKY~QI(A6#xn`_uSU6v;5EUEwlx2g9x z_n(|_ln%=G`ma$kkoXH7QNRAsLb0i9yOSrFW?S}fXYNQ`P^mCTn$rM_w_8IxRzlX> z;Jv2Hhv55BYjI^9T9WqhF`_A1Emu<~+t_?&iB0OUCD(r3>A4V`s*xmS@`vuXZ|v@L z$5g?Xf<9S5-k$ql_j`$9^v5iIm6@&+-Z_mKUmN#bcdjdzpRNmP7`9+q?n>(z|? zMy*D9a<0ggUZ95VsMl#TE2Mp`&<$5Zy-tO&NZHY^{*q%QGV|$;!J?_q`3;ZRXU*`j zBM)fEooQ|E#(^3hOfi{zQ915(&9(^RDsd+}I(!iho-kG6o5NMGb-Fvg!bw9v)MJ?C zpNM&=O??G;4A8?ajnoRKeb=x8R}PJ#TcMUW^c3usJHUU2sa#4H_usQ^gta^y6o1ZL z8&BI^Y9nSlCu>~cY#GO;0D>%q%{*_-kHNiP3g$c$XC!rfqFh@dUEF@g5Mu-51KX{( zj=ksV6+fyrpOGCYL9B6@m_5r#NXpzdS0KoqSX~2OBLy6BPnYf>T;6e^4M7tbY?O0H zH)0od!*93WfoBXABF<4;3PGZ>+3-s>*ifeY z58&-F{K(9Gl&yuev6vB8oIn`=6DB!cAmTWVS@e0d0J=C+isgxG#yn7SjhZhFxB6_} zA)vm$g083cfp(D?Yay^E!x@oVQ9%#xog5YKhqyeoP7y>l$qxCH#a8c+g5oCBrSdf2|Kkq z2iiZv3`&crCYti&qaeem_07ERpy$f&xrhKkd;^GfUp2}M zxe8h6n!Z?JYLtDW3ML)UIRT@Rf?;Ik<3PR(*;!?aRcppO&LO(yWhmem+M}B_k2;AiG&TS*;4b8z-I zC}~JjQEp+!n`bR-u`t8UV7M94rco$VXY@Plt!Q+v;M|kBq1@pQ6;rB6vuf^KfAN}q zs-d!<4!e4azLjiYw(Et!!i0<|YkvHJ2@gN~zRh^W#m_0+)i&3hYc%SM6^f6G@qELJ zb-;e5k(cP&`=C#PrMvGAkhOf<`US{v7Uf%s#KhMx;Dn(^g$t(qx@V$MMOV*Lv?06K zmW~)rh~eia+`9s5{oSJ`>g9A7XW`M)`pEOg`wC`9PmGh3nS4Xigj}h3(NCP{i!5W$ zibcHMXN2gwh0S=#Kk|+}FZ{;Qv5e>7e}-a54Yf6xj#lgYxT>%D%u{;bQ_AW_xQlkH zLlG`_7*1F`Rr>HFD?5wPITG0kuP|;%{rZFPSAk?bNu}u>XOZgDBD8o*MG^zut#zeh zKs-kLH0Vm$q~a-byA(5?I!@(V_NF?~sGR$y7|<8&x7|yqhsgPF>f!MM;8*T!gQDyA ziR-_c;HeiZqusnM8Gx%Qv1IRd83Tc@t{hM-&0dG4%&d+ZwObT`@Iebw#=9-V)Px)l zo^iW=i4J)?OkI&SpAyyk-T+wt;8eT1PG2n>a<2F}qr%|seYe`H_ubM8VV_?f?$bOn zy!0Hj4MvO3QHJCthd!rQ&>JIwMCb|_m3j)6;-%8rnpL0(i`P>+qppOE=rar&o@OW2^5aX%`P~aq=xGHBasDiVS>}v}r#*t-ZN??YDfa{VDx; z)83)uqS=NU_wF0gQD#sJaC^FV%8b3PQc+G{#P79K2XKq3Zfb6NKe+t2DyrsE2zvKl z9ba)8g-LtvxP2Nl3GhSB{Ix;D6NamrfXz!a0}>bo?r)0SLJJwY4Tan>n6Tg9t}vx( znh5ftBWjVtGTZkGNKPitjCWFXE7hsIiGEMfC}asDK6ig?GHUYC`~Z0_pwofX!IT7y z-NHu~vCDHSV&*xI_gyx`UbAdx1auIjefa0?5R90`4@s z?!ZWEFqaeFS++S;ien$GSQg1@#8aL1m8C*sDjDSwfi)zjP;&wPiI*#CNM6w>&{pY&>D&! zJ)1g!rbpr0S}!pf)DJFF85a_>9+}Anei>%vsuJL7i2>)|^JS*B|7Gf;khyq0Grk?= zVX*)ugn3+WPoMZW#ik;Tudk3kG=#&Ide#CI!G&n1>4p2MrnBh}^Su zw;7(B9)^=E%1z^IjNISQ>zHKSe`GP(OZD2(@cqTVOLE<6;^?)Wn}(Cxh%<)lR>hAu z2d^Uztm3C91WqfBRY?*5(9+3*b z!|Vb6O6XPAO#USnc=FU8cF3r6LT*QEFru8e*L7jkuomoC@8!BYF?QKk1TCdB0Z zZ>i-UeNqea>8HzQ)LAOLJF5vu`Lg8!`jW>N30$|dtzI)Wf6P<_&}MggF!~;?&4)u; zS9e4<{VuY!c^FSZ1U?_uU;8<8$~aqe%s2bXMrHqGj)O)rq1vIf6L$*l+(f0~Rs1(Dewo^KaP7~>xh$BCKh^U)_x5RUR zVMzPA-C{Tp*b8kLh@DFj2%DCr|A6MN-Ay|ot2M2T`K7w|(|$z8sI};EVa6BB!kbEl zExh!4?*4miW%X92nrwNkM|DPonJUvUvrofd8GdtbSGxvGJUzwm2y_fN5xAbXzfEY> z=#9-hxqN!d8iir>yn=!*l z$Up7ITj#+zwm2VD&@{V0N1>i=+}JTh`bD4(-KJlniIjy*=DPpxN#-U|WW|P}ySRFr zX6H$7Ha-(bs-mbHu-1rU{2oh~HpO_w;`Ph2u*|+qvGnYNIvl>*22&sfWJGADq>E7SJNc^@Aw2gr|?;kOzDXF*{9oVX{~(q^o7j5&^7r9K!D~%6Q2w^u^g1K z!9~co7)j4QIW|W9@Y?UcE-npPw>lYdvDu%~xc&+6YK3*TkSZO2tmqP*JDqjUh8#V9 zy712OIABN{2&zL&b-!(gawb4zI>Hm=iP1b&v&#W_E#(!lp}qgdVb|-3bL|bGfKw;m z8yu(rnMWqkzKb#xdv!7ID-Kz3g$P`nnU-z(AI`;;R5DH)6Uxv-h3cAK1)vhdD`vyN z*Adl64Y$ikr;e_W3gYW2dsV>UO|)sV6)3IQ)=MG4gPq-QPz<&3gm#m!Y%uDtUFdrB z-eH<{32i2e?iaXgz-CS1c)|Ye7~KQZF|+^72LZOr

TYF0r3efqOX3F>>#vIC)-} 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 z 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 z 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ðZbj{&abH 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

    5uw@%EFvzm+^ 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

    i5o6`J;PhD^s%a7LcfMJ6VEJ;b;B5V%MFn_C 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 z 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

    _GmZJrc3v`~7j~qDr(d0vj^Z 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 Date: Sun, 8 Aug 2021 01:33:47 +0800 Subject: [PATCH 16/92] use nvim-jdtls instead of jdtls official server --- lua/core/init.lua | 1 + lua/languages/config/nvim-lspconfig.lua | 50 +- plugin/packer_compiled.lua | 858 ++++++++++++++---------- 3 files changed, 531 insertions(+), 378 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 9465877..e849f51 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -161,6 +161,7 @@ packer.startup(function(use) requires = { {'kabouzeid/nvim-lspinstall', after = 'nvim-lspconfig'}, {'glepnir/lspsaga.nvim', after = 'nvim-lspconfig'}, + {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, }, config = function() require 'languages.config.nvim-lspconfig' diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index ce3223b..62bb132 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -146,11 +146,12 @@ local lspservers = { "go", "lua", "cpp", + "cmake", "java", "bash", "css", "html", - "rome", + "rome", "json", "python", "rust", @@ -186,12 +187,49 @@ require 'lspinstall'.setup() local nvim_lsp = require('lspconfig') local function setup_servers() for _, lsp in ipairs(require 'lspinstall'.installed_servers()) do - nvim_lsp[lsp].setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150, + -- NOTE: the Java official server can not deserve require + if lsp == "java" then + local install_path = require "lspinstall/util".install_path("java") + local path = install_path .. "/jdtls.sh" + vim.api.nvim_command('augroup lsp') + vim.api.nvim_command('au!') + vim.api.nvim_command('au FileType java lua require(\'jdtls\').start_or_attach({cmd = {\'' .. path .. '\'}})') + vim.api.nvim_command('augroup end') + vim.api.nvim_command('au FileType java lua vim.api.nvim_set_keymap(\'n\', \'gd\', \'lua vim.lsp.buf.definition()\', {silent = true})') + vim.api.nvim_exec( + [[ + au FileType java lua vim.api.nvim_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'gI', 'lua vim.lsp.buf.implementation()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'lr', 'lua vim.lsp.buf.rename()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'lR', 'lua require"jdtls".code_action(false, "refactor")', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'la', 'lua require"jdtls".code_action()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('v', 'la', 'lua require"jdtls".code_action(true)', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'll', 'lua vim.lsp.diagnostic.show_line_diagnostics()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', '[g', 'lua vim.lsp.diagnostic.goto_prev()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', ']g', 'lua vim.lsp.diagnostic.goto_next()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'bf', 'lua vim.lsp.buf.formatting()', {silent=true,noremap=true}) + au FileType java packadd which-key.nvim + au FileType java lua require"which-key".register({["lR"] = {name = "refactor"}}) + au FileType java lua require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) local opts = {};require'telescope.pickers'.new(opts, {prompt_title = prompt,finder = require'telescope.finders'.new_table {results = items,entry_maker = function(entry) return {value = entry,display = label_fn(entry),ordinal = label_fn(entry),}end,},sorter = require'telescope.sorters'.get_generic_fuzzy_sorter(),attach_mappings = function(prompt_bufnr) require'telescope.actions'.select_default:replace(function()local selection = require'telescope.actions'.get_selected_entry(prompt_bufnr) require'telescope.actions'.close(prompt_bufnr) cb(selection.value)end)return true end,}):find() end +]], + true + ) + + -- NOTE: ----------------------------END + else + nvim_lsp[lsp].setup { + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + } } - } + end end end diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 7f47094..4d2f296 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,392 +1,506 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) + end + end - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) end - end - -local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) return a[2] > b[2] end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end + local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) + return a[2] > b[2] + end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end - _G._packer = _G._packer or {} - _G._packer.profile_output = results -end + _G._packer = _G._packer or {} + _G._packer.profile_output = results + end -time([[Luarocks path setup]], true) -local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" -if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str -end + time([[Luarocks path setup]], true) + local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" + local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" + if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str + end -if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern -end + if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern + end -time([[Luarocks path setup]], false) -time([[try_loadstring definition]], true) -local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) - end) - end - return result -end + time([[Luarocks path setup]], false) + time([[try_loadstring definition]], true) + local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s)) + if not success then + vim.schedule(function() + vim.api.nvim_notify( + 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, + vim.log.levels.ERROR, + {} + ) + end) + end + return result + end + + time([[try_loadstring definition]], false) + time([[Defining packer_plugins]], true) + _G.packer_plugins = { + ["accelerated-jk"] = { + config = { + "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { + "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" + }, + ["compe-tabnine"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" + }, + ["dashboard-nvim"] = { + config = { + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" + }, + ["dial.nvim"] = { + config = {"\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0"}, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" + }, + everforest = { + config = { + "\27LJ\1\2{\0\0\5\0\a\0\t4\0\0\0007\0\1\0007\0\2\0%\1\3\0%\2\4\0%\3\5\0003\4\6\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { + "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + config = { + "\27LJ\1\2\1\0\0\5\0\a\0\t4\0\0\0007\0\1\0007\0\2\0%\1\3\0%\2\4\0%\3\5\0003\4\6\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { + "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { + "\27LJ\1\2\a\0\0\5\0\23\00094\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\6\0%\1\b\0>\0\2\0014\0\0\0007\0\6\0%\1\t\0>\0\2\0014\0\0\0007\0\6\0%\1\n\0>\0\2\0014\0\0\0007\0\6\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\15\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\16\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\17\0>\0\2\0014\0\0\0007\0\f\0007\0\18\0%\1\19\0%\2\20\0%\3\21\0003\4\22\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi5hi LspDiagnosticsVirtualTextHint guifg='#10B981'\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" + }, + ["indent-blankline.nvim"] = { + config = { + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" + }, + kommentary = { + config = { + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" + }, + ["lspsaga.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" + }, + ["neoscroll.nvim"] = { + config = { + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" + }, + ["nvim-autopairs"] = { + config = { + "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" + }, + ["nvim-colorizer.lua"] = { + config = { + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" + }, + ["nvim-compe"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe/after/plugin/compe.vim" + }, + config = { + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.nvim-compe\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe", + wants = {"vim-vsnip"} + }, + ["nvim-jdtls"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" + }, + ["nvim-lspconfig"] = { + after = {"lspsaga.nvim", "nvim-jdtls", "nvim-lspinstall"}, + loaded = true, + only_config = true + }, + ["nvim-lspinstall"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" + }, + ["nvim-markdown-preview"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" + }, + ["nvim-nonicons"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-nonicons" + }, + ["nvim-toggleterm.lua"] = { + config = { + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" + }, + ["nvim-transparent"] = { + config = { + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" + }, + ["nvim-tree.lua"] = { + config = { + "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + after = { + "nvim-treesitter-textobjects", + "nvim-ts-rainbow", + "nvim-ts-autotag", + "spellsitter.nvim" + }, + loaded = true, + only_config = true + }, + ["nvim-treesitter-textobjects"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" + }, + ["nvim-ts-autotag"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" + }, + ["nvim-ts-rainbow"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" + }, + ["popup.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" + }, + sonokai = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" + }, + ["space-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" + }, + ["spellsitter.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" + }, + ["telescope.nvim"] = { + config = { + "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" + }, + ["todo-comments.nvim"] = { + config = { + "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" + }, + ["vim-bookmarks"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" + }, + ["vim-cursorword"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" + }, + ["vim-rooter"] = { + config = { + "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" + }, + ["vim-sayonara"] = { + config = { + "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" + }, + ["vim-vsnip"] = { + after = {"vim-vsnip-integ"}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip", + wants = {"friendly-snippets"} + }, + ["vim-vsnip-integ"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" + }, + load_after = {["vim-vsnip"] = true}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" + }, + ["vista.vim"] = { + config = { + "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" + }, + ["which-key.nvim"] = { + config = { + "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" + } + } + + time([[Defining packer_plugins]], false) + + -- Config for: nvim-lspconfig + time([[Config for nvim-lspconfig]], true) + try_loadstring( + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", + "config", + "nvim-lspconfig" + ) + time([[Config for nvim-lspconfig]], false) + + -- Config for: dial.nvim + time([[Config for dial.nvim]], true) + try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") + time([[Config for dial.nvim]], false) + + -- Config for: nvim-colorizer.lua + time([[Config for nvim-colorizer.lua]], true) + try_loadstring( + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", + "config", + "nvim-colorizer.lua" + ) + time([[Config for nvim-colorizer.lua]], false) + + -- Config for: vim-rooter + time([[Config for vim-rooter]], true) + try_loadstring( + "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", + "config", + "vim-rooter" + ) + time([[Config for vim-rooter]], false) + + -- Config for: accelerated-jk + time([[Config for accelerated-jk]], true) + try_loadstring( + "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", + "config", + "accelerated-jk" + ) + time([[Config for accelerated-jk]], false) + + -- Config for: kommentary + time([[Config for kommentary]], true) + try_loadstring( + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", + "config", + "kommentary" + ) + time([[Config for kommentary]], false) + + -- Config for: neoscroll.nvim + time([[Config for neoscroll.nvim]], true) + try_loadstring( + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", + "config", + "neoscroll.nvim" + ) + time([[Config for neoscroll.nvim]], false) + + -- Config for: nvim-autopairs + time([[Config for nvim-autopairs]], true) + try_loadstring( + "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", + "config", + "nvim-autopairs" + ) + time([[Config for nvim-autopairs]], false) -time([[try_loadstring definition]], false) -time([[Defining packer_plugins]], true) -_G.packer_plugins = { - ["accelerated-jk"] = { - config = { "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" - }, - ["barbar.nvim"] = { - config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" - }, - ["compe-tabnine"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" - }, - ["dashboard-nvim"] = { - config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" - }, - ["dial.nvim"] = { - config = { "\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" - }, - everforest = { - config = { "\27LJ\1\2{\0\0\5\0\a\0\t4\0\0\0007\0\1\0007\0\2\0%\1\3\0%\2\4\0%\3\5\0003\4\6\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\bvim\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" - }, - ["friendly-snippets"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" - }, - ["galaxyline.nvim"] = { - config = { "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" - }, - ["github-nvim-theme"] = { - config = { "\27LJ\1\2\1\0\0\5\0\a\0\t4\0\0\0007\0\1\0007\0\2\0%\1\3\0%\2\4\0%\3\5\0003\4\6\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi\bvim\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" - }, - ["gitsigns.nvim"] = { - config = { "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" - }, - ["gruvbox-material"] = { - config = { "\27LJ\1\2\a\0\0\5\0\23\00094\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\6\0%\1\b\0>\0\2\0014\0\0\0007\0\6\0%\1\t\0>\0\2\0014\0\0\0007\0\6\0%\1\n\0>\0\2\0014\0\0\0007\0\6\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\15\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\16\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\17\0>\0\2\0014\0\0\0007\0\f\0007\0\18\0%\1\19\0%\2\20\0%\3\21\0003\4\22\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi5hi LspDiagnosticsVirtualTextHint guifg='#10B981'\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" - }, - ["indent-blankline.nvim"] = { - config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" - }, - kommentary = { - config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" - }, - ["lspsaga.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" - }, - ["neoscroll.nvim"] = { - config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" - }, - ["nvim-autopairs"] = { - config = { "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" - }, - ["nvim-colorizer.lua"] = { - config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" - }, - ["nvim-compe"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe/after/plugin/compe.vim" }, - config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.nvim-compe\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe", - wants = { "vim-vsnip" } - }, - ["nvim-lspconfig"] = { - after = { "lspsaga.nvim", "nvim-lspinstall" }, - loaded = true, - only_config = true - }, - ["nvim-lspinstall"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" - }, - ["nvim-markdown-preview"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" - }, - ["nvim-nonicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-nonicons" - }, - ["nvim-toggleterm.lua"] = { - config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" - }, - ["nvim-transparent"] = { - config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" - }, - ["nvim-tree.lua"] = { - config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" - }, - ["nvim-treesitter"] = { - after = { "nvim-treesitter-textobjects", "nvim-ts-autotag", "nvim-ts-rainbow", "spellsitter.nvim" }, - loaded = true, - only_config = true - }, - ["nvim-treesitter-textobjects"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" - }, - ["nvim-ts-autotag"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" - }, - ["nvim-ts-rainbow"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" - }, - ["nvim-web-devicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" - }, - ["packer.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" - }, - ["plenary.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" - }, - ["popup.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" - }, - sonokai = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" - }, - ["space-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" - }, - ["spellsitter.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" - }, - ["telescope.nvim"] = { - config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" - }, - ["todo-comments.nvim"] = { - config = { "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" - }, - ["vim-bookmarks"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" - }, - ["vim-cursorword"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" - }, - ["vim-rooter"] = { - config = { "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" - }, - ["vim-sayonara"] = { - config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" - }, - ["vim-vsnip"] = { - after = { "vim-vsnip-integ" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip", - wants = { "friendly-snippets" } - }, - ["vim-vsnip-integ"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" }, - load_after = { - ["vim-vsnip"] = true - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" - }, - ["vista.vim"] = { - config = { "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" - }, - ["which-key.nvim"] = { - config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" - } -} + -- Config for: nvim-treesitter + time([[Config for nvim-treesitter]], true) + try_loadstring( + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", + "config", + "nvim-treesitter" + ) + time([[Config for nvim-treesitter]], false) -time([[Defining packer_plugins]], false) --- Config for: nvim-treesitter -time([[Config for nvim-treesitter]], true) -try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") -time([[Config for nvim-treesitter]], false) --- Config for: dial.nvim -time([[Config for dial.nvim]], true) -try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") -time([[Config for dial.nvim]], false) --- Config for: nvim-colorizer.lua -time([[Config for nvim-colorizer.lua]], true) -try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") -time([[Config for nvim-colorizer.lua]], false) --- Config for: vim-rooter -time([[Config for vim-rooter]], true) -try_loadstring("\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") -time([[Config for vim-rooter]], false) --- Config for: accelerated-jk -time([[Config for accelerated-jk]], true) -try_loadstring("\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") -time([[Config for accelerated-jk]], false) --- Config for: kommentary -time([[Config for kommentary]], true) -try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") -time([[Config for kommentary]], false) --- Config for: neoscroll.nvim -time([[Config for neoscroll.nvim]], true) -try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") -time([[Config for neoscroll.nvim]], false) --- Config for: nvim-autopairs -time([[Config for nvim-autopairs]], true) -try_loadstring("\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") -time([[Config for nvim-autopairs]], false) --- Config for: nvim-lspconfig -time([[Config for nvim-lspconfig]], true) -try_loadstring("\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") -time([[Config for nvim-lspconfig]], false) --- Load plugins in order defined by `after` -time([[Sequenced loading]], true) -vim.cmd [[ packadd lspsaga.nvim ]] -vim.cmd [[ packadd nvim-lspinstall ]] -vim.cmd [[ packadd spellsitter.nvim ]] -vim.cmd [[ packadd nvim-treesitter-textobjects ]] -vim.cmd [[ packadd nvim-ts-rainbow ]] -vim.cmd [[ packadd nvim-ts-autotag ]] -time([[Sequenced loading]], false) -vim.cmd [[augroup packer_load_aucmds]] -vim.cmd [[au!]] - -- Event lazy-loads -time([[Defining lazy-load event autocommands]], true) -vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'galaxyline.nvim', 'dashboard-nvim', 'which-key.nvim', 'barbar.nvim', 'vim-sayonara', 'nvim-tree.lua', 'telescope.nvim', 'nvim-toggleterm.lua', 'vista.vim', 'nvim-transparent'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] -vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'compe-tabnine', 'vim-vsnip-integ', 'vim-vsnip'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] -vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'github-nvim-theme', 'todo-comments.nvim', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] -time([[Defining lazy-load event autocommands]], false) -vim.cmd("augroup END") -if should_profile then save_profiles() end + -- Load plugins in order defined by `after` + time([[Sequenced loading]], true) + vim.cmd [[ packadd lspsaga.nvim ]] + vim.cmd [[ packadd nvim-jdtls ]] + vim.cmd [[ packadd nvim-lspinstall ]] + vim.cmd [[ packadd spellsitter.nvim ]] + vim.cmd [[ packadd nvim-treesitter-textobjects ]] + vim.cmd [[ packadd nvim-ts-rainbow ]] + vim.cmd [[ packadd nvim-ts-autotag ]] + time([[Sequenced loading]], false) + vim.cmd [[augroup packer_load_aucmds]] + vim.cmd [[au!]] + -- Event lazy-loads + time([[Defining lazy-load event autocommands]], true) + vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'galaxyline.nvim', 'dashboard-nvim', 'vista.vim', 'barbar.nvim', 'nvim-tree.lua', 'vim-sayonara', 'telescope.nvim', 'which-key.nvim', 'nvim-transparent', 'nvim-toggleterm.lua'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] + vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'vim-vsnip-integ', 'vim-vsnip', 'compe-tabnine'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] + vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'github-nvim-theme', 'todo-comments.nvim', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] + time([[Defining lazy-load event autocommands]], false) + vim.cmd("augroup END") + if should_profile then + save_profiles() + end end) if not no_errors then - vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: ' .. error_msg .. '" | echom "Please check your config for correctness" | echohl None') end From 45323b43f23d7b4ab4a03eb9991955b4b4c205bb Mon Sep 17 00:00:00 2001 From: JryChn Date: Sun, 8 Aug 2021 13:05:44 +0800 Subject: [PATCH 17/92] update color highlight --- lua/core/config/basic-configuration.lua | 1 + lua/core/init.lua | 37 +++++++++++++++++++++---- lua/languages/config/nvim-lspconfig.lua | 17 ++++++++---- plugin/packer_compiled.lua | 6 ++-- 4 files changed, 47 insertions(+), 14 deletions(-) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index 3be209f..4d7b3dc 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -129,3 +129,4 @@ for name, value in pairs(buffer) do end end +vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") diff --git a/lua/core/init.lua b/lua/core/init.lua index e849f51..2f329a7 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -213,6 +213,16 @@ packer.startup(function(use) use { 'projekt0n/github-nvim-theme', config = function() + vim.cmd("hi VirtualTextWarning guifg='yellow'") + vim.cmd("hi VirtualTextError guifg='red'") + vim.cmd("hi VirtualTextInformation guifg='#0db9d7'") + vim.cmd("hi VirtualTextHint guifg='#2c6e4e'") + vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") + vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") + vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") + vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") + vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") + vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") vim.api.nvim_set_keymap( 'n', 'tc1', @@ -229,15 +239,20 @@ packer.startup(function(use) vim.g.gruvbox_material_background = 'medium' vim.g.gruvbox_material_palette = 'mix' vim.cmd("colorscheme gruvbox-material") - vim.cmd("hi LspDiagnosticsVirtualTextWarning guifg='yellow'") - vim.cmd("hi LspDiagnosticsVirtualTextError guifg='#db4b4b'") - vim.cmd("hi LspDiagnosticsVirtualTextInformation guifg='#0db9d7'") - vim.cmd("hi LspDiagnosticsVirtualTextHint guifg='#10B981'") vim.api.nvim_command('highlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold') - vim.api.nvim_command('highlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=bold') vim.api.nvim_command('highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33') vim.api.nvim_command('highlight default HopUnmatched guifg=#666666 ctermfg=242') + vim.cmd("hi VirtualTextWarning guifg='yellow'") + vim.cmd("hi VirtualTextError guifg='red'") + vim.cmd("hi VirtualTextInformation guifg='#0db9d7'") + vim.cmd("hi VirtualTextHint guifg='#2c6e4e'") + vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") + vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") + vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") + vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") + vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") + vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") vim.api.nvim_set_keymap( 'n', 'tc2', @@ -251,6 +266,16 @@ packer.startup(function(use) 'sainnhe/everforest', requires = {"sainnhe/sonokai", "Th3Whit3Wolf/space-nvim"}, config = function() + vim.cmd("hi VirtualTextWarning guifg='yellow'") + vim.cmd("hi VirtualTextError guifg='red'") + vim.cmd("hi VirtualTextInformation guifg='#0db9d7'") + vim.cmd("hi VirtualTextHint guifg='#2c6e4e'") + vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") + vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") + vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") + vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") + vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") + vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") vim.api.nvim_set_keymap( 'n', 'tc3', @@ -316,7 +341,7 @@ packer.startup(function(use) config = function() require 'plugins.config.hop' end, - event = "BufRead" + event = "BufRead", } use { --highlight and search for todo comments diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 62bb132..20f32fd 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -252,7 +252,7 @@ saga.init_lsp_saga { error_sign = '✖️', warn_sign = '⚠️ ', hint_sign = '☀️ ', - infor_sign = 'ℹ️', + infor_sign = ' ℹ️', dianostic_header_icon = '  ', code_action_icon = ' ' } @@ -260,10 +260,16 @@ saga.init_lsp_saga { ------------------------------- --NOTE: define the diagnostic color -vim.cmd("hi LspDiagnosticsVirtualTextWarning guifg='yellow'") -vim.cmd("hi LspDiagnosticsVirtualTextError guifg='#db4b4b'") -vim.cmd("hi LspDiagnosticsVirtualTextInformation guifg='#0db9d7'") -vim.cmd("hi LspDiagnosticsVirtualTextHint guifg='#10B981'") +vim.cmd("hi VirtualTextWarning guifg='yellow'") +vim.cmd("hi VirtualTextError guifg='red'") +vim.cmd("hi VirtualTextInformation guifg='#0db9d7'") +vim.cmd("hi VirtualTextHint guifg=#2c6e4e") +vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") +vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") +vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") +vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") +vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") +vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") --NOTE: define the auto format on save vim.api.nvim_exec( @@ -275,3 +281,4 @@ augroup END ]], true ) + diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 4d2f296..d56913e 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -113,7 +113,7 @@ local no_errors, error_msg = pcall(function() }, everforest = { config = { - "\27LJ\1\2{\0\0\5\0\a\0\t4\0\0\0007\0\1\0007\0\2\0%\1\3\0%\2\4\0%\3\5\0003\4\6\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\bvim\0" + "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, @@ -133,7 +133,7 @@ local no_errors, error_msg = pcall(function() }, ["github-nvim-theme"] = { config = { - "\27LJ\1\2\1\0\0\5\0\a\0\t4\0\0\0007\0\1\0007\0\2\0%\1\3\0%\2\4\0%\3\5\0003\4\6\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi\bvim\0" + "\27LJ\1\2\6\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, @@ -149,7 +149,7 @@ local no_errors, error_msg = pcall(function() }, ["gruvbox-material"] = { config = { - "\27LJ\1\2\a\0\0\5\0\23\00094\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\6\0%\1\b\0>\0\2\0014\0\0\0007\0\6\0%\1\t\0>\0\2\0014\0\0\0007\0\6\0%\1\n\0>\0\2\0014\0\0\0007\0\6\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\15\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\16\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\17\0>\0\2\0014\0\0\0007\0\f\0007\0\18\0%\1\19\0%\2\20\0%\3\21\0003\4\22\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi5hi LspDiagnosticsVirtualTextHint guifg='#10B981'\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, loaded = false, needs_bufread = false, From c3f2470bacf1c497e46f9937cfc319eeed656ec9 Mon Sep 17 00:00:00 2001 From: JryChn Date: Sun, 8 Aug 2021 22:17:27 +0800 Subject: [PATCH 18/92] add debug support --- lua/core/config/basic-configuration.lua | 2 +- lua/core/init.lua | 11 + lua/languages/config/nvim-dap.lua | 110 +++ plugin/packer_compiled.lua | 882 +++++++++++------------- 4 files changed, 518 insertions(+), 487 deletions(-) create mode 100644 lua/languages/config/nvim-dap.lua diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index 4d7b3dc..b336337 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -4,7 +4,7 @@ vim.api.nvim_set_keymap("n", "", ":wincmd w", {silent = true}) vim.api.nvim_set_keymap("i", "jk", "", {silent = true}) vim.api.nvim_set_keymap("n", "", ":w!", {noremap = true}) -vim.api.nvim_set_keymap("i", "", ":w!", {noremap = true}) +vim.api.nvim_set_keymap("i", "", ":w!", {noremap = true}) vim.cmd([[ nnoremap :resize -2 nnoremap :resize +2 diff --git a/lua/core/init.lua b/lua/core/init.lua index 2f329a7..729b93d 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -202,6 +202,17 @@ packer.startup(function(use) end } + use { + --debug plugin + "mfussenegger/nvim-dap", + requires = {"rcarriga/nvim-dap-ui", "Pocco81/DAPInstall.nvim"}, + config = function() + require 'languages.config.nvim-dap' + end, + + -- event = 'BufferRead' + } + --use{ --formatter TODO: Not use now, instead by lsp --'mhartington/formatter.nvim', --config = function() diff --git a/lua/languages/config/nvim-dap.lua b/lua/languages/config/nvim-dap.lua new file mode 100644 index 0000000..788ae63 --- /dev/null +++ b/lua/languages/config/nvim-dap.lua @@ -0,0 +1,110 @@ +vim.api.nvim_set_keymap("n", "", "lua require'dap'.continue()", {}) +vim.api.nvim_set_keymap( + "n", + "", + "lua require'dap'.toggle_breakpoint()", + {} +) +vim.api.nvim_set_keymap( + "n", + "", + "lua require'dap'.step_into()", + {} +) +vim.api.nvim_set_keymap( + "n", + "", + "lua require'dap'.step_over()", + {} +) +vim.api.nvim_set_keymap( + "n", + "", + "lua require'dap'.step_out()()", + {} +) + +-------------------------------------------------------------------------------- +local dap_install = require("dap-install") + +dap_install.setup({ + installation_path = vim.fn.stdpath("data") .. "/dapinstall/", + verbosely_call_debuggers = false, +}) + +-- ui +-- +require("dapui").setup({ + icons = {expanded = "▾", collapsed = "▸"}, + mappings = { + -- Use a table to apply multiple mappings + expand = {"", "<2-LeftMouse>"}, + open = "o", + remove = "d", + edit = "e", + repl = "r", + }, + sidebar = { + open_on_start = true, + + -- You can change the order of elements in the sidebar + elements = { + -- Provide as ID strings or tables with "id" and "size" keys + { + id = "scopes", + size = 0.25, + + -- Can be float or integer > 1 + }, + {id = "breakpoints", size = 0.25}, + {id = "stacks", size = 0.25}, + {id = "watches", size = 00.25}, + }, + width = 40, + position = "left", + + -- Can be "left" or "right" + }, + tray = { + open_on_start = true, + elements = {"repl"}, + height = 10, + position = "bottom", + + -- Can be "bottom" or "top" + }, + floating = { + max_height = nil, + + -- These can be integers or a float between 0 and 1. + max_width = nil, + + -- Floats will be treated as percentage of your screen. + mappings = { + close = {"q", ""}, + }, + }, + windows = {indent = 1}, +}) + +local dap = require "dap" + +dap.adapters.go = { + type = 'executable'; + command = 'node'; + args = { + vim.fn.stdpath("data") .. "/dapinstall/go_dbg/vscode-go/dist/debugAdapter.js" + }; +} +dap.configurations.go = { + { + type = 'go'; + name = 'Debug'; + request = 'launch'; + showLog = false; + program = "${file}"; + dlvToolPath = vim.fn.exepath(vim.fn.stdpath("data") .. "/dapinstall/go_dbg/delve/cmd/dlv") + + -- Adjust to where delve is installed + }, +} diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index d56913e..a093bdc 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,506 +1,416 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) - end - end - local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) - return a[2] > b[2] - end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) end + end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end - _G._packer = _G._packer or {} - _G._packer.profile_output = results - end - - time([[Luarocks path setup]], true) - local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" - local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" - if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str - end - - if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern - end - - time([[Luarocks path setup]], false) - time([[try_loadstring definition]], true) - local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify( - 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, - vim.log.levels.ERROR, - {} - ) - end) - end - return result - end - - time([[try_loadstring definition]], false) - time([[Defining packer_plugins]], true) - _G.packer_plugins = { - ["accelerated-jk"] = { - config = { - "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" - }, - ["barbar.nvim"] = { - config = { - "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" - }, - ["compe-tabnine"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" - }, - ["dashboard-nvim"] = { - config = { - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" - }, - ["dial.nvim"] = { - config = {"\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0"}, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" - }, - everforest = { - config = { - "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" - }, - ["friendly-snippets"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" - }, - ["galaxyline.nvim"] = { - config = { - "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" - }, - ["github-nvim-theme"] = { - config = { - "\27LJ\1\2\6\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" - }, - ["gitsigns.nvim"] = { - config = { - "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" - }, - ["gruvbox-material"] = { - config = { - "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" - }, - hop = { - config = { - "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" - }, - ["indent-blankline.nvim"] = { - config = { - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" - }, - kommentary = { - config = { - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" - }, - ["lspsaga.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" - }, - ["neoscroll.nvim"] = { - config = { - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" - }, - ["nvim-autopairs"] = { - config = { - "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" - }, - ["nvim-colorizer.lua"] = { - config = { - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" - }, - ["nvim-compe"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe/after/plugin/compe.vim" - }, - config = { - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.nvim-compe\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe", - wants = {"vim-vsnip"} - }, - ["nvim-jdtls"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" - }, - ["nvim-lspconfig"] = { - after = {"lspsaga.nvim", "nvim-jdtls", "nvim-lspinstall"}, - loaded = true, - only_config = true - }, - ["nvim-lspinstall"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" - }, - ["nvim-markdown-preview"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" - }, - ["nvim-nonicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-nonicons" - }, - ["nvim-toggleterm.lua"] = { - config = { - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" - }, - ["nvim-transparent"] = { - config = { - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" - }, - ["nvim-tree.lua"] = { - config = { - "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" - }, - ["nvim-treesitter"] = { - after = { - "nvim-treesitter-textobjects", - "nvim-ts-rainbow", - "nvim-ts-autotag", - "spellsitter.nvim" - }, - loaded = true, - only_config = true - }, - ["nvim-treesitter-textobjects"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" - }, - ["nvim-ts-autotag"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" - }, - ["nvim-ts-rainbow"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" - }, - ["nvim-web-devicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" - }, - ["packer.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" - }, - ["plenary.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" - }, - ["popup.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" - }, - sonokai = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" - }, - ["space-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" - }, - ["spellsitter.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" - }, - ["telescope.nvim"] = { - config = { - "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" - }, - ["todo-comments.nvim"] = { - config = { - "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" - }, - ["vim-bookmarks"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" - }, - ["vim-cursorword"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" - }, - ["vim-rooter"] = { - config = { - "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" - }, - ["vim-sayonara"] = { - config = { - "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" - }, - ["vim-vsnip"] = { - after = {"vim-vsnip-integ"}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip", - wants = {"friendly-snippets"} - }, - ["vim-vsnip-integ"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" - }, - load_after = {["vim-vsnip"] = true}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" - }, - ["vista.vim"] = { - config = { - "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" - }, - ["which-key.nvim"] = { - config = { - "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" - } - } - - time([[Defining packer_plugins]], false) - - -- Config for: nvim-lspconfig - time([[Config for nvim-lspconfig]], true) - try_loadstring( - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", - "config", - "nvim-lspconfig" - ) - time([[Config for nvim-lspconfig]], false) - - -- Config for: dial.nvim - time([[Config for dial.nvim]], true) - try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") - time([[Config for dial.nvim]], false) - - -- Config for: nvim-colorizer.lua - time([[Config for nvim-colorizer.lua]], true) - try_loadstring( - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", - "config", - "nvim-colorizer.lua" - ) - time([[Config for nvim-colorizer.lua]], false) - - -- Config for: vim-rooter - time([[Config for vim-rooter]], true) - try_loadstring( - "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", - "config", - "vim-rooter" - ) - time([[Config for vim-rooter]], false) - - -- Config for: accelerated-jk - time([[Config for accelerated-jk]], true) - try_loadstring( - "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", - "config", - "accelerated-jk" - ) - time([[Config for accelerated-jk]], false) + _G._packer = _G._packer or {} + _G._packer.profile_output = results +end - -- Config for: kommentary - time([[Config for kommentary]], true) - try_loadstring( - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", - "config", - "kommentary" - ) - time([[Config for kommentary]], false) +time([[Luarocks path setup]], true) +local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end - -- Config for: neoscroll.nvim - time([[Config for neoscroll.nvim]], true) - try_loadstring( - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", - "config", - "neoscroll.nvim" - ) - time([[Config for neoscroll.nvim]], false) +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end - -- Config for: nvim-autopairs - time([[Config for nvim-autopairs]], true) - try_loadstring( - "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", - "config", - "nvim-autopairs" - ) - time([[Config for nvim-autopairs]], false) +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s)) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end - -- Config for: nvim-treesitter - time([[Config for nvim-treesitter]], true) - try_loadstring( - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", - "config", - "nvim-treesitter" - ) - time([[Config for nvim-treesitter]], false) +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + ["DAPInstall.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" + }, + ["accelerated-jk"] = { + config = { "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" + }, + ["compe-tabnine"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" + }, + ["dashboard-nvim"] = { + config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" + }, + ["dial.nvim"] = { + config = { "\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" + }, + everforest = { + config = { "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + config = { "\27LJ\1\2\6\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" + }, + hop = { + config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" + }, + ["indent-blankline.nvim"] = { + config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" + }, + kommentary = { + config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" + }, + ["lspsaga.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" + }, + ["neoscroll.nvim"] = { + config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" + }, + ["nvim-autopairs"] = { + config = { "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" + }, + ["nvim-colorizer.lua"] = { + config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" + }, + ["nvim-compe"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe/after/plugin/compe.vim" }, + config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.nvim-compe\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe", + wants = { "vim-vsnip" } + }, + ["nvim-dap"] = { + config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" + }, + ["nvim-jdtls"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" + }, + ["nvim-lspconfig"] = { + after = { "lspsaga.nvim", "nvim-jdtls", "nvim-lspinstall" }, + loaded = true, + only_config = true + }, + ["nvim-lspinstall"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" + }, + ["nvim-markdown-preview"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" + }, + ["nvim-nonicons"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-nonicons" + }, + ["nvim-toggleterm.lua"] = { + config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" + }, + ["nvim-transparent"] = { + config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" + }, + ["nvim-tree.lua"] = { + config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + after = { "nvim-treesitter-textobjects", "nvim-ts-rainbow", "nvim-ts-autotag", "spellsitter.nvim" }, + loaded = true, + only_config = true + }, + ["nvim-treesitter-textobjects"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" + }, + ["nvim-ts-autotag"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" + }, + ["nvim-ts-rainbow"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" + }, + ["popup.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" + }, + sonokai = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" + }, + ["space-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" + }, + ["spellsitter.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" + }, + ["telescope.nvim"] = { + config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" + }, + ["todo-comments.nvim"] = { + config = { "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" + }, + ["vim-bookmarks"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" + }, + ["vim-cursorword"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" + }, + ["vim-rooter"] = { + config = { "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" + }, + ["vim-sayonara"] = { + config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" + }, + ["vim-vsnip"] = { + after = { "vim-vsnip-integ" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip", + wants = { "friendly-snippets" } + }, + ["vim-vsnip-integ"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" }, + load_after = { + ["vim-vsnip"] = true + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" + }, + ["vista.vim"] = { + config = { "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" + }, + ["which-key.nvim"] = { + config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" + } +} - -- Load plugins in order defined by `after` - time([[Sequenced loading]], true) - vim.cmd [[ packadd lspsaga.nvim ]] - vim.cmd [[ packadd nvim-jdtls ]] - vim.cmd [[ packadd nvim-lspinstall ]] - vim.cmd [[ packadd spellsitter.nvim ]] - vim.cmd [[ packadd nvim-treesitter-textobjects ]] - vim.cmd [[ packadd nvim-ts-rainbow ]] - vim.cmd [[ packadd nvim-ts-autotag ]] - time([[Sequenced loading]], false) - vim.cmd [[augroup packer_load_aucmds]] - vim.cmd [[au!]] +time([[Defining packer_plugins]], false) +-- Config for: nvim-lspconfig +time([[Config for nvim-lspconfig]], true) +try_loadstring("\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") +time([[Config for nvim-lspconfig]], false) +-- Config for: dial.nvim +time([[Config for dial.nvim]], true) +try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") +time([[Config for dial.nvim]], false) +-- Config for: nvim-colorizer.lua +time([[Config for nvim-colorizer.lua]], true) +try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") +time([[Config for nvim-colorizer.lua]], false) +-- Config for: vim-rooter +time([[Config for vim-rooter]], true) +try_loadstring("\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") +time([[Config for vim-rooter]], false) +-- Config for: accelerated-jk +time([[Config for accelerated-jk]], true) +try_loadstring("\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") +time([[Config for accelerated-jk]], false) +-- Config for: nvim-dap +time([[Config for nvim-dap]], true) +try_loadstring("\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap") +time([[Config for nvim-dap]], false) +-- Config for: kommentary +time([[Config for kommentary]], true) +try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") +time([[Config for kommentary]], false) +-- Config for: neoscroll.nvim +time([[Config for neoscroll.nvim]], true) +try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") +time([[Config for neoscroll.nvim]], false) +-- Config for: nvim-autopairs +time([[Config for nvim-autopairs]], true) +try_loadstring("\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") +time([[Config for nvim-autopairs]], false) +-- Config for: nvim-treesitter +time([[Config for nvim-treesitter]], true) +try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") +time([[Config for nvim-treesitter]], false) +-- Load plugins in order defined by `after` +time([[Sequenced loading]], true) +vim.cmd [[ packadd lspsaga.nvim ]] +vim.cmd [[ packadd nvim-jdtls ]] +vim.cmd [[ packadd nvim-lspinstall ]] +vim.cmd [[ packadd spellsitter.nvim ]] +vim.cmd [[ packadd nvim-treesitter-textobjects ]] +vim.cmd [[ packadd nvim-ts-rainbow ]] +vim.cmd [[ packadd nvim-ts-autotag ]] +time([[Sequenced loading]], false) +vim.cmd [[augroup packer_load_aucmds]] +vim.cmd [[au!]] + -- Event lazy-loads +time([[Defining lazy-load event autocommands]], true) +vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'galaxyline.nvim', 'dashboard-nvim', 'nvim-toggleterm.lua', 'vista.vim', 'nvim-tree.lua', 'telescope.nvim', 'vim-sayonara', 'which-key.nvim', 'nvim-transparent', 'barbar.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] +vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'vim-vsnip-integ', 'vim-vsnip', 'compe-tabnine'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] +vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'github-nvim-theme', 'todo-comments.nvim', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] +time([[Defining lazy-load event autocommands]], false) +vim.cmd("augroup END") +if should_profile then save_profiles() end - -- Event lazy-loads - time([[Defining lazy-load event autocommands]], true) - vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'galaxyline.nvim', 'dashboard-nvim', 'vista.vim', 'barbar.nvim', 'nvim-tree.lua', 'vim-sayonara', 'telescope.nvim', 'which-key.nvim', 'nvim-transparent', 'nvim-toggleterm.lua'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] - vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'vim-vsnip-integ', 'vim-vsnip', 'compe-tabnine'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] - vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'github-nvim-theme', 'todo-comments.nvim', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] - time([[Defining lazy-load event autocommands]], false) - vim.cmd("augroup END") - if should_profile then - save_profiles() - end end) if not no_errors then - vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: ' .. error_msg .. '" | echom "Please check your config for correctness" | echohl None') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') end From 24db5c7a5fa06d6962ccbfb349270d13b8851a69 Mon Sep 17 00:00:00 2001 From: JryChn Date: Sun, 8 Aug 2021 23:22:42 +0800 Subject: [PATCH 19/92] add go debug with delve --- lua/languages/config/nvim-dap.lua | 75 +++++++++++++++++++++++-------- 1 file changed, 57 insertions(+), 18 deletions(-) diff --git a/lua/languages/config/nvim-dap.lua b/lua/languages/config/nvim-dap.lua index 788ae63..acb10dd 100644 --- a/lua/languages/config/nvim-dap.lua +++ b/lua/languages/config/nvim-dap.lua @@ -89,22 +89,61 @@ require("dapui").setup({ local dap = require "dap" -dap.adapters.go = { - type = 'executable'; - command = 'node'; - args = { - vim.fn.stdpath("data") .. "/dapinstall/go_dbg/vscode-go/dist/debugAdapter.js" - }; -} -dap.configurations.go = { - { - type = 'go'; - name = 'Debug'; - request = 'launch'; - showLog = false; - program = "${file}"; - dlvToolPath = vim.fn.exepath(vim.fn.stdpath("data") .. "/dapinstall/go_dbg/delve/cmd/dlv") - - -- Adjust to where delve is installed - }, +dap.adapters.go = function(callback, config) + local stdout = vim.loop.new_pipe(false) + local handle + local pid_or_err + local port = 38697 + local dlv_path = vim.fn.stdpath("data") .. "/dapinstall/go_delve_dbg/delve/cmd/dlv" + local opts = { + stdio = {nil, stdout}, + args = {"dap", "-l", "127.0.0.1:" .. port}, + detached = true + } + handle, pid_or_err = vim.loop.spawn("dlv", opts, function(code) + stdout:close() + handle:close() + if code ~= 0 then + print('dlv exited with code', code) + end + end) + assert(handle, 'Error running dlv: ' .. tostring(pid_or_err)) + stdout:read_start(function(err, chunk) + assert(not err, err) + if chunk then + vim.schedule(function() + require('dap.repl').append(chunk) + end) + end + end) + -- Wait for delve to start + vim.defer_fn( + function() + callback({type = "server", host = "127.0.0.1", port = port}) + end, + 100) + end + -- https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv_dap.md + dap.configurations.go = { + { + type = "go", + name = "Debug", + request = "launch", + program = "${file}", + }, + { + type = "go", + name = "Debug test", -- configuration for debugging test files + request = "launch", + mode = "test", + program = "${file}", + }, + -- works with go.mod packages and sub packages + { + type = "go", + name = "Debug test (go.mod)", + request = "launch", + mode = "test", + program = "./${relativeFileDirname}", + } } From 5cab7d799e3be6aeee7f2b0a15b94ffb1db18524 Mon Sep 17 00:00:00 2001 From: JryChn Date: Mon, 9 Aug 2021 14:19:27 +0800 Subject: [PATCH 20/92] some fix --- lua/core/init.lua | 8 +-- lua/languages/config/kommentary.lua | 2 +- lua/languages/config/nvim-dap.lua | 70 +++-------------------- lua/languages/config/nvim-lspconfig.lua | 12 ++-- lua/plugins/config/gitsigns.lua | 1 + lua/plugins/config/which-key.lua | 1 + plugin/packer_compiled.lua | 76 ++++++++++++------------- 7 files changed, 59 insertions(+), 111 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 729b93d..13bc696 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -205,7 +205,7 @@ packer.startup(function(use) use { --debug plugin "mfussenegger/nvim-dap", - requires = {"rcarriga/nvim-dap-ui", "Pocco81/DAPInstall.nvim"}, + requires = {"rcarriga/nvim-dap-ui", "Pocco81/DAPInstall.nvim","theHamsta/nvim-dap-virtual-text"}, config = function() require 'languages.config.nvim-dap' end, @@ -226,7 +226,7 @@ packer.startup(function(use) config = function() vim.cmd("hi VirtualTextWarning guifg='yellow'") vim.cmd("hi VirtualTextError guifg='red'") - vim.cmd("hi VirtualTextInformation guifg='#0db9d7'") + vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") vim.cmd("hi VirtualTextHint guifg='#2c6e4e'") vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") @@ -256,7 +256,7 @@ packer.startup(function(use) vim.api.nvim_command('highlight default HopUnmatched guifg=#666666 ctermfg=242') vim.cmd("hi VirtualTextWarning guifg='yellow'") vim.cmd("hi VirtualTextError guifg='red'") - vim.cmd("hi VirtualTextInformation guifg='#0db9d7'") + vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") vim.cmd("hi VirtualTextHint guifg='#2c6e4e'") vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") @@ -279,7 +279,7 @@ packer.startup(function(use) config = function() vim.cmd("hi VirtualTextWarning guifg='yellow'") vim.cmd("hi VirtualTextError guifg='red'") - vim.cmd("hi VirtualTextInformation guifg='#0db9d7'") + vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") vim.cmd("hi VirtualTextHint guifg='#2c6e4e'") vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") diff --git a/lua/languages/config/kommentary.lua b/lua/languages/config/kommentary.lua index 0eff38f..248aaa4 100644 --- a/lua/languages/config/kommentary.lua +++ b/lua/languages/config/kommentary.lua @@ -2,7 +2,7 @@ vim.g.kommentary_create_default_mappings = false vim.api.nvim_set_keymap("n", "cl", "kommentary_line_default", {}) vim.api.nvim_set_keymap("n", "cd", "kommentary_motion_default", {}) vim.api.nvim_set_keymap("x", "cv", "kommentary_visual_default", {}) -vim.api.nvim_set_keymap("v", "cv", "kommentary_visual_default", {}) +vim.api.nvim_set_keymap("v", "cl", "kommentary_visual_default", {}) --------------------------------------------------------------------------------------------- diff --git a/lua/languages/config/nvim-dap.lua b/lua/languages/config/nvim-dap.lua index acb10dd..562bec2 100644 --- a/lua/languages/config/nvim-dap.lua +++ b/lua/languages/config/nvim-dap.lua @@ -31,9 +31,16 @@ dap_install.setup({ installation_path = vim.fn.stdpath("data") .. "/dapinstall/", verbosely_call_debuggers = false, }) +local dbg_list = require("dap-install.debuggers_list").debuggers +for debugger, _ in pairs(dbg_list) do + if debugger=="go_delve_dbg" + then + dap_install.config(debugger, {}) +end +end -- ui --- +vim.g.dap_virtual_text = 'all frames' require("dapui").setup({ icons = {expanded = "▾", collapsed = "▸"}, mappings = { @@ -86,64 +93,3 @@ require("dapui").setup({ }, windows = {indent = 1}, }) - -local dap = require "dap" - -dap.adapters.go = function(callback, config) - local stdout = vim.loop.new_pipe(false) - local handle - local pid_or_err - local port = 38697 - local dlv_path = vim.fn.stdpath("data") .. "/dapinstall/go_delve_dbg/delve/cmd/dlv" - local opts = { - stdio = {nil, stdout}, - args = {"dap", "-l", "127.0.0.1:" .. port}, - detached = true - } - handle, pid_or_err = vim.loop.spawn("dlv", opts, function(code) - stdout:close() - handle:close() - if code ~= 0 then - print('dlv exited with code', code) - end - end) - assert(handle, 'Error running dlv: ' .. tostring(pid_or_err)) - stdout:read_start(function(err, chunk) - assert(not err, err) - if chunk then - vim.schedule(function() - require('dap.repl').append(chunk) - end) - end - end) - -- Wait for delve to start - vim.defer_fn( - function() - callback({type = "server", host = "127.0.0.1", port = port}) - end, - 100) - end - -- https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv_dap.md - dap.configurations.go = { - { - type = "go", - name = "Debug", - request = "launch", - program = "${file}", - }, - { - type = "go", - name = "Debug test", -- configuration for debugging test files - request = "launch", - mode = "test", - program = "${file}", - }, - -- works with go.mod packages and sub packages - { - type = "go", - name = "Debug test (go.mod)", - request = "launch", - mode = "test", - program = "./${relativeFileDirname}", - } -} diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 20f32fd..1d9d313 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -249,12 +249,12 @@ vim.cmd ' packadd lspsaga.nvim' local saga = require 'lspsaga' saga.init_lsp_saga { use_saga_diagnostic_sign = true, - error_sign = '✖️', + error_sign = '❌', warn_sign = '⚠️ ', - hint_sign = '☀️ ', - infor_sign = ' ℹ️', - dianostic_header_icon = '  ', - code_action_icon = ' ' + hint_sign = '🌱', + infor_sign = 'ℹ️', + dianostic_header_icon = '🐞', + code_action_icon = '💡' } ------------------------------- @@ -262,7 +262,7 @@ saga.init_lsp_saga { vim.cmd("hi VirtualTextWarning guifg='yellow'") vim.cmd("hi VirtualTextError guifg='red'") -vim.cmd("hi VirtualTextInformation guifg='#0db9d7'") +vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") vim.cmd("hi VirtualTextHint guifg=#2c6e4e") vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") diff --git a/lua/plugins/config/gitsigns.lua b/lua/plugins/config/gitsigns.lua index 41bce45..ec3748d 100644 --- a/lua/plugins/config/gitsigns.lua +++ b/lua/plugins/config/gitsigns.lua @@ -58,6 +58,7 @@ require 'gitsigns'.setup({ ['n gR'] = 'lua require"gitsigns".reset_buffer()', ['n gp'] = 'lua require"gitsigns".preview_hunk()', ['n gb'] = 'lua require"gitsigns".blame_line(true)', + ['n gl'] = 'Gitsigns toggle_current_line_blame', -- Text objects ['o ih'] = ':lua require"gitsigns.actions".select_hunk()', diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua index 2596a86..1d9ecd3 100644 --- a/lua/plugins/config/which-key.lua +++ b/lua/plugins/config/which-key.lua @@ -155,6 +155,7 @@ wk.register({ ["gC"] = {name = "Git commits"}, ["gB"] = {name = "Git branchs"}, ["gS"] = {name = "Git status"}, + ["gl"] = {name = "toggle line blame"}, ---------------------------------- ["sb"] = {name = "search in buffer"}, diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index a093bdc..f5f67de 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -44,8 +44,8 @@ local function save_profiles(threshold) end time([[Luarocks path setup]], true) -local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" +local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" if not string.find(package.path, package_path_str, 1, true) then package.path = package.path .. ';' .. package_path_str end @@ -74,12 +74,12 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" }, ["accelerated-jk"] = { - config = { "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" }, + config = { "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" }, ["barbar.nvim"] = { - config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" }, + config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" @@ -91,18 +91,18 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" }, ["dashboard-nvim"] = { - config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" }, + config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" }, ["dial.nvim"] = { - config = { "\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0" }, + config = { "\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" }, everforest = { - config = { "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, + config = { "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" @@ -112,43 +112,43 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" }, ["galaxyline.nvim"] = { - config = { "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" }, + config = { "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" }, ["github-nvim-theme"] = { - config = { "\27LJ\1\2\6\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, + config = { "\27LJ\2\2\6\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" }, ["gitsigns.nvim"] = { - config = { "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" }, + config = { "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" }, ["gruvbox-material"] = { - config = { "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, + config = { "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" }, hop = { - config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" }, + config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" }, ["indent-blankline.nvim"] = { - config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" }, + config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" }, kommentary = { - config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" }, + config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" }, @@ -159,30 +159,30 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" }, ["neoscroll.nvim"] = { - config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" }, + config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" }, ["nvim-autopairs"] = { - config = { "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, + config = { "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" }, ["nvim-colorizer.lua"] = { - config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" }, + config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" }, ["nvim-compe"] = { after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe/after/plugin/compe.vim" }, - config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.nvim-compe\frequire\0" }, + config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.nvim-compe\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe", wants = { "vim-vsnip" } }, ["nvim-dap"] = { - config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" }, + config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" }, @@ -216,19 +216,19 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-nonicons" }, ["nvim-toggleterm.lua"] = { - config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" }, + config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" }, ["nvim-transparent"] = { - config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" }, + config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" }, ["nvim-tree.lua"] = { - config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" }, + config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" @@ -287,13 +287,13 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" }, ["telescope.nvim"] = { - config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" }, + config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" }, ["todo-comments.nvim"] = { - config = { "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" }, + config = { "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" @@ -307,12 +307,12 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" }, ["vim-rooter"] = { - config = { "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, + config = { "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" }, ["vim-sayonara"] = { - config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" }, + config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" @@ -334,13 +334,13 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" }, ["vista.vim"] = { - config = { "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" }, + config = { "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" }, ["which-key.nvim"] = { - config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" }, + config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" @@ -350,43 +350,43 @@ _G.packer_plugins = { time([[Defining packer_plugins]], false) -- Config for: nvim-lspconfig time([[Config for nvim-lspconfig]], true) -try_loadstring("\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") +try_loadstring("\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") time([[Config for nvim-lspconfig]], false) -- Config for: dial.nvim time([[Config for dial.nvim]], true) -try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") +try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") time([[Config for dial.nvim]], false) -- Config for: nvim-colorizer.lua time([[Config for nvim-colorizer.lua]], true) -try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") +try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") time([[Config for nvim-colorizer.lua]], false) -- Config for: vim-rooter time([[Config for vim-rooter]], true) -try_loadstring("\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") +try_loadstring("\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") time([[Config for vim-rooter]], false) -- Config for: accelerated-jk time([[Config for accelerated-jk]], true) -try_loadstring("\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") +try_loadstring("\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") time([[Config for accelerated-jk]], false) -- Config for: nvim-dap time([[Config for nvim-dap]], true) -try_loadstring("\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap") +try_loadstring("\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap") time([[Config for nvim-dap]], false) -- Config for: kommentary time([[Config for kommentary]], true) -try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") +try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") time([[Config for kommentary]], false) -- Config for: neoscroll.nvim time([[Config for neoscroll.nvim]], true) -try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") +try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") time([[Config for neoscroll.nvim]], false) -- Config for: nvim-autopairs time([[Config for nvim-autopairs]], true) -try_loadstring("\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") +try_loadstring("\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") time([[Config for nvim-autopairs]], false) -- Config for: nvim-treesitter time([[Config for nvim-treesitter]], true) -try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") +try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") time([[Config for nvim-treesitter]], false) -- Load plugins in order defined by `after` time([[Sequenced loading]], true) From 6eec8f8c0284c168d4140ce170615e80fc7fdbf5 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 13 Aug 2021 15:49:54 +0800 Subject: [PATCH 21/92] small fix --- lua/core/config/nvim-tree.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index 49796cf..e4cb101 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -3,7 +3,7 @@ vim.g.nvim_tree_bindings = { {key = {"", "o", "l"}, cb = tree_cb("edit")}, {key = {""}, cb = tree_cb("cd")}, {key = "v", cb = tree_cb("vsplit")}, - {key = "x", cb = tree_cb("split")}, + {key = "s", cb = tree_cb("split")}, {key = "t", cb = tree_cb("tabnew")}, {key = "<", cb = tree_cb("prev_sibling")}, {key = ">", cb = tree_cb("next_sibling")}, From e13961c169464363364cb39713dfec3748eb518a Mon Sep 17 00:00:00 2001 From: JryChn Date: Sat, 14 Aug 2021 12:13:54 +0800 Subject: [PATCH 22/92] small fix --- lua/core/config/dashboard-vim.lua | 4 +- lua/core/init.lua | 6 +- lua/languages/config/kommentary.lua | 7 ++- lua/languages/config/nvim-dap.lua | 8 +-- plugin/packer_compiled.lua | 94 +++++++++++++++-------------- 5 files changed, 66 insertions(+), 53 deletions(-) diff --git a/lua/core/config/dashboard-vim.lua b/lua/core/config/dashboard-vim.lua index 1b43ec5..a09b754 100644 --- a/lua/core/config/dashboard-vim.lua +++ b/lua/core/config/dashboard-vim.lua @@ -23,10 +23,10 @@ vim.g.dashboard_custom_section = { }, find_history = { description = {" Recently opened files "}, - command = "DashboardFindHistory" + command = "lua require('telescope.builtin').oldfiles()" }, find_file = { description = {" Find File "}, - command = "DashboardFindFile" + command = "lua require('telescope.builtin').find_files()" } } diff --git a/lua/core/init.lua b/lua/core/init.lua index 13bc696..923fcfc 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -205,7 +205,11 @@ packer.startup(function(use) use { --debug plugin "mfussenegger/nvim-dap", - requires = {"rcarriga/nvim-dap-ui", "Pocco81/DAPInstall.nvim","theHamsta/nvim-dap-virtual-text"}, + requires = { + "rcarriga/nvim-dap-ui", + "Pocco81/DAPInstall.nvim", + "theHamsta/nvim-dap-virtual-text" + }, config = function() require 'languages.config.nvim-dap' end, diff --git a/lua/languages/config/kommentary.lua b/lua/languages/config/kommentary.lua index 248aaa4..1ce378e 100644 --- a/lua/languages/config/kommentary.lua +++ b/lua/languages/config/kommentary.lua @@ -2,7 +2,12 @@ vim.g.kommentary_create_default_mappings = false vim.api.nvim_set_keymap("n", "cl", "kommentary_line_default", {}) vim.api.nvim_set_keymap("n", "cd", "kommentary_motion_default", {}) vim.api.nvim_set_keymap("x", "cv", "kommentary_visual_default", {}) -vim.api.nvim_set_keymap("v", "cl", "kommentary_visual_default", {}) +vim.api.nvim_set_keymap( + "v", + "cl", + "kommentary_visual_default", + {} +) --------------------------------------------------------------------------------------------- diff --git a/lua/languages/config/nvim-dap.lua b/lua/languages/config/nvim-dap.lua index 562bec2..5cf9cb7 100644 --- a/lua/languages/config/nvim-dap.lua +++ b/lua/languages/config/nvim-dap.lua @@ -34,11 +34,11 @@ dap_install.setup({ local dbg_list = require("dap-install.debuggers_list").debuggers for debugger, _ in pairs(dbg_list) do - if debugger=="go_delve_dbg" - then - dap_install.config(debugger, {}) -end + if debugger == "go_delve_dbg" then + dap_install.config(debugger, {}) + end end + -- ui vim.g.dap_virtual_text = 'all frames' require("dapui").setup({ diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index f5f67de..20e69f2 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -44,8 +44,8 @@ local function save_profiles(threshold) end time([[Luarocks path setup]], true) -local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" +local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" if not string.find(package.path, package_path_str, 1, true) then package.path = package.path .. ';' .. package_path_str end @@ -74,12 +74,12 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" }, ["accelerated-jk"] = { - config = { "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" }, + config = { "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" }, ["barbar.nvim"] = { - config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" }, + config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" @@ -91,18 +91,18 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" }, ["dashboard-nvim"] = { - config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" }, + config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" }, ["dial.nvim"] = { - config = { "\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0" }, + config = { "\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" }, everforest = { - config = { "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, + config = { "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" @@ -112,43 +112,43 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" }, ["galaxyline.nvim"] = { - config = { "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, + config = { "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" }, ["github-nvim-theme"] = { - config = { "\27LJ\2\2\6\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, + config = { "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" }, ["gitsigns.nvim"] = { - config = { "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, + config = { "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" }, ["gruvbox-material"] = { - config = { "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e'.hi VirtualTextInformation guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, + config = { "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" }, hop = { - config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" }, + config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" }, ["indent-blankline.nvim"] = { - config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" }, + config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" }, kommentary = { - config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" }, + config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" }, @@ -159,30 +159,30 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" }, ["neoscroll.nvim"] = { - config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" }, + config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" }, ["nvim-autopairs"] = { - config = { "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, + config = { "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" }, ["nvim-colorizer.lua"] = { - config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" }, + config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" }, ["nvim-compe"] = { after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe/after/plugin/compe.vim" }, - config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.nvim-compe\frequire\0" }, + config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.nvim-compe\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe", wants = { "vim-vsnip" } }, ["nvim-dap"] = { - config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" }, + config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" }, @@ -190,6 +190,10 @@ _G.packer_plugins = { loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" }, + ["nvim-dap-virtual-text"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" + }, ["nvim-jdtls"] = { load_after = {}, loaded = true, @@ -216,19 +220,19 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-nonicons" }, ["nvim-toggleterm.lua"] = { - config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" }, + config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" }, ["nvim-transparent"] = { - config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" }, + config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" }, ["nvim-tree.lua"] = { - config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" }, + config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" @@ -287,13 +291,13 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" }, ["telescope.nvim"] = { - config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" }, + config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" }, ["todo-comments.nvim"] = { - config = { "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" }, + config = { "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" @@ -307,12 +311,12 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" }, ["vim-rooter"] = { - config = { "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, + config = { "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" }, ["vim-sayonara"] = { - config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" }, + config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" @@ -334,13 +338,13 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" }, ["vista.vim"] = { - config = { "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" }, + config = { "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" }, ["which-key.nvim"] = { - config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" }, + config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" @@ -348,46 +352,46 @@ _G.packer_plugins = { } time([[Defining packer_plugins]], false) --- Config for: nvim-lspconfig -time([[Config for nvim-lspconfig]], true) -try_loadstring("\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") -time([[Config for nvim-lspconfig]], false) +-- Config for: nvim-treesitter +time([[Config for nvim-treesitter]], true) +try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") +time([[Config for nvim-treesitter]], false) -- Config for: dial.nvim time([[Config for dial.nvim]], true) -try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") +try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") time([[Config for dial.nvim]], false) -- Config for: nvim-colorizer.lua time([[Config for nvim-colorizer.lua]], true) -try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") +try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") time([[Config for nvim-colorizer.lua]], false) -- Config for: vim-rooter time([[Config for vim-rooter]], true) -try_loadstring("\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") +try_loadstring("\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") time([[Config for vim-rooter]], false) -- Config for: accelerated-jk time([[Config for accelerated-jk]], true) -try_loadstring("\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") +try_loadstring("\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") time([[Config for accelerated-jk]], false) -- Config for: nvim-dap time([[Config for nvim-dap]], true) -try_loadstring("\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap") +try_loadstring("\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap") time([[Config for nvim-dap]], false) -- Config for: kommentary time([[Config for kommentary]], true) -try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") +try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") time([[Config for kommentary]], false) -- Config for: neoscroll.nvim time([[Config for neoscroll.nvim]], true) -try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") +try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") time([[Config for neoscroll.nvim]], false) -- Config for: nvim-autopairs time([[Config for nvim-autopairs]], true) -try_loadstring("\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") +try_loadstring("\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") time([[Config for nvim-autopairs]], false) --- Config for: nvim-treesitter -time([[Config for nvim-treesitter]], true) -try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") -time([[Config for nvim-treesitter]], false) +-- Config for: nvim-lspconfig +time([[Config for nvim-lspconfig]], true) +try_loadstring("\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") +time([[Config for nvim-lspconfig]], false) -- Load plugins in order defined by `after` time([[Sequenced loading]], true) vim.cmd [[ packadd lspsaga.nvim ]] @@ -402,7 +406,7 @@ vim.cmd [[augroup packer_load_aucmds]] vim.cmd [[au!]] -- Event lazy-loads time([[Defining lazy-load event autocommands]], true) -vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'galaxyline.nvim', 'dashboard-nvim', 'nvim-toggleterm.lua', 'vista.vim', 'nvim-tree.lua', 'telescope.nvim', 'vim-sayonara', 'which-key.nvim', 'nvim-transparent', 'barbar.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] +vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'dashboard-nvim', 'galaxyline.nvim', 'barbar.nvim', 'vista.vim', 'nvim-tree.lua', 'telescope.nvim', 'vim-sayonara', 'which-key.nvim', 'nvim-transparent', 'nvim-toggleterm.lua'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'vim-vsnip-integ', 'vim-vsnip', 'compe-tabnine'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'github-nvim-theme', 'todo-comments.nvim', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] time([[Defining lazy-load event autocommands]], false) From ae0730e1c39070da5169fe83001768b346cbc376 Mon Sep 17 00:00:00 2001 From: JryChn Date: Sat, 14 Aug 2021 14:39:02 +0800 Subject: [PATCH 23/92] add neovide config --- init.lua | 1 + lua/gui/init.lua | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 lua/gui/init.lua diff --git a/init.lua b/init.lua index 9a655a1..e357dc6 100644 --- a/init.lua +++ b/init.lua @@ -1,2 +1,3 @@ -- start ModuleVim and install plugin packer require("core") +require("gui") diff --git a/lua/gui/init.lua b/lua/gui/init.lua new file mode 100644 index 0000000..981c06c --- /dev/null +++ b/lua/gui/init.lua @@ -0,0 +1,3 @@ +vim.g.neovide_cursor_trail_size = 0.3 +vim.g.neovide_cursor_animation_length = 0.03 +vim.g.neovide_cursor_vfx_mode = "pixiedust" From e874eaeb4baba22ee8c758057fff0aca1394f30f Mon Sep 17 00:00:00 2001 From: JryChn Date: Thu, 16 Sep 2021 21:43:19 +0800 Subject: [PATCH 24/92] small fix --- lua/core/config/basic-configuration.lua | 2 +- lua/core/config/nvim-toggleterm.lua | 8 +++++++ lua/core/init.lua | 4 ++-- lua/languages/config/nvim-dap.lua | 2 +- lua/languages/config/nvim-lspconfig.lua | 13 +++++++++++ lua/plugins/config/indent-blankline.lua | 1 + plugin/packer_compiled.lua | 30 +++++++++++-------------- 7 files changed, 39 insertions(+), 21 deletions(-) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index b336337..b7c0baa 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -4,7 +4,7 @@ vim.api.nvim_set_keymap("n", "", ":wincmd w", {silent = true}) vim.api.nvim_set_keymap("i", "jk", "", {silent = true}) vim.api.nvim_set_keymap("n", "", ":w!", {noremap = true}) -vim.api.nvim_set_keymap("i", "", ":w!", {noremap = true}) +vim.api.nvim_set_keymap("i", "", ":w!", {noremap = true}) vim.cmd([[ nnoremap :resize -2 nnoremap :resize +2 diff --git a/lua/core/config/nvim-toggleterm.lua b/lua/core/config/nvim-toggleterm.lua index df5c1f5..1d2aa3d 100644 --- a/lua/core/config/nvim-toggleterm.lua +++ b/lua/core/config/nvim-toggleterm.lua @@ -39,3 +39,11 @@ require("toggleterm").setup { } } } +function _G.set_terminal_keymaps() + local opts = {noremap = true} + vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) + -- vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) +end + +-- if you only want these mappings for toggle term use term://*toggleterm#* instead +vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') diff --git a/lua/core/init.lua b/lua/core/init.lua index 923fcfc..2d3b28e 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -13,8 +13,8 @@ packer.startup(function(use) -----------NOTE:core layer----------- use { --Icon sets for neovim plugins and settings - 'yamatsum/nvim-nonicons', - requires = {'kyazdani42/nvim-web-devicons'} + -- 'yamatsum/nvim-nonicons', + -- requires = {'kyazdani42/nvim-web-devicons'} } use { --vim plugin to accelerate up-down moving diff --git a/lua/languages/config/nvim-dap.lua b/lua/languages/config/nvim-dap.lua index 5cf9cb7..b82000b 100644 --- a/lua/languages/config/nvim-dap.lua +++ b/lua/languages/config/nvim-dap.lua @@ -31,7 +31,7 @@ dap_install.setup({ installation_path = vim.fn.stdpath("data") .. "/dapinstall/", verbosely_call_debuggers = false, }) -local dbg_list = require("dap-install.debuggers_list").debuggers +local dbg_list = require("dap-install.api.debuggers").get_installed_debuggers() for debugger, _ in pairs(dbg_list) do if debugger == "go_delve_dbg" then diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 1d9d313..0cd037b 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -230,6 +230,19 @@ local function setup_servers() } } end + nvim_lsp["lua"].setup { + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + }, + settings = { + Lua = { + diagnostics = { + globals = { 'vim' } + } + } + } +} end end diff --git a/lua/plugins/config/indent-blankline.lua b/lua/plugins/config/indent-blankline.lua index ced10d1..906fa7e 100644 --- a/lua/plugins/config/indent-blankline.lua +++ b/lua/plugins/config/indent-blankline.lua @@ -1,3 +1,4 @@ vim.g.indent_blankline_filetype_exclude = [['help','dashboard','NvimTree','vista','sagahover']] vim.g.indent_blankline_use_treesitter = true vim.api.nvim_set_keymap('n', 'ti', "IndentBlanklineToggle", {}) +vim.g.indent_blankline_enabled = false diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 20e69f2..b958e84 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -215,10 +215,6 @@ _G.packer_plugins = { loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" }, - ["nvim-nonicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-nonicons" - }, ["nvim-toggleterm.lua"] = { config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" }, loaded = false, @@ -238,7 +234,7 @@ _G.packer_plugins = { path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" }, ["nvim-treesitter"] = { - after = { "nvim-treesitter-textobjects", "nvim-ts-rainbow", "nvim-ts-autotag", "spellsitter.nvim" }, + after = { "nvim-ts-autotag", "nvim-ts-rainbow", "nvim-treesitter-textobjects", "spellsitter.nvim" }, loaded = true, only_config = true }, @@ -293,7 +289,7 @@ _G.packer_plugins = { ["telescope.nvim"] = { config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" }, loaded = false, - needs_bufread = false, + needs_bufread = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" }, ["todo-comments.nvim"] = { @@ -352,10 +348,10 @@ _G.packer_plugins = { } time([[Defining packer_plugins]], false) --- Config for: nvim-treesitter -time([[Config for nvim-treesitter]], true) -try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") -time([[Config for nvim-treesitter]], false) +-- Config for: nvim-lspconfig +time([[Config for nvim-lspconfig]], true) +try_loadstring("\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") +time([[Config for nvim-lspconfig]], false) -- Config for: dial.nvim time([[Config for dial.nvim]], true) try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") @@ -388,10 +384,10 @@ time([[Config for neoscroll.nvim]], false) time([[Config for nvim-autopairs]], true) try_loadstring("\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") time([[Config for nvim-autopairs]], false) --- Config for: nvim-lspconfig -time([[Config for nvim-lspconfig]], true) -try_loadstring("\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") -time([[Config for nvim-lspconfig]], false) +-- Config for: nvim-treesitter +time([[Config for nvim-treesitter]], true) +try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") +time([[Config for nvim-treesitter]], false) -- Load plugins in order defined by `after` time([[Sequenced loading]], true) vim.cmd [[ packadd lspsaga.nvim ]] @@ -406,9 +402,9 @@ vim.cmd [[augroup packer_load_aucmds]] vim.cmd [[au!]] -- Event lazy-loads time([[Defining lazy-load event autocommands]], true) -vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'dashboard-nvim', 'galaxyline.nvim', 'barbar.nvim', 'vista.vim', 'nvim-tree.lua', 'telescope.nvim', 'vim-sayonara', 'which-key.nvim', 'nvim-transparent', 'nvim-toggleterm.lua'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] -vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'vim-vsnip-integ', 'vim-vsnip', 'compe-tabnine'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] -vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'github-nvim-theme', 'todo-comments.nvim', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] +vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'nvim-tree.lua', 'barbar.nvim', 'which-key.nvim', 'vista.vim', 'vim-sayonara', 'nvim-toggleterm.lua', 'dashboard-nvim', 'telescope.nvim', 'galaxyline.nvim', 'nvim-transparent'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] +vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'compe-tabnine', 'vim-vsnip-integ', 'vim-vsnip'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] +vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'github-nvim-theme', 'todo-comments.nvim', 'everforest', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] time([[Defining lazy-load event autocommands]], false) vim.cmd("augroup END") if should_profile then save_profiles() end From c06f9c8074b1c87a39c2c7062f3dd39da4768609 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 17 Sep 2021 01:49:35 +0800 Subject: [PATCH 25/92] change completion engine from compe to cmp --- lua/core/config/nvim-toggleterm.lua | 7 +- lua/core/init.lua | 30 +- lua/languages/config/nvim-cmp.lua | 181 +++++ lua/languages/config/nvim-compe.lua | 123 --- lua/languages/config/nvim-lspconfig.lua | 20 +- plugin/packer_compiled.lua | 953 ++++++++++++++---------- 6 files changed, 769 insertions(+), 545 deletions(-) create mode 100644 lua/languages/config/nvim-cmp.lua delete mode 100644 lua/languages/config/nvim-compe.lua diff --git a/lua/core/config/nvim-toggleterm.lua b/lua/core/config/nvim-toggleterm.lua index 1d2aa3d..3fbdc00 100644 --- a/lua/core/config/nvim-toggleterm.lua +++ b/lua/core/config/nvim-toggleterm.lua @@ -40,9 +40,10 @@ require("toggleterm").setup { } } function _G.set_terminal_keymaps() - local opts = {noremap = true} - vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) - -- vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) + local opts = {noremap = true} + vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) + + -- vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) end -- if you only want these mappings for toggle term use term://*toggleterm#* instead diff --git a/lua/core/init.lua b/lua/core/init.lua index 2d3b28e..428f773 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -169,29 +169,39 @@ packer.startup(function(use) } use { --auto completion - 'hrsh7th/nvim-compe', - wants = "vim-vsnip", - event = "InsertCharPre", + 'hrsh7th/nvim-cmp', + + -- event = "InsertCharPre", requires = { + {'onsails/lspkind-nvim'}, { 'hrsh7th/vim-vsnip', requires = {'rafamadriz/friendly-snippets'}, - wants = "friendly-snippets", - event = "InsertCharPre" }, { 'hrsh7th/vim-vsnip-integ', after = 'vim-vsnip', - event = "InsertCharPre" }, { - 'tzachar/compe-tabnine', + 'tzachar/cmp-tabnine', run = "./install.sh", - event = "InsertCharPre" - } + }, + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-buffer', + 'hrsh7th/cmp-path', + 'hrsh7th/cmp-nvim-lua', + 'octaltree/cmp-look', + 'hrsh7th/cmp-vsnip', + 'kdheepak/cmp-latex-symbols', + 'hrsh7th/cmp-calc', + 'ray-x/cmp-treesitter', + 'hrsh7th/cmp-emoji', + 'hrsh7th/cmp-emoji', + 'f3fora/cmp-spell', + 'quangnguyen30192/cmp-nvim-tags' }, config = function() - require 'languages.config.nvim-compe' + require 'languages.config.nvim-cmp' end } use { diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua new file mode 100644 index 0000000..f567846 --- /dev/null +++ b/lua/languages/config/nvim-cmp.lua @@ -0,0 +1,181 @@ +local has_words_before = function() + if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then + return false + end + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub( + col, + col + ):match("%s") == nil +end + +local feedkey = function(key, mode) + vim.api.nvim_feedkeys( + vim.api.nvim_replace_termcodes(key, true, true, true), + mode, + true + ) +end +local tab_complete = function(fallback) + if vim.fn.pumvisible() == 1 then + vim.api.nvim_feedkeys( + vim.api.nvim_replace_termcodes("", true, true, true), + "n", + true + ) + elseif has_words_before() and vim.fn["vsnip#available"]() == 1 then + vim.api.nvim_feedkeys( + vim.api.nvim_replace_termcodes( + "(vsnip-expand-or-jump)", + true, + true, + true + ), + "", + true + ) + else + fallback() + end +end +local s_tab_complete = function(fallback) + if vim.fn.pumvisible() == 1 then + vim.api.nvim_feedkeys( + vim.api.nvim_replace_termcodes("", true, true, true), + "n", + true + ) + elseif has_words_before() and vim.fn["vsnip#available"]() == 1 then + vim.api.nvim_feedkeys( + vim.api.nvim_replace_termcodes( + "(vsnip-jump-prev)", + true, + true, + true + ), + "", + true + ) + else + fallback() + end +end + +local cmp = require('cmp') +cmp.setup { + snippet = { + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) + end + }, + mapping = { + [""] = tab_complete, + [""] = tab_complete, + [""] = s_tab_complete, + [""] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Replace, + select = false + }, + [""] = s_tab_complete + }, + formatting = { + format = function(entry, vim_item) + -- fancy icons and a name of kind + vim_item.kind = require("lspkind").presets.default[vim_item.kind] .. " " .. vim_item.kind + + -- set a name for each source + vim_item.menu = ({ + buffer = "[Buffer]", + nvim_lsp = "[LSP]", + nvim_lua = "[Lua]", + latex_symbols = "[Latex]", + vsnip = "[Snippet]", + path = "[Path]", + look = "[Look]", + cmp_tabnine = "[T9]", + ultisnips = "[Snippet]", + treesitter = "[Treesitter]", + calc = "[Clac]", + emoji = "[Emoji]", + spell = "[Spell]", + tags = "[Tags]" + })[entry.source.name] + return vim_item + end, + }, + sources = { + {name = "nvim_lsp"}, + {name = "buffer"}, + {name = "vsnip"}, + {name = "path"}, + {name = "look"}, + {name = "nvim_lua"}, + {name = "cmp_tabnine"}, + {name = "ultisnips"}, + {name = "treesitter"}, + {name = "calc"}, + {name = "latex_symbols"}, + {name = "emoji"}, + {name = "spell"}, + {name = "tags"}, + + -- path = {kind = "﬜", priority = 10, true}, + -- buffer = {kind = "﬘", priority = 5, true}, + -- calc = {kind = "", priority = 10, true}, + -- vsnip = {kind = "", priority = 9}, + --replace to what sign you prefer + --[[ nvim_lsp = {kind = "", priority = 9, true}, + spell = {kind = "", priority = 4, true}, + tags = {kind = "", priority = 10, true}, + snippets_nvim = {kind = "", priority = 7, true}, + treesitter = {kind = "", priority = 8, true}, + nvim_lua = {kind = "", priority = 9, true}, + tabnine = {priority = 9, true}, + emoji = {kind = "", priority = 9, true} ]] + } +} + +require('lspkind').init({ + -- enables text annotations + -- + -- default: true + with_text = true, + + -- default symbol map + -- can be either 'default' (requires nerd-fonts font) or + -- 'codicons' for codicon preset (requires vscode-codicons font) + -- + -- default: 'default' + preset = 'codicons', + + -- override preset symbols + -- + -- default: {} + 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 = "" + }, +}) diff --git a/lua/languages/config/nvim-compe.lua b/lua/languages/config/nvim-compe.lua deleted file mode 100644 index 26c066a..0000000 --- a/lua/languages/config/nvim-compe.lua +++ /dev/null @@ -1,123 +0,0 @@ -vim.o.completeopt = "menuone,noselect" - -require "compe".setup { - enabled = true, - autocomplete = true, - debug = false, - min_length = 1, - preselect = "enable", - throttle_time = 80, - source_timeout = 200, - incomplete_delay = 400, - max_abbr_width = 100, - max_kind_width = 100, - max_menu_width = 100, - documentation = true, - source = { - path = {kind = "﬜", priority = 10, true}, - buffer = {kind = "﬘", priority = 5, true}, - calc = {kind = "", priority = 10, true}, - vsnip = {kind = "", priority = 9}, - - --replace to what sign you prefer - nvim_lsp = {kind = "", priority = 9, true}, - spell = {kind = "", priority = 4, true}, - tags = {kind = "", priority = 10, true}, - snippets_nvim = {kind = "", priority = 7, true}, - treesitter = {kind = "", priority = 8, true}, - nvim_lua = {kind = "", priority = 9, true}, - tabnine = {priority = 9, true}, - emoji = {kind = "", priority = 9, true} - } -} - -local t = function(str) - return vim.api.nvim_replace_termcodes(str, true, true, true) -end - -local check_back_space = function() - local col = vim.fn.col(".") - 1 - if col == 0 or vim.fn.getline("."):sub(col, col):match("%s") then - return true - else - return false - end -end - --- tab completion - -_G.tab_complete = function() - if vim.fn.pumvisible() == 1 then - return t "" - elseif vim.fn['vsnip#available'](1) == 1 then - return t "(vsnip-expand-or-jump)" - elseif check_back_space() then - return t "" - else - return vim.fn["compe#complete"]() - end -end -_G.s_tab_complete = function() - if vim.fn.pumvisible() == 1 then - return t "" - elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then - return t "(vsnip-jump-prev)" - else - return t "" - end -end - -_G.jump_next = function() - if vim.fn['vsnip#available'](1) == 1 then - return t "(vsnip-expand-or-jump)" - end -end - -_G.jump_prev = function() - if vim.fn.call("vsnip#jumpable", {-1}) == 1 then - return t "(vsnip-jump-prev)" - end -end - --- mappings - -vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true}) -vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true}) -vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {expr = true}) -vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {expr = true}) -vim.api.nvim_set_keymap("i", "", "v:lua.jump_next()", {expr = true}) -vim.api.nvim_set_keymap("i", "", "v:lua.jump_prev()", {expr = true}) - -function _G.completions() - local npairs = require("nvim-autopairs") - if vim.fn.pumvisible() == 1 then - if vim.fn.complete_info()["selected"] ~= -1 then - return vim.fn["compe#confirm"]("") - end - end - return npairs.check_break_line_char() -end - -vim.api.nvim_set_keymap("i", "", "v:lua.completions()", {expr = true}) - -local g = vim.g - --- speeden up compe -g.loaded_compe_calc = 0 -g.loaded_compe_emoji = 0 - -g.loaded_compe_luasnip = 0 -g.loaded_compe_nvim_lua = 0 - -g.loaded_compe_path = 0 -g.loaded_compe_spell = 0 -g.loaded_compe_tags = 0 -g.loaded_compe_treesitter = 0 - -g.loaded_compe_snippets_nvim = 0 - -g.loaded_compe_ultisnips = 0 -g.loaded_compe_vim_lsc = 0 -g.loaded_compe_vim_lsp = 0 -g.loaded_compe_omni = 0 - diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 0cd037b..addbdac 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -230,19 +230,13 @@ local function setup_servers() } } end - nvim_lsp["lua"].setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150, - }, - settings = { - Lua = { - diagnostics = { - globals = { 'vim' } - } - } - } -} + nvim_lsp["lua"].setup { + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + }, + settings = {Lua = {diagnostics = {globals = {'vim'}}}} + } end end diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index b958e84..c1b6940 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,416 +1,577 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) + end + end - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) end - end - -local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) return a[2] > b[2] end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end + local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) + return a[2] > b[2] + end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end - _G._packer = _G._packer or {} - _G._packer.profile_output = results -end + _G._packer = _G._packer or {} + _G._packer.profile_output = results + end -time([[Luarocks path setup]], true) -local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" -if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str -end + time([[Luarocks path setup]], true) + local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" + local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" + if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str + end -if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern -end + if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern + end -time([[Luarocks path setup]], false) -time([[try_loadstring definition]], true) -local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) - end) - end - return result -end + time([[Luarocks path setup]], false) + time([[try_loadstring definition]], true) + local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s)) + if not success then + vim.schedule(function() + vim.api.nvim_notify( + 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, + vim.log.levels.ERROR, + {} + ) + end) + end + return result + end + + time([[try_loadstring definition]], false) + time([[Defining packer_plugins]], true) + _G.packer_plugins = { + ["DAPInstall.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" + }, + ["accelerated-jk"] = { + config = { + "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { + "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" + }, + ["cmp-buffer"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-buffer" + }, + ["cmp-calc"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-calc" + }, + ["cmp-emoji"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-emoji" + }, + ["cmp-latex-symbols"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-latex-symbols" + }, + ["cmp-look"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-look" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp" + }, + ["cmp-nvim-lua"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua" + }, + ["cmp-nvim-tags"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-tags" + }, + ["cmp-path"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-path" + }, + ["cmp-spell"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-spell" + }, + ["cmp-tabnine"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-tabnine" + }, + ["cmp-treesitter"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-treesitter" + }, + ["cmp-vsnip"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-vsnip" + }, + ["dashboard-nvim"] = { + config = { + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" + }, + ["dial.nvim"] = { + config = {"\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0"}, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" + }, + everforest = { + config = { + "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { + "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + config = { + "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { + "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { + "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" + }, + hop = { + config = { + "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" + }, + ["indent-blankline.nvim"] = { + config = { + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" + }, + kommentary = { + config = { + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" + }, + ["lspkind-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/lspkind-nvim" + }, + ["lspsaga.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" + }, + ["neoscroll.nvim"] = { + config = { + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" + }, + ["nvim-autopairs"] = { + config = { + "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" + }, + ["nvim-cmp"] = { + config = { + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-cmp\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-cmp" + }, + ["nvim-colorizer.lua"] = { + config = { + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" + }, + ["nvim-dap"] = { + config = { + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" + }, + ["nvim-dap-virtual-text"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" + }, + ["nvim-jdtls"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" + }, + ["nvim-lspconfig"] = { + after = {"nvim-jdtls", "lspsaga.nvim", "nvim-lspinstall"}, + loaded = true, + only_config = true + }, + ["nvim-lspinstall"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" + }, + ["nvim-markdown-preview"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" + }, + ["nvim-toggleterm.lua"] = { + config = { + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" + }, + ["nvim-transparent"] = { + config = { + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" + }, + ["nvim-tree.lua"] = { + config = { + "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + after = { + "nvim-ts-autotag", + "nvim-treesitter-textobjects", + "spellsitter.nvim", + "nvim-ts-rainbow" + }, + loaded = true, + only_config = true + }, + ["nvim-treesitter-textobjects"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" + }, + ["nvim-ts-autotag"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" + }, + ["nvim-ts-rainbow"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" + }, + ["popup.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" + }, + sonokai = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" + }, + ["space-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" + }, + ["spellsitter.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" + }, + ["telescope.nvim"] = { + config = { + "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" + }, + loaded = false, + needs_bufread = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" + }, + ["todo-comments.nvim"] = { + config = { + "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" + }, + ["vim-bookmarks"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" + }, + ["vim-cursorword"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" + }, + ["vim-rooter"] = { + config = { + "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" + }, + ["vim-sayonara"] = { + config = { + "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" + }, + ["vim-vsnip"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-vsnip" + }, + ["vim-vsnip-integ"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" + }, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" + }, + ["vista.vim"] = { + config = { + "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" + }, + ["which-key.nvim"] = { + config = { + "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" + } + } + + time([[Defining packer_plugins]], false) + + -- Config for: nvim-treesitter + time([[Config for nvim-treesitter]], true) + try_loadstring( + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", + "config", + "nvim-treesitter" + ) + time([[Config for nvim-treesitter]], false) + + -- Config for: nvim-cmp + time([[Config for nvim-cmp]], true) + try_loadstring( + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-cmp\frequire\0", + "config", + "nvim-cmp" + ) + time([[Config for nvim-cmp]], false) + + -- Config for: nvim-colorizer.lua + time([[Config for nvim-colorizer.lua]], true) + try_loadstring( + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", + "config", + "nvim-colorizer.lua" + ) + time([[Config for nvim-colorizer.lua]], false) + + -- Config for: neoscroll.nvim + time([[Config for neoscroll.nvim]], true) + try_loadstring( + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", + "config", + "neoscroll.nvim" + ) + time([[Config for neoscroll.nvim]], false) + + -- Config for: accelerated-jk + time([[Config for accelerated-jk]], true) + try_loadstring( + "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", + "config", + "accelerated-jk" + ) + time([[Config for accelerated-jk]], false) + + -- Config for: nvim-dap + time([[Config for nvim-dap]], true) + try_loadstring( + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", + "config", + "nvim-dap" + ) + time([[Config for nvim-dap]], false) + + -- Config for: nvim-lspconfig + time([[Config for nvim-lspconfig]], true) + try_loadstring( + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", + "config", + "nvim-lspconfig" + ) + time([[Config for nvim-lspconfig]], false) + + -- Config for: kommentary + time([[Config for kommentary]], true) + try_loadstring( + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", + "config", + "kommentary" + ) + time([[Config for kommentary]], false) + + -- Config for: vim-rooter + time([[Config for vim-rooter]], true) + try_loadstring( + "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", + "config", + "vim-rooter" + ) + time([[Config for vim-rooter]], false) + + -- Config for: nvim-autopairs + time([[Config for nvim-autopairs]], true) + try_loadstring( + "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", + "config", + "nvim-autopairs" + ) + time([[Config for nvim-autopairs]], false) -time([[try_loadstring definition]], false) -time([[Defining packer_plugins]], true) -_G.packer_plugins = { - ["DAPInstall.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" - }, - ["accelerated-jk"] = { - config = { "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" - }, - ["barbar.nvim"] = { - config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" - }, - ["compe-tabnine"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine/after/plugin/compe_tabnine.vim" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/compe-tabnine" - }, - ["dashboard-nvim"] = { - config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" - }, - ["dial.nvim"] = { - config = { "\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" - }, - everforest = { - config = { "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" - }, - ["friendly-snippets"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" - }, - ["galaxyline.nvim"] = { - config = { "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" - }, - ["github-nvim-theme"] = { - config = { "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" - }, - ["gitsigns.nvim"] = { - config = { "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" - }, - ["gruvbox-material"] = { - config = { "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" - }, - hop = { - config = { "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" - }, - ["indent-blankline.nvim"] = { - config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" - }, - kommentary = { - config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" - }, - ["lspsaga.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" - }, - ["neoscroll.nvim"] = { - config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" - }, - ["nvim-autopairs"] = { - config = { "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" - }, - ["nvim-colorizer.lua"] = { - config = { "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" - }, - ["nvim-compe"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe/after/plugin/compe.vim" }, - config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.nvim-compe\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-compe", - wants = { "vim-vsnip" } - }, - ["nvim-dap"] = { - config = { "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" - }, - ["nvim-dap-ui"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" - }, - ["nvim-dap-virtual-text"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" - }, - ["nvim-jdtls"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" - }, - ["nvim-lspconfig"] = { - after = { "lspsaga.nvim", "nvim-jdtls", "nvim-lspinstall" }, - loaded = true, - only_config = true - }, - ["nvim-lspinstall"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" - }, - ["nvim-markdown-preview"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" - }, - ["nvim-toggleterm.lua"] = { - config = { "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" - }, - ["nvim-transparent"] = { - config = { "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" - }, - ["nvim-tree.lua"] = { - config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" - }, - ["nvim-treesitter"] = { - after = { "nvim-ts-autotag", "nvim-ts-rainbow", "nvim-treesitter-textobjects", "spellsitter.nvim" }, - loaded = true, - only_config = true - }, - ["nvim-treesitter-textobjects"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" - }, - ["nvim-ts-autotag"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" - }, - ["nvim-ts-rainbow"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" - }, - ["nvim-web-devicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" - }, - ["packer.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" - }, - ["plenary.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" - }, - ["popup.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" - }, - sonokai = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" - }, - ["space-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" - }, - ["spellsitter.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" - }, - ["telescope.nvim"] = { - config = { "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" }, - loaded = false, - needs_bufread = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" - }, - ["todo-comments.nvim"] = { - config = { "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" - }, - ["vim-bookmarks"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" - }, - ["vim-cursorword"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" - }, - ["vim-rooter"] = { - config = { "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" - }, - ["vim-sayonara"] = { - config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" - }, - ["vim-vsnip"] = { - after = { "vim-vsnip-integ" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip", - wants = { "friendly-snippets" } - }, - ["vim-vsnip-integ"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" }, - load_after = { - ["vim-vsnip"] = true - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" - }, - ["vista.vim"] = { - config = { "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" - }, - ["which-key.nvim"] = { - config = { "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" - } -} + -- Config for: dial.nvim + time([[Config for dial.nvim]], true) + try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") + time([[Config for dial.nvim]], false) -time([[Defining packer_plugins]], false) --- Config for: nvim-lspconfig -time([[Config for nvim-lspconfig]], true) -try_loadstring("\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") -time([[Config for nvim-lspconfig]], false) --- Config for: dial.nvim -time([[Config for dial.nvim]], true) -try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") -time([[Config for dial.nvim]], false) --- Config for: nvim-colorizer.lua -time([[Config for nvim-colorizer.lua]], true) -try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") -time([[Config for nvim-colorizer.lua]], false) --- Config for: vim-rooter -time([[Config for vim-rooter]], true) -try_loadstring("\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") -time([[Config for vim-rooter]], false) --- Config for: accelerated-jk -time([[Config for accelerated-jk]], true) -try_loadstring("\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") -time([[Config for accelerated-jk]], false) --- Config for: nvim-dap -time([[Config for nvim-dap]], true) -try_loadstring("\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap") -time([[Config for nvim-dap]], false) --- Config for: kommentary -time([[Config for kommentary]], true) -try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") -time([[Config for kommentary]], false) --- Config for: neoscroll.nvim -time([[Config for neoscroll.nvim]], true) -try_loadstring("\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") -time([[Config for neoscroll.nvim]], false) --- Config for: nvim-autopairs -time([[Config for nvim-autopairs]], true) -try_loadstring("\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") -time([[Config for nvim-autopairs]], false) --- Config for: nvim-treesitter -time([[Config for nvim-treesitter]], true) -try_loadstring("\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") -time([[Config for nvim-treesitter]], false) --- Load plugins in order defined by `after` -time([[Sequenced loading]], true) -vim.cmd [[ packadd lspsaga.nvim ]] -vim.cmd [[ packadd nvim-jdtls ]] -vim.cmd [[ packadd nvim-lspinstall ]] -vim.cmd [[ packadd spellsitter.nvim ]] -vim.cmd [[ packadd nvim-treesitter-textobjects ]] -vim.cmd [[ packadd nvim-ts-rainbow ]] -vim.cmd [[ packadd nvim-ts-autotag ]] -time([[Sequenced loading]], false) -vim.cmd [[augroup packer_load_aucmds]] -vim.cmd [[au!]] - -- Event lazy-loads -time([[Defining lazy-load event autocommands]], true) -vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'nvim-tree.lua', 'barbar.nvim', 'which-key.nvim', 'vista.vim', 'vim-sayonara', 'nvim-toggleterm.lua', 'dashboard-nvim', 'telescope.nvim', 'galaxyline.nvim', 'nvim-transparent'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] -vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'nvim-compe', 'compe-tabnine', 'vim-vsnip-integ', 'vim-vsnip'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] -vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'github-nvim-theme', 'todo-comments.nvim', 'everforest', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] -time([[Defining lazy-load event autocommands]], false) -vim.cmd("augroup END") -if should_profile then save_profiles() end + -- Load plugins in order defined by `after` + time([[Sequenced loading]], true) + vim.cmd [[ packadd nvim-jdtls ]] + vim.cmd [[ packadd lspsaga.nvim ]] + vim.cmd [[ packadd nvim-lspinstall ]] + vim.cmd [[ packadd spellsitter.nvim ]] + vim.cmd [[ packadd nvim-treesitter-textobjects ]] + vim.cmd [[ packadd nvim-ts-rainbow ]] + vim.cmd [[ packadd nvim-ts-autotag ]] + time([[Sequenced loading]], false) + vim.cmd [[augroup packer_load_aucmds]] + vim.cmd [[au!]] + -- Event lazy-loads + time([[Defining lazy-load event autocommands]], true) + vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'galaxyline.nvim', 'nvim-tree.lua', 'vista.vim', 'barbar.nvim', 'which-key.nvim', 'telescope.nvim', 'vim-sayonara', 'dashboard-nvim', 'nvim-toggleterm.lua', 'nvim-transparent'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] + vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'everforest', 'gitsigns.nvim', 'github-nvim-theme', 'todo-comments.nvim', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] + time([[Defining lazy-load event autocommands]], false) + vim.cmd("augroup END") + if should_profile then + save_profiles() + end end) if not no_errors then - vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: ' .. error_msg .. '" | echom "Please check your config for correctness" | echohl None') end From 129c05f7c6712e4c69271f9b6cdf1e2f8d1ec3cf Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 17 Sep 2021 18:35:57 +0800 Subject: [PATCH 26/92] fix cmp can not lazy load --- lua/core/init.lua | 49 ++++-- lua/languages/config/nvim-lspconfig.lua | 4 +- plugin/packer_compiled.lua | 210 +++++++++++++++++------- 3 files changed, 186 insertions(+), 77 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 428f773..957e150 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -170,35 +170,52 @@ packer.startup(function(use) use { --auto completion 'hrsh7th/nvim-cmp', - - -- event = "InsertCharPre", requires = { {'onsails/lspkind-nvim'}, { 'hrsh7th/vim-vsnip', requires = {'rafamadriz/friendly-snippets'}, + event = "InsertCharPre" }, { 'hrsh7th/vim-vsnip-integ', - after = 'vim-vsnip', + after = "vim-vsnip", }, { 'tzachar/cmp-tabnine', run = "./install.sh", + after = "nvim-cmp", + event = "InsertCharPre" + }, + {'hrsh7th/cmp-nvim-lsp'}, + {'hrsh7th/cmp-buffer', after = "nvim-cmp", event = "InsertCharPre"}, + {'hrsh7th/cmp-path', after = "nvim-cmp", event = "InsertCharPre"}, + { + 'hrsh7th/cmp-nvim-lua', + after = "nvim-cmp", + event = "InsertCharPre" + }, + {'octaltree/cmp-look', after = "nvim-cmp", event = "InsertCharPre"}, + {'hrsh7th/cmp-vsnip', after = "nvim-cmp", event = "InsertCharPre"}, + {'kdheepak/cmp-latex-symbols', after = "nvim-cmp", ft = "tex"}, + {'hrsh7th/cmp-calc', after = "nvim-cmp", event = "InsertCharPre"}, + { + 'ray-x/cmp-treesitter', + after = "nvim-cmp", + event = "InsertCharPre" + }, + { + 'quangnguyen30192/cmp-nvim-ultisnips', + after = "nvim-cmp", + event = "InsertCharPre" }, - 'hrsh7th/cmp-nvim-lsp', - 'hrsh7th/cmp-buffer', - 'hrsh7th/cmp-path', - 'hrsh7th/cmp-nvim-lua', - 'octaltree/cmp-look', - 'hrsh7th/cmp-vsnip', - 'kdheepak/cmp-latex-symbols', - 'hrsh7th/cmp-calc', - 'ray-x/cmp-treesitter', - 'hrsh7th/cmp-emoji', - 'hrsh7th/cmp-emoji', - 'f3fora/cmp-spell', - 'quangnguyen30192/cmp-nvim-tags' + {'hrsh7th/cmp-emoji', after = "nvim-cmp", event = "InsertCharPre"}, + {'f3fora/cmp-spell', after = "nvim-cmp", event = "InsertCharPre"}, + { + 'quangnguyen30192/cmp-nvim-tags', + after = "nvim-cmp", + event = "InsertCharPre" + } }, config = function() require 'languages.config.nvim-cmp' diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index addbdac..416fe02 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -227,7 +227,8 @@ local function setup_servers() on_attach = on_attach, flags = { debounce_text_changes = 150, - } + }, + capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) } end nvim_lsp["lua"].setup { @@ -235,6 +236,7 @@ local function setup_servers() flags = { debounce_text_changes = 150, }, + capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()), settings = {Lua = {diagnostics = {globals = {'vim'}}}} } end diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index c1b6940..118c348 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -95,56 +95,125 @@ local no_errors, error_msg = pcall(function() path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" }, ["cmp-buffer"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-buffer" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer/after/plugin/cmp_buffer.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer" }, ["cmp-calc"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-calc" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc/after/plugin/cmp_calc.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc" }, ["cmp-emoji"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-emoji" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji/after/plugin/cmp_emoji.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji" }, ["cmp-latex-symbols"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-latex-symbols" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols/after/plugin/cmp_latex.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols" }, ["cmp-look"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-look" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look/after/plugin/cmp_look.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look" }, ["cmp-nvim-lsp"] = { loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp" }, ["cmp-nvim-lua"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua" }, ["cmp-nvim-tags"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-tags" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags/after/plugin/cmp_nvim_tags.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags" + }, + ["cmp-nvim-ultisnips"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips/after/plugin/cmp_nvim_ultisnips.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips" }, ["cmp-path"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-path" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path/after/plugin/cmp_path.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path" }, ["cmp-spell"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-spell" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell/after/plugin/cmp-spell.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell" }, ["cmp-tabnine"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-tabnine" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine/after/plugin/cmp-tabnine.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine" }, ["cmp-treesitter"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-treesitter" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter/after/plugin/cmp_treesitter.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter" }, ["cmp-vsnip"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-vsnip" + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip/after/plugin/cmp_vsnip.vim" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip" }, ["dashboard-nvim"] = { config = { @@ -251,11 +320,23 @@ local no_errors, error_msg = pcall(function() path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" }, ["nvim-cmp"] = { - config = { - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-cmp\frequire\0" + after = { + "cmp-vsnip", + "cmp-treesitter", + "cmp-latex-symbols", + "cmp-nvim-ultisnips", + "cmp-calc", + "cmp-spell", + "cmp-nvim-tags", + "cmp-look", + "cmp-tabnine", + "cmp-buffer", + "cmp-path", + "cmp-emoji", + "cmp-nvim-lua" }, loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-cmp" + only_config = true }, ["nvim-colorizer.lua"] = { config = { @@ -286,7 +367,7 @@ local no_errors, error_msg = pcall(function() path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" }, ["nvim-lspconfig"] = { - after = {"nvim-jdtls", "lspsaga.nvim", "nvim-lspinstall"}, + after = {"nvim-jdtls", "nvim-lspinstall", "lspsaga.nvim"}, loaded = true, only_config = true }, @@ -326,10 +407,10 @@ local no_errors, error_msg = pcall(function() }, ["nvim-treesitter"] = { after = { - "nvim-ts-autotag", - "nvim-treesitter-textobjects", + "nvim-ts-rainbow", "spellsitter.nvim", - "nvim-ts-rainbow" + "nvim-treesitter-textobjects", + "nvim-ts-autotag" }, loaded = true, only_config = true @@ -422,14 +503,17 @@ local no_errors, error_msg = pcall(function() path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" }, ["vim-vsnip"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-vsnip" + after = {"vim-vsnip-integ"}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip" }, ["vim-vsnip-integ"] = { after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" }, - loaded = true, + load_after = {["vim-vsnip"] = true}, + loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" }, @@ -453,14 +537,14 @@ local no_errors, error_msg = pcall(function() time([[Defining packer_plugins]], false) - -- Config for: nvim-treesitter - time([[Config for nvim-treesitter]], true) + -- Config for: nvim-lspconfig + time([[Config for nvim-lspconfig]], true) try_loadstring( - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", - "nvim-treesitter" + "nvim-lspconfig" ) - time([[Config for nvim-treesitter]], false) + time([[Config for nvim-lspconfig]], false) -- Config for: nvim-cmp time([[Config for nvim-cmp]], true) @@ -480,14 +564,14 @@ local no_errors, error_msg = pcall(function() ) time([[Config for nvim-colorizer.lua]], false) - -- Config for: neoscroll.nvim - time([[Config for neoscroll.nvim]], true) + -- Config for: vim-rooter + time([[Config for vim-rooter]], true) try_loadstring( - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", + "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", - "neoscroll.nvim" + "vim-rooter" ) - time([[Config for neoscroll.nvim]], false) + time([[Config for vim-rooter]], false) -- Config for: accelerated-jk time([[Config for accelerated-jk]], true) @@ -507,14 +591,14 @@ local no_errors, error_msg = pcall(function() ) time([[Config for nvim-dap]], false) - -- Config for: nvim-lspconfig - time([[Config for nvim-lspconfig]], true) + -- Config for: neoscroll.nvim + time([[Config for neoscroll.nvim]], true) try_loadstring( - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", "config", - "nvim-lspconfig" + "neoscroll.nvim" ) - time([[Config for nvim-lspconfig]], false) + time([[Config for neoscroll.nvim]], false) -- Config for: kommentary time([[Config for kommentary]], true) @@ -525,14 +609,14 @@ local no_errors, error_msg = pcall(function() ) time([[Config for kommentary]], false) - -- Config for: vim-rooter - time([[Config for vim-rooter]], true) + -- Config for: nvim-treesitter + time([[Config for nvim-treesitter]], true) try_loadstring( - "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", - "vim-rooter" + "nvim-treesitter" ) - time([[Config for vim-rooter]], false) + time([[Config for nvim-treesitter]], false) -- Config for: nvim-autopairs time([[Config for nvim-autopairs]], true) @@ -550,21 +634,27 @@ local no_errors, error_msg = pcall(function() -- Load plugins in order defined by `after` time([[Sequenced loading]], true) - vim.cmd [[ packadd nvim-jdtls ]] - vim.cmd [[ packadd lspsaga.nvim ]] - vim.cmd [[ packadd nvim-lspinstall ]] vim.cmd [[ packadd spellsitter.nvim ]] - vim.cmd [[ packadd nvim-treesitter-textobjects ]] vim.cmd [[ packadd nvim-ts-rainbow ]] vim.cmd [[ packadd nvim-ts-autotag ]] + vim.cmd [[ packadd nvim-treesitter-textobjects ]] + vim.cmd [[ packadd nvim-lspinstall ]] + vim.cmd [[ packadd nvim-jdtls ]] + vim.cmd [[ packadd lspsaga.nvim ]] time([[Sequenced loading]], false) vim.cmd [[augroup packer_load_aucmds]] vim.cmd [[au!]] + -- Filetype lazy-loads + time([[Defining lazy-load filetype autocommands]], true) + vim.cmd [[au FileType tex ++once lua require("packer.load")({'cmp-latex-symbols'}, { ft = "tex" }, _G.packer_plugins)]] + time([[Defining lazy-load filetype autocommands]], false) + -- Event lazy-loads time([[Defining lazy-load event autocommands]], true) - vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'indent-blankline.nvim', 'galaxyline.nvim', 'nvim-tree.lua', 'vista.vim', 'barbar.nvim', 'which-key.nvim', 'telescope.nvim', 'vim-sayonara', 'dashboard-nvim', 'nvim-toggleterm.lua', 'nvim-transparent'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] - vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'everforest', 'gitsigns.nvim', 'github-nvim-theme', 'todo-comments.nvim', 'gruvbox-material'}, { event = "BufRead *" }, _G.packer_plugins)]] + vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'vista.vim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-transparent', 'dashboard-nvim', 'nvim-toggleterm.lua', 'telescope.nvim', 'galaxyline.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] + vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-buffer', 'cmp-path', 'cmp-emoji', 'cmp-nvim-lua'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] + vim.cmd [[au BufRead * ++once lua require("packer.load")({'everforest', 'hop', 'gitsigns.nvim', 'gruvbox-material', 'github-nvim-theme', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] time([[Defining lazy-load event autocommands]], false) vim.cmd("augroup END") if should_profile then From 09a04ff34d7de4667830d488e42722ae8f6dce14 Mon Sep 17 00:00:00 2001 From: JryChn Date: Sat, 18 Sep 2021 23:21:46 +0800 Subject: [PATCH 27/92] java server config repair --- lua/core/init.lua | 10 +++--- lua/languages/config/nvim-dap.lua | 4 +-- lua/languages/config/nvim-jdtls.lua | 43 +++++++++++++++++++++++++ lua/languages/config/nvim-lspconfig.lua | 33 ++----------------- 4 files changed, 53 insertions(+), 37 deletions(-) create mode 100644 lua/languages/config/nvim-jdtls.lua diff --git a/lua/core/init.lua b/lua/core/init.lua index 957e150..d9743d7 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -11,11 +11,11 @@ packer.startup(function(use) use 'wbthomason/packer.nvim' -----------NOTE:core layer----------- - use { - --Icon sets for neovim plugins and settings - -- 'yamatsum/nvim-nonicons', - -- requires = {'kyazdani42/nvim-web-devicons'} - } + -- use { + --Icon sets for neovim plugins and settings + -- 'yamatsum/nvim-nonicons', + -- requires = {'kyazdani42/nvim-web-devicons'} + -- } use { --vim plugin to accelerate up-down moving 'rhysd/accelerated-jk', diff --git a/lua/languages/config/nvim-dap.lua b/lua/languages/config/nvim-dap.lua index b82000b..44246db 100644 --- a/lua/languages/config/nvim-dap.lua +++ b/lua/languages/config/nvim-dap.lua @@ -67,7 +67,7 @@ require("dapui").setup({ {id = "stacks", size = 0.25}, {id = "watches", size = 00.25}, }, - width = 40, + size = 40, position = "left", -- Can be "left" or "right" @@ -75,7 +75,7 @@ require("dapui").setup({ tray = { open_on_start = true, elements = {"repl"}, - height = 10, + size = 10, position = "bottom", -- Can be "bottom" or "top" diff --git a/lua/languages/config/nvim-jdtls.lua b/lua/languages/config/nvim-jdtls.lua new file mode 100644 index 0000000..4aeb198 --- /dev/null +++ b/lua/languages/config/nvim-jdtls.lua @@ -0,0 +1,43 @@ +local M = {} + +function M.setup() + local install_path = require "lspinstall/util".install_path("java") + local path = install_path .. "/jdtls.sh" + local root_markers = {'gradlew', 'pom.xml', '.git'} + local root_dir = require('jdtls.setup').find_root(root_markers) + local workspace_folder = os.getenv("HOME") .. "/.local/share/nvim_java_workspace/" .. vim.fn.fnamemodify( + root_dir, + ":p:h:t" + ) + print("detect root directory " .. workspace_folder) + local config = {cmd = {path, workspace_folder}, root_dir = root_dir} + vim.api.nvim_command('au FileType java lua vim.api.nvim_set_keymap(\'n\', \'gd\', \'lua vim.lsp.buf.definition()\', {silent = true})') + vim.api.nvim_exec( + [[ + au FileType java lua vim.api.nvim_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'gI', 'lua vim.lsp.buf.implementation()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'lr', 'lua vim.lsp.buf.rename()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'lR', 'lua require"jdtls".code_action(false, "refactor")', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'la', 'lua require"jdtls".code_action()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('v', 'la', 'lua require"jdtls".code_action(true)', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'll', 'lua vim.lsp.diagnostic.show_line_diagnostics()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', '[g', 'lua vim.lsp.diagnostic.goto_prev()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', ']g', 'lua vim.lsp.diagnostic.goto_next()', {silent=true,noremap=true}) + au FileType java lua vim.api.nvim_set_keymap('n', 'bf', 'lua vim.lsp.buf.formatting()', {silent=true,noremap=true}) + au FileType java packadd which-key.nvim + au FileType java lua require"which-key".register({["lR"] = {name = "refactor"}}) + au FileType java lua require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) local opts = {};require'telescope.pickers'.new(opts, {prompt_title = prompt,finder = require'telescope.finders'.new_table {results = items,entry_maker = function(entry) return {value = entry,display = label_fn(entry),ordinal = label_fn(entry),}end,},sorter = require'telescope.sorters'.get_generic_fuzzy_sorter(),attach_mappings = function(prompt_bufnr) require'telescope.actions'.select_default:replace(function()local selection = require'telescope.actions'.get_selected_entry(prompt_bufnr) require'telescope.actions'.close(prompt_bufnr) cb(selection.value)end)return true end,}):find() end +]], + true + ) + + require('jdtls').start_or_attach(config) +end + +return M diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 416fe02..f5ea320 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -187,39 +187,12 @@ require 'lspinstall'.setup() local nvim_lsp = require('lspconfig') local function setup_servers() for _, lsp in ipairs(require 'lspinstall'.installed_servers()) do - -- NOTE: the Java official server can not deserve require + -- NOTE: the Java official server can not deserve requirement if lsp == "java" then - local install_path = require "lspinstall/util".install_path("java") - local path = install_path .. "/jdtls.sh" - vim.api.nvim_command('augroup lsp') + vim.api.nvim_command('augroup nvim-jdtls') vim.api.nvim_command('au!') - vim.api.nvim_command('au FileType java lua require(\'jdtls\').start_or_attach({cmd = {\'' .. path .. '\'}})') + vim.api.nvim_command('au FileType java lua require(\'languages.config.nvim-jdtls\').setup()') vim.api.nvim_command('augroup end') - vim.api.nvim_command('au FileType java lua vim.api.nvim_set_keymap(\'n\', \'gd\', \'lua vim.lsp.buf.definition()\', {silent = true})') - vim.api.nvim_exec( - [[ - au FileType java lua vim.api.nvim_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'gI', 'lua vim.lsp.buf.implementation()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'lr', 'lua vim.lsp.buf.rename()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'lR', 'lua require"jdtls".code_action(false, "refactor")', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'la', 'lua require"jdtls".code_action()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('v', 'la', 'lua require"jdtls".code_action(true)', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'll', 'lua vim.lsp.diagnostic.show_line_diagnostics()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', '[g', 'lua vim.lsp.diagnostic.goto_prev()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', ']g', 'lua vim.lsp.diagnostic.goto_next()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'bf', 'lua vim.lsp.buf.formatting()', {silent=true,noremap=true}) - au FileType java packadd which-key.nvim - au FileType java lua require"which-key".register({["lR"] = {name = "refactor"}}) - au FileType java lua require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) local opts = {};require'telescope.pickers'.new(opts, {prompt_title = prompt,finder = require'telescope.finders'.new_table {results = items,entry_maker = function(entry) return {value = entry,display = label_fn(entry),ordinal = label_fn(entry),}end,},sorter = require'telescope.sorters'.get_generic_fuzzy_sorter(),attach_mappings = function(prompt_bufnr) require'telescope.actions'.select_default:replace(function()local selection = require'telescope.actions'.get_selected_entry(prompt_bufnr) require'telescope.actions'.close(prompt_bufnr) cb(selection.value)end)return true end,}):find() end -]], - true - ) -- NOTE: ----------------------------END else From 107c34234ad983ec93ab13bb5bdbbb3f750e03ec Mon Sep 17 00:00:00 2001 From: JryChn Date: Sun, 26 Sep 2021 14:23:18 +0800 Subject: [PATCH 28/92] upstream update --- lua/core/config/nvim-tree.lua | 58 +++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index e4cb101..a48be4b 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -41,6 +41,54 @@ vim.api.nvim_set_keymap( ":NvimTreeToggle", {noremap = true, silent = true} ) +require 'nvim-tree'.setup { + -- disables netrw completely + disable_netrw = true, + + -- hijack netrw window on startup + hijack_netrw = true, + + -- open the tree when running this setup function + open_on_setup = false, + + -- will not open on setup if the filetype is in this list + ignore_ft_on_setup = {}, + + -- closes neovim automatically when the tree is the last **WINDOW** in the view + auto_close = true, + + -- opens the tree when changing/opening a new tab if the tree wasn't previously opened + open_on_tab = false, + + -- hijack the cursor in the tree to put it at the start of the filename + hijack_cursor = false, + + -- updates the root directory of the tree on `DirChanged` (when your run `:cd` usually) + update_cwd = false, + + -- update the focused file on `BufEnter`, un-collapses the folders recursively until it finds the file + update_focused_file = { + -- enables the feature + enable = false, + + -- update the root directory of the tree to the one of the folder containing the file if the file is not under the current root directory + -- only relevant when `update_focused_file.enable` is true + update_cwd = false, + + -- list of buffer names / filetypes that will not update the cwd if the file isn't found under the current root directory + -- only relevant when `update_focused_file.update_cwd` is true and `update_focused_file.enable` is true + ignore_list = {} + }, + + -- configuration options for the system open command (`s` in the tree by default) + system_open = { + -- the command to run this, leaving nil should work in most cases + cmd = nil, + + -- the command arguments as a list + args = {} + }, +} local g = vim.g @@ -48,17 +96,7 @@ vim.o.termguicolors = true g.nvim_tree_side = "left" g.nvim_tree_width = 26 -g.nvim_tree_auto_open = 0 -g.nvim_tree_auto_close = 1 -g.nvim_tree_quit_on_open = 0 -g.nvim_tree_follow = 1 -g.nvim_tree_indent_markers = 1 - ---g.nvim_tree_hide_dotfiles = 1 -g.nvim_tree_git_hl = 1 g.nvim_tree_root_folder_modifier = ":t" -g.nvim_tree_tab_open = 0 -g.nvim_tree_allow_resize = 1 g.nvim_tree_show_icons = {git = 1, folders = 1, files = 1} From 5e2718fd1470f86fc9784b36df399c126791d17c Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 29 Sep 2021 13:48:12 +0800 Subject: [PATCH 29/92] follow upstream --- lua/core/config/nvim-tree.lua | 73 ++++++++--------------------- lua/languages/config/nvim-dap.lua | 62 ++++--------------------- lua/plugins/config/gitsigns.lua | 54 ++-------------------- lua/plugins/config/which-key.lua | 2 + plugin/packer_compiled.lua | 76 +++++++++++++++---------------- 5 files changed, 73 insertions(+), 194 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index a48be4b..c16c05f 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -1,5 +1,5 @@ local tree_cb = require 'nvim-tree.config'.nvim_tree_callback -vim.g.nvim_tree_bindings = { +local list = { {key = {"", "o", "l"}, cb = tree_cb("edit")}, {key = {""}, cb = tree_cb("cd")}, {key = "v", cb = tree_cb("vsplit")}, @@ -42,60 +42,32 @@ vim.api.nvim_set_keymap( {noremap = true, silent = true} ) require 'nvim-tree'.setup { - -- disables netrw completely - disable_netrw = true, - - -- hijack netrw window on startup - hijack_netrw = true, - - -- open the tree when running this setup function - open_on_setup = false, - - -- will not open on setup if the filetype is in this list - ignore_ft_on_setup = {}, - -- closes neovim automatically when the tree is the last **WINDOW** in the view auto_close = true, - - -- opens the tree when changing/opening a new tab if the tree wasn't previously opened - open_on_tab = false, - - -- hijack the cursor in the tree to put it at the start of the filename - hijack_cursor = false, - - -- updates the root directory of the tree on `DirChanged` (when your run `:cd` usually) - update_cwd = false, - - -- update the focused file on `BufEnter`, un-collapses the folders recursively until it finds the file - update_focused_file = { - -- enables the feature - enable = false, - - -- update the root directory of the tree to the one of the folder containing the file if the file is not under the current root directory - -- only relevant when `update_focused_file.enable` is true - update_cwd = false, - - -- list of buffer names / filetypes that will not update the cwd if the file isn't found under the current root directory - -- only relevant when `update_focused_file.update_cwd` is true and `update_focused_file.enable` is true - ignore_list = {} - }, - - -- configuration options for the system open command (`s` in the tree by default) - system_open = { - -- the command to run this, leaving nil should work in most cases - cmd = nil, - - -- the command arguments as a list - args = {} - }, + view = { + -- width of the window, can be either a number (columns) or a string in `%` + width = 26, + + -- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom' + side = 'left', + + -- if true the tree will resize itself after opening a file + auto_resize = false, + mappings = { + -- custom only false will merge the list with the default mappings + -- if true, it will only use your list to set the mappings + custom_only = false, + + -- list of mappings to set on the tree manually + list = list + } + } } local g = vim.g vim.o.termguicolors = true -g.nvim_tree_side = "left" -g.nvim_tree_width = 26 g.nvim_tree_root_folder_modifier = ":t" g.nvim_tree_show_icons = {git = 1, folders = 1, files = 1} @@ -112,10 +84,3 @@ g.nvim_tree_icons = { }, folder = {default = "", open = "", symlink = ""} } - -local get_lua_cb = function(cb_name) - return string.format( - ":lua require'nvim-tree'.on_keypress('%s')", - cb_name - ) -end diff --git a/lua/languages/config/nvim-dap.lua b/lua/languages/config/nvim-dap.lua index 44246db..c0a503e 100644 --- a/lua/languages/config/nvim-dap.lua +++ b/lua/languages/config/nvim-dap.lua @@ -41,55 +41,13 @@ end -- ui vim.g.dap_virtual_text = 'all frames' -require("dapui").setup({ - icons = {expanded = "▾", collapsed = "▸"}, - mappings = { - -- Use a table to apply multiple mappings - expand = {"", "<2-LeftMouse>"}, - open = "o", - remove = "d", - edit = "e", - repl = "r", - }, - sidebar = { - open_on_start = true, - - -- You can change the order of elements in the sidebar - elements = { - -- Provide as ID strings or tables with "id" and "size" keys - { - id = "scopes", - size = 0.25, - - -- Can be float or integer > 1 - }, - {id = "breakpoints", size = 0.25}, - {id = "stacks", size = 0.25}, - {id = "watches", size = 00.25}, - }, - size = 40, - position = "left", - - -- Can be "left" or "right" - }, - tray = { - open_on_start = true, - elements = {"repl"}, - size = 10, - position = "bottom", - - -- Can be "bottom" or "top" - }, - floating = { - max_height = nil, - - -- These can be integers or a float between 0 and 1. - max_width = nil, - - -- Floats will be treated as percentage of your screen. - mappings = { - close = {"q", ""}, - }, - }, - windows = {indent = 1}, -}) +local dap, dapui = require('dap'), require('dapui') +dap.listeners.after.event_initialized['dapui_config'] = function() + dapui.open() +end +dap.listeners.before.event_terminated['dapui_config'] = function() + dapui.close() +end +dap.listeners.before.event_exited['dapui_config'] = function() + dapui.close() +end diff --git a/lua/plugins/config/gitsigns.lua b/lua/plugins/config/gitsigns.lua index ec3748d..a02083b 100644 --- a/lua/plugins/config/gitsigns.lua +++ b/lua/plugins/config/gitsigns.lua @@ -3,49 +3,17 @@ ------------------------------------------------------------------------------ require 'gitsigns'.setup({ - signs = { - add = { - hl = 'GitSignsAdd', - text = '│', - numhl = 'GitSignsAddNr', - linehl = 'GitSignsAddLn' - }, - change = { - hl = 'GitSignsChange', - text = '│', - numhl = 'GitSignsChangeNr', - linehl = 'GitSignsChangeLn' - }, - delete = { - hl = 'GitSignsDelete', - text = '_', - numhl = 'GitSignsDeleteNr', - linehl = 'GitSignsDeleteLn' - }, - topdelete = { - hl = 'GitSignsDelete', - text = '‾', - numhl = 'GitSignsDeleteNr', - linehl = 'GitSignsDeleteLn' - }, - changedelete = { - hl = 'GitSignsChange', - text = '~', - numhl = 'GitSignsChangeNr', - linehl = 'GitSignsChangeLn' - }, - }, - numhl = false, - linehl = false, + numhl = true, + linehl = true, keymaps = { -- Default keymap options noremap = true, - ['n ]c'] = { + ['n g]'] = { expr = true, "&diff ? ']c' : 'lua require\"gitsigns.actions\".next_hunk()'" }, - ['n [c'] = { + ['n g['] = { expr = true, "&diff ? '[c' : 'lua require\"gitsigns.actions\".prev_hunk()'" }, @@ -64,19 +32,5 @@ require 'gitsigns'.setup({ ['o ih'] = ':lua require"gitsigns.actions".select_hunk()', ['x ih'] = ':lua require"gitsigns.actions".select_hunk()' }, - watch_index = {interval = 1000, follow_files = true}, - current_line_blame = false, - current_line_blame_delay = 1000, - current_line_blame_position = 'eol', - sign_priority = 6, - update_debounce = 100, - status_formatter = nil, - - -- Use default - word_diff = false, - use_decoration_api = true, - use_internal_diff = true - - -- If luajit is present }) diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua index 1d9ecd3..7c77041 100644 --- a/lua/plugins/config/which-key.lua +++ b/lua/plugins/config/which-key.lua @@ -156,6 +156,8 @@ wk.register({ ["gB"] = {name = "Git branchs"}, ["gS"] = {name = "Git status"}, ["gl"] = {name = "toggle line blame"}, + ["g["] = {name = "previous hunk"}, + ["g]"] = {name = "next hunk"}, ---------------------------------- ["sb"] = {name = "search in buffer"}, diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 118c348..e8ba858 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -46,8 +46,8 @@ local no_errors, error_msg = pcall(function() end time([[Luarocks path setup]], true) - local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" - local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" + local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" + local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" if not string.find(package.path, package_path_str, 1, true) then package.path = package.path .. ';' .. package_path_str end @@ -81,14 +81,14 @@ local no_errors, error_msg = pcall(function() }, ["accelerated-jk"] = { config = { - "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" + "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" }, ["barbar.nvim"] = { config = { - "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" + "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" }, loaded = false, needs_bufread = false, @@ -217,20 +217,20 @@ local no_errors, error_msg = pcall(function() }, ["dashboard-nvim"] = { config = { - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" }, ["dial.nvim"] = { - config = {"\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0"}, + config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" }, everforest = { config = { - "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, @@ -242,7 +242,7 @@ local no_errors, error_msg = pcall(function() }, ["galaxyline.nvim"] = { config = { - "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" + "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, loaded = false, needs_bufread = false, @@ -250,7 +250,7 @@ local no_errors, error_msg = pcall(function() }, ["github-nvim-theme"] = { config = { - "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, @@ -258,7 +258,7 @@ local no_errors, error_msg = pcall(function() }, ["gitsigns.nvim"] = { config = { - "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" + "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, loaded = false, needs_bufread = false, @@ -266,7 +266,7 @@ local no_errors, error_msg = pcall(function() }, ["gruvbox-material"] = { config = { - "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" + "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, loaded = false, needs_bufread = false, @@ -274,7 +274,7 @@ local no_errors, error_msg = pcall(function() }, hop = { config = { - "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" + "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" }, loaded = false, needs_bufread = false, @@ -282,7 +282,7 @@ local no_errors, error_msg = pcall(function() }, ["indent-blankline.nvim"] = { config = { - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" }, loaded = false, needs_bufread = false, @@ -290,7 +290,7 @@ local no_errors, error_msg = pcall(function() }, kommentary = { config = { - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" @@ -307,14 +307,14 @@ local no_errors, error_msg = pcall(function() }, ["neoscroll.nvim"] = { config = { - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" }, ["nvim-autopairs"] = { config = { - "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" + "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" @@ -340,14 +340,14 @@ local no_errors, error_msg = pcall(function() }, ["nvim-colorizer.lua"] = { config = { - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" }, ["nvim-dap"] = { config = { - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" @@ -383,7 +383,7 @@ local no_errors, error_msg = pcall(function() }, ["nvim-toggleterm.lua"] = { config = { - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" }, loaded = false, needs_bufread = false, @@ -391,7 +391,7 @@ local no_errors, error_msg = pcall(function() }, ["nvim-transparent"] = { config = { - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" }, loaded = false, needs_bufread = false, @@ -399,7 +399,7 @@ local no_errors, error_msg = pcall(function() }, ["nvim-tree.lua"] = { config = { - "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" + "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" }, loaded = false, needs_bufread = false, @@ -465,7 +465,7 @@ local no_errors, error_msg = pcall(function() }, ["telescope.nvim"] = { config = { - "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" + "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" }, loaded = false, needs_bufread = true, @@ -473,7 +473,7 @@ local no_errors, error_msg = pcall(function() }, ["todo-comments.nvim"] = { config = { - "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" + "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" }, loaded = false, needs_bufread = false, @@ -489,14 +489,14 @@ local no_errors, error_msg = pcall(function() }, ["vim-rooter"] = { config = { - "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" + "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" }, ["vim-sayonara"] = { config = { - "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" + "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" }, loaded = false, needs_bufread = false, @@ -519,7 +519,7 @@ local no_errors, error_msg = pcall(function() }, ["vista.vim"] = { config = { - "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" + "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" }, loaded = false, needs_bufread = false, @@ -527,7 +527,7 @@ local no_errors, error_msg = pcall(function() }, ["which-key.nvim"] = { config = { - "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" + "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" }, loaded = false, needs_bufread = false, @@ -540,7 +540,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-lspconfig time([[Config for nvim-lspconfig]], true) try_loadstring( - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig" ) @@ -549,7 +549,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-cmp time([[Config for nvim-cmp]], true) try_loadstring( - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-cmp\frequire\0", + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0", "config", "nvim-cmp" ) @@ -558,7 +558,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-colorizer.lua time([[Config for nvim-colorizer.lua]], true) try_loadstring( - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua" ) @@ -567,7 +567,7 @@ local no_errors, error_msg = pcall(function() -- Config for: vim-rooter time([[Config for vim-rooter]], true) try_loadstring( - "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", + "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter" ) @@ -576,7 +576,7 @@ local no_errors, error_msg = pcall(function() -- Config for: accelerated-jk time([[Config for accelerated-jk]], true) try_loadstring( - "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", + "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk" ) @@ -585,7 +585,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-dap time([[Config for nvim-dap]], true) try_loadstring( - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap" ) @@ -594,7 +594,7 @@ local no_errors, error_msg = pcall(function() -- Config for: neoscroll.nvim time([[Config for neoscroll.nvim]], true) try_loadstring( - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim" ) @@ -603,7 +603,7 @@ local no_errors, error_msg = pcall(function() -- Config for: kommentary time([[Config for kommentary]], true) try_loadstring( - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary" ) @@ -612,7 +612,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-treesitter time([[Config for nvim-treesitter]], true) try_loadstring( - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter" ) @@ -621,7 +621,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-autopairs time([[Config for nvim-autopairs]], true) try_loadstring( - "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", + "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs" ) @@ -629,7 +629,7 @@ local no_errors, error_msg = pcall(function() -- Config for: dial.nvim time([[Config for dial.nvim]], true) - try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") + try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") time([[Config for dial.nvim]], false) -- Load plugins in order defined by `after` From 178c92c94dcd07e704b48707fbe654cc6792cc91 Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 29 Sep 2021 17:43:20 +0800 Subject: [PATCH 30/92] update java save action --- lua/core/init.lua | 6 +++++- lua/languages/config/nvim-jdtls.lua | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index d9743d7..02ed3c8 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -77,7 +77,11 @@ packer.startup(function(use) use { --highly extendable fuzzy finder over lists 'nvim-telescope/telescope.nvim', - requires = {{'nvim-lua/popup.nvim'}, {'nvim-lua/plenary.nvim'}}, + requires = { + {'nvim-lua/popup.nvim'}, + {'nvim-lua/plenary.nvim'}, + {'BurntSushi/ripgrep'} + }, config = function() require 'core.config.telescope' end, diff --git a/lua/languages/config/nvim-jdtls.lua b/lua/languages/config/nvim-jdtls.lua index 4aeb198..5482f77 100644 --- a/lua/languages/config/nvim-jdtls.lua +++ b/lua/languages/config/nvim-jdtls.lua @@ -14,6 +14,8 @@ function M.setup() vim.api.nvim_command('au FileType java lua vim.api.nvim_set_keymap(\'n\', \'gd\', \'lua vim.lsp.buf.definition()\', {silent = true})') vim.api.nvim_exec( [[ + au FileType java lua vim.api.nvim_set_keymap("i", "", ":w! | lua require'jdtls'.organize_imports()", {noremap = true}) + au FileType java lua vim.api.nvim_set_keymap("n", "", ":w! | lua require'jdtls'.organize_imports()", {noremap = true}) au FileType java lua vim.api.nvim_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', {silent=true,noremap=true}) au FileType java lua vim.api.nvim_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', {silent=true,noremap=true}) au FileType java lua vim.api.nvim_set_keymap('n', 'gI', 'lua vim.lsp.buf.implementation()', {silent=true,noremap=true}) From d8fb3be312959fba1c3fea0935ebb0f98bf5ff64 Mon Sep 17 00:00:00 2001 From: JryChn Date: Thu, 30 Sep 2021 15:30:22 +0800 Subject: [PATCH 31/92] update java configuration --- lua/languages/config/nvim-jdtls.lua | 215 +++++++++++++++++++++--- lua/languages/config/nvim-lspconfig.lua | 13 +- 2 files changed, 196 insertions(+), 32 deletions(-) diff --git a/lua/languages/config/nvim-jdtls.lua b/lua/languages/config/nvim-jdtls.lua index 5482f77..439f589 100644 --- a/lua/languages/config/nvim-jdtls.lua +++ b/lua/languages/config/nvim-jdtls.lua @@ -1,6 +1,182 @@ local M = {} function M.setup() + vim.api.nvim_set_keymap( + 'n', + 'gd', + 'lua vim.lsp.buf.definition()', + {silent = true} + ) + vim.api.nvim_set_keymap( + "i", + "", + ":w! | lua require'jdtls'.organize_imports()", + {noremap = true} + ) + vim.api.nvim_set_keymap( + "n", + "", + ":w! | lua require'jdtls'.organize_imports()", + {noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'gD', + 'lua vim.lsp.buf.declaration()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'K', + 'lua vim.lsp.buf.hover()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'gI', + 'lua vim.lsp.buf.implementation()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + '', + 'lua vim.lsp.buf.signature_help()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'wa', + 'lua vim.lsp.buf.add_workspace_folder()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'wr', + 'lua vim.lsp.buf.remove_workspace_folder()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'wl', + 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'lr', + 'lua vim.lsp.buf.rename()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'lR', + 'lua require"jdtls".code_action(false, "refactor")', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'la', + 'lua require"jdtls".code_action()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'v', + 'la', + 'lua require"jdtls".code_action(true)', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'gr', + 'lua vim.lsp.buf.references()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'll', + 'lua vim.lsp.diagnostic.show_line_diagnostics()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + '[g', + 'lua vim.lsp.diagnostic.goto_prev()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + ']g', + 'lua vim.lsp.diagnostic.goto_next()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'bf', + 'lua vim.lsp.buf.formatting()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'lcv', + 'lua require(\'jdtls\').extract_variable()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'v', + 'lcv', + 'lua require(\'jdtls\').extract_variable(true)', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'lcc', + 'lua require(\'jdtls\').extract_constant()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'v', + 'lcc', + 'lua require(\'jdtls\').extract_constant(true)', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'v', + 'lcm', + 'lua lua require(\'jdtls\').extract_method(true)', + {silent = true, noremap = true} + ) + vim.cmd ' packadd which-key.nvim' + require "which-key".register({["lR"] = {name = "refactor"}}) + require "which-key".register({["lc"] = {name = "extract"}}) + require "which-key".register({["lcv"] = {name = "extract_variable"}}) + require "which-key".register({["lcc"] = {name = "extract_constant"}}) + require "which-key".register({["lcm"] = {name = "extract_method"}}) + require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) + local opts = {}; + require 'telescope.pickers'.new(opts, { + prompt_title = prompt, + finder = require 'telescope.finders'.new_table { + results = items, + entry_maker = function(entry) + return { + value = entry, + display = label_fn(entry), + ordinal = label_fn(entry), + } + end, + }, + sorter = require 'telescope.sorters'.get_generic_fuzzy_sorter(), + attach_mappings = function(prompt_bufnr) + require 'telescope.actions'.select_default:replace(function() + local selection = require 'telescope.actions'.get_selected_entry(prompt_bufnr) + require 'telescope.actions'.close(prompt_bufnr) + cb(selection.value) + end) + return true + end, + }):find() + end + local install_path = require "lspinstall/util".install_path("java") local path = install_path .. "/jdtls.sh" local root_markers = {'gradlew', 'pom.xml', '.git'} @@ -10,34 +186,17 @@ function M.setup() ":p:h:t" ) print("detect root directory " .. workspace_folder) - local config = {cmd = {path, workspace_folder}, root_dir = root_dir} - vim.api.nvim_command('au FileType java lua vim.api.nvim_set_keymap(\'n\', \'gd\', \'lua vim.lsp.buf.definition()\', {silent = true})') - vim.api.nvim_exec( - [[ - au FileType java lua vim.api.nvim_set_keymap("i", "", ":w! | lua require'jdtls'.organize_imports()", {noremap = true}) - au FileType java lua vim.api.nvim_set_keymap("n", "", ":w! | lua require'jdtls'.organize_imports()", {noremap = true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'gI', 'lua vim.lsp.buf.implementation()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'lr', 'lua vim.lsp.buf.rename()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'lR', 'lua require"jdtls".code_action(false, "refactor")', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'la', 'lua require"jdtls".code_action()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('v', 'la', 'lua require"jdtls".code_action(true)', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'll', 'lua vim.lsp.diagnostic.show_line_diagnostics()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', '[g', 'lua vim.lsp.diagnostic.goto_prev()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', ']g', 'lua vim.lsp.diagnostic.goto_next()', {silent=true,noremap=true}) - au FileType java lua vim.api.nvim_set_keymap('n', 'bf', 'lua vim.lsp.buf.formatting()', {silent=true,noremap=true}) - au FileType java packadd which-key.nvim - au FileType java lua require"which-key".register({["lR"] = {name = "refactor"}}) - au FileType java lua require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) local opts = {};require'telescope.pickers'.new(opts, {prompt_title = prompt,finder = require'telescope.finders'.new_table {results = items,entry_maker = function(entry) return {value = entry,display = label_fn(entry),ordinal = label_fn(entry),}end,},sorter = require'telescope.sorters'.get_generic_fuzzy_sorter(),attach_mappings = function(prompt_bufnr) require'telescope.actions'.select_default:replace(function()local selection = require'telescope.actions'.get_selected_entry(prompt_bufnr) require'telescope.actions'.close(prompt_bufnr) cb(selection.value)end)return true end,}):find() end -]], - true - ) + local on_attach = function(client, bufnr) + require 'jdtls'.setup_dap() + require 'lsp-status'.register_progress() + end + + local config = { + cmd = {path, workspace_folder}, + root_dir = root_dir, + flags = {allow_incremental_sync = true}, + on_attach = on_attach + } require('jdtls').start_or_attach(config) end diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index f5ea320..23e1cba 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -189,10 +189,15 @@ local function setup_servers() for _, lsp in ipairs(require 'lspinstall'.installed_servers()) do -- NOTE: the Java official server can not deserve requirement if lsp == "java" then - vim.api.nvim_command('augroup nvim-jdtls') - vim.api.nvim_command('au!') - vim.api.nvim_command('au FileType java lua require(\'languages.config.nvim-jdtls\').setup()') - vim.api.nvim_command('augroup end') + vim.api.nvim_exec( + [[ + augroup jdtls_lsp + au! + au FileType java lua require('languages.config.nvim-jdtls').setup() + augroup end + ]], + false + ) -- NOTE: ----------------------------END else From bb71faf2e2e9e5f0b98df1451c70640dbe953749 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 1 Oct 2021 00:05:35 +0800 Subject: [PATCH 32/92] use nvim-lsp-installer instead of nvim-lspinstall --- lua/core/init.lua | 1 + lua/languages/config/nvim-lspconfig.lua | 114 +++++++++++----------- plugin/packer_compiled.lua | 124 +++++++++++++----------- 3 files changed, 129 insertions(+), 110 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 02ed3c8..40f1836 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -164,6 +164,7 @@ packer.startup(function(use) 'neovim/nvim-lspconfig', requires = { {'kabouzeid/nvim-lspinstall', after = 'nvim-lspconfig'}, + {'williamboman/nvim-lsp-installer', after = 'nvim-lspconfig'}, {'glepnir/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, }, diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 23e1cba..637ca06 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -143,25 +143,33 @@ end ----------------------------------------------------------- local lspservers = { - "go", - "lua", - "cpp", - "cmake", + "go:gopls", + "lua:sumneko_lua", + "cpp:clangd", + "cmake:cmake", "java", - "bash", - "css", - "html", - "rome", - "json", - "python", - "rust", - "dockerfile", - "vim", - "vue" + "bash:bashls", + "css:cssls", + "html:html", + "rome:rome", + "json:jsonls", + "python:pyright", + "rust:rust_analyzer", + "docker:dockerls", + "vim:vimls", + "vue:vuels", + "yaml:yamlls", } vim.cmd ' packadd nvim-lspinstall' +vim.cmd ' packadd nvim-lsp-installer' --- NOTE: first, install the servers we need +local function split(s, delimiter) + local result = {}; + for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do + table.insert(result, match); + end + return result; +end local function contains(tables, value) for _, values in pairs(tables) do @@ -172,9 +180,17 @@ local function contains(tables, value) return false end +-- NOTE: first, install the servers we need for _, server in ipairs(lspservers) do - if not contains(require("lspinstall").installed_servers(), server) then - require("lspinstall").install_server(server) + local ac_server = split(server, ':'); + if (ac_server[1] == 'java') then + if not contains(require("lspinstall").installed_servers(), "java") then + require("lspinstall").install_server("java") + end + else + if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then + require("nvim-lsp-installer").install(ac_server[2]) + end end end @@ -184,53 +200,39 @@ require 'lspinstall'.setup() -- use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches -local nvim_lsp = require('lspconfig') -local function setup_servers() - for _, lsp in ipairs(require 'lspinstall'.installed_servers()) do - -- NOTE: the Java official server can not deserve requirement - if lsp == "java" then - vim.api.nvim_exec( - [[ +local lsp_installer = require("nvim-lsp-installer") + +lsp_installer.on_server_ready(function(server) + local opts = { + autostart = true, + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + }, + capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) + } + + if server.name == "sumneko_lua" then + opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} + end + server:setup(opts) + vim.cmd("bufdo e") +end) +for _, lsp in ipairs(require 'lspinstall'.installed_servers()) do + -- NOTE: the Java official server can not deserve requirement + if lsp == "java" then + vim.api.nvim_exec( + [[ augroup jdtls_lsp au! au FileType java lua require('languages.config.nvim-jdtls').setup() augroup end ]], - false - ) - - -- NOTE: ----------------------------END - else - nvim_lsp[lsp].setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150, - }, - capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) - } - end - nvim_lsp["lua"].setup { - on_attach = on_attach, - flags = { - debounce_text_changes = 150, - }, - capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()), - settings = {Lua = {diagnostics = {globals = {'vim'}}}} - } + false + ) end end -setup_servers() - -require 'lspinstall'.post_install_hook = function() - setup_servers() - - -- reload installed servers - vim.cmd("bufdo e") - - -- this triggers the filetype autocmd that starts the server -end - -- NOTE: finally, setup lsp saga and config vim.cmd ' packadd lspsaga.nvim' local saga = require 'lspsaga' diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index e8ba858..d92f4fd 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -46,8 +46,8 @@ local no_errors, error_msg = pcall(function() end time([[Luarocks path setup]], true) - local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" - local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" + local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" + local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" if not string.find(package.path, package_path_str, 1, true) then package.path = package.path .. ';' .. package_path_str end @@ -81,14 +81,14 @@ local no_errors, error_msg = pcall(function() }, ["accelerated-jk"] = { config = { - "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" + "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" }, ["barbar.nvim"] = { config = { - "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" + "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" }, loaded = false, needs_bufread = false, @@ -217,20 +217,20 @@ local no_errors, error_msg = pcall(function() }, ["dashboard-nvim"] = { config = { - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" }, ["dial.nvim"] = { - config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, + config = {"\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0"}, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" }, everforest = { config = { - "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, @@ -242,7 +242,7 @@ local no_errors, error_msg = pcall(function() }, ["galaxyline.nvim"] = { config = { - "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" + "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" }, loaded = false, needs_bufread = false, @@ -250,7 +250,7 @@ local no_errors, error_msg = pcall(function() }, ["github-nvim-theme"] = { config = { - "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, @@ -258,7 +258,7 @@ local no_errors, error_msg = pcall(function() }, ["gitsigns.nvim"] = { config = { - "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" + "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" }, loaded = false, needs_bufread = false, @@ -266,7 +266,7 @@ local no_errors, error_msg = pcall(function() }, ["gruvbox-material"] = { config = { - "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" + "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, loaded = false, needs_bufread = false, @@ -274,7 +274,7 @@ local no_errors, error_msg = pcall(function() }, hop = { config = { - "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" + "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" }, loaded = false, needs_bufread = false, @@ -282,7 +282,7 @@ local no_errors, error_msg = pcall(function() }, ["indent-blankline.nvim"] = { config = { - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" }, loaded = false, needs_bufread = false, @@ -290,7 +290,7 @@ local no_errors, error_msg = pcall(function() }, kommentary = { config = { - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" @@ -307,14 +307,14 @@ local no_errors, error_msg = pcall(function() }, ["neoscroll.nvim"] = { config = { - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" }, ["nvim-autopairs"] = { config = { - "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" + "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" @@ -323,6 +323,8 @@ local no_errors, error_msg = pcall(function() after = { "cmp-vsnip", "cmp-treesitter", + "cmp-nvim-lua", + "cmp-emoji", "cmp-latex-symbols", "cmp-nvim-ultisnips", "cmp-calc", @@ -330,24 +332,22 @@ local no_errors, error_msg = pcall(function() "cmp-nvim-tags", "cmp-look", "cmp-tabnine", - "cmp-buffer", "cmp-path", - "cmp-emoji", - "cmp-nvim-lua" + "cmp-buffer" }, loaded = true, only_config = true }, ["nvim-colorizer.lua"] = { config = { - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" }, ["nvim-dap"] = { config = { - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" @@ -366,8 +366,19 @@ local no_errors, error_msg = pcall(function() needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" }, + ["nvim-lsp-installer"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-installer" + }, ["nvim-lspconfig"] = { - after = {"nvim-jdtls", "nvim-lspinstall", "lspsaga.nvim"}, + after = { + "nvim-lsp-installer", + "nvim-jdtls", + "nvim-lspinstall", + "lspsaga.nvim" + }, loaded = true, only_config = true }, @@ -383,7 +394,7 @@ local no_errors, error_msg = pcall(function() }, ["nvim-toggleterm.lua"] = { config = { - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" }, loaded = false, needs_bufread = false, @@ -391,7 +402,7 @@ local no_errors, error_msg = pcall(function() }, ["nvim-transparent"] = { config = { - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" }, loaded = false, needs_bufread = false, @@ -399,7 +410,7 @@ local no_errors, error_msg = pcall(function() }, ["nvim-tree.lua"] = { config = { - "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" + "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" }, loaded = false, needs_bufread = false, @@ -407,9 +418,9 @@ local no_errors, error_msg = pcall(function() }, ["nvim-treesitter"] = { after = { - "nvim-ts-rainbow", "spellsitter.nvim", "nvim-treesitter-textobjects", + "nvim-ts-rainbow", "nvim-ts-autotag" }, loaded = true, @@ -449,6 +460,10 @@ local no_errors, error_msg = pcall(function() loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" }, + ripgrep = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/ripgrep" + }, sonokai = { loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" @@ -465,7 +480,7 @@ local no_errors, error_msg = pcall(function() }, ["telescope.nvim"] = { config = { - "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" + "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" }, loaded = false, needs_bufread = true, @@ -473,7 +488,7 @@ local no_errors, error_msg = pcall(function() }, ["todo-comments.nvim"] = { config = { - "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" + "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" }, loaded = false, needs_bufread = false, @@ -489,14 +504,14 @@ local no_errors, error_msg = pcall(function() }, ["vim-rooter"] = { config = { - "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" + "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" }, ["vim-sayonara"] = { config = { - "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" + "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" }, loaded = false, needs_bufread = false, @@ -519,7 +534,7 @@ local no_errors, error_msg = pcall(function() }, ["vista.vim"] = { config = { - "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" + "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" }, loaded = false, needs_bufread = false, @@ -527,7 +542,7 @@ local no_errors, error_msg = pcall(function() }, ["which-key.nvim"] = { config = { - "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" + "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" }, loaded = false, needs_bufread = false, @@ -537,19 +552,19 @@ local no_errors, error_msg = pcall(function() time([[Defining packer_plugins]], false) - -- Config for: nvim-lspconfig - time([[Config for nvim-lspconfig]], true) + -- Config for: nvim-treesitter + time([[Config for nvim-treesitter]], true) try_loadstring( - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", "config", - "nvim-lspconfig" + "nvim-treesitter" ) - time([[Config for nvim-lspconfig]], false) + time([[Config for nvim-treesitter]], false) -- Config for: nvim-cmp time([[Config for nvim-cmp]], true) try_loadstring( - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0", + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-cmp\frequire\0", "config", "nvim-cmp" ) @@ -558,7 +573,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-colorizer.lua time([[Config for nvim-colorizer.lua]], true) try_loadstring( - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua" ) @@ -567,7 +582,7 @@ local no_errors, error_msg = pcall(function() -- Config for: vim-rooter time([[Config for vim-rooter]], true) try_loadstring( - "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", + "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter" ) @@ -576,7 +591,7 @@ local no_errors, error_msg = pcall(function() -- Config for: accelerated-jk time([[Config for accelerated-jk]], true) try_loadstring( - "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", + "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk" ) @@ -585,7 +600,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-dap time([[Config for nvim-dap]], true) try_loadstring( - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap" ) @@ -594,7 +609,7 @@ local no_errors, error_msg = pcall(function() -- Config for: neoscroll.nvim time([[Config for neoscroll.nvim]], true) try_loadstring( - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim" ) @@ -603,25 +618,25 @@ local no_errors, error_msg = pcall(function() -- Config for: kommentary time([[Config for kommentary]], true) try_loadstring( - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary" ) time([[Config for kommentary]], false) - -- Config for: nvim-treesitter - time([[Config for nvim-treesitter]], true) + -- Config for: nvim-lspconfig + time([[Config for nvim-lspconfig]], true) try_loadstring( - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", - "nvim-treesitter" + "nvim-lspconfig" ) - time([[Config for nvim-treesitter]], false) + time([[Config for nvim-lspconfig]], false) -- Config for: nvim-autopairs time([[Config for nvim-autopairs]], true) try_loadstring( - "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", + "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs" ) @@ -629,7 +644,7 @@ local no_errors, error_msg = pcall(function() -- Config for: dial.nvim time([[Config for dial.nvim]], true) - try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") + try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") time([[Config for dial.nvim]], false) -- Load plugins in order defined by `after` @@ -640,6 +655,7 @@ local no_errors, error_msg = pcall(function() vim.cmd [[ packadd nvim-treesitter-textobjects ]] vim.cmd [[ packadd nvim-lspinstall ]] vim.cmd [[ packadd nvim-jdtls ]] + vim.cmd [[ packadd nvim-lsp-installer ]] vim.cmd [[ packadd lspsaga.nvim ]] time([[Sequenced loading]], false) vim.cmd [[augroup packer_load_aucmds]] @@ -652,9 +668,9 @@ local no_errors, error_msg = pcall(function() -- Event lazy-loads time([[Defining lazy-load event autocommands]], true) - vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'vista.vim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-transparent', 'dashboard-nvim', 'nvim-toggleterm.lua', 'telescope.nvim', 'galaxyline.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] - vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-buffer', 'cmp-path', 'cmp-emoji', 'cmp-nvim-lua'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] - vim.cmd [[au BufRead * ++once lua require("packer.load")({'everforest', 'hop', 'gitsigns.nvim', 'gruvbox-material', 'github-nvim-theme', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] + vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-transparent', 'dashboard-nvim', 'telescope.nvim', 'vista.vim', 'nvim-toggleterm.lua'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] + vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-emoji', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-path', 'cmp-buffer'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] + vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'gruvbox-material', 'github-nvim-theme', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] time([[Defining lazy-load event autocommands]], false) vim.cmd("augroup END") if should_profile then From 7df1adfb583a7cfc079c0cb37888fd3faf6af7c5 Mon Sep 17 00:00:00 2001 From: JryChn Date: Thu, 7 Oct 2021 16:34:50 +0800 Subject: [PATCH 33/92] small fix --- lua/languages/config/nvim-jdtls.lua | 3 ++- lua/languages/config/nvim-lspconfig.lua | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lua/languages/config/nvim-jdtls.lua b/lua/languages/config/nvim-jdtls.lua index 439f589..37631fd 100644 --- a/lua/languages/config/nvim-jdtls.lua +++ b/lua/languages/config/nvim-jdtls.lua @@ -195,7 +195,8 @@ function M.setup() cmd = {path, workspace_folder}, root_dir = root_dir, flags = {allow_incremental_sync = true}, - on_attach = on_attach + on_attach = on_attach, + capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) } require('jdtls').start_or_attach(config) diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 637ca06..513c276 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -151,7 +151,6 @@ local lspservers = { "bash:bashls", "css:cssls", "html:html", - "rome:rome", "json:jsonls", "python:pyright", "rust:rust_analyzer", @@ -159,6 +158,9 @@ local lspservers = { "vim:vimls", "vue:vuels", "yaml:yamlls", + "xml:lemminx", + "emmet:emmet_ls", + "typescript:tsserver", } vim.cmd ' packadd nvim-lspinstall' vim.cmd ' packadd nvim-lsp-installer' @@ -215,6 +217,15 @@ lsp_installer.on_server_ready(function(server) if server.name == "sumneko_lua" then opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} end + if server.name == "tsserver" then + opts.root_dir = function(fname) + return require 'lspconfig/util'.root_pattern( + "package.json", + "tsconfig.json", + ".git" + )(fname) or vim.loop.cwd() + end + end server:setup(opts) vim.cmd("bufdo e") end) From 5664d7dce339ba10069a27c17e50421d7b1b9163 Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 12 Oct 2021 13:53:57 +0800 Subject: [PATCH 34/92] complete remove plugin nvim-install and use nvim-lsp-installer with java server --- lua/core/init.lua | 1 - lua/languages/config/nvim-jdtls.lua | 13 +++-- lua/languages/config/nvim-lspconfig.lua | 34 ++++------- plugin/packer_compiled.lua | 76 ++++++++++++------------- 4 files changed, 59 insertions(+), 65 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 40f1836..13abef7 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -163,7 +163,6 @@ packer.startup(function(use) --language service protocol client 'neovim/nvim-lspconfig', requires = { - {'kabouzeid/nvim-lspinstall', after = 'nvim-lspconfig'}, {'williamboman/nvim-lsp-installer', after = 'nvim-lspconfig'}, {'glepnir/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, diff --git a/lua/languages/config/nvim-jdtls.lua b/lua/languages/config/nvim-jdtls.lua index 37631fd..7e01444 100644 --- a/lua/languages/config/nvim-jdtls.lua +++ b/lua/languages/config/nvim-jdtls.lua @@ -177,22 +177,27 @@ function M.setup() }):find() end - local install_path = require "lspinstall/util".install_path("java") - local path = install_path .. "/jdtls.sh" local root_markers = {'gradlew', 'pom.xml', '.git'} local root_dir = require('jdtls.setup').find_root(root_markers) local workspace_folder = os.getenv("HOME") .. "/.local/share/nvim_java_workspace/" .. vim.fn.fnamemodify( root_dir, ":p:h:t" ) - print("detect root directory " .. workspace_folder) + vim.env.WORKSPACE = workspace_folder + local ok, install_cmd = require 'nvim-lsp-installer.servers'.get_server("jdtls") + if ok then + print(ok) + if not install_cmd:is_installed() then + install_cmd:install() + end + end local on_attach = function(client, bufnr) require 'jdtls'.setup_dap() require 'lsp-status'.register_progress() end local config = { - cmd = {path, workspace_folder}, + cmd = install_cmd:get_default_options().cmd, root_dir = root_dir, flags = {allow_incremental_sync = true}, on_attach = on_attach, diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 513c276..a6a8dbe 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -147,7 +147,7 @@ local lspservers = { "lua:sumneko_lua", "cpp:clangd", "cmake:cmake", - "java", + "java:jdtls", "bash:bashls", "css:cssls", "html:html", @@ -162,7 +162,6 @@ local lspservers = { "emmet:emmet_ls", "typescript:tsserver", } -vim.cmd ' packadd nvim-lspinstall' vim.cmd ' packadd nvim-lsp-installer' local function split(s, delimiter) @@ -185,21 +184,13 @@ end -- NOTE: first, install the servers we need for _, server in ipairs(lspservers) do local ac_server = split(server, ':'); - if (ac_server[1] == 'java') then - if not contains(require("lspinstall").installed_servers(), "java") then - require("lspinstall").install_server("java") - end - else - if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then - require("nvim-lsp-installer").install(ac_server[2]) - end + if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then + require("nvim-lsp-installer").install(ac_server[2]) end end -- NOTE: then, we should setup the servers -require 'lspinstall'.setup() - -- use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches local lsp_installer = require("nvim-lsp-installer") @@ -226,23 +217,22 @@ lsp_installer.on_server_ready(function(server) )(fname) or vim.loop.cwd() end end + if server.name == "jdtls" then + goto + continue + end server:setup(opts) - vim.cmd("bufdo e") + vim.cmd("bufdo e")::continue:: end) -for _, lsp in ipairs(require 'lspinstall'.installed_servers()) do - -- NOTE: the Java official server can not deserve requirement - if lsp == "java" then - vim.api.nvim_exec( - [[ +vim.api.nvim_exec( + [[ augroup jdtls_lsp au! au FileType java lua require('languages.config.nvim-jdtls').setup() augroup end ]], - false - ) - end -end + false +) -- NOTE: finally, setup lsp saga and config vim.cmd ' packadd lspsaga.nvim' diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index d92f4fd..6f79ecb 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -46,8 +46,8 @@ local no_errors, error_msg = pcall(function() end time([[Luarocks path setup]], true) - local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" - local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" + local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" + local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" if not string.find(package.path, package_path_str, 1, true) then package.path = package.path .. ';' .. package_path_str end @@ -81,14 +81,14 @@ local no_errors, error_msg = pcall(function() }, ["accelerated-jk"] = { config = { - "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" + "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" }, ["barbar.nvim"] = { config = { - "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" + "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" }, loaded = false, needs_bufread = false, @@ -217,20 +217,20 @@ local no_errors, error_msg = pcall(function() }, ["dashboard-nvim"] = { config = { - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" }, loaded = false, needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" }, ["dial.nvim"] = { - config = {"\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0"}, + config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" }, everforest = { config = { - "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, @@ -242,7 +242,7 @@ local no_errors, error_msg = pcall(function() }, ["galaxyline.nvim"] = { config = { - "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" + "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, loaded = false, needs_bufread = false, @@ -250,7 +250,7 @@ local no_errors, error_msg = pcall(function() }, ["github-nvim-theme"] = { config = { - "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, loaded = false, needs_bufread = false, @@ -258,7 +258,7 @@ local no_errors, error_msg = pcall(function() }, ["gitsigns.nvim"] = { config = { - "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" + "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, loaded = false, needs_bufread = false, @@ -266,7 +266,7 @@ local no_errors, error_msg = pcall(function() }, ["gruvbox-material"] = { config = { - "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" + "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, loaded = false, needs_bufread = false, @@ -274,7 +274,7 @@ local no_errors, error_msg = pcall(function() }, hop = { config = { - "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" + "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" }, loaded = false, needs_bufread = false, @@ -282,7 +282,7 @@ local no_errors, error_msg = pcall(function() }, ["indent-blankline.nvim"] = { config = { - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" }, loaded = false, needs_bufread = false, @@ -290,7 +290,7 @@ local no_errors, error_msg = pcall(function() }, kommentary = { config = { - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" @@ -307,14 +307,14 @@ local no_errors, error_msg = pcall(function() }, ["neoscroll.nvim"] = { config = { - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" }, ["nvim-autopairs"] = { config = { - "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" + "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" @@ -340,14 +340,14 @@ local no_errors, error_msg = pcall(function() }, ["nvim-colorizer.lua"] = { config = { - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" }, ["nvim-dap"] = { config = { - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" @@ -394,7 +394,7 @@ local no_errors, error_msg = pcall(function() }, ["nvim-toggleterm.lua"] = { config = { - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" }, loaded = false, needs_bufread = false, @@ -402,7 +402,7 @@ local no_errors, error_msg = pcall(function() }, ["nvim-transparent"] = { config = { - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" }, loaded = false, needs_bufread = false, @@ -410,7 +410,7 @@ local no_errors, error_msg = pcall(function() }, ["nvim-tree.lua"] = { config = { - "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" + "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" }, loaded = false, needs_bufread = false, @@ -480,7 +480,7 @@ local no_errors, error_msg = pcall(function() }, ["telescope.nvim"] = { config = { - "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" + "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" }, loaded = false, needs_bufread = true, @@ -488,7 +488,7 @@ local no_errors, error_msg = pcall(function() }, ["todo-comments.nvim"] = { config = { - "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" + "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" }, loaded = false, needs_bufread = false, @@ -504,14 +504,14 @@ local no_errors, error_msg = pcall(function() }, ["vim-rooter"] = { config = { - "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" + "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, loaded = true, path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" }, ["vim-sayonara"] = { config = { - "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" + "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" }, loaded = false, needs_bufread = false, @@ -534,7 +534,7 @@ local no_errors, error_msg = pcall(function() }, ["vista.vim"] = { config = { - "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" + "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" }, loaded = false, needs_bufread = false, @@ -542,7 +542,7 @@ local no_errors, error_msg = pcall(function() }, ["which-key.nvim"] = { config = { - "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" + "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" }, loaded = false, needs_bufread = false, @@ -555,7 +555,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-treesitter time([[Config for nvim-treesitter]], true) try_loadstring( - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter" ) @@ -564,7 +564,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-cmp time([[Config for nvim-cmp]], true) try_loadstring( - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-cmp\frequire\0", + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0", "config", "nvim-cmp" ) @@ -573,7 +573,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-colorizer.lua time([[Config for nvim-colorizer.lua]], true) try_loadstring( - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua" ) @@ -582,7 +582,7 @@ local no_errors, error_msg = pcall(function() -- Config for: vim-rooter time([[Config for vim-rooter]], true) try_loadstring( - "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", + "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter" ) @@ -591,7 +591,7 @@ local no_errors, error_msg = pcall(function() -- Config for: accelerated-jk time([[Config for accelerated-jk]], true) try_loadstring( - "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", + "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk" ) @@ -600,7 +600,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-dap time([[Config for nvim-dap]], true) try_loadstring( - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap" ) @@ -609,7 +609,7 @@ local no_errors, error_msg = pcall(function() -- Config for: neoscroll.nvim time([[Config for neoscroll.nvim]], true) try_loadstring( - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim" ) @@ -618,7 +618,7 @@ local no_errors, error_msg = pcall(function() -- Config for: kommentary time([[Config for kommentary]], true) try_loadstring( - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary" ) @@ -627,7 +627,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-lspconfig time([[Config for nvim-lspconfig]], true) try_loadstring( - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig" ) @@ -636,7 +636,7 @@ local no_errors, error_msg = pcall(function() -- Config for: nvim-autopairs time([[Config for nvim-autopairs]], true) try_loadstring( - "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", + "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs" ) @@ -644,7 +644,7 @@ local no_errors, error_msg = pcall(function() -- Config for: dial.nvim time([[Config for dial.nvim]], true) - try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") + try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") time([[Config for dial.nvim]], false) -- Load plugins in order defined by `after` From 5cc04d4a00044c632568d3fce07ec4acc395d77e Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 12 Oct 2021 15:23:02 +0800 Subject: [PATCH 35/92] nvim-cmp upstream update --- lua/languages/config/nvim-cmp.lua | 58 +++++++++---------------------- 1 file changed, 16 insertions(+), 42 deletions(-) diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index f567846..fbe69bb 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -1,3 +1,4 @@ +local cmp = require('cmp') local has_words_before = function() if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then return false @@ -17,51 +18,24 @@ local feedkey = function(key, mode) ) end local tab_complete = function(fallback) - if vim.fn.pumvisible() == 1 then - vim.api.nvim_feedkeys( - vim.api.nvim_replace_termcodes("", true, true, true), - "n", - true - ) - elseif has_words_before() and vim.fn["vsnip#available"]() == 1 then - vim.api.nvim_feedkeys( - vim.api.nvim_replace_termcodes( - "(vsnip-expand-or-jump)", - true, - true, - true - ), - "", - true - ) + if cmp.visible() then + cmp.select_next_item() + elseif vim.fn["vsnip#available"]() == 1 then + feedkey("(vsnip-expand-or-jump)", "") + elseif has_words_before() then + cmp.complete() else fallback() end end local s_tab_complete = function(fallback) - if vim.fn.pumvisible() == 1 then - vim.api.nvim_feedkeys( - vim.api.nvim_replace_termcodes("", true, true, true), - "n", - true - ) - elseif has_words_before() and vim.fn["vsnip#available"]() == 1 then - vim.api.nvim_feedkeys( - vim.api.nvim_replace_termcodes( - "(vsnip-jump-prev)", - true, - true, - true - ), - "", - true - ) - else - fallback() + if cmp.visible() then + cmp.select_prev_item() + elseif vim.fn["vsnip#jumpable"](-1) == 1 then + feedkey("(vsnip-jump-prev)", "") end end -local cmp = require('cmp') cmp.setup { snippet = { expand = function(args) @@ -69,14 +43,14 @@ cmp.setup { end }, mapping = { - [""] = tab_complete, - [""] = tab_complete, - [""] = s_tab_complete, + [""] = cmp.mapping(tab_complete, {"i", "s"}), + [""] = cmp.mapping(tab_complete, {"i", "s"}), + [""] = cmp.mapping(s_tab_complete, {"i", "s"}), [""] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Replace, + behavior = cmp.ConfirmBehavior.Insert, select = false }, - [""] = s_tab_complete + [""] = cmp.mapping(s_tab_complete, {"i", "s"}) }, formatting = { format = function(entry, vim_item) From 2642b7200ef483e95c1ed9af6dae465558f7a2bd Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 12 Oct 2021 17:18:12 +0800 Subject: [PATCH 36/92] fix telescope not used require --- lua/core/init.lua | 1 - plugin/packer_compiled.lua | 1156 +++++++++++++++--------------------- 2 files changed, 493 insertions(+), 664 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 13abef7..555c59c 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -80,7 +80,6 @@ packer.startup(function(use) requires = { {'nvim-lua/popup.nvim'}, {'nvim-lua/plenary.nvim'}, - {'BurntSushi/ripgrep'} }, config = function() require 'core.config.telescope' diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 6f79ecb..4579fad 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,683 +1,513 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) - end - end - local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) - return a[2] > b[2] - end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) end + end + +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end - _G._packer = _G._packer or {} - _G._packer.profile_output = results - end - - time([[Luarocks path setup]], true) - local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" - local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" - if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str - end - - if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern - end - - time([[Luarocks path setup]], false) - time([[try_loadstring definition]], true) - local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify( - 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, - vim.log.levels.ERROR, - {} - ) - end) - end - return result - end - - time([[try_loadstring definition]], false) - time([[Defining packer_plugins]], true) - _G.packer_plugins = { - ["DAPInstall.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" - }, - ["accelerated-jk"] = { - config = { - "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" - }, - ["barbar.nvim"] = { - config = { - "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" - }, - ["cmp-buffer"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer/after/plugin/cmp_buffer.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer" - }, - ["cmp-calc"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc/after/plugin/cmp_calc.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc" - }, - ["cmp-emoji"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji/after/plugin/cmp_emoji.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji" - }, - ["cmp-latex-symbols"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols/after/plugin/cmp_latex.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols" - }, - ["cmp-look"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look/after/plugin/cmp_look.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look" - }, - ["cmp-nvim-lsp"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp" - }, - ["cmp-nvim-lua"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua" - }, - ["cmp-nvim-tags"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags/after/plugin/cmp_nvim_tags.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags" - }, - ["cmp-nvim-ultisnips"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips/after/plugin/cmp_nvim_ultisnips.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips" - }, - ["cmp-path"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path/after/plugin/cmp_path.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path" - }, - ["cmp-spell"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell/after/plugin/cmp-spell.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell" - }, - ["cmp-tabnine"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine/after/plugin/cmp-tabnine.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine" - }, - ["cmp-treesitter"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter/after/plugin/cmp_treesitter.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter" - }, - ["cmp-vsnip"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip/after/plugin/cmp_vsnip.vim" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip" - }, - ["dashboard-nvim"] = { - config = { - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" - }, - ["dial.nvim"] = { - config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" - }, - everforest = { - config = { - "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" - }, - ["friendly-snippets"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" - }, - ["galaxyline.nvim"] = { - config = { - "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" - }, - ["github-nvim-theme"] = { - config = { - "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" - }, - ["gitsigns.nvim"] = { - config = { - "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" - }, - ["gruvbox-material"] = { - config = { - "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" - }, - hop = { - config = { - "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" - }, - ["indent-blankline.nvim"] = { - config = { - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" - }, - kommentary = { - config = { - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" - }, - ["lspkind-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/lspkind-nvim" - }, - ["lspsaga.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" - }, - ["neoscroll.nvim"] = { - config = { - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" - }, - ["nvim-autopairs"] = { - config = { - "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" - }, - ["nvim-cmp"] = { - after = { - "cmp-vsnip", - "cmp-treesitter", - "cmp-nvim-lua", - "cmp-emoji", - "cmp-latex-symbols", - "cmp-nvim-ultisnips", - "cmp-calc", - "cmp-spell", - "cmp-nvim-tags", - "cmp-look", - "cmp-tabnine", - "cmp-path", - "cmp-buffer" - }, - loaded = true, - only_config = true - }, - ["nvim-colorizer.lua"] = { - config = { - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" - }, - ["nvim-dap"] = { - config = { - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" - }, - ["nvim-dap-ui"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" - }, - ["nvim-dap-virtual-text"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" - }, - ["nvim-jdtls"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" - }, - ["nvim-lsp-installer"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-installer" - }, - ["nvim-lspconfig"] = { - after = { - "nvim-lsp-installer", - "nvim-jdtls", - "nvim-lspinstall", - "lspsaga.nvim" - }, - loaded = true, - only_config = true - }, - ["nvim-lspinstall"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" - }, - ["nvim-markdown-preview"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" - }, - ["nvim-toggleterm.lua"] = { - config = { - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" - }, - ["nvim-transparent"] = { - config = { - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" - }, - ["nvim-tree.lua"] = { - config = { - "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" - }, - ["nvim-treesitter"] = { - after = { - "spellsitter.nvim", - "nvim-treesitter-textobjects", - "nvim-ts-rainbow", - "nvim-ts-autotag" - }, - loaded = true, - only_config = true - }, - ["nvim-treesitter-textobjects"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" - }, - ["nvim-ts-autotag"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" - }, - ["nvim-ts-rainbow"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" - }, - ["nvim-web-devicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" - }, - ["packer.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" - }, - ["plenary.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" - }, - ["popup.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" - }, - ripgrep = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/ripgrep" - }, - sonokai = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" - }, - ["space-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" - }, - ["spellsitter.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" - }, - ["telescope.nvim"] = { - config = { - "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" - }, - loaded = false, - needs_bufread = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" - }, - ["todo-comments.nvim"] = { - config = { - "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" - }, - ["vim-bookmarks"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" - }, - ["vim-cursorword"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" - }, - ["vim-rooter"] = { - config = { - "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" - }, - ["vim-sayonara"] = { - config = { - "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" - }, - ["vim-vsnip"] = { - after = {"vim-vsnip-integ"}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip" - }, - ["vim-vsnip-integ"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" - }, - load_after = {["vim-vsnip"] = true}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" - }, - ["vista.vim"] = { - config = { - "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" - }, - ["which-key.nvim"] = { - config = { - "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" - } - } - - time([[Defining packer_plugins]], false) - - -- Config for: nvim-treesitter - time([[Config for nvim-treesitter]], true) - try_loadstring( - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", - "config", - "nvim-treesitter" - ) - time([[Config for nvim-treesitter]], false) - - -- Config for: nvim-cmp - time([[Config for nvim-cmp]], true) - try_loadstring( - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0", - "config", - "nvim-cmp" - ) - time([[Config for nvim-cmp]], false) - - -- Config for: nvim-colorizer.lua - time([[Config for nvim-colorizer.lua]], true) - try_loadstring( - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", - "config", - "nvim-colorizer.lua" - ) - time([[Config for nvim-colorizer.lua]], false) - - -- Config for: vim-rooter - time([[Config for vim-rooter]], true) - try_loadstring( - "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", - "config", - "vim-rooter" - ) - time([[Config for vim-rooter]], false) - - -- Config for: accelerated-jk - time([[Config for accelerated-jk]], true) - try_loadstring( - "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", - "config", - "accelerated-jk" - ) - time([[Config for accelerated-jk]], false) - - -- Config for: nvim-dap - time([[Config for nvim-dap]], true) - try_loadstring( - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", - "config", - "nvim-dap" - ) - time([[Config for nvim-dap]], false) - - -- Config for: neoscroll.nvim - time([[Config for neoscroll.nvim]], true) - try_loadstring( - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", - "config", - "neoscroll.nvim" - ) - time([[Config for neoscroll.nvim]], false) - - -- Config for: kommentary - time([[Config for kommentary]], true) - try_loadstring( - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", - "config", - "kommentary" - ) - time([[Config for kommentary]], false) + _G._packer = _G._packer or {} + _G._packer.profile_output = results +end - -- Config for: nvim-lspconfig - time([[Config for nvim-lspconfig]], true) - try_loadstring( - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", - "config", - "nvim-lspconfig" - ) - time([[Config for nvim-lspconfig]], false) +time([[Luarocks path setup]], true) +local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end - -- Config for: nvim-autopairs - time([[Config for nvim-autopairs]], true) - try_loadstring( - "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", - "config", - "nvim-autopairs" - ) - time([[Config for nvim-autopairs]], false) +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end - -- Config for: dial.nvim - time([[Config for dial.nvim]], true) - try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") - time([[Config for dial.nvim]], false) +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s)) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end - -- Load plugins in order defined by `after` - time([[Sequenced loading]], true) - vim.cmd [[ packadd spellsitter.nvim ]] - vim.cmd [[ packadd nvim-ts-rainbow ]] - vim.cmd [[ packadd nvim-ts-autotag ]] - vim.cmd [[ packadd nvim-treesitter-textobjects ]] - vim.cmd [[ packadd nvim-lspinstall ]] - vim.cmd [[ packadd nvim-jdtls ]] - vim.cmd [[ packadd nvim-lsp-installer ]] - vim.cmd [[ packadd lspsaga.nvim ]] - time([[Sequenced loading]], false) - vim.cmd [[augroup packer_load_aucmds]] - vim.cmd [[au!]] +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + ["DAPInstall.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" + }, + ["accelerated-jk"] = { + config = { "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" + }, + ["cmp-buffer"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer/after/plugin/cmp_buffer.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer" + }, + ["cmp-calc"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc/after/plugin/cmp_calc.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc" + }, + ["cmp-emoji"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji/after/plugin/cmp_emoji.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji" + }, + ["cmp-latex-symbols"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols/after/plugin/cmp_latex.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols" + }, + ["cmp-look"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look/after/plugin/cmp_look.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp" + }, + ["cmp-nvim-lua"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua" + }, + ["cmp-nvim-tags"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags/after/plugin/cmp_nvim_tags.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags" + }, + ["cmp-nvim-ultisnips"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips/after/plugin/cmp_nvim_ultisnips.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips" + }, + ["cmp-path"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path/after/plugin/cmp_path.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path" + }, + ["cmp-spell"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell/after/plugin/cmp-spell.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell" + }, + ["cmp-tabnine"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine/after/plugin/cmp-tabnine.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine" + }, + ["cmp-treesitter"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter/after/plugin/cmp_treesitter.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter" + }, + ["cmp-vsnip"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip/after/plugin/cmp_vsnip.vim" }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip" + }, + ["dashboard-nvim"] = { + config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" + }, + ["dial.nvim"] = { + config = { "\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" + }, + everforest = { + config = { "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + config = { "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" + }, + hop = { + config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" + }, + ["indent-blankline.nvim"] = { + config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" + }, + kommentary = { + config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" + }, + ["lspkind-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/lspkind-nvim" + }, + ["lspsaga.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" + }, + ["neoscroll.nvim"] = { + config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" + }, + ["nvim-autopairs"] = { + config = { "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" + }, + ["nvim-cmp"] = { + after = { "cmp-vsnip", "cmp-treesitter", "cmp-nvim-lua", "cmp-nvim-ultisnips", "cmp-calc", "cmp-spell", "cmp-nvim-tags", "cmp-look", "cmp-emoji", "cmp-tabnine", "cmp-buffer", "cmp-path", "cmp-latex-symbols" }, + loaded = true, + only_config = true + }, + ["nvim-colorizer.lua"] = { + config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" + }, + ["nvim-dap"] = { + config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" + }, + ["nvim-dap-virtual-text"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" + }, + ["nvim-jdtls"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" + }, + ["nvim-lsp-installer"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-installer" + }, + ["nvim-lspconfig"] = { + after = { "nvim-lsp-installer", "nvim-jdtls", "lspsaga.nvim" }, + loaded = true, + only_config = true + }, + ["nvim-markdown-preview"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" + }, + ["nvim-toggleterm.lua"] = { + config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" + }, + ["nvim-transparent"] = { + config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" + }, + ["nvim-tree.lua"] = { + config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + after = { "nvim-ts-rainbow", "spellsitter.nvim", "nvim-treesitter-textobjects", "nvim-ts-autotag" }, + loaded = true, + only_config = true + }, + ["nvim-treesitter-textobjects"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" + }, + ["nvim-ts-autotag"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" + }, + ["nvim-ts-rainbow"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" + }, + ["popup.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" + }, + sonokai = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" + }, + ["space-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" + }, + ["spellsitter.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" + }, + ["telescope.nvim"] = { + config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" }, + loaded = false, + needs_bufread = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" + }, + ["todo-comments.nvim"] = { + config = { "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" + }, + ["vim-bookmarks"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" + }, + ["vim-cursorword"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" + }, + ["vim-rooter"] = { + config = { "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" + }, + ["vim-sayonara"] = { + config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" + }, + ["vim-vsnip"] = { + after = { "vim-vsnip-integ" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip" + }, + ["vim-vsnip-integ"] = { + after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" }, + load_after = { + ["vim-vsnip"] = true + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" + }, + ["vista.vim"] = { + config = { "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" + }, + ["which-key.nvim"] = { + config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" + } +} - -- Filetype lazy-loads - time([[Defining lazy-load filetype autocommands]], true) - vim.cmd [[au FileType tex ++once lua require("packer.load")({'cmp-latex-symbols'}, { ft = "tex" }, _G.packer_plugins)]] - time([[Defining lazy-load filetype autocommands]], false) +time([[Defining packer_plugins]], false) +-- Config for: nvim-lspconfig +time([[Config for nvim-lspconfig]], true) +try_loadstring("\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") +time([[Config for nvim-lspconfig]], false) +-- Config for: dial.nvim +time([[Config for dial.nvim]], true) +try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") +time([[Config for dial.nvim]], false) +-- Config for: nvim-colorizer.lua +time([[Config for nvim-colorizer.lua]], true) +try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") +time([[Config for nvim-colorizer.lua]], false) +-- Config for: neoscroll.nvim +time([[Config for neoscroll.nvim]], true) +try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") +time([[Config for neoscroll.nvim]], false) +-- Config for: accelerated-jk +time([[Config for accelerated-jk]], true) +try_loadstring("\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") +time([[Config for accelerated-jk]], false) +-- Config for: nvim-dap +time([[Config for nvim-dap]], true) +try_loadstring("\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap") +time([[Config for nvim-dap]], false) +-- Config for: vim-rooter +time([[Config for vim-rooter]], true) +try_loadstring("\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") +time([[Config for vim-rooter]], false) +-- Config for: kommentary +time([[Config for kommentary]], true) +try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") +time([[Config for kommentary]], false) +-- Config for: nvim-treesitter +time([[Config for nvim-treesitter]], true) +try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") +time([[Config for nvim-treesitter]], false) +-- Config for: nvim-autopairs +time([[Config for nvim-autopairs]], true) +try_loadstring("\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") +time([[Config for nvim-autopairs]], false) +-- Config for: nvim-cmp +time([[Config for nvim-cmp]], true) +try_loadstring("\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0", "config", "nvim-cmp") +time([[Config for nvim-cmp]], false) +-- Load plugins in order defined by `after` +time([[Sequenced loading]], true) +vim.cmd [[ packadd spellsitter.nvim ]] +vim.cmd [[ packadd nvim-ts-rainbow ]] +vim.cmd [[ packadd nvim-ts-autotag ]] +vim.cmd [[ packadd nvim-treesitter-textobjects ]] +vim.cmd [[ packadd nvim-jdtls ]] +vim.cmd [[ packadd nvim-lsp-installer ]] +vim.cmd [[ packadd lspsaga.nvim ]] +time([[Sequenced loading]], false) +vim.cmd [[augroup packer_load_aucmds]] +vim.cmd [[au!]] + -- Filetype lazy-loads +time([[Defining lazy-load filetype autocommands]], true) +vim.cmd [[au FileType tex ++once lua require("packer.load")({'cmp-latex-symbols'}, { ft = "tex" }, _G.packer_plugins)]] +time([[Defining lazy-load filetype autocommands]], false) + -- Event lazy-loads +time([[Defining lazy-load event autocommands]], true) +vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'vista.vim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-transparent', 'dashboard-nvim', 'telescope.nvim', 'nvim-toggleterm.lua', 'galaxyline.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] +vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-emoji', 'cmp-tabnine', 'vim-vsnip', 'cmp-buffer', 'cmp-path'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] +vim.cmd [[au BufRead * ++once lua require("packer.load")({'everforest', 'github-nvim-theme', 'hop', 'gitsigns.nvim', 'gruvbox-material', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] +time([[Defining lazy-load event autocommands]], false) +vim.cmd("augroup END") +if should_profile then save_profiles() end - -- Event lazy-loads - time([[Defining lazy-load event autocommands]], true) - vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-transparent', 'dashboard-nvim', 'telescope.nvim', 'vista.vim', 'nvim-toggleterm.lua'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] - vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-emoji', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-path', 'cmp-buffer'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] - vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'gruvbox-material', 'github-nvim-theme', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] - time([[Defining lazy-load event autocommands]], false) - vim.cmd("augroup END") - if should_profile then - save_profiles() - end end) if not no_errors then - vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: ' .. error_msg .. '" | echom "Please check your config for correctness" | echohl None') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') end From db31c6c5a4245ef6332ebd895783071c4f7e0891 Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 12 Oct 2021 23:41:37 +0800 Subject: [PATCH 37/92] use nvim-lsp-ts-util to improve tsserver --- lua/core/init.lua | 2 + lua/languages/config/nvim-lspconfig.lua | 17 +- .../config/server/java/nvim-jdtls.lua | 210 ++++++++++++++++++ .../config/server/typescript/tsserver.lua | 89 ++++++++ 4 files changed, 316 insertions(+), 2 deletions(-) create mode 100644 lua/languages/config/server/java/nvim-jdtls.lua create mode 100644 lua/languages/config/server/typescript/tsserver.lua diff --git a/lua/core/init.lua b/lua/core/init.lua index 555c59c..ee9582a 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -165,6 +165,8 @@ packer.startup(function(use) {'williamboman/nvim-lsp-installer', after = 'nvim-lspconfig'}, {'glepnir/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, + {'jose-elias-alvarez/nvim-lsp-ts-utils', after = 'nvim-lspconfig'}, + {'jose-elias-alvarez/null-ls.nvim', after = 'nvim-lspconfig'}, }, config = function() require 'languages.config.nvim-lspconfig' diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index a6a8dbe..0189367 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -160,7 +160,8 @@ local lspservers = { "yaml:yamlls", "xml:lemminx", "emmet:emmet_ls", - "typescript:tsserver", + + -- "typescript:tsserver", } vim.cmd ' packadd nvim-lsp-installer' @@ -209,6 +210,16 @@ lsp_installer.on_server_ready(function(server) opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} end if server.name == "tsserver" then + vim.cmd ' packadd null-ls.nvim' + require("null-ls").config {} + require("lspconfig")["null-ls"].setup {} + if vim.fn.executable('npm') ~= 1 then + print("npm was not found" .. "\n") + else + if vim.fn.executable('eslint_d') ~= 1 then + os.execute('sudo npm install -g eslint_d') + end + end opts.root_dir = function(fname) return require 'lspconfig/util'.root_pattern( "package.json", @@ -216,7 +227,9 @@ lsp_installer.on_server_ready(function(server) ".git" )(fname) or vim.loop.cwd() end + opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) end + if server.name == "jdtls" then goto continue @@ -228,7 +241,7 @@ vim.api.nvim_exec( [[ augroup jdtls_lsp au! - au FileType java lua require('languages.config.nvim-jdtls').setup() + au FileType java lua require('languages.config.server.java.nvim-jdtls').setup() augroup end ]], false diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua new file mode 100644 index 0000000..7e01444 --- /dev/null +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -0,0 +1,210 @@ +local M = {} + +function M.setup() + vim.api.nvim_set_keymap( + 'n', + 'gd', + 'lua vim.lsp.buf.definition()', + {silent = true} + ) + vim.api.nvim_set_keymap( + "i", + "", + ":w! | lua require'jdtls'.organize_imports()", + {noremap = true} + ) + vim.api.nvim_set_keymap( + "n", + "", + ":w! | lua require'jdtls'.organize_imports()", + {noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'gD', + 'lua vim.lsp.buf.declaration()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'K', + 'lua vim.lsp.buf.hover()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'gI', + 'lua vim.lsp.buf.implementation()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + '', + 'lua vim.lsp.buf.signature_help()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'wa', + 'lua vim.lsp.buf.add_workspace_folder()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'wr', + 'lua vim.lsp.buf.remove_workspace_folder()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'wl', + 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'lr', + 'lua vim.lsp.buf.rename()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'lR', + 'lua require"jdtls".code_action(false, "refactor")', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'la', + 'lua require"jdtls".code_action()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'v', + 'la', + 'lua require"jdtls".code_action(true)', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'gr', + 'lua vim.lsp.buf.references()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'll', + 'lua vim.lsp.diagnostic.show_line_diagnostics()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + '[g', + 'lua vim.lsp.diagnostic.goto_prev()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + ']g', + 'lua vim.lsp.diagnostic.goto_next()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'bf', + 'lua vim.lsp.buf.formatting()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'lcv', + 'lua require(\'jdtls\').extract_variable()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'v', + 'lcv', + 'lua require(\'jdtls\').extract_variable(true)', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'lcc', + 'lua require(\'jdtls\').extract_constant()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'v', + 'lcc', + 'lua require(\'jdtls\').extract_constant(true)', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'v', + 'lcm', + 'lua lua require(\'jdtls\').extract_method(true)', + {silent = true, noremap = true} + ) + vim.cmd ' packadd which-key.nvim' + require "which-key".register({["lR"] = {name = "refactor"}}) + require "which-key".register({["lc"] = {name = "extract"}}) + require "which-key".register({["lcv"] = {name = "extract_variable"}}) + require "which-key".register({["lcc"] = {name = "extract_constant"}}) + require "which-key".register({["lcm"] = {name = "extract_method"}}) + require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) + local opts = {}; + require 'telescope.pickers'.new(opts, { + prompt_title = prompt, + finder = require 'telescope.finders'.new_table { + results = items, + entry_maker = function(entry) + return { + value = entry, + display = label_fn(entry), + ordinal = label_fn(entry), + } + end, + }, + sorter = require 'telescope.sorters'.get_generic_fuzzy_sorter(), + attach_mappings = function(prompt_bufnr) + require 'telescope.actions'.select_default:replace(function() + local selection = require 'telescope.actions'.get_selected_entry(prompt_bufnr) + require 'telescope.actions'.close(prompt_bufnr) + cb(selection.value) + end) + return true + end, + }):find() + end + + local root_markers = {'gradlew', 'pom.xml', '.git'} + local root_dir = require('jdtls.setup').find_root(root_markers) + local workspace_folder = os.getenv("HOME") .. "/.local/share/nvim_java_workspace/" .. vim.fn.fnamemodify( + root_dir, + ":p:h:t" + ) + vim.env.WORKSPACE = workspace_folder + local ok, install_cmd = require 'nvim-lsp-installer.servers'.get_server("jdtls") + if ok then + print(ok) + if not install_cmd:is_installed() then + install_cmd:install() + end + end + local on_attach = function(client, bufnr) + require 'jdtls'.setup_dap() + require 'lsp-status'.register_progress() + end + + local config = { + cmd = install_cmd:get_default_options().cmd, + root_dir = root_dir, + flags = {allow_incremental_sync = true}, + on_attach = on_attach, + capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) + } + + require('jdtls').start_or_attach(config) +end + +return M diff --git a/lua/languages/config/server/typescript/tsserver.lua b/lua/languages/config/server/typescript/tsserver.lua new file mode 100644 index 0000000..e752634 --- /dev/null +++ b/lua/languages/config/server/typescript/tsserver.lua @@ -0,0 +1,89 @@ +local M = {} + +M.setup = function(on_attach) + return function(client, bufnr) + client.resolved_capabilities.document_formatting = false + client.resolved_capabilities.document_range_formatting = false + + vim.cmd ' packadd nvim-lsp-ts-utils ' + local ts_utils = require("nvim-lsp-ts-utils") + + -- defaults + ts_utils.setup { + debug = false, + disable_commands = false, + enable_import_on_completion = true, + + -- import all + import_all_timeout = 5000, + + -- ms + import_all_priorities = { + buffers = 4, + + -- loaded buffer names + buffer_content = 3, + + -- loaded buffer content + local_files = 2, + + -- git files or files with relative path markers + same_file = 1, + + -- add to existing import statement + }, + import_all_scan_buffers = 100, + import_all_select_source = false, + + -- eslint + eslint_enable_code_actions = true, + eslint_enable_disable_comments = true, + eslint_bin = "eslint_d", + eslint_enable_diagnostics = true, + eslint_opts = {}, + + -- formatting + enable_formatting = true, + formatter = "eslint_d", + formatter_opts = {}, + + -- update imports on file move + update_imports_on_move = true, + require_confirmation_on_move = false, + watch_dir = nil, + + -- filter diagnostics + filter_out_diagnostics_by_severity = {}, + filter_out_diagnostics_by_code = {}, + } + + -- required to fix code action ranges and filter diagnostics + ts_utils.setup_client(client) + + -- no default maps, so you may want to define some here + local opts = {silent = true} + vim.api.nvim_buf_set_keymap( + bufnr, + "n", + "gs", + ":TSLspOrganize", + opts + ) + vim.api.nvim_buf_set_keymap( + bufnr, + "n", + "gr", + ":TSLspRenameFile", + opts + ) + vim.api.nvim_buf_set_keymap( + bufnr, + "n", + "gi", + ":TSLspImportAll", + opts + ) + on_attach(client, bufnr) + end +end +return M From 80256599d4c0db9203485435e1e50786898d9ae5 Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 12 Oct 2021 23:42:17 +0800 Subject: [PATCH 38/92] improve cmp --- lua/languages/config/nvim-cmp.lua | 14 +- lua/languages/config/nvim-jdtls.lua | 210 ----- plugin/packer_compiled.lua | 1160 +++++++++++++++------------ 3 files changed, 675 insertions(+), 709 deletions(-) delete mode 100644 lua/languages/config/nvim-jdtls.lua diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index fbe69bb..9b95239 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -18,10 +18,10 @@ local feedkey = function(key, mode) ) end local tab_complete = function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif vim.fn["vsnip#available"]() == 1 then + if vim.fn["vsnip#available"]() == 1 then feedkey("(vsnip-expand-or-jump)", "") + elseif cmp.visible() then + cmp.select_next_item() elseif has_words_before() then cmp.complete() else @@ -29,10 +29,12 @@ local tab_complete = function(fallback) end end local s_tab_complete = function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif vim.fn["vsnip#jumpable"](-1) == 1 then + if vim.fn["vsnip#jumpable"](-1) == 1 then feedkey("(vsnip-jump-prev)", "") + elseif cmp.visible() then + cmp.select_prev_item() + else + fallback() end end diff --git a/lua/languages/config/nvim-jdtls.lua b/lua/languages/config/nvim-jdtls.lua deleted file mode 100644 index 7e01444..0000000 --- a/lua/languages/config/nvim-jdtls.lua +++ /dev/null @@ -1,210 +0,0 @@ -local M = {} - -function M.setup() - vim.api.nvim_set_keymap( - 'n', - 'gd', - 'lua vim.lsp.buf.definition()', - {silent = true} - ) - vim.api.nvim_set_keymap( - "i", - "", - ":w! | lua require'jdtls'.organize_imports()", - {noremap = true} - ) - vim.api.nvim_set_keymap( - "n", - "", - ":w! | lua require'jdtls'.organize_imports()", - {noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'gD', - 'lua vim.lsp.buf.declaration()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'K', - 'lua vim.lsp.buf.hover()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'gI', - 'lua vim.lsp.buf.implementation()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - '', - 'lua vim.lsp.buf.signature_help()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'wa', - 'lua vim.lsp.buf.add_workspace_folder()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'wr', - 'lua vim.lsp.buf.remove_workspace_folder()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'wl', - 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'lr', - 'lua vim.lsp.buf.rename()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'lR', - 'lua require"jdtls".code_action(false, "refactor")', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'la', - 'lua require"jdtls".code_action()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'v', - 'la', - 'lua require"jdtls".code_action(true)', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'gr', - 'lua vim.lsp.buf.references()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'll', - 'lua vim.lsp.diagnostic.show_line_diagnostics()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - '[g', - 'lua vim.lsp.diagnostic.goto_prev()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - ']g', - 'lua vim.lsp.diagnostic.goto_next()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'bf', - 'lua vim.lsp.buf.formatting()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'lcv', - 'lua require(\'jdtls\').extract_variable()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'v', - 'lcv', - 'lua require(\'jdtls\').extract_variable(true)', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'lcc', - 'lua require(\'jdtls\').extract_constant()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'v', - 'lcc', - 'lua require(\'jdtls\').extract_constant(true)', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'v', - 'lcm', - 'lua lua require(\'jdtls\').extract_method(true)', - {silent = true, noremap = true} - ) - vim.cmd ' packadd which-key.nvim' - require "which-key".register({["lR"] = {name = "refactor"}}) - require "which-key".register({["lc"] = {name = "extract"}}) - require "which-key".register({["lcv"] = {name = "extract_variable"}}) - require "which-key".register({["lcc"] = {name = "extract_constant"}}) - require "which-key".register({["lcm"] = {name = "extract_method"}}) - require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) - local opts = {}; - require 'telescope.pickers'.new(opts, { - prompt_title = prompt, - finder = require 'telescope.finders'.new_table { - results = items, - entry_maker = function(entry) - return { - value = entry, - display = label_fn(entry), - ordinal = label_fn(entry), - } - end, - }, - sorter = require 'telescope.sorters'.get_generic_fuzzy_sorter(), - attach_mappings = function(prompt_bufnr) - require 'telescope.actions'.select_default:replace(function() - local selection = require 'telescope.actions'.get_selected_entry(prompt_bufnr) - require 'telescope.actions'.close(prompt_bufnr) - cb(selection.value) - end) - return true - end, - }):find() - end - - local root_markers = {'gradlew', 'pom.xml', '.git'} - local root_dir = require('jdtls.setup').find_root(root_markers) - local workspace_folder = os.getenv("HOME") .. "/.local/share/nvim_java_workspace/" .. vim.fn.fnamemodify( - root_dir, - ":p:h:t" - ) - vim.env.WORKSPACE = workspace_folder - local ok, install_cmd = require 'nvim-lsp-installer.servers'.get_server("jdtls") - if ok then - print(ok) - if not install_cmd:is_installed() then - install_cmd:install() - end - end - local on_attach = function(client, bufnr) - require 'jdtls'.setup_dap() - require 'lsp-status'.register_progress() - end - - local config = { - cmd = install_cmd:get_default_options().cmd, - root_dir = root_dir, - flags = {allow_incremental_sync = true}, - on_attach = on_attach, - capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) - } - - require('jdtls').start_or_attach(config) -end - -return M diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 4579fad..09ee0f0 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,513 +1,687 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) + end + end - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) end - end - -local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) return a[2] > b[2] end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end + local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) + return a[2] > b[2] + end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end - _G._packer = _G._packer or {} - _G._packer.profile_output = results -end + _G._packer = _G._packer or {} + _G._packer.profile_output = results + end -time([[Luarocks path setup]], true) -local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" -local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" -if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str -end + time([[Luarocks path setup]], true) + local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" + local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" + if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str + end -if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern -end + if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern + end -time([[Luarocks path setup]], false) -time([[try_loadstring definition]], true) -local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) - end) - end - return result -end + time([[Luarocks path setup]], false) + time([[try_loadstring definition]], true) + local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s)) + if not success then + vim.schedule(function() + vim.api.nvim_notify( + 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, + vim.log.levels.ERROR, + {} + ) + end) + end + return result + end + + time([[try_loadstring definition]], false) + time([[Defining packer_plugins]], true) + _G.packer_plugins = { + ["DAPInstall.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" + }, + ["accelerated-jk"] = { + config = { + "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { + "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" + }, + ["cmp-buffer"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer/after/plugin/cmp_buffer.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer" + }, + ["cmp-calc"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc/after/plugin/cmp_calc.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc" + }, + ["cmp-emoji"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji/after/plugin/cmp_emoji.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji" + }, + ["cmp-latex-symbols"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols/after/plugin/cmp_latex.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols" + }, + ["cmp-look"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look/after/plugin/cmp_look.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp" + }, + ["cmp-nvim-lua"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua" + }, + ["cmp-nvim-tags"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags/after/plugin/cmp_nvim_tags.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags" + }, + ["cmp-nvim-ultisnips"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips/after/plugin/cmp_nvim_ultisnips.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips" + }, + ["cmp-path"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path/after/plugin/cmp_path.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path" + }, + ["cmp-spell"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell/after/plugin/cmp-spell.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell" + }, + ["cmp-tabnine"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine/after/plugin/cmp-tabnine.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine" + }, + ["cmp-treesitter"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter/after/plugin/cmp_treesitter.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter" + }, + ["cmp-vsnip"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip/after/plugin/cmp_vsnip.vim" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip" + }, + ["dashboard-nvim"] = { + config = { + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" + }, + ["dial.nvim"] = { + config = {"\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0"}, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" + }, + everforest = { + config = { + "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { + "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + config = { + "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { + "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { + "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" + }, + hop = { + config = { + "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" + }, + ["indent-blankline.nvim"] = { + config = { + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" + }, + kommentary = { + config = { + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" + }, + ["lspkind-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/lspkind-nvim" + }, + ["lspsaga.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" + }, + ["neoscroll.nvim"] = { + config = { + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" + }, + ["null-ls.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/null-ls.nvim" + }, + ["nvim-autopairs"] = { + config = { + "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" + }, + ["nvim-cmp"] = { + after = { + "cmp-vsnip", + "cmp-treesitter", + "cmp-nvim-lua", + "cmp-latex-symbols", + "cmp-nvim-ultisnips", + "cmp-calc", + "cmp-spell", + "cmp-nvim-tags", + "cmp-look", + "cmp-tabnine", + "cmp-path", + "cmp-buffer", + "cmp-emoji" + }, + loaded = true, + only_config = true + }, + ["nvim-colorizer.lua"] = { + config = { + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" + }, + ["nvim-dap"] = { + config = { + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" + }, + ["nvim-dap-virtual-text"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" + }, + ["nvim-jdtls"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" + }, + ["nvim-lsp-installer"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-installer" + }, + ["nvim-lsp-ts-utils"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-ts-utils" + }, + ["nvim-lspconfig"] = { + after = { + "nvim-lsp-installer", + "nvim-jdtls", + "null-ls.nvim", + "lspsaga.nvim", + "nvim-lsp-ts-utils" + }, + loaded = true, + only_config = true + }, + ["nvim-markdown-preview"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" + }, + ["nvim-toggleterm.lua"] = { + config = { + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" + }, + ["nvim-transparent"] = { + config = { + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" + }, + ["nvim-tree.lua"] = { + config = { + "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + after = { + "spellsitter.nvim", + "nvim-ts-rainbow", + "nvim-ts-autotag", + "nvim-treesitter-textobjects" + }, + loaded = true, + only_config = true + }, + ["nvim-treesitter-textobjects"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" + }, + ["nvim-ts-autotag"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" + }, + ["nvim-ts-rainbow"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" + }, + ["popup.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" + }, + sonokai = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" + }, + ["space-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" + }, + ["spellsitter.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" + }, + ["telescope.nvim"] = { + config = { + "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" + }, + loaded = false, + needs_bufread = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" + }, + ["todo-comments.nvim"] = { + config = { + "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" + }, + ["vim-bookmarks"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" + }, + ["vim-cursorword"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" + }, + ["vim-rooter"] = { + config = { + "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" + }, + ["vim-sayonara"] = { + config = { + "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" + }, + ["vim-vsnip"] = { + after = {"vim-vsnip-integ"}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip" + }, + ["vim-vsnip-integ"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" + }, + load_after = {["vim-vsnip"] = true}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" + }, + ["vista.vim"] = { + config = { + "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" + }, + ["which-key.nvim"] = { + config = { + "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" + } + } + + time([[Defining packer_plugins]], false) + + -- Config for: nvim-treesitter + time([[Config for nvim-treesitter]], true) + try_loadstring( + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", + "config", + "nvim-treesitter" + ) + time([[Config for nvim-treesitter]], false) + + -- Config for: nvim-cmp + time([[Config for nvim-cmp]], true) + try_loadstring( + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-cmp\frequire\0", + "config", + "nvim-cmp" + ) + time([[Config for nvim-cmp]], false) + + -- Config for: nvim-colorizer.lua + time([[Config for nvim-colorizer.lua]], true) + try_loadstring( + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", + "config", + "nvim-colorizer.lua" + ) + time([[Config for nvim-colorizer.lua]], false) + + -- Config for: vim-rooter + time([[Config for vim-rooter]], true) + try_loadstring( + "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", + "config", + "vim-rooter" + ) + time([[Config for vim-rooter]], false) + + -- Config for: accelerated-jk + time([[Config for accelerated-jk]], true) + try_loadstring( + "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", + "config", + "accelerated-jk" + ) + time([[Config for accelerated-jk]], false) + + -- Config for: nvim-dap + time([[Config for nvim-dap]], true) + try_loadstring( + "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", + "config", + "nvim-dap" + ) + time([[Config for nvim-dap]], false) + + -- Config for: neoscroll.nvim + time([[Config for neoscroll.nvim]], true) + try_loadstring( + "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", + "config", + "neoscroll.nvim" + ) + time([[Config for neoscroll.nvim]], false) + + -- Config for: kommentary + time([[Config for kommentary]], true) + try_loadstring( + "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", + "config", + "kommentary" + ) + time([[Config for kommentary]], false) + + -- Config for: nvim-lspconfig + time([[Config for nvim-lspconfig]], true) + try_loadstring( + "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", + "config", + "nvim-lspconfig" + ) + time([[Config for nvim-lspconfig]], false) + + -- Config for: nvim-autopairs + time([[Config for nvim-autopairs]], true) + try_loadstring( + "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", + "config", + "nvim-autopairs" + ) + time([[Config for nvim-autopairs]], false) + + -- Config for: dial.nvim + time([[Config for dial.nvim]], true) + try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") + time([[Config for dial.nvim]], false) -time([[try_loadstring definition]], false) -time([[Defining packer_plugins]], true) -_G.packer_plugins = { - ["DAPInstall.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" - }, - ["accelerated-jk"] = { - config = { "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" - }, - ["barbar.nvim"] = { - config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" - }, - ["cmp-buffer"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer/after/plugin/cmp_buffer.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer" - }, - ["cmp-calc"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc/after/plugin/cmp_calc.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc" - }, - ["cmp-emoji"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji/after/plugin/cmp_emoji.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji" - }, - ["cmp-latex-symbols"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols/after/plugin/cmp_latex.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols" - }, - ["cmp-look"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look/after/plugin/cmp_look.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look" - }, - ["cmp-nvim-lsp"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp" - }, - ["cmp-nvim-lua"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua" - }, - ["cmp-nvim-tags"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags/after/plugin/cmp_nvim_tags.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags" - }, - ["cmp-nvim-ultisnips"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips/after/plugin/cmp_nvim_ultisnips.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips" - }, - ["cmp-path"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path/after/plugin/cmp_path.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path" - }, - ["cmp-spell"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell/after/plugin/cmp-spell.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell" - }, - ["cmp-tabnine"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine/after/plugin/cmp-tabnine.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine" - }, - ["cmp-treesitter"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter/after/plugin/cmp_treesitter.lua" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter" - }, - ["cmp-vsnip"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip/after/plugin/cmp_vsnip.vim" }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip" - }, - ["dashboard-nvim"] = { - config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" - }, - ["dial.nvim"] = { - config = { "\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" - }, - everforest = { - config = { "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" - }, - ["friendly-snippets"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" - }, - ["galaxyline.nvim"] = { - config = { "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" - }, - ["github-nvim-theme"] = { - config = { "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" - }, - ["gitsigns.nvim"] = { - config = { "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" - }, - ["gruvbox-material"] = { - config = { "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" - }, - hop = { - config = { "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" - }, - ["indent-blankline.nvim"] = { - config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" - }, - kommentary = { - config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" - }, - ["lspkind-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/lspkind-nvim" - }, - ["lspsaga.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" - }, - ["neoscroll.nvim"] = { - config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" - }, - ["nvim-autopairs"] = { - config = { "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" - }, - ["nvim-cmp"] = { - after = { "cmp-vsnip", "cmp-treesitter", "cmp-nvim-lua", "cmp-nvim-ultisnips", "cmp-calc", "cmp-spell", "cmp-nvim-tags", "cmp-look", "cmp-emoji", "cmp-tabnine", "cmp-buffer", "cmp-path", "cmp-latex-symbols" }, - loaded = true, - only_config = true - }, - ["nvim-colorizer.lua"] = { - config = { "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" - }, - ["nvim-dap"] = { - config = { "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" - }, - ["nvim-dap-ui"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" - }, - ["nvim-dap-virtual-text"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" - }, - ["nvim-jdtls"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" - }, - ["nvim-lsp-installer"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-installer" - }, - ["nvim-lspconfig"] = { - after = { "nvim-lsp-installer", "nvim-jdtls", "lspsaga.nvim" }, - loaded = true, - only_config = true - }, - ["nvim-markdown-preview"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" - }, - ["nvim-toggleterm.lua"] = { - config = { "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" - }, - ["nvim-transparent"] = { - config = { "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" - }, - ["nvim-tree.lua"] = { - config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" - }, - ["nvim-treesitter"] = { - after = { "nvim-ts-rainbow", "spellsitter.nvim", "nvim-treesitter-textobjects", "nvim-ts-autotag" }, - loaded = true, - only_config = true - }, - ["nvim-treesitter-textobjects"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" - }, - ["nvim-ts-autotag"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" - }, - ["nvim-ts-rainbow"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" - }, - ["nvim-web-devicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" - }, - ["packer.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" - }, - ["plenary.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" - }, - ["popup.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" - }, - sonokai = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" - }, - ["space-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" - }, - ["spellsitter.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" - }, - ["telescope.nvim"] = { - config = { "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" }, - loaded = false, - needs_bufread = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" - }, - ["todo-comments.nvim"] = { - config = { "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" - }, - ["vim-bookmarks"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" - }, - ["vim-cursorword"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" - }, - ["vim-rooter"] = { - config = { "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" - }, - ["vim-sayonara"] = { - config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" - }, - ["vim-vsnip"] = { - after = { "vim-vsnip-integ" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip" - }, - ["vim-vsnip-integ"] = { - after_files = { "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" }, - load_after = { - ["vim-vsnip"] = true - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" - }, - ["vista.vim"] = { - config = { "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" - }, - ["which-key.nvim"] = { - config = { "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" - } -} + -- Load plugins in order defined by `after` + time([[Sequenced loading]], true) + vim.cmd [[ packadd nvim-treesitter-textobjects ]] + vim.cmd [[ packadd spellsitter.nvim ]] + vim.cmd [[ packadd nvim-ts-rainbow ]] + vim.cmd [[ packadd nvim-ts-autotag ]] + vim.cmd [[ packadd nvim-lsp-installer ]] + vim.cmd [[ packadd null-ls.nvim ]] + vim.cmd [[ packadd nvim-jdtls ]] + vim.cmd [[ packadd nvim-lsp-ts-utils ]] + vim.cmd [[ packadd lspsaga.nvim ]] + time([[Sequenced loading]], false) + vim.cmd [[augroup packer_load_aucmds]] + vim.cmd [[au!]] -time([[Defining packer_plugins]], false) --- Config for: nvim-lspconfig -time([[Config for nvim-lspconfig]], true) -try_loadstring("\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") -time([[Config for nvim-lspconfig]], false) --- Config for: dial.nvim -time([[Config for dial.nvim]], true) -try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") -time([[Config for dial.nvim]], false) --- Config for: nvim-colorizer.lua -time([[Config for nvim-colorizer.lua]], true) -try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") -time([[Config for nvim-colorizer.lua]], false) --- Config for: neoscroll.nvim -time([[Config for neoscroll.nvim]], true) -try_loadstring("\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") -time([[Config for neoscroll.nvim]], false) --- Config for: accelerated-jk -time([[Config for accelerated-jk]], true) -try_loadstring("\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") -time([[Config for accelerated-jk]], false) --- Config for: nvim-dap -time([[Config for nvim-dap]], true) -try_loadstring("\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", "config", "nvim-dap") -time([[Config for nvim-dap]], false) --- Config for: vim-rooter -time([[Config for vim-rooter]], true) -try_loadstring("\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") -time([[Config for vim-rooter]], false) --- Config for: kommentary -time([[Config for kommentary]], true) -try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") -time([[Config for kommentary]], false) --- Config for: nvim-treesitter -time([[Config for nvim-treesitter]], true) -try_loadstring("\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") -time([[Config for nvim-treesitter]], false) --- Config for: nvim-autopairs -time([[Config for nvim-autopairs]], true) -try_loadstring("\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") -time([[Config for nvim-autopairs]], false) --- Config for: nvim-cmp -time([[Config for nvim-cmp]], true) -try_loadstring("\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0", "config", "nvim-cmp") -time([[Config for nvim-cmp]], false) --- Load plugins in order defined by `after` -time([[Sequenced loading]], true) -vim.cmd [[ packadd spellsitter.nvim ]] -vim.cmd [[ packadd nvim-ts-rainbow ]] -vim.cmd [[ packadd nvim-ts-autotag ]] -vim.cmd [[ packadd nvim-treesitter-textobjects ]] -vim.cmd [[ packadd nvim-jdtls ]] -vim.cmd [[ packadd nvim-lsp-installer ]] -vim.cmd [[ packadd lspsaga.nvim ]] -time([[Sequenced loading]], false) -vim.cmd [[augroup packer_load_aucmds]] -vim.cmd [[au!]] - -- Filetype lazy-loads -time([[Defining lazy-load filetype autocommands]], true) -vim.cmd [[au FileType tex ++once lua require("packer.load")({'cmp-latex-symbols'}, { ft = "tex" }, _G.packer_plugins)]] -time([[Defining lazy-load filetype autocommands]], false) - -- Event lazy-loads -time([[Defining lazy-load event autocommands]], true) -vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'vista.vim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-transparent', 'dashboard-nvim', 'telescope.nvim', 'nvim-toggleterm.lua', 'galaxyline.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] -vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-emoji', 'cmp-tabnine', 'vim-vsnip', 'cmp-buffer', 'cmp-path'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] -vim.cmd [[au BufRead * ++once lua require("packer.load")({'everforest', 'github-nvim-theme', 'hop', 'gitsigns.nvim', 'gruvbox-material', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] -time([[Defining lazy-load event autocommands]], false) -vim.cmd("augroup END") -if should_profile then save_profiles() end + -- Filetype lazy-loads + time([[Defining lazy-load filetype autocommands]], true) + vim.cmd [[au FileType tex ++once lua require("packer.load")({'cmp-latex-symbols'}, { ft = "tex" }, _G.packer_plugins)]] + time([[Defining lazy-load filetype autocommands]], false) + -- Event lazy-loads + time([[Defining lazy-load event autocommands]], true) + vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'vista.vim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'dashboard-nvim', 'nvim-transparent', 'barbar.nvim', 'nvim-toggleterm.lua', 'telescope.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] + vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-path', 'cmp-buffer', 'cmp-emoji'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] + vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'gruvbox-material', 'github-nvim-theme', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] + time([[Defining lazy-load event autocommands]], false) + vim.cmd("augroup END") + if should_profile then + save_profiles() + end end) if not no_errors then - vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: ' .. error_msg .. '" | echom "Please check your config for correctness" | echohl None') end From 9770f30d2e024f15ccabd1b1bd4a5d121d355a66 Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 12 Oct 2021 23:43:32 +0800 Subject: [PATCH 39/92] add gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c84aa4a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +plugin/packer_compiled.lua From 1998819887d3257627436fa31b101b202fcbd5f6 Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 13 Oct 2021 00:19:49 +0800 Subject: [PATCH 40/92] fix upstream problem --- lua/core/init.lua | 8 ++++-- .../config/server/typescript/tsserver.lua | 13 +++++++-- plugin/packer_compiled.lua | 28 ++++++++++++------- 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index ee9582a..1bd5b30 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -149,7 +149,11 @@ packer.startup(function(use) }, {'p00f/nvim-ts-rainbow', after = 'nvim-treesitter'}, {'lewis6991/spellsitter.nvim', after = 'nvim-treesitter'}, - {'windwp/nvim-ts-autotag', after = 'nvim-treesitter'} + {'windwp/nvim-ts-autotag', after = 'nvim-treesitter'}, + { + 'JoosepAlviste/nvim-ts-context-commentstring', + after = 'nvim-treesitter' + } }, config = function() require 'core.config.nvim-treesitter' @@ -163,7 +167,7 @@ packer.startup(function(use) 'neovim/nvim-lspconfig', requires = { {'williamboman/nvim-lsp-installer', after = 'nvim-lspconfig'}, - {'glepnir/lspsaga.nvim', after = 'nvim-lspconfig'}, + {'tami5/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, {'jose-elias-alvarez/nvim-lsp-ts-utils', after = 'nvim-lspconfig'}, {'jose-elias-alvarez/null-ls.nvim', after = 'nvim-lspconfig'}, diff --git a/lua/languages/config/server/typescript/tsserver.lua b/lua/languages/config/server/typescript/tsserver.lua index e752634..983dbf5 100644 --- a/lua/languages/config/server/typescript/tsserver.lua +++ b/lua/languages/config/server/typescript/tsserver.lua @@ -65,24 +65,31 @@ M.setup = function(on_attach) vim.api.nvim_buf_set_keymap( bufnr, "n", - "gs", + "ls", ":TSLspOrganize", opts ) vim.api.nvim_buf_set_keymap( bufnr, "n", - "gr", + "lR", ":TSLspRenameFile", opts ) vim.api.nvim_buf_set_keymap( bufnr, "n", - "gi", + "li", ":TSLspImportAll", opts ) + vim.api.nvim_buf_set_keymap( + bufnr, + "n", + "lq", + ":TSLspFixCurrent", + opts + ) on_attach(client, bufnr) end end diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 09ee0f0..728ea51 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -330,6 +330,7 @@ local no_errors, error_msg = pcall(function() "cmp-vsnip", "cmp-treesitter", "cmp-nvim-lua", + "cmp-emoji", "cmp-latex-symbols", "cmp-nvim-ultisnips", "cmp-calc", @@ -338,8 +339,7 @@ local no_errors, error_msg = pcall(function() "cmp-look", "cmp-tabnine", "cmp-path", - "cmp-buffer", - "cmp-emoji" + "cmp-buffer" }, loaded = true, only_config = true @@ -425,10 +425,11 @@ local no_errors, error_msg = pcall(function() }, ["nvim-treesitter"] = { after = { + "nvim-ts-context-commentstring", "spellsitter.nvim", - "nvim-ts-rainbow", + "nvim-treesitter-textobjects", "nvim-ts-autotag", - "nvim-treesitter-textobjects" + "nvim-ts-rainbow" }, loaded = true, only_config = true @@ -445,6 +446,12 @@ local no_errors, error_msg = pcall(function() needs_bufread = false, path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" }, + ["nvim-ts-context-commentstring"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-context-commentstring" + }, ["nvim-ts-rainbow"] = { load_after = {}, loaded = true, @@ -652,14 +659,15 @@ local no_errors, error_msg = pcall(function() -- Load plugins in order defined by `after` time([[Sequenced loading]], true) - vim.cmd [[ packadd nvim-treesitter-textobjects ]] + vim.cmd [[ packadd nvim-ts-autotag ]] vim.cmd [[ packadd spellsitter.nvim ]] + vim.cmd [[ packadd nvim-ts-context-commentstring ]] vim.cmd [[ packadd nvim-ts-rainbow ]] - vim.cmd [[ packadd nvim-ts-autotag ]] - vim.cmd [[ packadd nvim-lsp-installer ]] + vim.cmd [[ packadd nvim-treesitter-textobjects ]] vim.cmd [[ packadd null-ls.nvim ]] - vim.cmd [[ packadd nvim-jdtls ]] vim.cmd [[ packadd nvim-lsp-ts-utils ]] + vim.cmd [[ packadd nvim-jdtls ]] + vim.cmd [[ packadd nvim-lsp-installer ]] vim.cmd [[ packadd lspsaga.nvim ]] time([[Sequenced loading]], false) vim.cmd [[augroup packer_load_aucmds]] @@ -672,8 +680,8 @@ local no_errors, error_msg = pcall(function() -- Event lazy-loads time([[Defining lazy-load event autocommands]], true) - vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'vista.vim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'dashboard-nvim', 'nvim-transparent', 'barbar.nvim', 'nvim-toggleterm.lua', 'telescope.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] - vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-path', 'cmp-buffer', 'cmp-emoji'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] + vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-toggleterm.lua', 'dashboard-nvim', 'nvim-transparent', 'vista.vim', 'telescope.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] + vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-emoji', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-path', 'cmp-buffer'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'gruvbox-material', 'github-nvim-theme', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] time([[Defining lazy-load event autocommands]], false) vim.cmd("augroup END") From 33d4183c07a646a1c94b2061c31c358e932572b5 Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 13 Oct 2021 00:21:19 +0800 Subject: [PATCH 41/92] ignore comple plugin --- .gitignore | 2 +- plugin/packer_compiled.lua | 695 ------------------------------------- 2 files changed, 1 insertion(+), 696 deletions(-) delete mode 100644 plugin/packer_compiled.lua diff --git a/.gitignore b/.gitignore index c84aa4a..8cb205e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -plugin/packer_compiled.lua +plugin diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua deleted file mode 100644 index 728ea51..0000000 --- a/plugin/packer_compiled.lua +++ /dev/null @@ -1,695 +0,0 @@ --- Automatically generated packer.nvim plugin loader code - -if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return -end - -vim.api.nvim_command('packadd packer.nvim') - -local no_errors, error_msg = pcall(function() - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) - end - end - - local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) - return a[2] > b[2] - end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end - - _G._packer = _G._packer or {} - _G._packer.profile_output = results - end - - time([[Luarocks path setup]], true) - local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/luarocks/rocks-5.1/?/init.lua" - local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.0.5/lib/lua/5.1/?.so" - if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str - end - - if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern - end - - time([[Luarocks path setup]], false) - time([[try_loadstring definition]], true) - local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify( - 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, - vim.log.levels.ERROR, - {} - ) - end) - end - return result - end - - time([[try_loadstring definition]], false) - time([[Defining packer_plugins]], true) - _G.packer_plugins = { - ["DAPInstall.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" - }, - ["accelerated-jk"] = { - config = { - "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" - }, - ["barbar.nvim"] = { - config = { - "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23core.config.barbar\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" - }, - ["cmp-buffer"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer/after/plugin/cmp_buffer.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer" - }, - ["cmp-calc"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc/after/plugin/cmp_calc.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc" - }, - ["cmp-emoji"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji/after/plugin/cmp_emoji.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji" - }, - ["cmp-latex-symbols"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols/after/plugin/cmp_latex.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols" - }, - ["cmp-look"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look/after/plugin/cmp_look.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look" - }, - ["cmp-nvim-lsp"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp" - }, - ["cmp-nvim-lua"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua" - }, - ["cmp-nvim-tags"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags/after/plugin/cmp_nvim_tags.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags" - }, - ["cmp-nvim-ultisnips"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips/after/plugin/cmp_nvim_ultisnips.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips" - }, - ["cmp-path"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path/after/plugin/cmp_path.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path" - }, - ["cmp-spell"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell/after/plugin/cmp-spell.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell" - }, - ["cmp-tabnine"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine/after/plugin/cmp-tabnine.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine" - }, - ["cmp-treesitter"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter/after/plugin/cmp_treesitter.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter" - }, - ["cmp-vsnip"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip/after/plugin/cmp_vsnip.vim" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip" - }, - ["dashboard-nvim"] = { - config = { - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30core.config.dashboard-vim\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" - }, - ["dial.nvim"] = { - config = {"\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0"}, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" - }, - everforest = { - config = { - "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" - }, - ["friendly-snippets"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" - }, - ["galaxyline.nvim"] = { - config = { - "\27LJ\1\0026\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\27core.config.galaxyline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" - }, - ["github-nvim-theme"] = { - config = { - "\27LJ\1\2\5\0\0\5\0\18\00014\0\0\0007\0\1\0%\1\2\0>\0\2\0014\0\0\0007\0\1\0%\1\3\0>\0\2\0014\0\0\0007\0\1\0%\1\4\0>\0\2\0014\0\0\0007\0\1\0%\1\5\0>\0\2\0014\0\0\0007\0\1\0%\1\6\0>\0\2\0014\0\0\0007\0\1\0%\1\a\0>\0\2\0014\0\0\0007\0\1\0%\1\b\0>\0\2\0014\0\0\0007\0\1\0%\1\t\0>\0\2\0014\0\0\0007\0\1\0%\1\n\0>\0\2\0014\0\0\0007\0\1\0%\1\v\0>\0\2\0014\0\0\0007\0\f\0007\0\r\0%\1\14\0%\2\15\0%\3\16\0003\4\17\0>\0\5\1G\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" - }, - ["gitsigns.nvim"] = { - config = { - "\27LJ\1\0027\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\28plugins.config.gitsigns\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" - }, - ["gruvbox-material"] = { - config = { - "\27LJ\1\2\t\0\0\5\0\29\0Q4\0\0\0007\0\1\0%\1\3\0:\1\2\0004\0\0\0007\0\1\0%\1\5\0:\1\4\0004\0\0\0007\0\6\0%\1\a\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\n\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\v\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\f\0>\0\2\0014\0\0\0007\0\b\0007\0\t\0%\1\r\0>\0\2\0014\0\0\0007\0\6\0%\1\14\0>\0\2\0014\0\0\0007\0\6\0%\1\15\0>\0\2\0014\0\0\0007\0\6\0%\1\16\0>\0\2\0014\0\0\0007\0\6\0%\1\17\0>\0\2\0014\0\0\0007\0\6\0%\1\18\0>\0\2\0014\0\0\0007\0\6\0%\1\19\0>\0\2\0014\0\0\0007\0\6\0%\1\20\0>\0\2\0014\0\0\0007\0\6\0%\1\21\0>\0\2\0014\0\0\0007\0\6\0%\1\22\0>\0\2\0014\0\0\0007\0\6\0%\1\23\0>\0\2\0014\0\0\0007\0\b\0007\0\24\0%\1\25\0%\2\26\0%\3\27\0003\4\28\0>\0\5\1G\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" - }, - hop = { - config = { - "\27LJ\1\0022\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\23plugins.config.hop\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" - }, - ["indent-blankline.nvim"] = { - config = { - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.indent-blankline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" - }, - kommentary = { - config = { - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" - }, - ["lspkind-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/lspkind-nvim" - }, - ["lspsaga.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" - }, - ["neoscroll.nvim"] = { - config = { - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" - }, - ["null-ls.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/null-ls.nvim" - }, - ["nvim-autopairs"] = { - config = { - "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" - }, - ["nvim-cmp"] = { - after = { - "cmp-vsnip", - "cmp-treesitter", - "cmp-nvim-lua", - "cmp-emoji", - "cmp-latex-symbols", - "cmp-nvim-ultisnips", - "cmp-calc", - "cmp-spell", - "cmp-nvim-tags", - "cmp-look", - "cmp-tabnine", - "cmp-path", - "cmp-buffer" - }, - loaded = true, - only_config = true - }, - ["nvim-colorizer.lua"] = { - config = { - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" - }, - ["nvim-dap"] = { - config = { - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" - }, - ["nvim-dap-ui"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" - }, - ["nvim-dap-virtual-text"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" - }, - ["nvim-jdtls"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" - }, - ["nvim-lsp-installer"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-installer" - }, - ["nvim-lsp-ts-utils"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-ts-utils" - }, - ["nvim-lspconfig"] = { - after = { - "nvim-lsp-installer", - "nvim-jdtls", - "null-ls.nvim", - "lspsaga.nvim", - "nvim-lsp-ts-utils" - }, - loaded = true, - only_config = true - }, - ["nvim-markdown-preview"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" - }, - ["nvim-toggleterm.lua"] = { - config = { - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-toggleterm\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" - }, - ["nvim-transparent"] = { - config = { - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$plugins.config.nvim-transparent\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" - }, - ["nvim-tree.lua"] = { - config = { - "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.nvim-tree\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" - }, - ["nvim-treesitter"] = { - after = { - "nvim-ts-context-commentstring", - "spellsitter.nvim", - "nvim-treesitter-textobjects", - "nvim-ts-autotag", - "nvim-ts-rainbow" - }, - loaded = true, - only_config = true - }, - ["nvim-treesitter-textobjects"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" - }, - ["nvim-ts-autotag"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" - }, - ["nvim-ts-context-commentstring"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-context-commentstring" - }, - ["nvim-ts-rainbow"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" - }, - ["nvim-web-devicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" - }, - ["packer.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" - }, - ["plenary.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" - }, - ["popup.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" - }, - sonokai = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" - }, - ["space-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" - }, - ["spellsitter.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" - }, - ["telescope.nvim"] = { - config = { - "\27LJ\1\0025\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\26core.config.telescope\frequire\0" - }, - loaded = false, - needs_bufread = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" - }, - ["todo-comments.nvim"] = { - config = { - "\27LJ\1\2<\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0!plugins.config.todo-comments\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" - }, - ["vim-bookmarks"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" - }, - ["vim-cursorword"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" - }, - ["vim-rooter"] = { - config = { - "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" - }, - ["vim-sayonara"] = { - config = { - "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29core.config.vim-sayonara\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" - }, - ["vim-vsnip"] = { - after = {"vim-vsnip-integ"}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip" - }, - ["vim-vsnip-integ"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" - }, - load_after = {["vim-vsnip"] = true}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" - }, - ["vista.vim"] = { - config = { - "\27LJ\1\0021\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\22core.config.vista\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" - }, - ["which-key.nvim"] = { - config = { - "\27LJ\1\0028\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\29plugins.config.which-key\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" - } - } - - time([[Defining packer_plugins]], false) - - -- Config for: nvim-treesitter - time([[Config for nvim-treesitter]], true) - try_loadstring( - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 core.config.nvim-treesitter\frequire\0", - "config", - "nvim-treesitter" - ) - time([[Config for nvim-treesitter]], false) - - -- Config for: nvim-cmp - time([[Config for nvim-cmp]], true) - try_loadstring( - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-cmp\frequire\0", - "config", - "nvim-cmp" - ) - time([[Config for nvim-cmp]], false) - - -- Config for: nvim-colorizer.lua - time([[Config for nvim-colorizer.lua]], true) - try_loadstring( - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14colorizer\frequire\0", - "config", - "nvim-colorizer.lua" - ) - time([[Config for nvim-colorizer.lua]], false) - - -- Config for: vim-rooter - time([[Config for vim-rooter]], true) - try_loadstring( - "\27LJ\1\0025\0\0\2\0\3\0\0054\0\0\0007\0\1\0'\1\1\0:\1\2\0G\0\1\0\24rooter_silent_chdir\6g\bvim\0", - "config", - "vim-rooter" - ) - time([[Config for vim-rooter]], false) - - -- Config for: accelerated-jk - time([[Config for accelerated-jk]], true) - try_loadstring( - "\27LJ\1\2:\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\31core.config.accelerated-jk\frequire\0", - "config", - "accelerated-jk" - ) - time([[Config for accelerated-jk]], false) - - -- Config for: nvim-dap - time([[Config for nvim-dap]], true) - try_loadstring( - "\27LJ\1\0029\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0\30languages.config.nvim-dap\frequire\0", - "config", - "nvim-dap" - ) - time([[Config for nvim-dap]], false) - - -- Config for: neoscroll.nvim - time([[Config for neoscroll.nvim]], true) - try_loadstring( - "\27LJ\1\0027\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\14neoscroll\frequire\0", - "config", - "neoscroll.nvim" - ) - time([[Config for neoscroll.nvim]], false) - - -- Config for: kommentary - time([[Config for kommentary]], true) - try_loadstring( - "\27LJ\1\2;\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0 languages.config.kommentary\frequire\0", - "config", - "kommentary" - ) - time([[Config for kommentary]], false) - - -- Config for: nvim-lspconfig - time([[Config for nvim-lspconfig]], true) - try_loadstring( - "\27LJ\1\2?\0\0\2\0\2\0\0044\0\0\0%\1\1\0>\0\2\1G\0\1\0$languages.config.nvim-lspconfig\frequire\0", - "config", - "nvim-lspconfig" - ) - time([[Config for nvim-lspconfig]], false) - - -- Config for: nvim-autopairs - time([[Config for nvim-autopairs]], true) - try_loadstring( - "\27LJ\1\2<\0\0\2\0\3\0\0064\0\0\0%\1\1\0>\0\2\0027\0\2\0>\0\1\1G\0\1\0\nsetup\19nvim-autopairs\frequire\0", - "config", - "nvim-autopairs" - ) - time([[Config for nvim-autopairs]], false) - - -- Config for: dial.nvim - time([[Config for dial.nvim]], true) - try_loadstring("\27LJ\1\2\v\0\0\1\0\0\0\1G\0\1\0\0", "config", "dial.nvim") - time([[Config for dial.nvim]], false) - - -- Load plugins in order defined by `after` - time([[Sequenced loading]], true) - vim.cmd [[ packadd nvim-ts-autotag ]] - vim.cmd [[ packadd spellsitter.nvim ]] - vim.cmd [[ packadd nvim-ts-context-commentstring ]] - vim.cmd [[ packadd nvim-ts-rainbow ]] - vim.cmd [[ packadd nvim-treesitter-textobjects ]] - vim.cmd [[ packadd null-ls.nvim ]] - vim.cmd [[ packadd nvim-lsp-ts-utils ]] - vim.cmd [[ packadd nvim-jdtls ]] - vim.cmd [[ packadd nvim-lsp-installer ]] - vim.cmd [[ packadd lspsaga.nvim ]] - time([[Sequenced loading]], false) - vim.cmd [[augroup packer_load_aucmds]] - vim.cmd [[au!]] - - -- Filetype lazy-loads - time([[Defining lazy-load filetype autocommands]], true) - vim.cmd [[au FileType tex ++once lua require("packer.load")({'cmp-latex-symbols'}, { ft = "tex" }, _G.packer_plugins)]] - time([[Defining lazy-load filetype autocommands]], false) - - -- Event lazy-loads - time([[Defining lazy-load event autocommands]], true) - vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-toggleterm.lua', 'dashboard-nvim', 'nvim-transparent', 'vista.vim', 'telescope.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] - vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-emoji', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-path', 'cmp-buffer'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] - vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'gruvbox-material', 'github-nvim-theme', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] - time([[Defining lazy-load event autocommands]], false) - vim.cmd("augroup END") - if should_profile then - save_profiles() - end -end) - -if not no_errors then - vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: ' .. error_msg .. '" | echom "Please check your config for correctness" | echohl None') -end From 8f5b886c42d9d3515a96ef0cadb5fcf97be3e66f Mon Sep 17 00:00:00 2001 From: JryChn Date: Mon, 18 Oct 2021 11:59:03 +0800 Subject: [PATCH 42/92] fix cmp --- lua/languages/config/nvim-cmp.lua | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index 9b95239..eeb5f39 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -1,8 +1,5 @@ local cmp = require('cmp') local has_words_before = function() - if vim.api.nvim_buf_get_option(0, "buftype") == "prompt" then - return false - end local line, col = unpack(vim.api.nvim_win_get_cursor(0)) return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub( col, @@ -18,10 +15,10 @@ local feedkey = function(key, mode) ) end local tab_complete = function(fallback) - if vim.fn["vsnip#available"]() == 1 then - feedkey("(vsnip-expand-or-jump)", "") - elseif cmp.visible() then + if cmp.visible() then cmp.select_next_item() + elseif vim.fn["vsnip#available"]() == 1 then + feedkey("(vsnip-expand-or-jump)", "") elseif has_words_before() then cmp.complete() else @@ -29,10 +26,10 @@ local tab_complete = function(fallback) end end local s_tab_complete = function(fallback) - if vim.fn["vsnip#jumpable"](-1) == 1 then - feedkey("(vsnip-jump-prev)", "") - elseif cmp.visible() then + if cmp.visible() then cmp.select_prev_item() + elseif vim.fn["vsnip#jumpable"](-1) == 1 then + feedkey("(vsnip-jump-prev)", "") else fallback() end From c73dc7cc355148fcb3441341e0c539a32f83fbda Mon Sep 17 00:00:00 2001 From: JryChn Date: Mon, 18 Oct 2021 13:36:11 +0800 Subject: [PATCH 43/92] use prettier as formatter instead of eslint_d --- lua/languages/config/nvim-lspconfig.lua | 3 +++ lua/languages/config/server/typescript/tsserver.lua | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 0189367..5fed03f 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -219,6 +219,9 @@ lsp_installer.on_server_ready(function(server) if vim.fn.executable('eslint_d') ~= 1 then os.execute('sudo npm install -g eslint_d') end + if vim.fn.executable('prettier') ~= 1 then + os.execute('sudo npm install -g prettier') + end end opts.root_dir = function(fname) return require 'lspconfig/util'.root_pattern( diff --git a/lua/languages/config/server/typescript/tsserver.lua b/lua/languages/config/server/typescript/tsserver.lua index 983dbf5..d888f20 100644 --- a/lua/languages/config/server/typescript/tsserver.lua +++ b/lua/languages/config/server/typescript/tsserver.lua @@ -44,7 +44,7 @@ M.setup = function(on_attach) -- formatting enable_formatting = true, - formatter = "eslint_d", + formatter = "prettier", formatter_opts = {}, -- update imports on file move From 3cd1eeca6c4ce100a29b0d8a4e69a6a6d6d33d04 Mon Sep 17 00:00:00 2001 From: JryChn Date: Mon, 18 Oct 2021 13:59:05 +0800 Subject: [PATCH 44/92] fix and add gps for galaxyline --- lua/core/config/galaxyline.lua | 26 ++++++++++++++++++------- lua/core/init.lua | 5 ++++- lua/languages/config/nvim-lspconfig.lua | 2 +- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/lua/core/config/galaxyline.lua b/lua/core/config/galaxyline.lua index d31d6bd..b2fd0e1 100644 --- a/lua/core/config/galaxyline.lua +++ b/lua/core/config/galaxyline.lua @@ -1,5 +1,6 @@ local gl = require("galaxyline") local gls = gl.section +require 'nvim-gps'.setup() gl.short_line_list = {"NvimTree", "vista", "toggleterm"} @@ -55,6 +56,17 @@ gls.left[4] = { } gls.left[5] = { + nvimGPS = { + provider = function() + return require('nvim-gps').get_location() + end, + condition = function() + return require('nvim-gps').is_available() + end + } +} + +gls.left[6] = { teech = { provider = function() return "" @@ -72,7 +84,7 @@ local checkwidth = function() return false end -gls.left[6] = { +gls.left[7] = { DiffAdd = { provider = "DiffAdd", condition = checkwidth, @@ -81,7 +93,7 @@ gls.left[6] = { } } -gls.left[7] = { +gls.left[8] = { DiffModified = { provider = "DiffModified", condition = checkwidth, @@ -90,7 +102,7 @@ gls.left[7] = { } } -gls.left[8] = { +gls.left[9] = { DiffRemove = { provider = "DiffRemove", condition = checkwidth, @@ -99,7 +111,7 @@ gls.left[8] = { } } -gls.left[9] = { +gls.left[10] = { LeftEnd = { provider = function() return " " @@ -110,7 +122,7 @@ gls.left[9] = { } } -gls.left[10] = { +gls.left[11] = { DiagnosticError = { provider = "DiagnosticError", icon = "  ", @@ -118,7 +130,7 @@ gls.left[10] = { } } -gls.left[11] = { +gls.left[12] = { Space = { provider = function() return " " @@ -127,7 +139,7 @@ gls.left[11] = { } } -gls.left[12] = { +gls.left[13] = { DiagnosticWarn = { provider = "DiagnosticWarn", icon = "  ", diff --git a/lua/core/init.lua b/lua/core/init.lua index 1bd5b30..bf9ef6f 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -107,7 +107,10 @@ packer.startup(function(use) --light-weight and super fast stataus line plugin 'glepnir/galaxyline.nvim', branch = 'main', - requires = {'kyazdani42/nvim-web-devicons'}, + requires = { + {'kyazdani42/nvim-web-devicons'}, + {"SmiteshP/nvim-gps"}, + }, config = function() require 'core.config.galaxyline' end, diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 5fed03f..84dc725 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -259,7 +259,7 @@ saga.init_lsp_saga { warn_sign = '⚠️ ', hint_sign = '🌱', infor_sign = 'ℹ️', - dianostic_header_icon = '🐞', + diagnostic_header_icon = '🐞', code_action_icon = '💡' } From ba42b00e66591fa51ed16ef850655703d6df04d8 Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 26 Oct 2021 15:36:50 +0800 Subject: [PATCH 45/92] update themes --- lua/core/init.lua | 83 +++++++++++++------------ lua/languages/config/nvim-lspconfig.lua | 3 +- lua/plugins/config/which-key.lua | 3 + 3 files changed, 47 insertions(+), 42 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index bf9ef6f..9a431e0 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -267,46 +267,22 @@ packer.startup(function(use) use { 'projekt0n/github-nvim-theme', config = function() - vim.cmd("hi VirtualTextWarning guifg='yellow'") - vim.cmd("hi VirtualTextError guifg='red'") - vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") - vim.cmd("hi VirtualTextHint guifg='#2c6e4e'") - vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") - vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") - vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") - vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") - vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") - vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") vim.api.nvim_set_keymap( 'n', 'tc1', - "lua require'github-theme'.setup()", + "colorscheme github_dark", {silent = true} ) end, - event = "BufRead" } use { 'sainnhe/gruvbox-material', config = function() -- vim.g.gruvbox_material_transparent_background = 1 - vim.g.gruvbox_material_background = 'medium' + vim.g.gruvbox_material_background = 'soft' + vim.g.gruvbox_material_enable_italic = 1 + vim.g.gruvbox_material_disable_italic_comment = 1 vim.g.gruvbox_material_palette = 'mix' - vim.cmd("colorscheme gruvbox-material") - vim.api.nvim_command('highlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold') - vim.api.nvim_command('highlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=bold') - vim.api.nvim_command('highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33') - vim.api.nvim_command('highlight default HopUnmatched guifg=#666666 ctermfg=242') - vim.cmd("hi VirtualTextWarning guifg='yellow'") - vim.cmd("hi VirtualTextError guifg='red'") - vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") - vim.cmd("hi VirtualTextHint guifg='#2c6e4e'") - vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") - vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") - vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") - vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") - vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") - vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") vim.api.nvim_set_keymap( 'n', 'tc2', @@ -314,22 +290,11 @@ packer.startup(function(use) {silent = true} ) end, - event = "BufRead" } use { 'sainnhe/everforest', requires = {"sainnhe/sonokai", "Th3Whit3Wolf/space-nvim"}, config = function() - vim.cmd("hi VirtualTextWarning guifg='yellow'") - vim.cmd("hi VirtualTextError guifg='red'") - vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") - vim.cmd("hi VirtualTextHint guifg='#2c6e4e'") - vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") - vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") - vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") - vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") - vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") - vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") vim.api.nvim_set_keymap( 'n', 'tc3', @@ -337,7 +302,44 @@ packer.startup(function(use) {silent = true} ) end, - event = "BufRead" + } + use { + 'tjdevries/colorbuddy.vim', + requires = { + { + 'Th3Whit3Wolf/onebuddy', + config = function() + vim.api.nvim_set_keymap( + 'n', + 'tc4', + "lua require'colorbuddy'.colorscheme('onebuddy')", + {silent = true} + ) + end + }, + { + 'tjdevries/gruvbuddy.nvim', + config = function() + vim.api.nvim_set_keymap( + 'n', + 'tc5', + "lua require'colorbuddy'.colorscheme('gruvbuddy')", + {silent = true} + ) + end + }, + { + 'sainnhe/edge', + config = function() + vim.api.nvim_set_keymap( + 'n', + 'tc6', + "colorscheme edge", + {silent = true} + ) + end + }, + } } -------------------------------- @@ -428,6 +430,7 @@ packer.startup(function(use) -------------------------------- end) require 'packer'.install() +vim.cmd("colorscheme gruvbox-material") ------------------------------------------------------------- diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 84dc725..23d9fe3 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -257,7 +257,7 @@ saga.init_lsp_saga { use_saga_diagnostic_sign = true, error_sign = '❌', warn_sign = '⚠️ ', - hint_sign = '🌱', + hint_sign = '🌵', infor_sign = 'ℹ️', diagnostic_header_icon = '🐞', code_action_icon = '💡' @@ -265,7 +265,6 @@ saga.init_lsp_saga { ------------------------------- --NOTE: define the diagnostic color - vim.cmd("hi VirtualTextWarning guifg='yellow'") vim.cmd("hi VirtualTextError guifg='red'") vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua index 7c77041..fc9bd32 100644 --- a/lua/plugins/config/which-key.lua +++ b/lua/plugins/config/which-key.lua @@ -169,6 +169,9 @@ wk.register({ ["tc1"] = {name = "change to github style"}, ["tc2"] = {name = "change to gruvbox-material"}, ["tc3"] = {name = "change to everforest"}, + ["tc4"] = {name = "change to onebuddy"}, + ["tc5"] = {name = "change to gruvbuddy"}, + ["tc6"] = {name = "change to edge"}, ---------------------------------- ["jw"] = {name = "jump to word"}, From 9c902151dc6d83908b5764615e3c462693456c73 Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 27 Oct 2021 13:59:44 +0800 Subject: [PATCH 46/92] update themes --- init.lua | 1 + lua/core/init.lua | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/init.lua b/init.lua index e357dc6..84c1524 100644 --- a/init.lua +++ b/init.lua @@ -1,3 +1,4 @@ -- start ModuleVim and install plugin packer +vim.cmd("colorscheme gruvbox-material") require("core") require("gui") diff --git a/lua/core/init.lua b/lua/core/init.lua index 9a431e0..e413955 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -283,6 +283,7 @@ packer.startup(function(use) vim.g.gruvbox_material_enable_italic = 1 vim.g.gruvbox_material_disable_italic_comment = 1 vim.g.gruvbox_material_palette = 'mix' + vim.g.gruvbox_material_diagnostic_virtual_text = 'colored' vim.api.nvim_set_keymap( 'n', 'tc2', @@ -295,6 +296,7 @@ packer.startup(function(use) 'sainnhe/everforest', requires = {"sainnhe/sonokai", "Th3Whit3Wolf/space-nvim"}, config = function() + vim.g.everforest_diagnostic_virtual_text = 'colored' vim.api.nvim_set_keymap( 'n', 'tc3', @@ -331,7 +333,7 @@ packer.startup(function(use) { 'sainnhe/edge', config = function() - vim.api.nvim_set_keymap( + vim.g.edge_diagnostic_virtual_text = 'colored', vim.api.nvim_set_keymap( 'n', 'tc6', "colorscheme edge", From 87a17810437945cb2becb1de0d21465343393a71 Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 27 Oct 2021 14:27:23 +0800 Subject: [PATCH 47/92] a --- init.lua | 1 - lua/core/init.lua | 1 + lua/languages/config/nvim-lspconfig.lua | 4 ++-- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/init.lua b/init.lua index 84c1524..e357dc6 100644 --- a/init.lua +++ b/init.lua @@ -1,4 +1,3 @@ -- start ModuleVim and install plugin packer -vim.cmd("colorscheme gruvbox-material") require("core") require("gui") diff --git a/lua/core/init.lua b/lua/core/init.lua index e413955..7e6dc95 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -284,6 +284,7 @@ packer.startup(function(use) vim.g.gruvbox_material_disable_italic_comment = 1 vim.g.gruvbox_material_palette = 'mix' vim.g.gruvbox_material_diagnostic_virtual_text = 'colored' + vim.cmd("colorscheme gruvbox-material") vim.api.nvim_set_keymap( 'n', 'tc2', diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 23d9fe3..23e48fa 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -265,7 +265,7 @@ saga.init_lsp_saga { ------------------------------- --NOTE: define the diagnostic color -vim.cmd("hi VirtualTextWarning guifg='yellow'") +--[[ vim.cmd("hi VirtualTextWarning guifg='yellow'") vim.cmd("hi VirtualTextError guifg='red'") vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") vim.cmd("hi VirtualTextHint guifg=#2c6e4e") @@ -274,7 +274,7 @@ vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") -vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") +vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] --NOTE: define the auto format on save vim.api.nvim_exec( From 1cbdb27a8c8778b66b5e1eff65b6e41cd7ef7e27 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 29 Oct 2021 11:18:12 +0800 Subject: [PATCH 48/92] fix some common --- lua/core/config/galaxyline.lua | 2 +- lua/core/config/nvim-tree.lua | 2 ++ lua/core/config/vista.lua | 1 + lua/core/init.lua | 5 +++-- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lua/core/config/galaxyline.lua b/lua/core/config/galaxyline.lua index b2fd0e1..166c105 100644 --- a/lua/core/config/galaxyline.lua +++ b/lua/core/config/galaxyline.lua @@ -2,7 +2,7 @@ local gl = require("galaxyline") local gls = gl.section require 'nvim-gps'.setup() -gl.short_line_list = {"NvimTree", "vista", "toggleterm"} +gl.short_line_list = {"NvimTree", "vista_kind", "toggleterm"} local colors = { bg = "#1e222a", diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index c16c05f..38e8a40 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -68,6 +68,8 @@ local g = vim.g vim.o.termguicolors = true +g.nvim_tree_disable_window_picker = 1 + g.nvim_tree_root_folder_modifier = ":t" g.nvim_tree_show_icons = {git = 1, folders = 1, files = 1} diff --git a/lua/core/config/vista.lua b/lua/core/config/vista.lua index 7db3352..3df4e32 100644 --- a/lua/core/config/vista.lua +++ b/lua/core/config/vista.lua @@ -9,3 +9,4 @@ vim.g.vista_executive_for = { vimwiki = "markdown", pandoc = "markdown", } +vim.cmd([[autocmd bufenter * if winnr("$") == 1 && vista#sidebar#IsOpen() | execute "normal! :q!\" | endif]]) diff --git a/lua/core/init.lua b/lua/core/init.lua index 7e6dc95..d8a8c4c 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -36,13 +36,14 @@ packer.startup(function(use) config = function() end } - use { + + --[[ use { TODO: not use it to improve performance --a smooth scrolling neovim plugin written in lua 'karb94/neoscroll.nvim', config = function() require 'neoscroll'.setup() end - } + } ]] use { --provide a single command that deletes the current buffer 'mhinz/vim-sayonara', From 093eb45c5cdf88580ca2968ee60347d6c445a913 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 29 Oct 2021 16:55:08 +0800 Subject: [PATCH 49/92] fix vista galaxyline --- lua/core/config/galaxyline.lua | 2 +- lua/core/config/nvim-toggleterm.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/core/config/galaxyline.lua b/lua/core/config/galaxyline.lua index 166c105..8a75326 100644 --- a/lua/core/config/galaxyline.lua +++ b/lua/core/config/galaxyline.lua @@ -2,7 +2,7 @@ local gl = require("galaxyline") local gls = gl.section require 'nvim-gps'.setup() -gl.short_line_list = {"NvimTree", "vista_kind", "toggleterm"} +gl.short_line_list = {"NvimTree", "vista_kind", "toggleterm","vista_markdown","vista"} local colors = { bg = "#1e222a", diff --git a/lua/core/config/nvim-toggleterm.lua b/lua/core/config/nvim-toggleterm.lua index 3fbdc00..807eac3 100644 --- a/lua/core/config/nvim-toggleterm.lua +++ b/lua/core/config/nvim-toggleterm.lua @@ -43,7 +43,7 @@ function _G.set_terminal_keymaps() local opts = {noremap = true} vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) - -- vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) end -- if you only want these mappings for toggle term use term://*toggleterm#* instead From c8f6c74d6b3ee87a91b67adf2faa588342f8dd97 Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 3 Nov 2021 00:32:46 +0800 Subject: [PATCH 50/92] common update --- lua/core/config/galaxyline.lua | 8 +++++++- lua/core/config/nvim-toggleterm.lua | 2 +- lua/core/config/telescope.lua | 3 +++ lua/languages/config/nvim-dap.lua | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lua/core/config/galaxyline.lua b/lua/core/config/galaxyline.lua index 8a75326..d92e666 100644 --- a/lua/core/config/galaxyline.lua +++ b/lua/core/config/galaxyline.lua @@ -2,7 +2,13 @@ local gl = require("galaxyline") local gls = gl.section require 'nvim-gps'.setup() -gl.short_line_list = {"NvimTree", "vista_kind", "toggleterm","vista_markdown","vista"} +gl.short_line_list = { + "NvimTree", + "vista_kind", + "toggleterm", + "vista_markdown", + "vista" +} local colors = { bg = "#1e222a", diff --git a/lua/core/config/nvim-toggleterm.lua b/lua/core/config/nvim-toggleterm.lua index 807eac3..763fdf0 100644 --- a/lua/core/config/nvim-toggleterm.lua +++ b/lua/core/config/nvim-toggleterm.lua @@ -43,7 +43,7 @@ function _G.set_terminal_keymaps() local opts = {noremap = true} vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) - vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) + vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) end -- if you only want these mappings for toggle term use term://*toggleterm#* instead diff --git a/lua/core/config/telescope.lua b/lua/core/config/telescope.lua index f541463..0927e86 100644 --- a/lua/core/config/telescope.lua +++ b/lua/core/config/telescope.lua @@ -71,3 +71,6 @@ vim.api.nvim_set_keymap('n', 'lq', 'Telescope quickfix', { noremap = true, silent = true }) +require('telescope').setup { + defaults = {mappings = {n = {["q"] = require "telescope.actions".close}}} +} diff --git a/lua/languages/config/nvim-dap.lua b/lua/languages/config/nvim-dap.lua index c0a503e..f386b60 100644 --- a/lua/languages/config/nvim-dap.lua +++ b/lua/languages/config/nvim-dap.lua @@ -40,7 +40,7 @@ for debugger, _ in pairs(dbg_list) do end -- ui -vim.g.dap_virtual_text = 'all frames' +require("nvim-dap-virtual-text").setup() local dap, dapui = require('dap'), require('dapui') dap.listeners.after.event_initialized['dapui_config'] = function() dapui.open() From d3778d2e3fd3a6d8f87edc61f7a351017672fe2f Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Fri, 31 Dec 2021 20:38:30 +0800 Subject: [PATCH 51/92] common fix upstream --- lua/core/config/basic-configuration.lua | 1 + lua/core/config/galaxyline.lua | 8 ++++---- lua/core/init.lua | 5 ++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index b7c0baa..96b61ae 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -32,6 +32,7 @@ global_local = { wildignore = ".git,.hg,.svn,*.pyc,*.o,*.out,*.jpg,*.jpeg,*.png,*.gif,*.zip,**/tmp/**,*.DS_Store,**/node_modules/**,**/bower_modules/**", backup = false, writebackup = false, + guifont = "SauceCodePro Nerd Font", swapfile = false, history = 2000, shada = "!,'300,<50,@100,s10,h", diff --git a/lua/core/config/galaxyline.lua b/lua/core/config/galaxyline.lua index d92e666..08e3ad8 100644 --- a/lua/core/config/galaxyline.lua +++ b/lua/core/config/galaxyline.lua @@ -47,7 +47,7 @@ gls.left[3] = { provider = "FileIcon", condition = buffer_not_empty, highlight = { - require("galaxyline.provider_fileinfo").get_file_icon_color, + require("galaxyline.providers.fileinfo").get_file_icon_color, colors.lightbg } } @@ -169,7 +169,7 @@ gls.right[2] = { gls.right[3] = { ShowLspClient = { provider = function() - if require('galaxyline.provider_lsp').get_lsp_client() == 'No Active Lsp' then + if require('galaxyline.providers.lsp').get_lsp_client() == 'No Active Lsp' then return "  " end return "  " @@ -183,7 +183,7 @@ gls.right[3] = { end, highlight = { function() - if require('galaxyline.provider_lsp').get_lsp_client() == 'No Active Lsp' then + if require('galaxyline.providers.lsp').get_lsp_client() == 'No Active Lsp' then return colors.red else return colors.green @@ -205,7 +205,7 @@ gls.right[4] = { gls.right[5] = { GitBranch = { provider = "GitBranch", - condition = require("galaxyline.provider_vcs").check_git_workspace, + condition = require("galaxyline.providers.vcs").check_git_workspace, icon = "  ", highlight = {colors.green, colors.line_bg} } diff --git a/lua/core/init.lua b/lua/core/init.lua index d8a8c4c..79891cb 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -7,6 +7,9 @@ local use = packer.use packer.reset() -----------------------start to loading plugins-------------- +packer.init({ + max_jobs=4 +}) packer.startup(function(use) use 'wbthomason/packer.nvim' @@ -106,7 +109,7 @@ packer.startup(function(use) } use { --light-weight and super fast stataus line plugin - 'glepnir/galaxyline.nvim', + 'NTBBloodbath/galaxyline.nvim', branch = 'main', requires = { {'kyazdani42/nvim-web-devicons'}, From e48c72b4e676eab956c8fa826c1b6d4b3eb7d657 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Tue, 25 Jan 2022 23:25:00 +0800 Subject: [PATCH 52/92] common fix upstream --- lua/languages/config/server/java/nvim-jdtls.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua index 7e01444..8fce2b1 100644 --- a/lua/languages/config/server/java/nvim-jdtls.lua +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -76,7 +76,7 @@ function M.setup() vim.api.nvim_set_keymap( 'n', 'la', - 'lua require"jdtls".code_action()', + 'lua require"telescope.builtin".lsp_code_actions()', {silent = true, noremap = true} ) vim.api.nvim_set_keymap( @@ -151,7 +151,7 @@ function M.setup() require "which-key".register({["lcv"] = {name = "extract_variable"}}) require "which-key".register({["lcc"] = {name = "extract_constant"}}) require "which-key".register({["lcm"] = {name = "extract_method"}}) - require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) + --[[ require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) local opts = {}; require 'telescope.pickers'.new(opts, { prompt_title = prompt, @@ -175,7 +175,7 @@ function M.setup() return true end, }):find() - end + end ]] local root_markers = {'gradlew', 'pom.xml', '.git'} local root_dir = require('jdtls.setup').find_root(root_markers) From fd97bcda216992ffcef0e2670066f65815cabd80 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Fri, 18 Feb 2022 22:46:44 +0800 Subject: [PATCH 53/92] common fix --- lua/core/config/basic-configuration.lua | 2 +- lua/core/config/nvim-treesitter.lua | 2 +- lua/core/init.lua | 4 +--- lua/languages/config/nvim-cmp.lua | 8 +++++--- lua/languages/config/server/java/nvim-jdtls.lua | 1 + 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index 96b61ae..a2e968a 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -32,7 +32,7 @@ global_local = { wildignore = ".git,.hg,.svn,*.pyc,*.o,*.out,*.jpg,*.jpeg,*.png,*.gif,*.zip,**/tmp/**,*.DS_Store,**/node_modules/**,**/bower_modules/**", backup = false, writebackup = false, - guifont = "SauceCodePro Nerd Font", + guifont = "SauceCodePro Nerd Font", swapfile = false, history = 2000, shada = "!,'300,<50,@100,s10,h", diff --git a/lua/core/config/nvim-treesitter.lua b/lua/core/config/nvim-treesitter.lua index 1381ad6..69bf1bf 100644 --- a/lua/core/config/nvim-treesitter.lua +++ b/lua/core/config/nvim-treesitter.lua @@ -4,7 +4,7 @@ vim.api.nvim_command("set foldexpr=nvim_treesitter#foldexpr()") ---------------------------------------------------------------- require 'nvim-treesitter.configs'.setup { - ensure_installed = "all", + ensure_installed = "maintained", highlight = {enable = true}, indent = {enable = true}, autotag = {enable = true}, diff --git a/lua/core/init.lua b/lua/core/init.lua index 79891cb..56f1373 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -7,9 +7,7 @@ local use = packer.use packer.reset() -----------------------start to loading plugins-------------- -packer.init({ - max_jobs=4 -}) +packer.init({max_jobs = 4}) packer.startup(function(use) use 'wbthomason/packer.nvim' diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index eeb5f39..bc743f2 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -66,7 +66,8 @@ cmp.setup { path = "[Path]", look = "[Look]", cmp_tabnine = "[T9]", - ultisnips = "[Snippet]", + + -- ultisnips = "[Snippet]", treesitter = "[Treesitter]", calc = "[Clac]", emoji = "[Emoji]", @@ -84,7 +85,8 @@ cmp.setup { {name = "look"}, {name = "nvim_lua"}, {name = "cmp_tabnine"}, - {name = "ultisnips"}, + + -- {name = "ultisnips"}, {name = "treesitter"}, {name = "calc"}, {name = "latex_symbols"}, @@ -112,7 +114,7 @@ require('lspkind').init({ -- enables text annotations -- -- default: true - with_text = true, + mode = 'symbol_text', -- default symbol map -- can be either 'default' (requires nerd-fonts font) or diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua index 8fce2b1..0e65eec 100644 --- a/lua/languages/config/server/java/nvim-jdtls.lua +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -151,6 +151,7 @@ function M.setup() require "which-key".register({["lcv"] = {name = "extract_variable"}}) require "which-key".register({["lcc"] = {name = "extract_constant"}}) require "which-key".register({["lcm"] = {name = "extract_method"}}) + --[[ require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) local opts = {}; require 'telescope.pickers'.new(opts, { From 96ce556be96a303b8423ec5fd983f714e0c33464 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Fri, 18 Feb 2022 23:24:52 +0800 Subject: [PATCH 54/92] enhance cmp performence --- lua/languages/config/nvim-cmp.lua | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index bc743f2..215fef4 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -67,7 +67,6 @@ cmp.setup { look = "[Look]", cmp_tabnine = "[T9]", - -- ultisnips = "[Snippet]", treesitter = "[Treesitter]", calc = "[Clac]", emoji = "[Emoji]", @@ -82,11 +81,10 @@ cmp.setup { {name = "buffer"}, {name = "vsnip"}, {name = "path"}, - {name = "look"}, + {name = "look", keyword_length = 2,option = {convert_case = true,loud = true}}, {name = "nvim_lua"}, {name = "cmp_tabnine"}, - -- {name = "ultisnips"}, {name = "treesitter"}, {name = "calc"}, {name = "latex_symbols"}, From be029f8b5dabdf08310add7a5ccd976f0104bbd2 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Tue, 1 Mar 2022 22:02:33 +0800 Subject: [PATCH 55/92] common fix --- lua/core/config/basic-configuration.lua | 2 +- lua/core/config/nvim-toggleterm.lua | 1 - lua/core/config/nvim-tree.lua | 62 +++++++++---------- lua/core/init.lua | 5 -- lua/languages/config/nvim-cmp.lua | 8 ++- .../config/server/java/nvim-jdtls.lua | 2 +- luafmt.sh | 2 +- 7 files changed, 39 insertions(+), 43 deletions(-) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index a2e968a..5e02189 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -91,7 +91,7 @@ global_local = { spelllang = "en_us,cjk", -- optimize startup time - shell = "/bin/bash", + shell = "/opt/homebrew/bin/fish", shadafile = "", lazyredraw = true } diff --git a/lua/core/config/nvim-toggleterm.lua b/lua/core/config/nvim-toggleterm.lua index 763fdf0..70a7ce5 100644 --- a/lua/core/config/nvim-toggleterm.lua +++ b/lua/core/config/nvim-toggleterm.lua @@ -42,7 +42,6 @@ require("toggleterm").setup { function _G.set_terminal_keymaps() local opts = {noremap = true} vim.api.nvim_buf_set_keymap(0, 't', '', [[]], opts) - vim.api.nvim_buf_set_keymap(0, 't', '', [[l]], opts) end diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index 38e8a40..f809166 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -1,36 +1,36 @@ local tree_cb = require 'nvim-tree.config'.nvim_tree_callback local list = { - {key = {"", "o", "l"}, cb = tree_cb("edit")}, - {key = {""}, cb = tree_cb("cd")}, - {key = "v", cb = tree_cb("vsplit")}, - {key = "s", cb = tree_cb("split")}, - {key = "t", cb = tree_cb("tabnew")}, - {key = "<", cb = tree_cb("prev_sibling")}, - {key = ">", cb = tree_cb("next_sibling")}, - {key = "P", cb = tree_cb("parent_node")}, - {key = "", cb = tree_cb("close_node")}, - {key = "h", cb = tree_cb("close_node")}, - {key = "", cb = ":wincmd w"}, - {key = "K", cb = tree_cb("first_sibling")}, - {key = "J", cb = tree_cb("last_sibling")}, - {key = "I", cb = tree_cb("toggle_ignored")}, - {key = ".", cb = tree_cb("toggle_dotfiles")}, - {key = "R", cb = tree_cb("refresh")}, - {key = "a", cb = tree_cb("create")}, - {key = "d", cb = tree_cb("remove")}, - {key = "r", cb = tree_cb("rename")}, - {key = "", cb = tree_cb("full_rename")}, - {key = "x", cb = tree_cb("cut")}, - {key = "c", cb = tree_cb("copy")}, - {key = "p", cb = tree_cb("paste")}, - {key = "y", cb = tree_cb("copy_name")}, - {key = "Y", cb = tree_cb("copy_path")}, - {key = "gy", cb = tree_cb("copy_absolute_path")}, - {key = "[c", cb = tree_cb("prev_git_item")}, - {key = "]c", cb = tree_cb("next_git_item")}, - {key = "-", cb = tree_cb("dir_up")}, - {key = "q", cb = tree_cb("close")}, - {key = "?", cb = tree_cb("toggle_help")}, + {key = {"", "o", "l"}, action = "edit"}, + {key = {""}, action = "cd"}, + {key = "v", action = "vsplit"}, + {key = "s", action = "split"}, + {key = "t", action = "tabnew"}, + {key = "<", action = "prev_sibling"}, + {key = ">", action = "next_sibling"}, + {key = "P", action = "parent_node"}, + {key = "", action = "close_node"}, + {key = "h", action = "close_node"}, + {key = "", action_cb = ":wincmd w"}, + {key = "K", action = "first_sibling"}, + {key = "J", action = "last_sibling"}, + {key = "I", action = "toggle_ignored"}, + {key = ".", action = "toggle_dotfiles"}, + {key = "R", action = "refresh"}, + {key = "a", action = "create"}, + {key = "d", action = "remove"}, + {key = "r", action = "rename"}, + {key = "", action = "full_rename"}, + {key = "x", action = "cut"}, + {key = "c", action = "copy"}, + {key = "p", action = "paste"}, + {key = "y", action = "copy_name"}, + {key = "Y", action = "copy_path"}, + {key = "gy", action = "copy_absolute_path"}, + {key = "[c", action = "prev_git_item"}, + {key = "]c", action = "next_git_item"}, + {key = "-", action = "dir_up"}, + {key = "q", action = "close"}, + {key = "?", action = "toggle_help"}, } -------------------------------------------------------------------------------------- diff --git a/lua/core/init.lua b/lua/core/init.lua index 56f1373..a05d7cc 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -218,11 +218,6 @@ packer.startup(function(use) after = "nvim-cmp", event = "InsertCharPre" }, - { - 'quangnguyen30192/cmp-nvim-ultisnips', - after = "nvim-cmp", - event = "InsertCharPre" - }, {'hrsh7th/cmp-emoji', after = "nvim-cmp", event = "InsertCharPre"}, {'f3fora/cmp-spell', after = "nvim-cmp", event = "InsertCharPre"}, { diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index 215fef4..45daf5d 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -66,7 +66,6 @@ cmp.setup { path = "[Path]", look = "[Look]", cmp_tabnine = "[T9]", - treesitter = "[Treesitter]", calc = "[Clac]", emoji = "[Emoji]", @@ -81,10 +80,13 @@ cmp.setup { {name = "buffer"}, {name = "vsnip"}, {name = "path"}, - {name = "look", keyword_length = 2,option = {convert_case = true,loud = true}}, + { + name = "look", + keyword_length = 3, + option = {convert_case = true, loud = true} + }, {name = "nvim_lua"}, {name = "cmp_tabnine"}, - {name = "treesitter"}, {name = "calc"}, {name = "latex_symbols"}, diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua index 0e65eec..af81402 100644 --- a/lua/languages/config/server/java/nvim-jdtls.lua +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -34,7 +34,7 @@ function M.setup() vim.api.nvim_set_keymap( 'n', 'gI', - 'lua vim.lsp.buf.implementation()', + 'lua require"telescope.builtin".lsp_implementations()', {silent = true, noremap = true} ) vim.api.nvim_set_keymap( diff --git a/luafmt.sh b/luafmt.sh index 4a19363..b08ee8b 100755 --- a/luafmt.sh +++ b/luafmt.sh @@ -30,4 +30,4 @@ else fi fi getdir . - rm luafmt -rf + rm -rf luafmt From bdfb51013cfe02d6e0bbaed3a4f5de9743735612 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Sun, 13 Mar 2022 14:07:03 +0800 Subject: [PATCH 56/92] common fix --- lua/core/config/basic-configuration.lua | 6 ++++- lua/core/config/nvim-tree.lua | 1 - lua/core/init.lua | 13 +++------ lua/languages/config/nvim-lspconfig.lua | 36 +++++++++++++++++++------ 4 files changed, 37 insertions(+), 19 deletions(-) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index 5e02189..0471ee1 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -13,6 +13,10 @@ vim.cmd([[ ]]) -- --------------configuration------------------ +local sh = "bash" +if vim.fn.executable('fish') == 1 then + sh = "fish" +end global_local = { termguicolors = true, mouse = "nv", @@ -91,7 +95,7 @@ global_local = { spelllang = "en_us,cjk", -- optimize startup time - shell = "/opt/homebrew/bin/fish", + shell = sh, shadafile = "", lazyredraw = true } diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index f809166..475fdb0 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -1,4 +1,3 @@ -local tree_cb = require 'nvim-tree.config'.nvim_tree_callback local list = { {key = {"", "o", "l"}, action = "edit"}, {key = {""}, action = "cd"}, diff --git a/lua/core/init.lua b/lua/core/init.lua index a05d7cc..6ce13aa 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -38,13 +38,13 @@ packer.startup(function(use) end } - --[[ use { TODO: not use it to improve performance + use { --a smooth scrolling neovim plugin written in lua 'karb94/neoscroll.nvim', config = function() require 'neoscroll'.setup() end - } ]] + } use { --provide a single command that deletes the current buffer 'mhinz/vim-sayonara', @@ -174,8 +174,10 @@ packer.startup(function(use) {'williamboman/nvim-lsp-installer', after = 'nvim-lspconfig'}, {'tami5/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, + {'p00f/clangd_extensions.nvim', after = 'nvim-lspconfig'}, {'jose-elias-alvarez/nvim-lsp-ts-utils', after = 'nvim-lspconfig'}, {'jose-elias-alvarez/null-ls.nvim', after = 'nvim-lspconfig'}, + {'folke/trouble.nvim', after = 'nvim-lspconfig'}, }, config = function() require 'languages.config.nvim-lspconfig' @@ -253,13 +255,6 @@ packer.startup(function(use) -- event = 'BufferRead' } - --use{ --formatter TODO: Not use now, instead by lsp - --'mhartington/formatter.nvim', - --config = function() - --require'languages.config.formatter' - --end - --} - -------------------------------- ----------NOTE:style layer----------- use { 'projekt0n/github-nvim-theme', diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 23e48fa..597637d 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -134,6 +134,10 @@ local on_attach = function(client, bufnr) 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', {noremap = true, silent = true} ) + buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { + noremap = true, + silent = true + }) buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { noremap = true, silent = true @@ -151,6 +155,7 @@ local lspservers = { "bash:bashls", "css:cssls", "html:html", + "typescript:tsserver", "json:jsonls", "python:pyright", "rust:rust_analyzer", @@ -159,11 +164,9 @@ local lspservers = { "vue:vuels", "yaml:yamlls", "xml:lemminx", - "emmet:emmet_ls", - - -- "typescript:tsserver", + "emmet:emmet_ls" } -vim.cmd ' packadd nvim-lsp-installer' +vim.cmd 'packadd nvim-lsp-installer' local function split(s, delimiter) local result = {}; @@ -196,6 +199,15 @@ end -- map buffer local keybindings when the language server attaches local lsp_installer = require("nvim-lsp-installer") +vim.cmd('packadd null-ls.nvim') + +require("null-ls").setup({ + sources = { + -- require("null-ls").builtins.formatting.stylua, + require("null-ls").builtins.diagnostics.eslint, + }, +}) + lsp_installer.on_server_ready(function(server) local opts = { autostart = true, @@ -206,13 +218,13 @@ lsp_installer.on_server_ready(function(server) capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) } + -- special language lua if server.name == "sumneko_lua" then opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} end + + -- special language typescript if server.name == "tsserver" then - vim.cmd ' packadd null-ls.nvim' - require("null-ls").config {} - require("lspconfig")["null-ls"].setup {} if vim.fn.executable('npm') ~= 1 then print("npm was not found" .. "\n") else @@ -233,13 +245,17 @@ lsp_installer.on_server_ready(function(server) opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) end - if server.name == "jdtls" then + if server.name == "jdtls" or server.name == 'clangd' then goto continue end + + -- Other default languages server:setup(opts) vim.cmd("bufdo e")::continue:: end) + +-- special language java vim.api.nvim_exec( [[ augroup jdtls_lsp @@ -250,6 +266,10 @@ vim.api.nvim_exec( false ) +-- specical language c/cpp +vim.cmd 'packadd clangd_extensions.nvim' +require("clangd_extensions").setup() + -- NOTE: finally, setup lsp saga and config vim.cmd ' packadd lspsaga.nvim' local saga = require 'lspsaga' From d1a195e5ece5dfc65f032907a9a29e0b15b90710 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Sun, 20 Mar 2022 19:59:04 +0800 Subject: [PATCH 57/92] fix nvim tree --- lua/core/config/nvim-tree.lua | 18 ++++++++++- lua/languages/config/nvim-lspconfig.lua | 32 ++++++++++++++----- .../config/server/java/nvim-jdtls.lua | 2 +- 3 files changed, 42 insertions(+), 10 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index 475fdb0..be94915 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -9,7 +9,12 @@ local list = { {key = "P", action = "parent_node"}, {key = "", action = "close_node"}, {key = "h", action = "close_node"}, - {key = "", action_cb = ":wincmd w"}, + { + key = "", + action_cb = function() + vim.cmd(":wincmd w") + end + }, {key = "K", action = "first_sibling"}, {key = "J", action = "last_sibling"}, {key = "I", action = "toggle_ignored"}, @@ -30,6 +35,9 @@ local list = { {key = "-", action = "dir_up"}, {key = "q", action = "close"}, {key = "?", action = "toggle_help"}, + {key = "", action = "toggle_file_info"}, + + -- {key = "", action = "preview"}, } -------------------------------------------------------------------------------------- @@ -40,6 +48,14 @@ vim.api.nvim_set_keymap( ":NvimTreeToggle", {noremap = true, silent = true} ) +vim.api.nvim_set_keymap( + "n", + "ft", + ":NvimTreeFindFile", + {noremap = true, silent = true} +) +vim.cmd 'packadd which-key.nvim' +require "which-key".register({["ft"] = {name = "focus this file on tree"}}) require 'nvim-tree'.setup { -- closes neovim automatically when the tree is the last **WINDOW** in the view auto_close = true, diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 597637d..2a2a913 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -164,7 +164,9 @@ local lspservers = { "vue:vuels", "yaml:yamlls", "xml:lemminx", - "emmet:emmet_ls" + "yaml:yamlls", + "emmet:emmet_ls", + "docker:dockerls" } vim.cmd 'packadd nvim-lsp-installer' @@ -201,13 +203,6 @@ local lsp_installer = require("nvim-lsp-installer") vim.cmd('packadd null-ls.nvim') -require("null-ls").setup({ - sources = { - -- require("null-ls").builtins.formatting.stylua, - require("null-ls").builtins.diagnostics.eslint, - }, -}) - lsp_installer.on_server_ready(function(server) local opts = { autostart = true, @@ -218,6 +213,27 @@ lsp_installer.on_server_ready(function(server) capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) } + require("null-ls").setup({ + sources = { + -- require("null-ls").builtins.formatting.stylua, + require("null-ls").builtins.diagnostics.eslint_d, + require("null-ls").builtins.code_actions.eslint_d, + require("null-ls").builtins.formatting.prettier, + }, + on_attach = on_attach + }) + + --special language emmet_ls + if server.name == "emmet_ls" then + opts.filetypes = { + "html", + "css", + "typescriptreact", + "javascriptreact", + "javascript.jsx" + } + end + -- special language lua if server.name == "sumneko_lua" then opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua index af81402..aab8d17 100644 --- a/lua/languages/config/server/java/nvim-jdtls.lua +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -145,7 +145,7 @@ function M.setup() 'lua lua require(\'jdtls\').extract_method(true)', {silent = true, noremap = true} ) - vim.cmd ' packadd which-key.nvim' + vim.cmd 'packadd which-key.nvim' require "which-key".register({["lR"] = {name = "refactor"}}) require "which-key".register({["lc"] = {name = "extract"}}) require "which-key".register({["lcv"] = {name = "extract_variable"}}) From a5ea30d60b284b42663c9569baeb750fb74a16d9 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Sat, 26 Mar 2022 22:33:00 +0800 Subject: [PATCH 58/92] fix colorize --- lua/core/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 6ce13aa..f33b22c 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -61,10 +61,10 @@ packer.startup(function(use) end } use { - --provide a single command that deletes the current buffer + -- colorful displaying 'norcalli/nvim-colorizer.lua', config = function() - require 'colorizer'.setup() + require 'colorizer'.setup({lowercase = true, {css = true, css_fn = true}}) end, -- event = "BufWinEnter" From 62561a6edcefb063448cf7406440be6215fb93ae Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Sat, 26 Mar 2022 22:45:29 +0800 Subject: [PATCH 59/92] use null-ls to format html --- lua/languages/config/nvim-lspconfig.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 2a2a913..e55b278 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -142,6 +142,11 @@ local on_attach = function(client, bufnr) noremap = true, silent = true }) + + if client.name == "html" then + client.resolved_capabilities.document_formatting = false + client.resolved_capabilities.document_range_formatting = false + end end ----------------------------------------------------------- From ff5c500eadc2c5413521110555ca0ec0edb86651 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Sat, 26 Mar 2022 23:35:22 +0800 Subject: [PATCH 60/92] enhance git sign --- lua/plugins/config/gitsigns.lua | 2 +- lua/plugins/config/which-key.lua | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/plugins/config/gitsigns.lua b/lua/plugins/config/gitsigns.lua index a02083b..5f0522b 100644 --- a/lua/plugins/config/gitsigns.lua +++ b/lua/plugins/config/gitsigns.lua @@ -4,7 +4,6 @@ require 'gitsigns'.setup({ numhl = true, - linehl = true, keymaps = { -- Default keymap options noremap = true, @@ -26,6 +25,7 @@ require 'gitsigns'.setup({ ['n gR'] = 'lua require"gitsigns".reset_buffer()', ['n gp'] = 'lua require"gitsigns".preview_hunk()', ['n gb'] = 'lua require"gitsigns".blame_line(true)', + ['n gd'] = 'lua require"gitsigns".diffthis("~")', ['n gl'] = 'Gitsigns toggle_current_line_blame', -- Text objects diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua index fc9bd32..13ee887 100644 --- a/lua/plugins/config/which-key.lua +++ b/lua/plugins/config/which-key.lua @@ -158,6 +158,7 @@ wk.register({ ["gl"] = {name = "toggle line blame"}, ["g["] = {name = "previous hunk"}, ["g]"] = {name = "next hunk"}, + ["gd"] = {name = "show diff"}, ---------------------------------- ["sb"] = {name = "search in buffer"}, From 2607b430b29499f9cf0ed03d9dfce754916beafd Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Sun, 27 Mar 2022 22:41:32 +0800 Subject: [PATCH 61/92] common fix --- lua/languages/config/nvim-cmp.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index 45daf5d..992a648 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -77,8 +77,9 @@ cmp.setup { }, sources = { {name = "nvim_lsp"}, - {name = "buffer"}, {name = "vsnip"}, + {name = "buffer"}, + {name = "cmp_tabnine"}, {name = "path"}, { name = "look", @@ -86,7 +87,6 @@ cmp.setup { option = {convert_case = true, loud = true} }, {name = "nvim_lua"}, - {name = "cmp_tabnine"}, {name = "treesitter"}, {name = "calc"}, {name = "latex_symbols"}, From 2aad5f94ca6bd185abeb2f6c328cd63e1ea28b6c Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Wed, 6 Apr 2022 19:29:13 +0800 Subject: [PATCH 62/92] improve tsserver --- lua/core/config/basic-configuration.lua | 6 ++- lua/core/config/nvim-tree.lua | 12 ++--- lua/core/init.lua | 4 ++ lua/languages/config/nvim-lspconfig.lua | 44 +++++++++---------- .../config/server/typescript/tsserver.lua | 30 ++----------- 5 files changed, 36 insertions(+), 60 deletions(-) diff --git a/lua/core/config/basic-configuration.lua b/lua/core/config/basic-configuration.lua index 0471ee1..2bc3028 100644 --- a/lua/core/config/basic-configuration.lua +++ b/lua/core/config/basic-configuration.lua @@ -14,9 +14,11 @@ vim.cmd([[ -- --------------configuration------------------ local sh = "bash" -if vim.fn.executable('fish') == 1 then + +-- HINT: this will lag the nvim-tree, uncomment it when upstream fix it +--[[ if vim.fn.executable('fish') == 1 then sh = "fish" -end +end ]] global_local = { termguicolors = true, mouse = "nv", diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index be94915..f70cab6 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -9,12 +9,7 @@ local list = { {key = "P", action = "parent_node"}, {key = "", action = "close_node"}, {key = "h", action = "close_node"}, - { - key = "", - action_cb = function() - vim.cmd(":wincmd w") - end - }, + {key = "", action = ""}, {key = "K", action = "first_sibling"}, {key = "J", action = "last_sibling"}, {key = "I", action = "toggle_ignored"}, @@ -57,8 +52,6 @@ vim.api.nvim_set_keymap( vim.cmd 'packadd which-key.nvim' require "which-key".register({["ft"] = {name = "focus this file on tree"}}) require 'nvim-tree'.setup { - -- closes neovim automatically when the tree is the last **WINDOW** in the view - auto_close = true, view = { -- width of the window, can be either a number (columns) or a string in `%` width = 26, @@ -101,3 +94,6 @@ g.nvim_tree_icons = { }, folder = {default = "", open = "", symlink = ""} } + +-- closes neovim automatically when the tree is the last **WINDOW** in the view +vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif") diff --git a/lua/core/init.lua b/lua/core/init.lua index f33b22c..8fbf6c4 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -176,6 +176,10 @@ packer.startup(function(use) {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, {'p00f/clangd_extensions.nvim', after = 'nvim-lspconfig'}, {'jose-elias-alvarez/nvim-lsp-ts-utils', after = 'nvim-lspconfig'}, + { + 'JoosepAlviste/nvim-ts-context-commentstring', + after = 'nvim-lspconfig' + }, {'jose-elias-alvarez/null-ls.nvim', after = 'nvim-lspconfig'}, {'folke/trouble.nvim', after = 'nvim-lspconfig'}, }, diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index e55b278..556678e 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -143,9 +143,14 @@ local on_attach = function(client, bufnr) silent = true }) - if client.name == "html" then - client.resolved_capabilities.document_formatting = false - client.resolved_capabilities.document_range_formatting = false + --NOTE: define the auto format on save + if client.resolved_capabilities.document_formatting then + vim.cmd([[ + augroup LspFormatting + autocmd! * + autocmd BufWritePre lua vim.lsp.buf.formatting_sync() + augroup END + ]]) end end @@ -218,16 +223,6 @@ lsp_installer.on_server_ready(function(server) capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) } - require("null-ls").setup({ - sources = { - -- require("null-ls").builtins.formatting.stylua, - require("null-ls").builtins.diagnostics.eslint_d, - require("null-ls").builtins.code_actions.eslint_d, - require("null-ls").builtins.formatting.prettier, - }, - on_attach = on_attach - }) - --special language emmet_ls if server.name == "emmet_ls" then opts.filetypes = { @@ -246,6 +241,18 @@ lsp_installer.on_server_ready(function(server) -- special language typescript if server.name == "tsserver" then + require("null-ls").setup({ + sources = { + require("null-ls").builtins.diagnostics.eslint_d, + require("null-ls").builtins.code_actions.eslint_d, + require("null-ls").builtins.formatting.prettier, + }, + on_attach = on_attach + }) + require 'nvim-treesitter.configs'.setup { + context_commentstring = {enable = true} + } + if vim.fn.executable('npm') ~= 1 then print("npm was not found" .. "\n") else @@ -317,14 +324,3 @@ vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] ---NOTE: define the auto format on save -vim.api.nvim_exec( - [[ -augroup FormatAutogroup - autocmd! - autocmd BufWritePost * lua vim.lsp.buf.formatting() -augroup END -]], - true -) - diff --git a/lua/languages/config/server/typescript/tsserver.lua b/lua/languages/config/server/typescript/tsserver.lua index d888f20..3fc95c1 100644 --- a/lua/languages/config/server/typescript/tsserver.lua +++ b/lua/languages/config/server/typescript/tsserver.lua @@ -17,44 +17,22 @@ M.setup = function(on_attach) -- import all import_all_timeout = 5000, - -- ms - import_all_priorities = { - buffers = 4, - - -- loaded buffer names - buffer_content = 3, - - -- loaded buffer content - local_files = 2, - - -- git files or files with relative path markers - same_file = 1, - - -- add to existing import statement - }, - import_all_scan_buffers = 100, - import_all_select_source = false, - - -- eslint + --[[ eslint eslint_enable_code_actions = true, eslint_enable_disable_comments = true, eslint_bin = "eslint_d", eslint_enable_diagnostics = true, eslint_opts = {}, - -- formatting + -- formatting enable_formatting = true, formatter = "prettier", - formatter_opts = {}, + formatter_opts = {}, ]] -- update imports on file move update_imports_on_move = true, - require_confirmation_on_move = false, + require_confirmation_on_move = true, watch_dir = nil, - - -- filter diagnostics - filter_out_diagnostics_by_severity = {}, - filter_out_diagnostics_by_code = {}, } -- required to fix code action ranges and filter diagnostics From 29a799496a66fc596043af0125cdc1044d410f94 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Thu, 14 Apr 2022 18:03:32 +0800 Subject: [PATCH 63/92] common fix --- lua/core/init.lua | 28 +++++++++++++------ lua/languages/config/nvim-cmp.lua | 9 +++--- .../config/server/java/nvim-jdtls.lua | 15 ++++++++-- lua/plugins/config/zen-mode.lua | 3 ++ 4 files changed, 40 insertions(+), 15 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 8fbf6c4..a9e96db 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -64,7 +64,7 @@ packer.startup(function(use) -- colorful displaying 'norcalli/nvim-colorizer.lua', config = function() - require 'colorizer'.setup({lowercase = true, {css = true, css_fn = true}}) + require 'colorizer'.setup() end, -- event = "BufWinEnter" @@ -407,15 +407,25 @@ packer.startup(function(use) end, event = "BufRead" } + use { + --dims your inactive windows, making it easier to see the active window at a glance. + "sunjon/shade.nvim", + config = function() + require 'shade'.setup({ + overlay_opacity = 50, + opacity_step = 1, + }) + end, + event = "BufRead" + } - --[[ use{ -- add zen mode TODO: add it later - "folke/zen-mode.nvim", - cmd = "ZenMode", - event = "BufRead", - config = function () - require 'plugins.config.zen-mode' - end - } ]] + use { + -- add zen mode + "folke/zen-mode.nvim", + config = function() + require 'plugins.config.zen-mode' + end + } use { --markdown preview plugins "davidgranstrom/nvim-markdown-preview" diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index 992a648..fa63150 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -41,7 +41,8 @@ cmp.setup { vim.fn["vsnip#anonymous"](args.body) end }, - mapping = { + window = {}, + mapping = cmp.mapping.preset.insert({ [""] = cmp.mapping(tab_complete, {"i", "s"}), [""] = cmp.mapping(tab_complete, {"i", "s"}), [""] = cmp.mapping(s_tab_complete, {"i", "s"}), @@ -50,7 +51,7 @@ cmp.setup { select = false }, [""] = cmp.mapping(s_tab_complete, {"i", "s"}) - }, + }), formatting = { format = function(entry, vim_item) -- fancy icons and a name of kind @@ -75,7 +76,7 @@ cmp.setup { return vim_item end, }, - sources = { + sources = cmp.config.sources({ {name = "nvim_lsp"}, {name = "vsnip"}, {name = "buffer"}, @@ -107,7 +108,7 @@ cmp.setup { nvim_lua = {kind = "", priority = 9, true}, tabnine = {priority = 9, true}, emoji = {kind = "", priority = 9, true} ]] - } + }) } require('lspkind').init({ diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua index aab8d17..18ea96e 100644 --- a/lua/languages/config/server/java/nvim-jdtls.lua +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -177,6 +177,14 @@ function M.setup() end, }):find() end ]] + local function change_date_path(path, workspace) + local i = 0 + while (path[i] ~= "-data") do + i = i + 1 + end + path[i + 1] = workspace + return path + end local root_markers = {'gradlew', 'pom.xml', '.git'} local root_dir = require('jdtls.setup').find_root(root_markers) @@ -185,9 +193,12 @@ function M.setup() ":p:h:t" ) vim.env.WORKSPACE = workspace_folder + local workspace = require "nvim-lsp-installer.path".concat { + workspace_folder, + vim.fn.fnamemodify(vim.loop.cwd() or vim.fn.getcwd(), ":p:h:t") + } local ok, install_cmd = require 'nvim-lsp-installer.servers'.get_server("jdtls") if ok then - print(ok) if not install_cmd:is_installed() then install_cmd:install() end @@ -198,7 +209,7 @@ function M.setup() end local config = { - cmd = install_cmd:get_default_options().cmd, + cmd = change_date_path(install_cmd:get_default_options().cmd, workspace), root_dir = root_dir, flags = {allow_incremental_sync = true}, on_attach = on_attach, diff --git a/lua/plugins/config/zen-mode.lua b/lua/plugins/config/zen-mode.lua index 38bacd6..445ca47 100644 --- a/lua/plugins/config/zen-mode.lua +++ b/lua/plugins/config/zen-mode.lua @@ -1 +1,4 @@ vim.api.nvim_set_keymap('n', 'z', "ZenMode", {}) +require "zen-mode".setup {} +vim.cmd 'packadd which-key.nvim' +require "which-key".register({["z"] = {name = "ZenMode"}}) From 2ee5a4133c040e038ffb203a5ccc1a9b39de18d5 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Thu, 14 Apr 2022 23:04:01 +0800 Subject: [PATCH 64/92] improve java server --- lua/core/config/barbar.lua | 6 ++++++ lua/languages/config/server/java/nvim-jdtls.lua | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lua/core/config/barbar.lua b/lua/core/config/barbar.lua index 298e1ba..29a31ee 100644 --- a/lua/core/config/barbar.lua +++ b/lua/core/config/barbar.lua @@ -13,6 +13,12 @@ vim.api.nvim_set_keymap("n", "\\0", ":BufferLast", {silent = true}) vim.api.nvim_set_keymap("n", "\\c", ":BufferClose", {silent = true}) vim.api.nvim_set_keymap("n", "\\s", ":BufferPick", {silent = true}) vim.api.nvim_set_keymap("n", "\\e", ":enew", {silent = true}) +vim.api.nvim_set_keymap( + "n", + "\\C", + ":BufferCloseAllButCurrent", + {silent = true} +) vim.api.nvim_set_keymap( "n", "\\b", diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua index 18ea96e..9d8940d 100644 --- a/lua/languages/config/server/java/nvim-jdtls.lua +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -115,6 +115,12 @@ function M.setup() 'lua vim.lsp.buf.formatting()', {silent = true, noremap = true} ) + vim.api.nvim_set_keymap( + 'v', + 'bf', + 'lua vim.lsp.buf.formatting()', + {silent = true, noremap = true} + ) vim.api.nvim_set_keymap( 'n', 'lcv', @@ -152,6 +158,14 @@ function M.setup() require "which-key".register({["lcc"] = {name = "extract_constant"}}) require "which-key".register({["lcm"] = {name = "extract_method"}}) + vim.cmd([[ + augroup LspFormatting + autocmd! * + autocmd FileType java + \ autocmd BufWritePre lua vim.lsp.buf.formatting_sync() + augroup END + ]]) + --[[ require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb) local opts = {}; require 'telescope.pickers'.new(opts, { From 41cf6c02f5f19d0670ff569ffe72e81cfb9e4c2e Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Fri, 15 Apr 2022 18:17:08 +0800 Subject: [PATCH 65/92] add null-ls to format html and json --- lua/gui/init.lua | 2 +- lua/languages/config/nvim-lspconfig.lua | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lua/gui/init.lua b/lua/gui/init.lua index 981c06c..5947c42 100644 --- a/lua/gui/init.lua +++ b/lua/gui/init.lua @@ -1,3 +1,3 @@ vim.g.neovide_cursor_trail_size = 0.3 vim.g.neovide_cursor_animation_length = 0.03 -vim.g.neovide_cursor_vfx_mode = "pixiedust" +vim.g.neovide_cursor_vfx_mode = "wireframe" diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 556678e..582be49 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -143,6 +143,12 @@ local on_attach = function(client, bufnr) silent = true }) + + if client.name == "html" or client.name == "jsonls" then + client.resolved_capabilities.document_formatting = false + client.resolved_capabilities.document_range_formatting = false + end + --NOTE: define the auto format on save if client.resolved_capabilities.document_formatting then vim.cmd([[ From f81d791923822661a63bac16c427f78f89b8ac30 Mon Sep 17 00:00:00 2001 From: JeremyChen <22426265+JryChn@users.noreply.github.com> Date: Mon, 27 Jun 2022 15:26:38 +0800 Subject: [PATCH 66/92] Create LICENSE.txt --- LICENSE.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 LICENSE.txt diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..3473a02 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,22 @@ +Copyright (c) 2022 Jeremy Chen + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From 94ff030865f1c995199e0bcc75e19fa861b0f35b Mon Sep 17 00:00:00 2001 From: JryChn Date: Thu, 30 Jun 2022 12:29:39 +0800 Subject: [PATCH 67/92] fix some upstream update --- lua/core/config/nvim-tree.lua | 2 -- lua/core/config/nvim-treesitter.lua | 27 ++++++++++++++++++++++++- lua/core/init.lua | 4 ++-- lua/languages/config/nvim-lspconfig.lua | 9 ++++----- 4 files changed, 32 insertions(+), 10 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index f70cab6..5bae369 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -59,8 +59,6 @@ require 'nvim-tree'.setup { -- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom' side = 'left', - -- if true the tree will resize itself after opening a file - auto_resize = false, mappings = { -- custom only false will merge the list with the default mappings -- if true, it will only use your list to set the mappings diff --git a/lua/core/config/nvim-treesitter.lua b/lua/core/config/nvim-treesitter.lua index 69bf1bf..33c0b59 100644 --- a/lua/core/config/nvim-treesitter.lua +++ b/lua/core/config/nvim-treesitter.lua @@ -4,7 +4,32 @@ vim.api.nvim_command("set foldexpr=nvim_treesitter#foldexpr()") ---------------------------------------------------------------- require 'nvim-treesitter.configs'.setup { - ensure_installed = "maintained", + ensure_installed = { + "c", + "lua", + "rust", + "java", + "go", + "python", + "bash", + "cmake", + "cpp", + "css", + "dockerfile", + "fish", + "gomod", + "html", + "http", + "kotlin", + "make", + "markdown", + "markdown_inline", + "php", + "toml", + "yaml", + "xml", + "vue" + }, highlight = {enable = true}, indent = {enable = true}, autotag = {enable = true}, diff --git a/lua/core/init.lua b/lua/core/init.lua index a9e96db..474e907 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -244,7 +244,7 @@ packer.startup(function(use) end } - use { + --[[ use { --debug plugin "mfussenegger/nvim-dap", requires = { @@ -257,7 +257,7 @@ packer.startup(function(use) end, -- event = 'BufferRead' - } + } ]] ----------NOTE:style layer----------- use { diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 582be49..50aebc4 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -143,11 +143,10 @@ local on_attach = function(client, bufnr) silent = true }) - - if client.name == "html" or client.name == "jsonls" then - client.resolved_capabilities.document_formatting = false - client.resolved_capabilities.document_range_formatting = false - end + if client.name == "html" or client.name == "jsonls" then + client.resolved_capabilities.document_formatting = false + client.resolved_capabilities.document_range_formatting = false + end --NOTE: define the auto format on save if client.resolved_capabilities.document_formatting then From 1e615f20d85ce10ffce27dce9ea4f2685c150e1d Mon Sep 17 00:00:00 2001 From: JryChn Date: Sat, 1 Apr 2023 00:00:31 +0800 Subject: [PATCH 68/92] update plugins --- lua/plugins/config/nvim-transparent.lua | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lua/plugins/config/nvim-transparent.lua b/lua/plugins/config/nvim-transparent.lua index e9f12ec..af6724d 100644 --- a/lua/plugins/config/nvim-transparent.lua +++ b/lua/plugins/config/nvim-transparent.lua @@ -1,8 +1,6 @@ vim.api.nvim_set_keymap('n', 'tp', "TransparentToggle", {}) vim.g.transparent_enabled = 0 require("transparent").setup({ - enable = true, - -- boolean: enable transparent extra_groups = { -- table/string: additional groups that should be clear @@ -16,7 +14,7 @@ require("transparent").setup({ "BufferLineSeparator", "BufferLineIndicatorSelected", ]] }, - exclude = {}, + exclude_group = {}, -- table: groups you don't want to clear }) From fc94ad3325b499ce87e8631f26870248ee13b729 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 7 Apr 2023 17:45:25 +0800 Subject: [PATCH 69/92] add use into README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 71951b4..7cc00ea 100644 --- a/README.md +++ b/README.md @@ -35,5 +35,11 @@ transparent style For now, ModuleVim supports some common used languages, you can also add language by `:LspInstall $language` +## use +copy modulevim dictionary into your config path and then + +``` +ln -s modulevim ~/.config/nvim +``` have fun From 8f5d4173fcb7aa6742dff63d546c9d26d9dbec11 Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 12 Apr 2023 06:42:39 +0800 Subject: [PATCH 70/92] fix plugin issues --- lua/core/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 474e907..beba030 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -111,7 +111,7 @@ packer.startup(function(use) branch = 'main', requires = { {'kyazdani42/nvim-web-devicons'}, - {"SmiteshP/nvim-gps"}, + {"SmiteshP/nvim-navic"}, }, config = function() require 'core.config.galaxyline' From 2eb2ab29e7b32b586993bfa628e909a5850ed919 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 21 Apr 2023 22:12:44 +0800 Subject: [PATCH 71/92] fix treesitter issues --- lua/core/config/nvim-treesitter.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lua/core/config/nvim-treesitter.lua b/lua/core/config/nvim-treesitter.lua index 33c0b59..fce3bc4 100644 --- a/lua/core/config/nvim-treesitter.lua +++ b/lua/core/config/nvim-treesitter.lua @@ -27,7 +27,9 @@ require 'nvim-treesitter.configs'.setup { "php", "toml", "yaml", - "xml", +-- due to treesitter pr:https://github.com/nvim-treesitter/nvim-treesitter/pull/3297 +-- use html to parse xml +-- "xml", "vue" }, highlight = {enable = true}, From 489c7b99547b003bf9351de9d2620794bb790e70 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 28 Apr 2023 13:22:37 +0800 Subject: [PATCH 72/92] fix galaxy issues --- lua/core/config/galaxyline.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lua/core/config/galaxyline.lua b/lua/core/config/galaxyline.lua index 08e3ad8..6072fc4 100644 --- a/lua/core/config/galaxyline.lua +++ b/lua/core/config/galaxyline.lua @@ -1,6 +1,6 @@ local gl = require("galaxyline") local gls = gl.section -require 'nvim-gps'.setup() +require 'nvim-navic'.setup() gl.short_line_list = { "NvimTree", @@ -62,12 +62,12 @@ gls.left[4] = { } gls.left[5] = { - nvimGPS = { + nvimNavic = { provider = function() - return require('nvim-gps').get_location() + return require('nvim-navic').get_location() end, condition = function() - return require('nvim-gps').is_available() + return require('nvim-navic').is_available() end } } From 314c8abc5f2d1e9007b8347b1958cdd3d0239207 Mon Sep 17 00:00:00 2001 From: JryChn Date: Sat, 29 Apr 2023 16:12:39 +0800 Subject: [PATCH 73/92] fix nvim-tree deprecate issuse --- lua/core/config/nvim-tree.lua | 228 +++++++++++++++++++++++++++------- 1 file changed, 184 insertions(+), 44 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index 5bae369..055f021 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -1,39 +1,39 @@ -local list = { - {key = {"", "o", "l"}, action = "edit"}, - {key = {""}, action = "cd"}, - {key = "v", action = "vsplit"}, - {key = "s", action = "split"}, - {key = "t", action = "tabnew"}, - {key = "<", action = "prev_sibling"}, - {key = ">", action = "next_sibling"}, - {key = "P", action = "parent_node"}, - {key = "", action = "close_node"}, - {key = "h", action = "close_node"}, - {key = "", action = ""}, - {key = "K", action = "first_sibling"}, - {key = "J", action = "last_sibling"}, - {key = "I", action = "toggle_ignored"}, - {key = ".", action = "toggle_dotfiles"}, - {key = "R", action = "refresh"}, - {key = "a", action = "create"}, - {key = "d", action = "remove"}, - {key = "r", action = "rename"}, - {key = "", action = "full_rename"}, - {key = "x", action = "cut"}, - {key = "c", action = "copy"}, - {key = "p", action = "paste"}, - {key = "y", action = "copy_name"}, - {key = "Y", action = "copy_path"}, - {key = "gy", action = "copy_absolute_path"}, - {key = "[c", action = "prev_git_item"}, - {key = "]c", action = "next_git_item"}, - {key = "-", action = "dir_up"}, - {key = "q", action = "close"}, - {key = "?", action = "toggle_help"}, - {key = "", action = "toggle_file_info"}, - - -- {key = "", action = "preview"}, -} +-- local list = { +-- {key = {"", "o", "l"}, action = "edit"}, +-- {key = {""}, action = "cd"}, +-- {key = "v", action = "vsplit"}, +-- {key = "s", action = "split"}, +-- {key = "t", action = "tabnew"}, +-- {key = "<", action = "prev_sibling"}, +-- {key = ">", action = "next_sibling"}, +-- {key = "P", action = "parent_node"}, +-- {key = "", action = "close_node"}, +-- {key = "h", action = "close_node"}, +-- {key = "", action = ""}, +-- {key = "K", action = "first_sibling"}, +-- {key = "J", action = "last_sibling"}, +-- {key = "I", action = "toggle_ignored"}, +-- {key = ".", action = "toggle_dotfiles"}, +-- {key = "R", action = "refresh"}, +-- {key = "a", action = "create"}, +-- {key = "d", action = "remove"}, +-- {key = "r", action = "rename"}, +-- {key = "", action = "full_rename"}, +-- {key = "x", action = "cut"}, +-- {key = "c", action = "copy"}, +-- {key = "p", action = "paste"}, +-- {key = "y", action = "copy_name"}, +-- {key = "Y", action = "copy_path"}, +-- {key = "gy", action = "copy_absolute_path"}, +-- {key = "[c", action = "prev_git_item"}, +-- {key = "]c", action = "next_git_item"}, +-- {key = "-", action = "dir_up"}, +-- {key = "q", action = "close"}, +-- {key = "?", action = "toggle_help"}, +-- {key = "", action = "toggle_file_info"}, +-- +-- -- {key = "", action = "preview"}, +-- } -------------------------------------------------------------------------------------- @@ -52,6 +52,7 @@ vim.api.nvim_set_keymap( vim.cmd 'packadd which-key.nvim' require "which-key".register({["ft"] = {name = "focus this file on tree"}}) require 'nvim-tree'.setup { + on_attach=on_attach, view = { -- width of the window, can be either a number (columns) or a string in `%` width = 26, @@ -59,14 +60,15 @@ require 'nvim-tree'.setup { -- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom' side = 'left', - mappings = { - -- custom only false will merge the list with the default mappings - -- if true, it will only use your list to set the mappings - custom_only = false, - - -- list of mappings to set on the tree manually - list = list - } + -- not use mappings anymore, use on_attach. +-- mappings = { +-- -- custom only false will merge the list with the default mappings +-- -- if true, it will only use your list to set the mappings +-- custom_only = false, +-- +-- -- list of mappings to set on the tree manually +-- list = list +-- } } } @@ -95,3 +97,141 @@ g.nvim_tree_icons = { -- closes neovim automatically when the tree is the last **WINDOW** in the view vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif") + + + + +-- +-- This function has been generated from your +-- view.mappings.list +-- view.mappings.custom_only +-- remove_keymaps +-- +-- You should add this function to your configuration and set on_attach = on_attach in the nvim-tree setup call. +-- +-- Although care was taken to ensure correctness and completeness, your review is required. +-- +-- Please check for the following issues in auto generated content: +-- "Mappings removed" is as you expect +-- "Mappings migrated" are correct +-- +-- Please see https://github.com/nvim-tree/nvim-tree.lua/wiki/Migrating-To-on_attach for assistance in migrating. +-- + +local function on_attach(bufnr) + local api = require('nvim-tree.api') + + local function opts(desc) + return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } + end + + + -- Default mappings. Feel free to modify or remove as you wish. + -- + -- BEGIN_DEFAULT_ON_ATTACH + vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set('n', '', api.node.open.replace_tree_buffer, opts('Open: In Place')) + vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) + vim.keymap.set('n', '', api.fs.rename_sub, opts('Rename: Omit Filename')) + vim.keymap.set('n', '', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set('n', '', api.node.open.vertical, opts('Open: Vertical Split')) + vim.keymap.set('n', '', api.node.open.horizontal, opts('Open: Horizontal Split')) + vim.keymap.set('n', '', api.node.navigate.parent_close, opts('Close Directory')) + vim.keymap.set('n', '', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '', api.node.open.preview, opts('Open Preview')) + vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) + vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) + vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create')) + vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) + vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) + vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle No Buffer')) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Git Clean')) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) + vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) + vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) + vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic')) + vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic')) + vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter')) + vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter')) + vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) + vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) + vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles')) + vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore')) + vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) + vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) + vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker')) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) + vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) + vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Hidden')) + vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) + vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD')) + -- END_DEFAULT_ON_ATTACH + + + -- Mappings removed via: + -- remove_keymaps + -- OR + -- view.mappings.list..action = "" + -- + -- The dummy set before del is done for safety, in case a default mapping does not exist. + -- + -- You might tidy things by removing these along with their default mapping. + vim.keymap.set('n', '', '', { buffer = bufnr }) + vim.keymap.del('n', '', { buffer = bufnr }) + + + -- Mappings migrated from view.mappings.list + -- + -- You will need to insert "your code goes here" for any mappings with a custom action_cb + vim.keymap.set('n', '', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'l', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split')) + vim.keymap.set('n', 's', api.node.open.horizontal, opts('Open: Horizontal Split')) + vim.keymap.set('n', 't', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) + vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set('n', '', api.node.navigate.parent_close, opts('Close Directory')) + vim.keymap.set('n', 'h', api.node.navigate.parent_close, opts('Close Directory')) + vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) + vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) + vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore')) + vim.keymap.set('n', '.', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles')) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set('n', '', api.fs.rename_sub, opts('Rename: Omit Filename')) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) + vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', '?', api.tree.toggle_help, opts('Help')) + vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) + +end From d1d3ae94ac7bc97e1a0c1e21f236d7353bf799a7 Mon Sep 17 00:00:00 2001 From: JryChn Date: Fri, 12 May 2023 20:27:19 +0800 Subject: [PATCH 74/92] format code --- lua/core/config/nvim-tree.lua | 419 +++++++++++++++++++--------- lua/core/config/nvim-treesitter.lua | 7 +- 2 files changed, 296 insertions(+), 130 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index 055f021..2c81a92 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -52,7 +52,7 @@ vim.api.nvim_set_keymap( vim.cmd 'packadd which-key.nvim' require "which-key".register({["ft"] = {name = "focus this file on tree"}}) require 'nvim-tree'.setup { - on_attach=on_attach, + on_attach = on_attach, view = { -- width of the window, can be either a number (columns) or a string in `%` width = 26, @@ -60,15 +60,15 @@ require 'nvim-tree'.setup { -- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom' side = 'left', - -- not use mappings anymore, use on_attach. --- mappings = { --- -- custom only false will merge the list with the default mappings --- -- if true, it will only use your list to set the mappings --- custom_only = false, --- --- -- list of mappings to set on the tree manually --- list = list --- } + -- not use mappings anymore, use on_attach. + -- mappings = { + -- -- custom only false will merge the list with the default mappings + -- -- if true, it will only use your list to set the mappings + -- custom_only = false, + -- + -- -- list of mappings to set on the tree manually + -- list = list + -- } } } @@ -98,9 +98,6 @@ g.nvim_tree_icons = { -- closes neovim automatically when the tree is the last **WINDOW** in the view vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif") - - - -- -- This function has been generated from your -- view.mappings.list @@ -119,119 +116,287 @@ vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTre -- local function on_attach(bufnr) - local api = require('nvim-tree.api') - - local function opts(desc) - return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } - end - - - -- Default mappings. Feel free to modify or remove as you wish. - -- - -- BEGIN_DEFAULT_ON_ATTACH - vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) - vim.keymap.set('n', '', api.node.open.replace_tree_buffer, opts('Open: In Place')) - vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) - vim.keymap.set('n', '', api.fs.rename_sub, opts('Rename: Omit Filename')) - vim.keymap.set('n', '', api.node.open.tab, opts('Open: New Tab')) - vim.keymap.set('n', '', api.node.open.vertical, opts('Open: Vertical Split')) - vim.keymap.set('n', '', api.node.open.horizontal, opts('Open: Horizontal Split')) - vim.keymap.set('n', '', api.node.navigate.parent_close, opts('Close Directory')) - vim.keymap.set('n', '', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '', api.node.open.preview, opts('Open Preview')) - vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) - vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) - vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) - vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) - vim.keymap.set('n', 'a', api.fs.create, opts('Create')) - vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) - vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) - vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle No Buffer')) - vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) - vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Git Clean')) - vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) - vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) - vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) - vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) - vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) - vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) - vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic')) - vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic')) - vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter')) - vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter')) - vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) - vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) - vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles')) - vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore')) - vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) - vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) - vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) - vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker')) - vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) - vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) - vim.keymap.set('n', 'q', api.tree.close, opts('Close')) - vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) - vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) - vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) - vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) - vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Hidden')) - vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) - vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) - vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) - vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) - vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD')) - -- END_DEFAULT_ON_ATTACH - - - -- Mappings removed via: - -- remove_keymaps - -- OR - -- view.mappings.list..action = "" - -- - -- The dummy set before del is done for safety, in case a default mapping does not exist. - -- - -- You might tidy things by removing these along with their default mapping. - vim.keymap.set('n', '', '', { buffer = bufnr }) - vim.keymap.del('n', '', { buffer = bufnr }) - - - -- Mappings migrated from view.mappings.list - -- - -- You will need to insert "your code goes here" for any mappings with a custom action_cb - vim.keymap.set('n', '', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'l', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) - vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split')) - vim.keymap.set('n', 's', api.node.open.horizontal, opts('Open: Horizontal Split')) - vim.keymap.set('n', 't', api.node.open.tab, opts('Open: New Tab')) - vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) - vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) - vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) - vim.keymap.set('n', '', api.node.navigate.parent_close, opts('Close Directory')) - vim.keymap.set('n', 'h', api.node.navigate.parent_close, opts('Close Directory')) - vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) - vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) - vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore')) - vim.keymap.set('n', '.', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles')) - vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) - vim.keymap.set('n', 'a', api.fs.create, opts('Create')) - vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) - vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) - vim.keymap.set('n', '', api.fs.rename_sub, opts('Rename: Omit Filename')) - vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) - vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) - vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) - vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) - vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) - vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) - vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) - vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) - vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) - vim.keymap.set('n', 'q', api.tree.close, opts('Close')) - vim.keymap.set('n', '?', api.tree.toggle_help, opts('Help')) - vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) + local api = require('nvim-tree.api') + + local function opts(desc) + return { + desc = 'nvim-tree: ' .. desc, + buffer = bufnr, + noremap = true, + silent = true, + nowait = true + } + end + + -- Default mappings. Feel free to modify or remove as you wish. + -- + -- BEGIN_DEFAULT_ON_ATTACH + vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set( + 'n', + '', + api.node.open.replace_tree_buffer, + opts('Open: In Place') + ) + vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) + vim.keymap.set( + 'n', + '', + api.fs.rename_sub, + opts('Rename: Omit Filename') + ) + vim.keymap.set('n', '', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set( + 'n', + '', + api.node.open.vertical, + opts('Open: Vertical Split') + ) + vim.keymap.set( + 'n', + '', + api.node.open.horizontal, + opts('Open: Horizontal Split') + ) + vim.keymap.set( + 'n', + '', + api.node.navigate.parent_close, + opts('Close Directory') + ) + vim.keymap.set('n', '', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '', api.node.open.preview, opts('Open Preview')) + vim.keymap.set( + 'n', + '>', + api.node.navigate.sibling.next, + opts('Next Sibling') + ) + vim.keymap.set( + 'n', + '<', + api.node.navigate.sibling.prev, + opts('Previous Sibling') + ) + vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create')) + vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) + vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) + vim.keymap.set( + 'n', + 'B', + api.tree.toggle_no_buffer_filter, + opts('Toggle No Buffer') + ) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set( + 'n', + 'C', + api.tree.toggle_git_clean_filter, + opts('Toggle Git Clean') + ) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) + vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) + vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) + vim.keymap.set( + 'n', + ']e', + api.node.navigate.diagnostics.next, + opts('Next Diagnostic') + ) + vim.keymap.set( + 'n', + '[e', + api.node.navigate.diagnostics.prev, + opts('Prev Diagnostic') + ) + vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter')) + vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter')) + vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) + vim.keymap.set( + 'n', + 'gy', + api.fs.copy.absolute_path, + opts('Copy Absolute Path') + ) + vim.keymap.set( + 'n', + 'H', + api.tree.toggle_hidden_filter, + opts('Toggle Dotfiles') + ) + vim.keymap.set( + 'n', + 'I', + api.tree.toggle_gitignore_filter, + opts('Toggle Git Ignore') + ) + vim.keymap.set( + 'n', + 'J', + api.node.navigate.sibling.last, + opts('Last Sibling') + ) + vim.keymap.set( + 'n', + 'K', + api.node.navigate.sibling.first, + opts('First Sibling') + ) + vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set( + 'n', + 'O', + api.node.open.no_window_picker, + opts('Open: No Window Picker') + ) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) + vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) + vim.keymap.set( + 'n', + 'U', + api.tree.toggle_custom_filter, + opts('Toggle Hidden') + ) + vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set( + 'n', + 'Y', + api.fs.copy.relative_path, + opts('Copy Relative Path') + ) + vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) + vim.keymap.set( + 'n', + '<2-RightMouse>', + api.tree.change_root_to_node, + opts('CD') + ) + + -- END_DEFAULT_ON_ATTACH + + -- Mappings removed via: + -- remove_keymaps + -- OR + -- view.mappings.list..action = "" + -- + -- The dummy set before del is done for safety, in case a default mapping does not exist. + -- + -- You might tidy things by removing these along with their default mapping. + vim.keymap.set('n', '', '', {buffer = bufnr}) + vim.keymap.del('n', '', {buffer = bufnr}) + -- Mappings migrated from view.mappings.list + -- + -- You will need to insert "your code goes here" for any mappings with a custom action_cb + vim.keymap.set('n', '', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'l', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set( + 'n', + 'v', + api.node.open.vertical, + opts('Open: Vertical Split') + ) + vim.keymap.set( + 'n', + 's', + api.node.open.horizontal, + opts('Open: Horizontal Split') + ) + vim.keymap.set('n', 't', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set( + 'n', + '<', + api.node.navigate.sibling.prev, + opts('Previous Sibling') + ) + vim.keymap.set( + 'n', + '>', + api.node.navigate.sibling.next, + opts('Next Sibling') + ) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set( + 'n', + '', + api.node.navigate.parent_close, + opts('Close Directory') + ) + vim.keymap.set( + 'n', + 'h', + api.node.navigate.parent_close, + opts('Close Directory') + ) + vim.keymap.set( + 'n', + 'K', + api.node.navigate.sibling.first, + opts('First Sibling') + ) + vim.keymap.set( + 'n', + 'J', + api.node.navigate.sibling.last, + opts('Last Sibling') + ) + vim.keymap.set( + 'n', + 'I', + api.tree.toggle_gitignore_filter, + opts('Toggle Git Ignore') + ) + vim.keymap.set( + 'n', + '.', + api.tree.toggle_hidden_filter, + opts('Toggle Dotfiles') + ) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set( + 'n', + '', + api.fs.rename_sub, + opts('Rename: Omit Filename') + ) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set( + 'n', + 'Y', + api.fs.copy.relative_path, + opts('Copy Relative Path') + ) + vim.keymap.set( + 'n', + 'gy', + api.fs.copy.absolute_path, + opts('Copy Absolute Path') + ) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', '?', api.tree.toggle_help, opts('Help')) + vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) end diff --git a/lua/core/config/nvim-treesitter.lua b/lua/core/config/nvim-treesitter.lua index fce3bc4..fc1d0fd 100644 --- a/lua/core/config/nvim-treesitter.lua +++ b/lua/core/config/nvim-treesitter.lua @@ -27,9 +27,10 @@ require 'nvim-treesitter.configs'.setup { "php", "toml", "yaml", --- due to treesitter pr:https://github.com/nvim-treesitter/nvim-treesitter/pull/3297 --- use html to parse xml --- "xml", + + -- due to treesitter pr:https://github.com/nvim-treesitter/nvim-treesitter/pull/3297 + -- use html to parse xml + -- "xml", "vue" }, highlight = {enable = true}, From 592bf05a0d3d1ff364e71958ebe41a644d84ba66 Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 30 May 2023 21:22:09 +0800 Subject: [PATCH 75/92] ignore lspconfig for debug --- lua/languages/config/nvim-lspconfig.lua | 662 ++++++++++++------------ 1 file changed, 331 insertions(+), 331 deletions(-) diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 50aebc4..880ba42 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -1,331 +1,331 @@ --- Use an on_attach function to only map the following keys --- after the language server attaches to the current buffe -local on_attach = function(client, bufnr) - local function buf_set_keymap(...) - vim.api.nvim_buf_set_keymap(bufnr, ...) - end - local function buf_set_option(...) - vim.api.nvim_buf_set_option(bufnr, ...) - end - - --Enable completion triggered by - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - buf_set_keymap( - 'n', - 'gh', - 'lua require\'lspsaga.provider\'.lsp_finder()', - {noremap = true, silent = true} - ) - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { - noremap = true, - silent = true - }) - buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { - noremap = true, - silent = true - }) - buf_set_keymap( - 'n', - 'K', - 'lua require(\'lspsaga.hover\').render_hover_doc()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', - {noremap = true, silent = true} - ) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { - noremap = true, - silent = true - }) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.signaturehelp\').signature_help()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'wa', - 'lua vim.lsp.buf.add_workspace_folder()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'wr', - 'lua vim.lsp.buf.remove_workspace_folder()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'wl', - 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'ld', - 'lua require\'lspsaga.provider\'.preview_definition()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'lr', - 'lua require(\'lspsaga.rename\').rename()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'la', - 'lua require(\'lspsaga.codeaction\').code_action()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'v', - 'la', - 'lua require(\'lspsaga.codeaction\').range_code_action()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'gr', - 'Telescope lsp_references', - {noremap = true, silent = true} - ) - buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { - noremap = true, - silent = true - }) - buf_set_keymap( - 'n', - '[g', - 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - ']g', - 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'll', - 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', - {noremap = true, silent = true} - ) - buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { - noremap = true, - silent = true - }) - buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { - noremap = true, - silent = true - }) - - if client.name == "html" or client.name == "jsonls" then - client.resolved_capabilities.document_formatting = false - client.resolved_capabilities.document_range_formatting = false - end - - --NOTE: define the auto format on save - if client.resolved_capabilities.document_formatting then - vim.cmd([[ - augroup LspFormatting - autocmd! * - autocmd BufWritePre lua vim.lsp.buf.formatting_sync() - augroup END - ]]) - end -end - ------------------------------------------------------------ - -local lspservers = { - "go:gopls", - "lua:sumneko_lua", - "cpp:clangd", - "cmake:cmake", - "java:jdtls", - "bash:bashls", - "css:cssls", - "html:html", - "typescript:tsserver", - "json:jsonls", - "python:pyright", - "rust:rust_analyzer", - "docker:dockerls", - "vim:vimls", - "vue:vuels", - "yaml:yamlls", - "xml:lemminx", - "yaml:yamlls", - "emmet:emmet_ls", - "docker:dockerls" -} -vim.cmd 'packadd nvim-lsp-installer' - -local function split(s, delimiter) - local result = {}; - for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do - table.insert(result, match); - end - return result; -end - -local function contains(tables, value) - for _, values in pairs(tables) do - if values == value then - return true - end - end - return false -end - --- NOTE: first, install the servers we need -for _, server in ipairs(lspservers) do - local ac_server = split(server, ':'); - if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then - require("nvim-lsp-installer").install(ac_server[2]) - end -end - --- NOTE: then, we should setup the servers - --- use a loop to conveniently call 'setup' on multiple servers and --- map buffer local keybindings when the language server attaches -local lsp_installer = require("nvim-lsp-installer") - -vim.cmd('packadd null-ls.nvim') - -lsp_installer.on_server_ready(function(server) - local opts = { - autostart = true, - on_attach = on_attach, - flags = { - debounce_text_changes = 150, - }, - capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) - } - - --special language emmet_ls - if server.name == "emmet_ls" then - opts.filetypes = { - "html", - "css", - "typescriptreact", - "javascriptreact", - "javascript.jsx" - } - end - - -- special language lua - if server.name == "sumneko_lua" then - opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} - end - - -- special language typescript - if server.name == "tsserver" then - require("null-ls").setup({ - sources = { - require("null-ls").builtins.diagnostics.eslint_d, - require("null-ls").builtins.code_actions.eslint_d, - require("null-ls").builtins.formatting.prettier, - }, - on_attach = on_attach - }) - require 'nvim-treesitter.configs'.setup { - context_commentstring = {enable = true} - } - - if vim.fn.executable('npm') ~= 1 then - print("npm was not found" .. "\n") - else - if vim.fn.executable('eslint_d') ~= 1 then - os.execute('sudo npm install -g eslint_d') - end - if vim.fn.executable('prettier') ~= 1 then - os.execute('sudo npm install -g prettier') - end - end - opts.root_dir = function(fname) - return require 'lspconfig/util'.root_pattern( - "package.json", - "tsconfig.json", - ".git" - )(fname) or vim.loop.cwd() - end - opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) - end - - if server.name == "jdtls" or server.name == 'clangd' then - goto - continue - end - - -- Other default languages - server:setup(opts) - vim.cmd("bufdo e")::continue:: -end) - --- special language java -vim.api.nvim_exec( - [[ - augroup jdtls_lsp - au! - au FileType java lua require('languages.config.server.java.nvim-jdtls').setup() - augroup end - ]], - false -) - --- specical language c/cpp -vim.cmd 'packadd clangd_extensions.nvim' -require("clangd_extensions").setup() - --- NOTE: finally, setup lsp saga and config -vim.cmd ' packadd lspsaga.nvim' -local saga = require 'lspsaga' -saga.init_lsp_saga { - use_saga_diagnostic_sign = true, - error_sign = '❌', - warn_sign = '⚠️ ', - hint_sign = '🌵', - infor_sign = 'ℹ️', - diagnostic_header_icon = '🐞', - code_action_icon = '💡' -} - -------------------------------- ---NOTE: define the diagnostic color ---[[ vim.cmd("hi VirtualTextWarning guifg='yellow'") -vim.cmd("hi VirtualTextError guifg='red'") -vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") -vim.cmd("hi VirtualTextHint guifg=#2c6e4e") -vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") -vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") -vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") -vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") -vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") -vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] - +-- -- Use an on_attach function to only map the following keys +-- -- after the language server attaches to the current buffe +-- local on_attach = function(client, bufnr) +-- local function buf_set_keymap(...) +-- vim.api.nvim_buf_set_keymap(bufnr, ...) +-- end +-- local function buf_set_option(...) +-- vim.api.nvim_buf_set_option(bufnr, ...) +-- end +-- +-- --Enable completion triggered by +-- buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') +-- buf_set_keymap( +-- 'n', +-- 'gh', +-- 'lua require\'lspsaga.provider\'.lsp_finder()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap( +-- 'n', +-- 'K', +-- 'lua require(\'lspsaga.hover\').render_hover_doc()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.signaturehelp\').signature_help()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'wa', +-- 'lua vim.lsp.buf.add_workspace_folder()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'wr', +-- 'lua vim.lsp.buf.remove_workspace_folder()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'wl', +-- 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'ld', +-- 'lua require\'lspsaga.provider\'.preview_definition()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'lr', +-- 'lua require(\'lspsaga.rename\').rename()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'la', +-- 'lua require(\'lspsaga.codeaction\').code_action()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'v', +-- 'la', +-- 'lua require(\'lspsaga.codeaction\').range_code_action()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'gr', +-- 'Telescope lsp_references', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap( +-- 'n', +-- '[g', +-- 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- ']g', +-- 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'll', +-- 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { +-- noremap = true, +-- silent = true +-- }) +-- +-- if client.name == "html" or client.name == "jsonls" then +-- client.resolved_capabilities.document_formatting = false +-- client.resolved_capabilities.document_range_formatting = false +-- end +-- +-- --NOTE: define the auto format on save +-- if client.resolved_capabilities.document_formatting then +-- vim.cmd([[ +-- augroup LspFormatting +-- autocmd! * +-- autocmd BufWritePre lua vim.lsp.buf.formatting_sync() +-- augroup END +-- ]]) +-- end +-- end +-- +-- ----------------------------------------------------------- +-- +-- local lspservers = { +-- "go:gopls", +-- "lua:sumneko_lua", +-- "cpp:clangd", +-- "cmake:cmake", +-- "java:jdtls", +-- "bash:bashls", +-- "css:cssls", +-- "html:html", +-- "typescript:tsserver", +-- "json:jsonls", +-- "python:pyright", +-- "rust:rust_analyzer", +-- "docker:dockerls", +-- "vim:vimls", +-- "vue:vuels", +-- "yaml:yamlls", +-- "xml:lemminx", +-- "yaml:yamlls", +-- "emmet:emmet_ls", +-- "docker:dockerls" +-- } +-- vim.cmd 'packadd nvim-lsp-installer' +-- +-- local function split(s, delimiter) +-- local result = {}; +-- for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do +-- table.insert(result, match); +-- end +-- return result; +-- end +-- +-- local function contains(tables, value) +-- for _, values in pairs(tables) do +-- if values == value then +-- return true +-- end +-- end +-- return false +-- end +-- +-- -- NOTE: first, install the servers we need +-- for _, server in ipairs(lspservers) do +-- local ac_server = split(server, ':'); +-- if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then +-- require("nvim-lsp-installer").install(ac_server[2]) +-- end +-- end +-- +-- -- NOTE: then, we should setup the servers +-- +-- -- use a loop to conveniently call 'setup' on multiple servers and +-- -- map buffer local keybindings when the language server attaches +-- local lsp_installer = require("nvim-lsp-installer") +-- +-- vim.cmd('packadd null-ls.nvim') +-- +-- lsp_installer.on_server_ready(function(server) +-- local opts = { +-- autostart = true, +-- on_attach = on_attach, +-- flags = { +-- debounce_text_changes = 150, +-- }, +-- capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) +-- } +-- +-- --special language emmet_ls +-- if server.name == "emmet_ls" then +-- opts.filetypes = { +-- "html", +-- "css", +-- "typescriptreact", +-- "javascriptreact", +-- "javascript.jsx" +-- } +-- end +-- +-- -- special language lua +-- if server.name == "sumneko_lua" then +-- opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} +-- end +-- +-- -- special language typescript +-- if server.name == "tsserver" then +-- require("null-ls").setup({ +-- sources = { +-- require("null-ls").builtins.diagnostics.eslint_d, +-- require("null-ls").builtins.code_actions.eslint_d, +-- require("null-ls").builtins.formatting.prettier, +-- }, +-- on_attach = on_attach +-- }) +-- require 'nvim-treesitter.configs'.setup { +-- context_commentstring = {enable = true} +-- } +-- +-- if vim.fn.executable('npm') ~= 1 then +-- print("npm was not found" .. "\n") +-- else +-- if vim.fn.executable('eslint_d') ~= 1 then +-- os.execute('sudo npm install -g eslint_d') +-- end +-- if vim.fn.executable('prettier') ~= 1 then +-- os.execute('sudo npm install -g prettier') +-- end +-- end +-- opts.root_dir = function(fname) +-- return require 'lspconfig/util'.root_pattern( +-- "package.json", +-- "tsconfig.json", +-- ".git" +-- )(fname) or vim.loop.cwd() +-- end +-- opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) +-- end +-- +-- if server.name == "jdtls" or server.name == 'clangd' then +-- goto +-- continue +-- end +-- +-- -- Other default languages +-- server:setup(opts) +-- vim.cmd("bufdo e")::continue:: +-- end) +-- +-- -- special language java +-- vim.api.nvim_exec( +-- [[ +-- augroup jdtls_lsp +-- au! +-- au FileType java lua require('languages.config.server.java.nvim-jdtls').setup() +-- augroup end +-- ]], +-- false +-- ) +-- +-- -- specical language c/cpp +-- vim.cmd 'packadd clangd_extensions.nvim' +-- require("clangd_extensions").setup() +-- +-- -- NOTE: finally, setup lsp saga and config +-- vim.cmd ' packadd lspsaga.nvim' +-- local saga = require 'lspsaga' +-- saga.init_lsp_saga { +-- use_saga_diagnostic_sign = true, +-- error_sign = '❌', +-- warn_sign = '⚠️ ', +-- hint_sign = '🌵', +-- infor_sign = 'ℹ️', +-- diagnostic_header_icon = '🐞', +-- code_action_icon = '💡' +-- } +-- +-- ------------------------------- +-- --NOTE: define the diagnostic color +-- --[[ vim.cmd("hi VirtualTextWarning guifg='yellow'") +-- vim.cmd("hi VirtualTextError guifg='red'") +-- vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") +-- vim.cmd("hi VirtualTextHint guifg=#2c6e4e") +-- vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") +-- vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") +-- vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") +-- vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") +-- vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") +-- vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] +-- From 8da7067eec1342167e64681266cab98399200509 Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 14 Jun 2023 00:00:23 +0800 Subject: [PATCH 76/92] open lspconfig --- lua/languages/config/nvim-lspconfig.lua | 662 ++++++++++++------------ 1 file changed, 331 insertions(+), 331 deletions(-) diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 880ba42..50aebc4 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -1,331 +1,331 @@ --- -- Use an on_attach function to only map the following keys --- -- after the language server attaches to the current buffe --- local on_attach = function(client, bufnr) --- local function buf_set_keymap(...) --- vim.api.nvim_buf_set_keymap(bufnr, ...) --- end --- local function buf_set_option(...) --- vim.api.nvim_buf_set_option(bufnr, ...) --- end --- --- --Enable completion triggered by --- buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') --- buf_set_keymap( --- 'n', --- 'gh', --- 'lua require\'lspsaga.provider\'.lsp_finder()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap( --- 'n', --- 'K', --- 'lua require(\'lspsaga.hover\').render_hover_doc()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', --- {noremap = true, silent = true} --- ) --- buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.signaturehelp\').signature_help()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'wa', --- 'lua vim.lsp.buf.add_workspace_folder()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'wr', --- 'lua vim.lsp.buf.remove_workspace_folder()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'wl', --- 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'ld', --- 'lua require\'lspsaga.provider\'.preview_definition()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'lr', --- 'lua require(\'lspsaga.rename\').rename()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'la', --- 'lua require(\'lspsaga.codeaction\').code_action()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'v', --- 'la', --- 'lua require(\'lspsaga.codeaction\').range_code_action()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'gr', --- 'Telescope lsp_references', --- {noremap = true, silent = true} --- ) --- buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap( --- 'n', --- '[g', --- 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- ']g', --- 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'll', --- 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { --- noremap = true, --- silent = true --- }) --- --- if client.name == "html" or client.name == "jsonls" then --- client.resolved_capabilities.document_formatting = false --- client.resolved_capabilities.document_range_formatting = false --- end --- --- --NOTE: define the auto format on save --- if client.resolved_capabilities.document_formatting then --- vim.cmd([[ --- augroup LspFormatting --- autocmd! * --- autocmd BufWritePre lua vim.lsp.buf.formatting_sync() --- augroup END --- ]]) --- end --- end --- --- ----------------------------------------------------------- --- --- local lspservers = { --- "go:gopls", --- "lua:sumneko_lua", --- "cpp:clangd", --- "cmake:cmake", --- "java:jdtls", --- "bash:bashls", --- "css:cssls", --- "html:html", --- "typescript:tsserver", --- "json:jsonls", --- "python:pyright", --- "rust:rust_analyzer", --- "docker:dockerls", --- "vim:vimls", --- "vue:vuels", --- "yaml:yamlls", --- "xml:lemminx", --- "yaml:yamlls", --- "emmet:emmet_ls", --- "docker:dockerls" --- } --- vim.cmd 'packadd nvim-lsp-installer' --- --- local function split(s, delimiter) --- local result = {}; --- for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do --- table.insert(result, match); --- end --- return result; --- end --- --- local function contains(tables, value) --- for _, values in pairs(tables) do --- if values == value then --- return true --- end --- end --- return false --- end --- --- -- NOTE: first, install the servers we need --- for _, server in ipairs(lspservers) do --- local ac_server = split(server, ':'); --- if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then --- require("nvim-lsp-installer").install(ac_server[2]) --- end --- end --- --- -- NOTE: then, we should setup the servers --- --- -- use a loop to conveniently call 'setup' on multiple servers and --- -- map buffer local keybindings when the language server attaches --- local lsp_installer = require("nvim-lsp-installer") --- --- vim.cmd('packadd null-ls.nvim') --- --- lsp_installer.on_server_ready(function(server) --- local opts = { --- autostart = true, --- on_attach = on_attach, --- flags = { --- debounce_text_changes = 150, --- }, --- capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) --- } --- --- --special language emmet_ls --- if server.name == "emmet_ls" then --- opts.filetypes = { --- "html", --- "css", --- "typescriptreact", --- "javascriptreact", --- "javascript.jsx" --- } --- end --- --- -- special language lua --- if server.name == "sumneko_lua" then --- opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} --- end --- --- -- special language typescript --- if server.name == "tsserver" then --- require("null-ls").setup({ --- sources = { --- require("null-ls").builtins.diagnostics.eslint_d, --- require("null-ls").builtins.code_actions.eslint_d, --- require("null-ls").builtins.formatting.prettier, --- }, --- on_attach = on_attach --- }) --- require 'nvim-treesitter.configs'.setup { --- context_commentstring = {enable = true} --- } --- --- if vim.fn.executable('npm') ~= 1 then --- print("npm was not found" .. "\n") --- else --- if vim.fn.executable('eslint_d') ~= 1 then --- os.execute('sudo npm install -g eslint_d') --- end --- if vim.fn.executable('prettier') ~= 1 then --- os.execute('sudo npm install -g prettier') --- end --- end --- opts.root_dir = function(fname) --- return require 'lspconfig/util'.root_pattern( --- "package.json", --- "tsconfig.json", --- ".git" --- )(fname) or vim.loop.cwd() --- end --- opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) --- end --- --- if server.name == "jdtls" or server.name == 'clangd' then --- goto --- continue --- end --- --- -- Other default languages --- server:setup(opts) --- vim.cmd("bufdo e")::continue:: --- end) --- --- -- special language java --- vim.api.nvim_exec( --- [[ --- augroup jdtls_lsp --- au! --- au FileType java lua require('languages.config.server.java.nvim-jdtls').setup() --- augroup end --- ]], --- false --- ) --- --- -- specical language c/cpp --- vim.cmd 'packadd clangd_extensions.nvim' --- require("clangd_extensions").setup() --- --- -- NOTE: finally, setup lsp saga and config --- vim.cmd ' packadd lspsaga.nvim' --- local saga = require 'lspsaga' --- saga.init_lsp_saga { --- use_saga_diagnostic_sign = true, --- error_sign = '❌', --- warn_sign = '⚠️ ', --- hint_sign = '🌵', --- infor_sign = 'ℹ️', --- diagnostic_header_icon = '🐞', --- code_action_icon = '💡' --- } --- --- ------------------------------- --- --NOTE: define the diagnostic color --- --[[ vim.cmd("hi VirtualTextWarning guifg='yellow'") --- vim.cmd("hi VirtualTextError guifg='red'") --- vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") --- vim.cmd("hi VirtualTextHint guifg=#2c6e4e") --- vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") --- vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") --- vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") --- vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") --- vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") --- vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] --- +-- Use an on_attach function to only map the following keys +-- after the language server attaches to the current buffe +local on_attach = function(client, bufnr) + local function buf_set_keymap(...) + vim.api.nvim_buf_set_keymap(bufnr, ...) + end + local function buf_set_option(...) + vim.api.nvim_buf_set_option(bufnr, ...) + end + + --Enable completion triggered by + buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + buf_set_keymap( + 'n', + 'gh', + 'lua require\'lspsaga.provider\'.lsp_finder()', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { + noremap = true, + silent = true + }) + buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { + noremap = true, + silent = true + }) + buf_set_keymap( + 'n', + 'K', + 'lua require(\'lspsaga.hover\').render_hover_doc()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { + noremap = true, + silent = true + }) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.signaturehelp\').signature_help()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'wa', + 'lua vim.lsp.buf.add_workspace_folder()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'wr', + 'lua vim.lsp.buf.remove_workspace_folder()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'wl', + 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'ld', + 'lua require\'lspsaga.provider\'.preview_definition()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'lr', + 'lua require(\'lspsaga.rename\').rename()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'la', + 'lua require(\'lspsaga.codeaction\').code_action()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'v', + 'la', + 'lua require(\'lspsaga.codeaction\').range_code_action()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'gr', + 'Telescope lsp_references', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { + noremap = true, + silent = true + }) + buf_set_keymap( + 'n', + '[g', + 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + ']g', + 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'll', + 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { + noremap = true, + silent = true + }) + buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { + noremap = true, + silent = true + }) + + if client.name == "html" or client.name == "jsonls" then + client.resolved_capabilities.document_formatting = false + client.resolved_capabilities.document_range_formatting = false + end + + --NOTE: define the auto format on save + if client.resolved_capabilities.document_formatting then + vim.cmd([[ + augroup LspFormatting + autocmd! * + autocmd BufWritePre lua vim.lsp.buf.formatting_sync() + augroup END + ]]) + end +end + +----------------------------------------------------------- + +local lspservers = { + "go:gopls", + "lua:sumneko_lua", + "cpp:clangd", + "cmake:cmake", + "java:jdtls", + "bash:bashls", + "css:cssls", + "html:html", + "typescript:tsserver", + "json:jsonls", + "python:pyright", + "rust:rust_analyzer", + "docker:dockerls", + "vim:vimls", + "vue:vuels", + "yaml:yamlls", + "xml:lemminx", + "yaml:yamlls", + "emmet:emmet_ls", + "docker:dockerls" +} +vim.cmd 'packadd nvim-lsp-installer' + +local function split(s, delimiter) + local result = {}; + for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do + table.insert(result, match); + end + return result; +end + +local function contains(tables, value) + for _, values in pairs(tables) do + if values == value then + return true + end + end + return false +end + +-- NOTE: first, install the servers we need +for _, server in ipairs(lspservers) do + local ac_server = split(server, ':'); + if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then + require("nvim-lsp-installer").install(ac_server[2]) + end +end + +-- NOTE: then, we should setup the servers + +-- use a loop to conveniently call 'setup' on multiple servers and +-- map buffer local keybindings when the language server attaches +local lsp_installer = require("nvim-lsp-installer") + +vim.cmd('packadd null-ls.nvim') + +lsp_installer.on_server_ready(function(server) + local opts = { + autostart = true, + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + }, + capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) + } + + --special language emmet_ls + if server.name == "emmet_ls" then + opts.filetypes = { + "html", + "css", + "typescriptreact", + "javascriptreact", + "javascript.jsx" + } + end + + -- special language lua + if server.name == "sumneko_lua" then + opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} + end + + -- special language typescript + if server.name == "tsserver" then + require("null-ls").setup({ + sources = { + require("null-ls").builtins.diagnostics.eslint_d, + require("null-ls").builtins.code_actions.eslint_d, + require("null-ls").builtins.formatting.prettier, + }, + on_attach = on_attach + }) + require 'nvim-treesitter.configs'.setup { + context_commentstring = {enable = true} + } + + if vim.fn.executable('npm') ~= 1 then + print("npm was not found" .. "\n") + else + if vim.fn.executable('eslint_d') ~= 1 then + os.execute('sudo npm install -g eslint_d') + end + if vim.fn.executable('prettier') ~= 1 then + os.execute('sudo npm install -g prettier') + end + end + opts.root_dir = function(fname) + return require 'lspconfig/util'.root_pattern( + "package.json", + "tsconfig.json", + ".git" + )(fname) or vim.loop.cwd() + end + opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) + end + + if server.name == "jdtls" or server.name == 'clangd' then + goto + continue + end + + -- Other default languages + server:setup(opts) + vim.cmd("bufdo e")::continue:: +end) + +-- special language java +vim.api.nvim_exec( + [[ + augroup jdtls_lsp + au! + au FileType java lua require('languages.config.server.java.nvim-jdtls').setup() + augroup end + ]], + false +) + +-- specical language c/cpp +vim.cmd 'packadd clangd_extensions.nvim' +require("clangd_extensions").setup() + +-- NOTE: finally, setup lsp saga and config +vim.cmd ' packadd lspsaga.nvim' +local saga = require 'lspsaga' +saga.init_lsp_saga { + use_saga_diagnostic_sign = true, + error_sign = '❌', + warn_sign = '⚠️ ', + hint_sign = '🌵', + infor_sign = 'ℹ️', + diagnostic_header_icon = '🐞', + code_action_icon = '💡' +} + +------------------------------- +--NOTE: define the diagnostic color +--[[ vim.cmd("hi VirtualTextWarning guifg='yellow'") +vim.cmd("hi VirtualTextError guifg='red'") +vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") +vim.cmd("hi VirtualTextHint guifg=#2c6e4e") +vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") +vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") +vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") +vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") +vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") +vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] + From 10539b5ed84bfbca505a9324740f8de4e11ea65e Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 14 Jun 2023 00:04:01 +0800 Subject: [PATCH 77/92] use mason instead of lsp-installer --- lua/core/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index beba030..33aa8c6 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -171,7 +171,7 @@ packer.startup(function(use) --language service protocol client 'neovim/nvim-lspconfig', requires = { - {'williamboman/nvim-lsp-installer', after = 'nvim-lspconfig'}, + {'"williamboman/mason.nvim"', after = 'nvim-lspconfig'}, {'tami5/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, {'p00f/clangd_extensions.nvim', after = 'nvim-lspconfig'}, From c766cda1af87632b69350b4d4b3174cd999a3aa6 Mon Sep 17 00:00:00 2001 From: JryChn Date: Wed, 14 Jun 2023 00:06:35 +0800 Subject: [PATCH 78/92] upgrade mason --- lua/core/init.lua | 2 +- lua/languages/config/nvim-lspconfig.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 33aa8c6..ee7b893 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -171,7 +171,7 @@ packer.startup(function(use) --language service protocol client 'neovim/nvim-lspconfig', requires = { - {'"williamboman/mason.nvim"', after = 'nvim-lspconfig'}, + {'"williamboman/mason.nvim"', after = 'nvim-lspconfig',run = ":MasonUpdate"}, {'tami5/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, {'p00f/clangd_extensions.nvim', after = 'nvim-lspconfig'}, diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 50aebc4..2cc8f32 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -183,7 +183,7 @@ local lspservers = { "emmet:emmet_ls", "docker:dockerls" } -vim.cmd 'packadd nvim-lsp-installer' +vim.cmd 'packadd mason' local function split(s, delimiter) local result = {}; @@ -214,7 +214,7 @@ end -- use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches -local lsp_installer = require("nvim-lsp-installer") +local lsp_installer = require("mason") vim.cmd('packadd null-ls.nvim') From 9d6272beaecf39216f6d325c992b692ac97d9c79 Mon Sep 17 00:00:00 2001 From: JryChn Date: Tue, 27 Jun 2023 00:00:47 +0800 Subject: [PATCH 79/92] comment mason for upgrade --- lua/languages/config/nvim-lspconfig.lua | 662 ++++++++++++------------ 1 file changed, 331 insertions(+), 331 deletions(-) diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 2cc8f32..f4c6e55 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -1,331 +1,331 @@ --- Use an on_attach function to only map the following keys --- after the language server attaches to the current buffe -local on_attach = function(client, bufnr) - local function buf_set_keymap(...) - vim.api.nvim_buf_set_keymap(bufnr, ...) - end - local function buf_set_option(...) - vim.api.nvim_buf_set_option(bufnr, ...) - end - - --Enable completion triggered by - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - buf_set_keymap( - 'n', - 'gh', - 'lua require\'lspsaga.provider\'.lsp_finder()', - {noremap = true, silent = true} - ) - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { - noremap = true, - silent = true - }) - buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { - noremap = true, - silent = true - }) - buf_set_keymap( - 'n', - 'K', - 'lua require(\'lspsaga.hover\').render_hover_doc()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', - {noremap = true, silent = true} - ) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { - noremap = true, - silent = true - }) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.signaturehelp\').signature_help()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'wa', - 'lua vim.lsp.buf.add_workspace_folder()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'wr', - 'lua vim.lsp.buf.remove_workspace_folder()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'wl', - 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'ld', - 'lua require\'lspsaga.provider\'.preview_definition()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - '', - 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'lr', - 'lua require(\'lspsaga.rename\').rename()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'la', - 'lua require(\'lspsaga.codeaction\').code_action()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'v', - 'la', - 'lua require(\'lspsaga.codeaction\').range_code_action()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'gr', - 'Telescope lsp_references', - {noremap = true, silent = true} - ) - buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { - noremap = true, - silent = true - }) - buf_set_keymap( - 'n', - '[g', - 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - ']g', - 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', - {noremap = true, silent = true} - ) - buf_set_keymap( - 'n', - 'll', - 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', - {noremap = true, silent = true} - ) - buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { - noremap = true, - silent = true - }) - buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { - noremap = true, - silent = true - }) - - if client.name == "html" or client.name == "jsonls" then - client.resolved_capabilities.document_formatting = false - client.resolved_capabilities.document_range_formatting = false - end - - --NOTE: define the auto format on save - if client.resolved_capabilities.document_formatting then - vim.cmd([[ - augroup LspFormatting - autocmd! * - autocmd BufWritePre lua vim.lsp.buf.formatting_sync() - augroup END - ]]) - end -end - ------------------------------------------------------------ - -local lspservers = { - "go:gopls", - "lua:sumneko_lua", - "cpp:clangd", - "cmake:cmake", - "java:jdtls", - "bash:bashls", - "css:cssls", - "html:html", - "typescript:tsserver", - "json:jsonls", - "python:pyright", - "rust:rust_analyzer", - "docker:dockerls", - "vim:vimls", - "vue:vuels", - "yaml:yamlls", - "xml:lemminx", - "yaml:yamlls", - "emmet:emmet_ls", - "docker:dockerls" -} -vim.cmd 'packadd mason' - -local function split(s, delimiter) - local result = {}; - for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do - table.insert(result, match); - end - return result; -end - -local function contains(tables, value) - for _, values in pairs(tables) do - if values == value then - return true - end - end - return false -end - --- NOTE: first, install the servers we need -for _, server in ipairs(lspservers) do - local ac_server = split(server, ':'); - if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then - require("nvim-lsp-installer").install(ac_server[2]) - end -end - --- NOTE: then, we should setup the servers - --- use a loop to conveniently call 'setup' on multiple servers and --- map buffer local keybindings when the language server attaches -local lsp_installer = require("mason") - -vim.cmd('packadd null-ls.nvim') - -lsp_installer.on_server_ready(function(server) - local opts = { - autostart = true, - on_attach = on_attach, - flags = { - debounce_text_changes = 150, - }, - capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) - } - - --special language emmet_ls - if server.name == "emmet_ls" then - opts.filetypes = { - "html", - "css", - "typescriptreact", - "javascriptreact", - "javascript.jsx" - } - end - - -- special language lua - if server.name == "sumneko_lua" then - opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} - end - - -- special language typescript - if server.name == "tsserver" then - require("null-ls").setup({ - sources = { - require("null-ls").builtins.diagnostics.eslint_d, - require("null-ls").builtins.code_actions.eslint_d, - require("null-ls").builtins.formatting.prettier, - }, - on_attach = on_attach - }) - require 'nvim-treesitter.configs'.setup { - context_commentstring = {enable = true} - } - - if vim.fn.executable('npm') ~= 1 then - print("npm was not found" .. "\n") - else - if vim.fn.executable('eslint_d') ~= 1 then - os.execute('sudo npm install -g eslint_d') - end - if vim.fn.executable('prettier') ~= 1 then - os.execute('sudo npm install -g prettier') - end - end - opts.root_dir = function(fname) - return require 'lspconfig/util'.root_pattern( - "package.json", - "tsconfig.json", - ".git" - )(fname) or vim.loop.cwd() - end - opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) - end - - if server.name == "jdtls" or server.name == 'clangd' then - goto - continue - end - - -- Other default languages - server:setup(opts) - vim.cmd("bufdo e")::continue:: -end) - --- special language java -vim.api.nvim_exec( - [[ - augroup jdtls_lsp - au! - au FileType java lua require('languages.config.server.java.nvim-jdtls').setup() - augroup end - ]], - false -) - --- specical language c/cpp -vim.cmd 'packadd clangd_extensions.nvim' -require("clangd_extensions").setup() - --- NOTE: finally, setup lsp saga and config -vim.cmd ' packadd lspsaga.nvim' -local saga = require 'lspsaga' -saga.init_lsp_saga { - use_saga_diagnostic_sign = true, - error_sign = '❌', - warn_sign = '⚠️ ', - hint_sign = '🌵', - infor_sign = 'ℹ️', - diagnostic_header_icon = '🐞', - code_action_icon = '💡' -} - -------------------------------- ---NOTE: define the diagnostic color ---[[ vim.cmd("hi VirtualTextWarning guifg='yellow'") -vim.cmd("hi VirtualTextError guifg='red'") -vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") -vim.cmd("hi VirtualTextHint guifg=#2c6e4e") -vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") -vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") -vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") -vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") -vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") -vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] - +-- -- Use an on_attach function to only map the following keys +-- -- after the language server attaches to the current buffe +-- local on_attach = function(client, bufnr) +-- local function buf_set_keymap(...) +-- vim.api.nvim_buf_set_keymap(bufnr, ...) +-- end +-- local function buf_set_option(...) +-- vim.api.nvim_buf_set_option(bufnr, ...) +-- end +-- +-- --Enable completion triggered by +-- buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') +-- buf_set_keymap( +-- 'n', +-- 'gh', +-- 'lua require\'lspsaga.provider\'.lsp_finder()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap( +-- 'n', +-- 'K', +-- 'lua require(\'lspsaga.hover\').render_hover_doc()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.signaturehelp\').signature_help()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'wa', +-- 'lua vim.lsp.buf.add_workspace_folder()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'wr', +-- 'lua vim.lsp.buf.remove_workspace_folder()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'wl', +-- 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'ld', +-- 'lua require\'lspsaga.provider\'.preview_definition()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- '', +-- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'lr', +-- 'lua require(\'lspsaga.rename\').rename()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'la', +-- 'lua require(\'lspsaga.codeaction\').code_action()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'v', +-- 'la', +-- 'lua require(\'lspsaga.codeaction\').range_code_action()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'gr', +-- 'Telescope lsp_references', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap( +-- 'n', +-- '[g', +-- 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- ']g', +-- 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap( +-- 'n', +-- 'll', +-- 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', +-- {noremap = true, silent = true} +-- ) +-- buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { +-- noremap = true, +-- silent = true +-- }) +-- buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { +-- noremap = true, +-- silent = true +-- }) +-- +-- if client.name == "html" or client.name == "jsonls" then +-- client.resolved_capabilities.document_formatting = false +-- client.resolved_capabilities.document_range_formatting = false +-- end +-- +-- --NOTE: define the auto format on save +-- if client.resolved_capabilities.document_formatting then +-- vim.cmd([[ +-- augroup LspFormatting +-- autocmd! * +-- autocmd BufWritePre lua vim.lsp.buf.formatting_sync() +-- augroup END +-- ]]) +-- end +-- end +-- +-- ----------------------------------------------------------- +-- +-- local lspservers = { +-- "go:gopls", +-- "lua:sumneko_lua", +-- "cpp:clangd", +-- "cmake:cmake", +-- "java:jdtls", +-- "bash:bashls", +-- "css:cssls", +-- "html:html", +-- "typescript:tsserver", +-- "json:jsonls", +-- "python:pyright", +-- "rust:rust_analyzer", +-- "docker:dockerls", +-- "vim:vimls", +-- "vue:vuels", +-- "yaml:yamlls", +-- "xml:lemminx", +-- "yaml:yamlls", +-- "emmet:emmet_ls", +-- "docker:dockerls" +-- } +-- vim.cmd 'packadd mason' +-- +-- local function split(s, delimiter) +-- local result = {}; +-- for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do +-- table.insert(result, match); +-- end +-- return result; +-- end +-- +-- local function contains(tables, value) +-- for _, values in pairs(tables) do +-- if values == value then +-- return true +-- end +-- end +-- return false +-- end +-- +-- -- NOTE: first, install the servers we need +-- for _, server in ipairs(lspservers) do +-- local ac_server = split(server, ':'); +-- if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then +-- require("nvim-lsp-installer").install(ac_server[2]) +-- end +-- end +-- +-- -- NOTE: then, we should setup the servers +-- +-- -- use a loop to conveniently call 'setup' on multiple servers and +-- -- map buffer local keybindings when the language server attaches +-- local lsp_installer = require("mason") +-- +-- vim.cmd('packadd null-ls.nvim') +-- +-- lsp_installer.on_server_ready(function(server) +-- local opts = { +-- autostart = true, +-- on_attach = on_attach, +-- flags = { +-- debounce_text_changes = 150, +-- }, +-- capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) +-- } +-- +-- --special language emmet_ls +-- if server.name == "emmet_ls" then +-- opts.filetypes = { +-- "html", +-- "css", +-- "typescriptreact", +-- "javascriptreact", +-- "javascript.jsx" +-- } +-- end +-- +-- -- special language lua +-- if server.name == "sumneko_lua" then +-- opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} +-- end +-- +-- -- special language typescript +-- if server.name == "tsserver" then +-- require("null-ls").setup({ +-- sources = { +-- require("null-ls").builtins.diagnostics.eslint_d, +-- require("null-ls").builtins.code_actions.eslint_d, +-- require("null-ls").builtins.formatting.prettier, +-- }, +-- on_attach = on_attach +-- }) +-- require 'nvim-treesitter.configs'.setup { +-- context_commentstring = {enable = true} +-- } +-- +-- if vim.fn.executable('npm') ~= 1 then +-- print("npm was not found" .. "\n") +-- else +-- if vim.fn.executable('eslint_d') ~= 1 then +-- os.execute('sudo npm install -g eslint_d') +-- end +-- if vim.fn.executable('prettier') ~= 1 then +-- os.execute('sudo npm install -g prettier') +-- end +-- end +-- opts.root_dir = function(fname) +-- return require 'lspconfig/util'.root_pattern( +-- "package.json", +-- "tsconfig.json", +-- ".git" +-- )(fname) or vim.loop.cwd() +-- end +-- opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) +-- end +-- +-- if server.name == "jdtls" or server.name == 'clangd' then +-- goto +-- continue +-- end +-- +-- -- Other default languages +-- server:setup(opts) +-- vim.cmd("bufdo e")::continue:: +-- end) +-- +-- -- special language java +-- vim.api.nvim_exec( +-- [[ +-- augroup jdtls_lsp +-- au! +-- au FileType java lua require('languages.config.server.java.nvim-jdtls').setup() +-- augroup end +-- ]], +-- false +-- ) +-- +-- -- specical language c/cpp +-- vim.cmd 'packadd clangd_extensions.nvim' +-- require("clangd_extensions").setup() +-- +-- -- NOTE: finally, setup lsp saga and config +-- vim.cmd ' packadd lspsaga.nvim' +-- local saga = require 'lspsaga' +-- saga.init_lsp_saga { +-- use_saga_diagnostic_sign = true, +-- error_sign = '❌', +-- warn_sign = '⚠️ ', +-- hint_sign = '🌵', +-- infor_sign = 'ℹ️', +-- diagnostic_header_icon = '🐞', +-- code_action_icon = '💡' +-- } +-- +-- ------------------------------- +-- --NOTE: define the diagnostic color +-- --[[ vim.cmd("hi VirtualTextWarning guifg='yellow'") +-- vim.cmd("hi VirtualTextError guifg='red'") +-- vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") +-- vim.cmd("hi VirtualTextHint guifg=#2c6e4e") +-- vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") +-- vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") +-- vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") +-- vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") +-- vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") +-- vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] +-- From 3992c504564140646fc8c8d0bada704b5383b416 Mon Sep 17 00:00:00 2001 From: JryChn Date: Thu, 6 Jul 2023 17:41:53 +0800 Subject: [PATCH 80/92] format --- lua/languages/config/nvim-lspconfig.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index f4c6e55..9fc9418 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -1,5 +1,5 @@ --- -- Use an on_attach function to only map the following keys --- -- after the language server attaches to the current buffe +-- Use an on_attach function to only map the following keys +-- after the language server attaches to the current buffe -- local on_attach = function(client, bufnr) -- local function buf_set_keymap(...) -- vim.api.nvim_buf_set_keymap(bufnr, ...) From 3fd515a715821835540437a3ca054fc7849f90b8 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Fri, 2 Feb 2024 21:00:34 +0800 Subject: [PATCH 81/92] add some issues --- .../config/server/java/nvim-jdtls.lua | 30 ------------------- 1 file changed, 30 deletions(-) diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua index 9d8940d..e23309a 100644 --- a/lua/languages/config/server/java/nvim-jdtls.lua +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -7,36 +7,6 @@ function M.setup() 'lua vim.lsp.buf.definition()', {silent = true} ) - vim.api.nvim_set_keymap( - "i", - "", - ":w! | lua require'jdtls'.organize_imports()", - {noremap = true} - ) - vim.api.nvim_set_keymap( - "n", - "", - ":w! | lua require'jdtls'.organize_imports()", - {noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'gD', - 'lua vim.lsp.buf.declaration()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'K', - 'lua vim.lsp.buf.hover()', - {silent = true, noremap = true} - ) - vim.api.nvim_set_keymap( - 'n', - 'gI', - 'lua require"telescope.builtin".lsp_implementations()', - {silent = true, noremap = true} - ) vim.api.nvim_set_keymap( 'n', '', From 841a46c007c57d3cf3358a65ac7b8cc8e7322b35 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Wed, 10 Apr 2024 15:32:29 +0800 Subject: [PATCH 82/92] update compare plugin --- lua/languages/config/nvim-cmp.lua | 149 ------------------------------ 1 file changed, 149 deletions(-) diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index fa63150..f9604eb 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -6,152 +6,3 @@ local has_words_before = function() col ):match("%s") == nil end - -local feedkey = function(key, mode) - vim.api.nvim_feedkeys( - vim.api.nvim_replace_termcodes(key, true, true, true), - mode, - true - ) -end -local tab_complete = function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif vim.fn["vsnip#available"]() == 1 then - feedkey("(vsnip-expand-or-jump)", "") - elseif has_words_before() then - cmp.complete() - else - fallback() - end -end -local s_tab_complete = function(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif vim.fn["vsnip#jumpable"](-1) == 1 then - feedkey("(vsnip-jump-prev)", "") - else - fallback() - end -end - -cmp.setup { - snippet = { - expand = function(args) - vim.fn["vsnip#anonymous"](args.body) - end - }, - window = {}, - mapping = cmp.mapping.preset.insert({ - [""] = cmp.mapping(tab_complete, {"i", "s"}), - [""] = cmp.mapping(tab_complete, {"i", "s"}), - [""] = cmp.mapping(s_tab_complete, {"i", "s"}), - [""] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Insert, - select = false - }, - [""] = cmp.mapping(s_tab_complete, {"i", "s"}) - }), - formatting = { - format = function(entry, vim_item) - -- fancy icons and a name of kind - vim_item.kind = require("lspkind").presets.default[vim_item.kind] .. " " .. vim_item.kind - - -- set a name for each source - vim_item.menu = ({ - buffer = "[Buffer]", - nvim_lsp = "[LSP]", - nvim_lua = "[Lua]", - latex_symbols = "[Latex]", - vsnip = "[Snippet]", - path = "[Path]", - look = "[Look]", - cmp_tabnine = "[T9]", - treesitter = "[Treesitter]", - calc = "[Clac]", - emoji = "[Emoji]", - spell = "[Spell]", - tags = "[Tags]" - })[entry.source.name] - return vim_item - end, - }, - sources = cmp.config.sources({ - {name = "nvim_lsp"}, - {name = "vsnip"}, - {name = "buffer"}, - {name = "cmp_tabnine"}, - {name = "path"}, - { - name = "look", - keyword_length = 3, - option = {convert_case = true, loud = true} - }, - {name = "nvim_lua"}, - {name = "treesitter"}, - {name = "calc"}, - {name = "latex_symbols"}, - {name = "emoji"}, - {name = "spell"}, - {name = "tags"}, - - -- path = {kind = "﬜", priority = 10, true}, - -- buffer = {kind = "﬘", priority = 5, true}, - -- calc = {kind = "", priority = 10, true}, - -- vsnip = {kind = "", priority = 9}, - --replace to what sign you prefer - --[[ nvim_lsp = {kind = "", priority = 9, true}, - spell = {kind = "", priority = 4, true}, - tags = {kind = "", priority = 10, true}, - snippets_nvim = {kind = "", priority = 7, true}, - treesitter = {kind = "", priority = 8, true}, - nvim_lua = {kind = "", priority = 9, true}, - tabnine = {priority = 9, true}, - emoji = {kind = "", priority = 9, true} ]] - }) -} - -require('lspkind').init({ - -- enables text annotations - -- - -- default: true - mode = 'symbol_text', - - -- default symbol map - -- can be either 'default' (requires nerd-fonts font) or - -- 'codicons' for codicon preset (requires vscode-codicons font) - -- - -- default: 'default' - preset = 'codicons', - - -- override preset symbols - -- - -- default: {} - 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 = "" - }, -}) From 1e40673b7b8b6dd29c5aa939e6453832c20f2932 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Fri, 5 Jul 2024 21:02:22 +0800 Subject: [PATCH 83/92] rollback for crash change --- lua/languages/config/nvim-cmp.lua | 149 ++++++++++++++++++ .../config/server/java/nvim-jdtls.lua | 30 ++++ 2 files changed, 179 insertions(+) diff --git a/lua/languages/config/nvim-cmp.lua b/lua/languages/config/nvim-cmp.lua index f9604eb..fa63150 100644 --- a/lua/languages/config/nvim-cmp.lua +++ b/lua/languages/config/nvim-cmp.lua @@ -6,3 +6,152 @@ local has_words_before = function() col ):match("%s") == nil end + +local feedkey = function(key, mode) + vim.api.nvim_feedkeys( + vim.api.nvim_replace_termcodes(key, true, true, true), + mode, + true + ) +end +local tab_complete = function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif vim.fn["vsnip#available"]() == 1 then + feedkey("(vsnip-expand-or-jump)", "") + elseif has_words_before() then + cmp.complete() + else + fallback() + end +end +local s_tab_complete = function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif vim.fn["vsnip#jumpable"](-1) == 1 then + feedkey("(vsnip-jump-prev)", "") + else + fallback() + end +end + +cmp.setup { + snippet = { + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) + end + }, + window = {}, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping(tab_complete, {"i", "s"}), + [""] = cmp.mapping(tab_complete, {"i", "s"}), + [""] = cmp.mapping(s_tab_complete, {"i", "s"}), + [""] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Insert, + select = false + }, + [""] = cmp.mapping(s_tab_complete, {"i", "s"}) + }), + formatting = { + format = function(entry, vim_item) + -- fancy icons and a name of kind + vim_item.kind = require("lspkind").presets.default[vim_item.kind] .. " " .. vim_item.kind + + -- set a name for each source + vim_item.menu = ({ + buffer = "[Buffer]", + nvim_lsp = "[LSP]", + nvim_lua = "[Lua]", + latex_symbols = "[Latex]", + vsnip = "[Snippet]", + path = "[Path]", + look = "[Look]", + cmp_tabnine = "[T9]", + treesitter = "[Treesitter]", + calc = "[Clac]", + emoji = "[Emoji]", + spell = "[Spell]", + tags = "[Tags]" + })[entry.source.name] + return vim_item + end, + }, + sources = cmp.config.sources({ + {name = "nvim_lsp"}, + {name = "vsnip"}, + {name = "buffer"}, + {name = "cmp_tabnine"}, + {name = "path"}, + { + name = "look", + keyword_length = 3, + option = {convert_case = true, loud = true} + }, + {name = "nvim_lua"}, + {name = "treesitter"}, + {name = "calc"}, + {name = "latex_symbols"}, + {name = "emoji"}, + {name = "spell"}, + {name = "tags"}, + + -- path = {kind = "﬜", priority = 10, true}, + -- buffer = {kind = "﬘", priority = 5, true}, + -- calc = {kind = "", priority = 10, true}, + -- vsnip = {kind = "", priority = 9}, + --replace to what sign you prefer + --[[ nvim_lsp = {kind = "", priority = 9, true}, + spell = {kind = "", priority = 4, true}, + tags = {kind = "", priority = 10, true}, + snippets_nvim = {kind = "", priority = 7, true}, + treesitter = {kind = "", priority = 8, true}, + nvim_lua = {kind = "", priority = 9, true}, + tabnine = {priority = 9, true}, + emoji = {kind = "", priority = 9, true} ]] + }) +} + +require('lspkind').init({ + -- enables text annotations + -- + -- default: true + mode = 'symbol_text', + + -- default symbol map + -- can be either 'default' (requires nerd-fonts font) or + -- 'codicons' for codicon preset (requires vscode-codicons font) + -- + -- default: 'default' + preset = 'codicons', + + -- override preset symbols + -- + -- default: {} + 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 = "" + }, +}) diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua index e23309a..9d8940d 100644 --- a/lua/languages/config/server/java/nvim-jdtls.lua +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -7,6 +7,36 @@ function M.setup() 'lua vim.lsp.buf.definition()', {silent = true} ) + vim.api.nvim_set_keymap( + "i", + "", + ":w! | lua require'jdtls'.organize_imports()", + {noremap = true} + ) + vim.api.nvim_set_keymap( + "n", + "", + ":w! | lua require'jdtls'.organize_imports()", + {noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'gD', + 'lua vim.lsp.buf.declaration()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'K', + 'lua vim.lsp.buf.hover()', + {silent = true, noremap = true} + ) + vim.api.nvim_set_keymap( + 'n', + 'gI', + 'lua require"telescope.builtin".lsp_implementations()', + {silent = true, noremap = true} + ) vim.api.nvim_set_keymap( 'n', '', From 2b537bb3ba6c62b829d4dd466205548ad3f50636 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Sat, 9 Dec 2023 19:52:24 +0800 Subject: [PATCH 84/92] Compare new plugin and add more influence --- lua/core/config/nvim-tree.lua | 419 +++++++++------------------- lua/core/config/nvim-treesitter.lua | 7 +- 2 files changed, 130 insertions(+), 296 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index 2c81a92..055f021 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -52,7 +52,7 @@ vim.api.nvim_set_keymap( vim.cmd 'packadd which-key.nvim' require "which-key".register({["ft"] = {name = "focus this file on tree"}}) require 'nvim-tree'.setup { - on_attach = on_attach, + on_attach=on_attach, view = { -- width of the window, can be either a number (columns) or a string in `%` width = 26, @@ -60,15 +60,15 @@ require 'nvim-tree'.setup { -- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom' side = 'left', - -- not use mappings anymore, use on_attach. - -- mappings = { - -- -- custom only false will merge the list with the default mappings - -- -- if true, it will only use your list to set the mappings - -- custom_only = false, - -- - -- -- list of mappings to set on the tree manually - -- list = list - -- } + -- not use mappings anymore, use on_attach. +-- mappings = { +-- -- custom only false will merge the list with the default mappings +-- -- if true, it will only use your list to set the mappings +-- custom_only = false, +-- +-- -- list of mappings to set on the tree manually +-- list = list +-- } } } @@ -98,6 +98,9 @@ g.nvim_tree_icons = { -- closes neovim automatically when the tree is the last **WINDOW** in the view vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif") + + + -- -- This function has been generated from your -- view.mappings.list @@ -116,287 +119,119 @@ vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTre -- local function on_attach(bufnr) - local api = require('nvim-tree.api') - - local function opts(desc) - return { - desc = 'nvim-tree: ' .. desc, - buffer = bufnr, - noremap = true, - silent = true, - nowait = true - } - end - - -- Default mappings. Feel free to modify or remove as you wish. - -- - -- BEGIN_DEFAULT_ON_ATTACH - vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) - vim.keymap.set( - 'n', - '', - api.node.open.replace_tree_buffer, - opts('Open: In Place') - ) - vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) - vim.keymap.set( - 'n', - '', - api.fs.rename_sub, - opts('Rename: Omit Filename') - ) - vim.keymap.set('n', '', api.node.open.tab, opts('Open: New Tab')) - vim.keymap.set( - 'n', - '', - api.node.open.vertical, - opts('Open: Vertical Split') - ) - vim.keymap.set( - 'n', - '', - api.node.open.horizontal, - opts('Open: Horizontal Split') - ) - vim.keymap.set( - 'n', - '', - api.node.navigate.parent_close, - opts('Close Directory') - ) - vim.keymap.set('n', '', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '', api.node.open.preview, opts('Open Preview')) - vim.keymap.set( - 'n', - '>', - api.node.navigate.sibling.next, - opts('Next Sibling') - ) - vim.keymap.set( - 'n', - '<', - api.node.navigate.sibling.prev, - opts('Previous Sibling') - ) - vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) - vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) - vim.keymap.set('n', 'a', api.fs.create, opts('Create')) - vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) - vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) - vim.keymap.set( - 'n', - 'B', - api.tree.toggle_no_buffer_filter, - opts('Toggle No Buffer') - ) - vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) - vim.keymap.set( - 'n', - 'C', - api.tree.toggle_git_clean_filter, - opts('Toggle Git Clean') - ) - vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) - vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) - vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) - vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) - vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) - vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) - vim.keymap.set( - 'n', - ']e', - api.node.navigate.diagnostics.next, - opts('Next Diagnostic') - ) - vim.keymap.set( - 'n', - '[e', - api.node.navigate.diagnostics.prev, - opts('Prev Diagnostic') - ) - vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter')) - vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter')) - vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) - vim.keymap.set( - 'n', - 'gy', - api.fs.copy.absolute_path, - opts('Copy Absolute Path') - ) - vim.keymap.set( - 'n', - 'H', - api.tree.toggle_hidden_filter, - opts('Toggle Dotfiles') - ) - vim.keymap.set( - 'n', - 'I', - api.tree.toggle_gitignore_filter, - opts('Toggle Git Ignore') - ) - vim.keymap.set( - 'n', - 'J', - api.node.navigate.sibling.last, - opts('Last Sibling') - ) - vim.keymap.set( - 'n', - 'K', - api.node.navigate.sibling.first, - opts('First Sibling') - ) - vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) - vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) - vim.keymap.set( - 'n', - 'O', - api.node.open.no_window_picker, - opts('Open: No Window Picker') - ) - vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) - vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) - vim.keymap.set('n', 'q', api.tree.close, opts('Close')) - vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) - vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) - vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) - vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) - vim.keymap.set( - 'n', - 'U', - api.tree.toggle_custom_filter, - opts('Toggle Hidden') - ) - vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) - vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) - vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) - vim.keymap.set( - 'n', - 'Y', - api.fs.copy.relative_path, - opts('Copy Relative Path') - ) - vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) - vim.keymap.set( - 'n', - '<2-RightMouse>', - api.tree.change_root_to_node, - opts('CD') - ) - - -- END_DEFAULT_ON_ATTACH - - -- Mappings removed via: - -- remove_keymaps - -- OR - -- view.mappings.list..action = "" - -- - -- The dummy set before del is done for safety, in case a default mapping does not exist. - -- - -- You might tidy things by removing these along with their default mapping. - vim.keymap.set('n', '', '', {buffer = bufnr}) - vim.keymap.del('n', '', {buffer = bufnr}) + local api = require('nvim-tree.api') + + local function opts(desc) + return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } + end + + + -- Default mappings. Feel free to modify or remove as you wish. + -- + -- BEGIN_DEFAULT_ON_ATTACH + vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set('n', '', api.node.open.replace_tree_buffer, opts('Open: In Place')) + vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) + vim.keymap.set('n', '', api.fs.rename_sub, opts('Rename: Omit Filename')) + vim.keymap.set('n', '', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set('n', '', api.node.open.vertical, opts('Open: Vertical Split')) + vim.keymap.set('n', '', api.node.open.horizontal, opts('Open: Horizontal Split')) + vim.keymap.set('n', '', api.node.navigate.parent_close, opts('Close Directory')) + vim.keymap.set('n', '', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '', api.node.open.preview, opts('Open Preview')) + vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) + vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) + vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create')) + vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) + vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) + vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle No Buffer')) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Git Clean')) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) + vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) + vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) + vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic')) + vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic')) + vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter')) + vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter')) + vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) + vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) + vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles')) + vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore')) + vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) + vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) + vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker')) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) + vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) + vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Hidden')) + vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) + vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD')) + -- END_DEFAULT_ON_ATTACH + + + -- Mappings removed via: + -- remove_keymaps + -- OR + -- view.mappings.list..action = "" + -- + -- The dummy set before del is done for safety, in case a default mapping does not exist. + -- + -- You might tidy things by removing these along with their default mapping. + vim.keymap.set('n', '', '', { buffer = bufnr }) + vim.keymap.del('n', '', { buffer = bufnr }) + + + -- Mappings migrated from view.mappings.list + -- + -- You will need to insert "your code goes here" for any mappings with a custom action_cb + vim.keymap.set('n', '', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'l', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split')) + vim.keymap.set('n', 's', api.node.open.horizontal, opts('Open: Horizontal Split')) + vim.keymap.set('n', 't', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) + vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set('n', '', api.node.navigate.parent_close, opts('Close Directory')) + vim.keymap.set('n', 'h', api.node.navigate.parent_close, opts('Close Directory')) + vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) + vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) + vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore')) + vim.keymap.set('n', '.', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles')) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set('n', '', api.fs.rename_sub, opts('Rename: Omit Filename')) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) + vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', '?', api.tree.toggle_help, opts('Help')) + vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) - -- Mappings migrated from view.mappings.list - -- - -- You will need to insert "your code goes here" for any mappings with a custom action_cb - vim.keymap.set('n', '', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'l', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) - vim.keymap.set( - 'n', - 'v', - api.node.open.vertical, - opts('Open: Vertical Split') - ) - vim.keymap.set( - 'n', - 's', - api.node.open.horizontal, - opts('Open: Horizontal Split') - ) - vim.keymap.set('n', 't', api.node.open.tab, opts('Open: New Tab')) - vim.keymap.set( - 'n', - '<', - api.node.navigate.sibling.prev, - opts('Previous Sibling') - ) - vim.keymap.set( - 'n', - '>', - api.node.navigate.sibling.next, - opts('Next Sibling') - ) - vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) - vim.keymap.set( - 'n', - '', - api.node.navigate.parent_close, - opts('Close Directory') - ) - vim.keymap.set( - 'n', - 'h', - api.node.navigate.parent_close, - opts('Close Directory') - ) - vim.keymap.set( - 'n', - 'K', - api.node.navigate.sibling.first, - opts('First Sibling') - ) - vim.keymap.set( - 'n', - 'J', - api.node.navigate.sibling.last, - opts('Last Sibling') - ) - vim.keymap.set( - 'n', - 'I', - api.tree.toggle_gitignore_filter, - opts('Toggle Git Ignore') - ) - vim.keymap.set( - 'n', - '.', - api.tree.toggle_hidden_filter, - opts('Toggle Dotfiles') - ) - vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) - vim.keymap.set('n', 'a', api.fs.create, opts('Create')) - vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) - vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) - vim.keymap.set( - 'n', - '', - api.fs.rename_sub, - opts('Rename: Omit Filename') - ) - vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) - vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) - vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) - vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) - vim.keymap.set( - 'n', - 'Y', - api.fs.copy.relative_path, - opts('Copy Relative Path') - ) - vim.keymap.set( - 'n', - 'gy', - api.fs.copy.absolute_path, - opts('Copy Absolute Path') - ) - vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) - vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) - vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) - vim.keymap.set('n', 'q', api.tree.close, opts('Close')) - vim.keymap.set('n', '?', api.tree.toggle_help, opts('Help')) - vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) end diff --git a/lua/core/config/nvim-treesitter.lua b/lua/core/config/nvim-treesitter.lua index fc1d0fd..fce3bc4 100644 --- a/lua/core/config/nvim-treesitter.lua +++ b/lua/core/config/nvim-treesitter.lua @@ -27,10 +27,9 @@ require 'nvim-treesitter.configs'.setup { "php", "toml", "yaml", - - -- due to treesitter pr:https://github.com/nvim-treesitter/nvim-treesitter/pull/3297 - -- use html to parse xml - -- "xml", +-- due to treesitter pr:https://github.com/nvim-treesitter/nvim-treesitter/pull/3297 +-- use html to parse xml +-- "xml", "vue" }, highlight = {enable = true}, From 4e88fa8b914ea7df77c2d6e167ecb50fb6406996 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Thu, 29 Feb 2024 19:16:54 +0800 Subject: [PATCH 85/92] common fix --- lua/core/config/nvim-tree.lua | 419 +++++++++++++++++++--------- lua/core/config/nvim-treesitter.lua | 7 +- 2 files changed, 296 insertions(+), 130 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index 055f021..2c81a92 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -52,7 +52,7 @@ vim.api.nvim_set_keymap( vim.cmd 'packadd which-key.nvim' require "which-key".register({["ft"] = {name = "focus this file on tree"}}) require 'nvim-tree'.setup { - on_attach=on_attach, + on_attach = on_attach, view = { -- width of the window, can be either a number (columns) or a string in `%` width = 26, @@ -60,15 +60,15 @@ require 'nvim-tree'.setup { -- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom' side = 'left', - -- not use mappings anymore, use on_attach. --- mappings = { --- -- custom only false will merge the list with the default mappings --- -- if true, it will only use your list to set the mappings --- custom_only = false, --- --- -- list of mappings to set on the tree manually --- list = list --- } + -- not use mappings anymore, use on_attach. + -- mappings = { + -- -- custom only false will merge the list with the default mappings + -- -- if true, it will only use your list to set the mappings + -- custom_only = false, + -- + -- -- list of mappings to set on the tree manually + -- list = list + -- } } } @@ -98,9 +98,6 @@ g.nvim_tree_icons = { -- closes neovim automatically when the tree is the last **WINDOW** in the view vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif") - - - -- -- This function has been generated from your -- view.mappings.list @@ -119,119 +116,287 @@ vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTre -- local function on_attach(bufnr) - local api = require('nvim-tree.api') - - local function opts(desc) - return { desc = 'nvim-tree: ' .. desc, buffer = bufnr, noremap = true, silent = true, nowait = true } - end - - - -- Default mappings. Feel free to modify or remove as you wish. - -- - -- BEGIN_DEFAULT_ON_ATTACH - vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) - vim.keymap.set('n', '', api.node.open.replace_tree_buffer, opts('Open: In Place')) - vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) - vim.keymap.set('n', '', api.fs.rename_sub, opts('Rename: Omit Filename')) - vim.keymap.set('n', '', api.node.open.tab, opts('Open: New Tab')) - vim.keymap.set('n', '', api.node.open.vertical, opts('Open: Vertical Split')) - vim.keymap.set('n', '', api.node.open.horizontal, opts('Open: Horizontal Split')) - vim.keymap.set('n', '', api.node.navigate.parent_close, opts('Close Directory')) - vim.keymap.set('n', '', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '', api.node.open.preview, opts('Open Preview')) - vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) - vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) - vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) - vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) - vim.keymap.set('n', 'a', api.fs.create, opts('Create')) - vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) - vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) - vim.keymap.set('n', 'B', api.tree.toggle_no_buffer_filter, opts('Toggle No Buffer')) - vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) - vim.keymap.set('n', 'C', api.tree.toggle_git_clean_filter, opts('Toggle Git Clean')) - vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) - vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) - vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) - vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) - vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) - vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) - vim.keymap.set('n', ']e', api.node.navigate.diagnostics.next, opts('Next Diagnostic')) - vim.keymap.set('n', '[e', api.node.navigate.diagnostics.prev, opts('Prev Diagnostic')) - vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter')) - vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter')) - vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) - vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) - vim.keymap.set('n', 'H', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles')) - vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore')) - vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) - vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) - vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) - vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'O', api.node.open.no_window_picker, opts('Open: No Window Picker')) - vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) - vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) - vim.keymap.set('n', 'q', api.tree.close, opts('Close')) - vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) - vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) - vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) - vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) - vim.keymap.set('n', 'U', api.tree.toggle_custom_filter, opts('Toggle Hidden')) - vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) - vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) - vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) - vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) - vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '<2-RightMouse>', api.tree.change_root_to_node, opts('CD')) - -- END_DEFAULT_ON_ATTACH - - - -- Mappings removed via: - -- remove_keymaps - -- OR - -- view.mappings.list..action = "" - -- - -- The dummy set before del is done for safety, in case a default mapping does not exist. - -- - -- You might tidy things by removing these along with their default mapping. - vim.keymap.set('n', '', '', { buffer = bufnr }) - vim.keymap.del('n', '', { buffer = bufnr }) - - - -- Mappings migrated from view.mappings.list - -- - -- You will need to insert "your code goes here" for any mappings with a custom action_cb - vim.keymap.set('n', '', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'l', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) - vim.keymap.set('n', 'v', api.node.open.vertical, opts('Open: Vertical Split')) - vim.keymap.set('n', 's', api.node.open.horizontal, opts('Open: Horizontal Split')) - vim.keymap.set('n', 't', api.node.open.tab, opts('Open: New Tab')) - vim.keymap.set('n', '<', api.node.navigate.sibling.prev, opts('Previous Sibling')) - vim.keymap.set('n', '>', api.node.navigate.sibling.next, opts('Next Sibling')) - vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) - vim.keymap.set('n', '', api.node.navigate.parent_close, opts('Close Directory')) - vim.keymap.set('n', 'h', api.node.navigate.parent_close, opts('Close Directory')) - vim.keymap.set('n', 'K', api.node.navigate.sibling.first, opts('First Sibling')) - vim.keymap.set('n', 'J', api.node.navigate.sibling.last, opts('Last Sibling')) - vim.keymap.set('n', 'I', api.tree.toggle_gitignore_filter, opts('Toggle Git Ignore')) - vim.keymap.set('n', '.', api.tree.toggle_hidden_filter, opts('Toggle Dotfiles')) - vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) - vim.keymap.set('n', 'a', api.fs.create, opts('Create')) - vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) - vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) - vim.keymap.set('n', '', api.fs.rename_sub, opts('Rename: Omit Filename')) - vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) - vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) - vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) - vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) - vim.keymap.set('n', 'Y', api.fs.copy.relative_path, opts('Copy Relative Path')) - vim.keymap.set('n', 'gy', api.fs.copy.absolute_path, opts('Copy Absolute Path')) - vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) - vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) - vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) - vim.keymap.set('n', 'q', api.tree.close, opts('Close')) - vim.keymap.set('n', '?', api.tree.toggle_help, opts('Help')) - vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) + local api = require('nvim-tree.api') + + local function opts(desc) + return { + desc = 'nvim-tree: ' .. desc, + buffer = bufnr, + noremap = true, + silent = true, + nowait = true + } + end + + -- Default mappings. Feel free to modify or remove as you wish. + -- + -- BEGIN_DEFAULT_ON_ATTACH + vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set( + 'n', + '', + api.node.open.replace_tree_buffer, + opts('Open: In Place') + ) + vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) + vim.keymap.set( + 'n', + '', + api.fs.rename_sub, + opts('Rename: Omit Filename') + ) + vim.keymap.set('n', '', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set( + 'n', + '', + api.node.open.vertical, + opts('Open: Vertical Split') + ) + vim.keymap.set( + 'n', + '', + api.node.open.horizontal, + opts('Open: Horizontal Split') + ) + vim.keymap.set( + 'n', + '', + api.node.navigate.parent_close, + opts('Close Directory') + ) + vim.keymap.set('n', '', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '', api.node.open.preview, opts('Open Preview')) + vim.keymap.set( + 'n', + '>', + api.node.navigate.sibling.next, + opts('Next Sibling') + ) + vim.keymap.set( + 'n', + '<', + api.node.navigate.sibling.prev, + opts('Previous Sibling') + ) + vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create')) + vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) + vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) + vim.keymap.set( + 'n', + 'B', + api.tree.toggle_no_buffer_filter, + opts('Toggle No Buffer') + ) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set( + 'n', + 'C', + api.tree.toggle_git_clean_filter, + opts('Toggle Git Clean') + ) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) + vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) + vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) + vim.keymap.set( + 'n', + ']e', + api.node.navigate.diagnostics.next, + opts('Next Diagnostic') + ) + vim.keymap.set( + 'n', + '[e', + api.node.navigate.diagnostics.prev, + opts('Prev Diagnostic') + ) + vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter')) + vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter')) + vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) + vim.keymap.set( + 'n', + 'gy', + api.fs.copy.absolute_path, + opts('Copy Absolute Path') + ) + vim.keymap.set( + 'n', + 'H', + api.tree.toggle_hidden_filter, + opts('Toggle Dotfiles') + ) + vim.keymap.set( + 'n', + 'I', + api.tree.toggle_gitignore_filter, + opts('Toggle Git Ignore') + ) + vim.keymap.set( + 'n', + 'J', + api.node.navigate.sibling.last, + opts('Last Sibling') + ) + vim.keymap.set( + 'n', + 'K', + api.node.navigate.sibling.first, + opts('First Sibling') + ) + vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set( + 'n', + 'O', + api.node.open.no_window_picker, + opts('Open: No Window Picker') + ) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) + vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) + vim.keymap.set( + 'n', + 'U', + api.tree.toggle_custom_filter, + opts('Toggle Hidden') + ) + vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set( + 'n', + 'Y', + api.fs.copy.relative_path, + opts('Copy Relative Path') + ) + vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) + vim.keymap.set( + 'n', + '<2-RightMouse>', + api.tree.change_root_to_node, + opts('CD') + ) + + -- END_DEFAULT_ON_ATTACH + + -- Mappings removed via: + -- remove_keymaps + -- OR + -- view.mappings.list..action = "" + -- + -- The dummy set before del is done for safety, in case a default mapping does not exist. + -- + -- You might tidy things by removing these along with their default mapping. + vim.keymap.set('n', '', '', {buffer = bufnr}) + vim.keymap.del('n', '', {buffer = bufnr}) + -- Mappings migrated from view.mappings.list + -- + -- You will need to insert "your code goes here" for any mappings with a custom action_cb + vim.keymap.set('n', '', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) + vim.keymap.set('n', 'l', api.node.open.edit, opts('Open')) + vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) + vim.keymap.set( + 'n', + 'v', + api.node.open.vertical, + opts('Open: Vertical Split') + ) + vim.keymap.set( + 'n', + 's', + api.node.open.horizontal, + opts('Open: Horizontal Split') + ) + vim.keymap.set('n', 't', api.node.open.tab, opts('Open: New Tab')) + vim.keymap.set( + 'n', + '<', + api.node.navigate.sibling.prev, + opts('Previous Sibling') + ) + vim.keymap.set( + 'n', + '>', + api.node.navigate.sibling.next, + opts('Next Sibling') + ) + vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) + vim.keymap.set( + 'n', + '', + api.node.navigate.parent_close, + opts('Close Directory') + ) + vim.keymap.set( + 'n', + 'h', + api.node.navigate.parent_close, + opts('Close Directory') + ) + vim.keymap.set( + 'n', + 'K', + api.node.navigate.sibling.first, + opts('First Sibling') + ) + vim.keymap.set( + 'n', + 'J', + api.node.navigate.sibling.last, + opts('Last Sibling') + ) + vim.keymap.set( + 'n', + 'I', + api.tree.toggle_gitignore_filter, + opts('Toggle Git Ignore') + ) + vim.keymap.set( + 'n', + '.', + api.tree.toggle_hidden_filter, + opts('Toggle Dotfiles') + ) + vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) + vim.keymap.set('n', 'a', api.fs.create, opts('Create')) + vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) + vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) + vim.keymap.set( + 'n', + '', + api.fs.rename_sub, + opts('Rename: Omit Filename') + ) + vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) + vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) + vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) + vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) + vim.keymap.set( + 'n', + 'Y', + api.fs.copy.relative_path, + opts('Copy Relative Path') + ) + vim.keymap.set( + 'n', + 'gy', + api.fs.copy.absolute_path, + opts('Copy Absolute Path') + ) + vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) + vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) + vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) + vim.keymap.set('n', 'q', api.tree.close, opts('Close')) + vim.keymap.set('n', '?', api.tree.toggle_help, opts('Help')) + vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) end diff --git a/lua/core/config/nvim-treesitter.lua b/lua/core/config/nvim-treesitter.lua index fce3bc4..fc1d0fd 100644 --- a/lua/core/config/nvim-treesitter.lua +++ b/lua/core/config/nvim-treesitter.lua @@ -27,9 +27,10 @@ require 'nvim-treesitter.configs'.setup { "php", "toml", "yaml", --- due to treesitter pr:https://github.com/nvim-treesitter/nvim-treesitter/pull/3297 --- use html to parse xml --- "xml", + + -- due to treesitter pr:https://github.com/nvim-treesitter/nvim-treesitter/pull/3297 + -- use html to parse xml + -- "xml", "vue" }, highlight = {enable = true}, From 8ceb39e4a12e1fb2016c13565fdf05ce34e969b8 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Mon, 11 Mar 2024 21:26:15 +0800 Subject: [PATCH 86/92] fix nvim tree bring bug --- lua/core/config/nvim-tree.lua | 405 ++--------- lua/languages/config/nvim-lspconfig.lua | 636 +++++++++--------- .../config/server/java/nvim-jdtls.lua | 2 +- 3 files changed, 353 insertions(+), 690 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index 2c81a92..475fdb0 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -1,39 +1,36 @@ --- local list = { --- {key = {"", "o", "l"}, action = "edit"}, --- {key = {""}, action = "cd"}, --- {key = "v", action = "vsplit"}, --- {key = "s", action = "split"}, --- {key = "t", action = "tabnew"}, --- {key = "<", action = "prev_sibling"}, --- {key = ">", action = "next_sibling"}, --- {key = "P", action = "parent_node"}, --- {key = "", action = "close_node"}, --- {key = "h", action = "close_node"}, --- {key = "", action = ""}, --- {key = "K", action = "first_sibling"}, --- {key = "J", action = "last_sibling"}, --- {key = "I", action = "toggle_ignored"}, --- {key = ".", action = "toggle_dotfiles"}, --- {key = "R", action = "refresh"}, --- {key = "a", action = "create"}, --- {key = "d", action = "remove"}, --- {key = "r", action = "rename"}, --- {key = "", action = "full_rename"}, --- {key = "x", action = "cut"}, --- {key = "c", action = "copy"}, --- {key = "p", action = "paste"}, --- {key = "y", action = "copy_name"}, --- {key = "Y", action = "copy_path"}, --- {key = "gy", action = "copy_absolute_path"}, --- {key = "[c", action = "prev_git_item"}, --- {key = "]c", action = "next_git_item"}, --- {key = "-", action = "dir_up"}, --- {key = "q", action = "close"}, --- {key = "?", action = "toggle_help"}, --- {key = "", action = "toggle_file_info"}, --- --- -- {key = "", action = "preview"}, --- } +local list = { + {key = {"", "o", "l"}, action = "edit"}, + {key = {""}, action = "cd"}, + {key = "v", action = "vsplit"}, + {key = "s", action = "split"}, + {key = "t", action = "tabnew"}, + {key = "<", action = "prev_sibling"}, + {key = ">", action = "next_sibling"}, + {key = "P", action = "parent_node"}, + {key = "", action = "close_node"}, + {key = "h", action = "close_node"}, + {key = "", action_cb = ":wincmd w"}, + {key = "K", action = "first_sibling"}, + {key = "J", action = "last_sibling"}, + {key = "I", action = "toggle_ignored"}, + {key = ".", action = "toggle_dotfiles"}, + {key = "R", action = "refresh"}, + {key = "a", action = "create"}, + {key = "d", action = "remove"}, + {key = "r", action = "rename"}, + {key = "", action = "full_rename"}, + {key = "x", action = "cut"}, + {key = "c", action = "copy"}, + {key = "p", action = "paste"}, + {key = "y", action = "copy_name"}, + {key = "Y", action = "copy_path"}, + {key = "gy", action = "copy_absolute_path"}, + {key = "[c", action = "prev_git_item"}, + {key = "]c", action = "next_git_item"}, + {key = "-", action = "dir_up"}, + {key = "q", action = "close"}, + {key = "?", action = "toggle_help"}, +} -------------------------------------------------------------------------------------- @@ -43,16 +40,9 @@ vim.api.nvim_set_keymap( ":NvimTreeToggle", {noremap = true, silent = true} ) -vim.api.nvim_set_keymap( - "n", - "ft", - ":NvimTreeFindFile", - {noremap = true, silent = true} -) -vim.cmd 'packadd which-key.nvim' -require "which-key".register({["ft"] = {name = "focus this file on tree"}}) require 'nvim-tree'.setup { - on_attach = on_attach, + -- closes neovim automatically when the tree is the last **WINDOW** in the view + auto_close = true, view = { -- width of the window, can be either a number (columns) or a string in `%` width = 26, @@ -60,15 +50,16 @@ require 'nvim-tree'.setup { -- side of the tree, can be one of 'left' | 'right' | 'top' | 'bottom' side = 'left', - -- not use mappings anymore, use on_attach. - -- mappings = { - -- -- custom only false will merge the list with the default mappings - -- -- if true, it will only use your list to set the mappings - -- custom_only = false, - -- - -- -- list of mappings to set on the tree manually - -- list = list - -- } + -- if true the tree will resize itself after opening a file + auto_resize = false, + mappings = { + -- custom only false will merge the list with the default mappings + -- if true, it will only use your list to set the mappings + custom_only = false, + + -- list of mappings to set on the tree manually + list = list + } } } @@ -94,309 +85,3 @@ g.nvim_tree_icons = { }, folder = {default = "", open = "", symlink = ""} } - --- closes neovim automatically when the tree is the last **WINDOW** in the view -vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif") - --- --- This function has been generated from your --- view.mappings.list --- view.mappings.custom_only --- remove_keymaps --- --- You should add this function to your configuration and set on_attach = on_attach in the nvim-tree setup call. --- --- Although care was taken to ensure correctness and completeness, your review is required. --- --- Please check for the following issues in auto generated content: --- "Mappings removed" is as you expect --- "Mappings migrated" are correct --- --- Please see https://github.com/nvim-tree/nvim-tree.lua/wiki/Migrating-To-on_attach for assistance in migrating. --- - -local function on_attach(bufnr) - local api = require('nvim-tree.api') - - local function opts(desc) - return { - desc = 'nvim-tree: ' .. desc, - buffer = bufnr, - noremap = true, - silent = true, - nowait = true - } - end - - -- Default mappings. Feel free to modify or remove as you wish. - -- - -- BEGIN_DEFAULT_ON_ATTACH - vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) - vim.keymap.set( - 'n', - '', - api.node.open.replace_tree_buffer, - opts('Open: In Place') - ) - vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) - vim.keymap.set( - 'n', - '', - api.fs.rename_sub, - opts('Rename: Omit Filename') - ) - vim.keymap.set('n', '', api.node.open.tab, opts('Open: New Tab')) - vim.keymap.set( - 'n', - '', - api.node.open.vertical, - opts('Open: Vertical Split') - ) - vim.keymap.set( - 'n', - '', - api.node.open.horizontal, - opts('Open: Horizontal Split') - ) - vim.keymap.set( - 'n', - '', - api.node.navigate.parent_close, - opts('Close Directory') - ) - vim.keymap.set('n', '', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '', api.node.open.preview, opts('Open Preview')) - vim.keymap.set( - 'n', - '>', - api.node.navigate.sibling.next, - opts('Next Sibling') - ) - vim.keymap.set( - 'n', - '<', - api.node.navigate.sibling.prev, - opts('Previous Sibling') - ) - vim.keymap.set('n', '.', api.node.run.cmd, opts('Run Command')) - vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) - vim.keymap.set('n', 'a', api.fs.create, opts('Create')) - vim.keymap.set('n', 'bd', api.marks.bulk.delete, opts('Delete Bookmarked')) - vim.keymap.set('n', 'bmv', api.marks.bulk.move, opts('Move Bookmarked')) - vim.keymap.set( - 'n', - 'B', - api.tree.toggle_no_buffer_filter, - opts('Toggle No Buffer') - ) - vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) - vim.keymap.set( - 'n', - 'C', - api.tree.toggle_git_clean_filter, - opts('Toggle Git Clean') - ) - vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) - vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) - vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) - vim.keymap.set('n', 'D', api.fs.trash, opts('Trash')) - vim.keymap.set('n', 'E', api.tree.expand_all, opts('Expand All')) - vim.keymap.set('n', 'e', api.fs.rename_basename, opts('Rename: Basename')) - vim.keymap.set( - 'n', - ']e', - api.node.navigate.diagnostics.next, - opts('Next Diagnostic') - ) - vim.keymap.set( - 'n', - '[e', - api.node.navigate.diagnostics.prev, - opts('Prev Diagnostic') - ) - vim.keymap.set('n', 'F', api.live_filter.clear, opts('Clean Filter')) - vim.keymap.set('n', 'f', api.live_filter.start, opts('Filter')) - vim.keymap.set('n', 'g?', api.tree.toggle_help, opts('Help')) - vim.keymap.set( - 'n', - 'gy', - api.fs.copy.absolute_path, - opts('Copy Absolute Path') - ) - vim.keymap.set( - 'n', - 'H', - api.tree.toggle_hidden_filter, - opts('Toggle Dotfiles') - ) - vim.keymap.set( - 'n', - 'I', - api.tree.toggle_gitignore_filter, - opts('Toggle Git Ignore') - ) - vim.keymap.set( - 'n', - 'J', - api.node.navigate.sibling.last, - opts('Last Sibling') - ) - vim.keymap.set( - 'n', - 'K', - api.node.navigate.sibling.first, - opts('First Sibling') - ) - vim.keymap.set('n', 'm', api.marks.toggle, opts('Toggle Bookmark')) - vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) - vim.keymap.set( - 'n', - 'O', - api.node.open.no_window_picker, - opts('Open: No Window Picker') - ) - vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) - vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) - vim.keymap.set('n', 'q', api.tree.close, opts('Close')) - vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) - vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) - vim.keymap.set('n', 's', api.node.run.system, opts('Run System')) - vim.keymap.set('n', 'S', api.tree.search_node, opts('Search')) - vim.keymap.set( - 'n', - 'U', - api.tree.toggle_custom_filter, - opts('Toggle Hidden') - ) - vim.keymap.set('n', 'W', api.tree.collapse_all, opts('Collapse')) - vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) - vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) - vim.keymap.set( - 'n', - 'Y', - api.fs.copy.relative_path, - opts('Copy Relative Path') - ) - vim.keymap.set('n', '<2-LeftMouse>', api.node.open.edit, opts('Open')) - vim.keymap.set( - 'n', - '<2-RightMouse>', - api.tree.change_root_to_node, - opts('CD') - ) - - -- END_DEFAULT_ON_ATTACH - - -- Mappings removed via: - -- remove_keymaps - -- OR - -- view.mappings.list..action = "" - -- - -- The dummy set before del is done for safety, in case a default mapping does not exist. - -- - -- You might tidy things by removing these along with their default mapping. - vim.keymap.set('n', '', '', {buffer = bufnr}) - vim.keymap.del('n', '', {buffer = bufnr}) - - -- Mappings migrated from view.mappings.list - -- - -- You will need to insert "your code goes here" for any mappings with a custom action_cb - vim.keymap.set('n', '', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'o', api.node.open.edit, opts('Open')) - vim.keymap.set('n', 'l', api.node.open.edit, opts('Open')) - vim.keymap.set('n', '', api.tree.change_root_to_node, opts('CD')) - vim.keymap.set( - 'n', - 'v', - api.node.open.vertical, - opts('Open: Vertical Split') - ) - vim.keymap.set( - 'n', - 's', - api.node.open.horizontal, - opts('Open: Horizontal Split') - ) - vim.keymap.set('n', 't', api.node.open.tab, opts('Open: New Tab')) - vim.keymap.set( - 'n', - '<', - api.node.navigate.sibling.prev, - opts('Previous Sibling') - ) - vim.keymap.set( - 'n', - '>', - api.node.navigate.sibling.next, - opts('Next Sibling') - ) - vim.keymap.set('n', 'P', api.node.navigate.parent, opts('Parent Directory')) - vim.keymap.set( - 'n', - '', - api.node.navigate.parent_close, - opts('Close Directory') - ) - vim.keymap.set( - 'n', - 'h', - api.node.navigate.parent_close, - opts('Close Directory') - ) - vim.keymap.set( - 'n', - 'K', - api.node.navigate.sibling.first, - opts('First Sibling') - ) - vim.keymap.set( - 'n', - 'J', - api.node.navigate.sibling.last, - opts('Last Sibling') - ) - vim.keymap.set( - 'n', - 'I', - api.tree.toggle_gitignore_filter, - opts('Toggle Git Ignore') - ) - vim.keymap.set( - 'n', - '.', - api.tree.toggle_hidden_filter, - opts('Toggle Dotfiles') - ) - vim.keymap.set('n', 'R', api.tree.reload, opts('Refresh')) - vim.keymap.set('n', 'a', api.fs.create, opts('Create')) - vim.keymap.set('n', 'd', api.fs.remove, opts('Delete')) - vim.keymap.set('n', 'r', api.fs.rename, opts('Rename')) - vim.keymap.set( - 'n', - '', - api.fs.rename_sub, - opts('Rename: Omit Filename') - ) - vim.keymap.set('n', 'x', api.fs.cut, opts('Cut')) - vim.keymap.set('n', 'c', api.fs.copy.node, opts('Copy')) - vim.keymap.set('n', 'p', api.fs.paste, opts('Paste')) - vim.keymap.set('n', 'y', api.fs.copy.filename, opts('Copy Name')) - vim.keymap.set( - 'n', - 'Y', - api.fs.copy.relative_path, - opts('Copy Relative Path') - ) - vim.keymap.set( - 'n', - 'gy', - api.fs.copy.absolute_path, - opts('Copy Absolute Path') - ) - vim.keymap.set('n', '[c', api.node.navigate.git.prev, opts('Prev Git')) - vim.keymap.set('n', ']c', api.node.navigate.git.next, opts('Next Git')) - vim.keymap.set('n', '-', api.tree.change_root_to_parent, opts('Up')) - vim.keymap.set('n', 'q', api.tree.close, opts('Close')) - vim.keymap.set('n', '?', api.tree.toggle_help, opts('Help')) - vim.keymap.set('n', '', api.node.show_info_popup, opts('Info')) -end diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 9fc9418..597637d 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -1,331 +1,309 @@ -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffe --- local on_attach = function(client, bufnr) --- local function buf_set_keymap(...) --- vim.api.nvim_buf_set_keymap(bufnr, ...) --- end --- local function buf_set_option(...) --- vim.api.nvim_buf_set_option(bufnr, ...) --- end --- --- --Enable completion triggered by --- buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') --- buf_set_keymap( --- 'n', --- 'gh', --- 'lua require\'lspsaga.provider\'.lsp_finder()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap( --- 'n', --- 'K', --- 'lua require(\'lspsaga.hover\').render_hover_doc()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', --- {noremap = true, silent = true} --- ) --- buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.signaturehelp\').signature_help()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'wa', --- 'lua vim.lsp.buf.add_workspace_folder()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'wr', --- 'lua vim.lsp.buf.remove_workspace_folder()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'wl', --- 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'ld', --- 'lua require\'lspsaga.provider\'.preview_definition()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- '', --- 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'lr', --- 'lua require(\'lspsaga.rename\').rename()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'la', --- 'lua require(\'lspsaga.codeaction\').code_action()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'v', --- 'la', --- 'lua require(\'lspsaga.codeaction\').range_code_action()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'gr', --- 'Telescope lsp_references', --- {noremap = true, silent = true} --- ) --- buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap( --- 'n', --- '[g', --- 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- ']g', --- 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap( --- 'n', --- 'll', --- 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', --- {noremap = true, silent = true} --- ) --- buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { --- noremap = true, --- silent = true --- }) --- buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { --- noremap = true, --- silent = true --- }) --- --- if client.name == "html" or client.name == "jsonls" then --- client.resolved_capabilities.document_formatting = false --- client.resolved_capabilities.document_range_formatting = false --- end --- --- --NOTE: define the auto format on save --- if client.resolved_capabilities.document_formatting then --- vim.cmd([[ --- augroup LspFormatting --- autocmd! * --- autocmd BufWritePre lua vim.lsp.buf.formatting_sync() --- augroup END --- ]]) --- end --- end --- --- ----------------------------------------------------------- --- --- local lspservers = { --- "go:gopls", --- "lua:sumneko_lua", --- "cpp:clangd", --- "cmake:cmake", --- "java:jdtls", --- "bash:bashls", --- "css:cssls", --- "html:html", --- "typescript:tsserver", --- "json:jsonls", --- "python:pyright", --- "rust:rust_analyzer", --- "docker:dockerls", --- "vim:vimls", --- "vue:vuels", --- "yaml:yamlls", --- "xml:lemminx", --- "yaml:yamlls", --- "emmet:emmet_ls", --- "docker:dockerls" --- } --- vim.cmd 'packadd mason' --- --- local function split(s, delimiter) --- local result = {}; --- for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do --- table.insert(result, match); --- end --- return result; --- end --- --- local function contains(tables, value) --- for _, values in pairs(tables) do --- if values == value then --- return true --- end --- end --- return false --- end --- --- -- NOTE: first, install the servers we need --- for _, server in ipairs(lspservers) do --- local ac_server = split(server, ':'); --- if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then --- require("nvim-lsp-installer").install(ac_server[2]) --- end --- end --- --- -- NOTE: then, we should setup the servers --- --- -- use a loop to conveniently call 'setup' on multiple servers and --- -- map buffer local keybindings when the language server attaches --- local lsp_installer = require("mason") --- --- vim.cmd('packadd null-ls.nvim') --- --- lsp_installer.on_server_ready(function(server) --- local opts = { --- autostart = true, --- on_attach = on_attach, --- flags = { --- debounce_text_changes = 150, --- }, --- capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) --- } --- --- --special language emmet_ls --- if server.name == "emmet_ls" then --- opts.filetypes = { --- "html", --- "css", --- "typescriptreact", --- "javascriptreact", --- "javascript.jsx" --- } --- end --- --- -- special language lua --- if server.name == "sumneko_lua" then --- opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} --- end --- --- -- special language typescript --- if server.name == "tsserver" then --- require("null-ls").setup({ --- sources = { --- require("null-ls").builtins.diagnostics.eslint_d, --- require("null-ls").builtins.code_actions.eslint_d, --- require("null-ls").builtins.formatting.prettier, --- }, --- on_attach = on_attach --- }) --- require 'nvim-treesitter.configs'.setup { --- context_commentstring = {enable = true} --- } --- --- if vim.fn.executable('npm') ~= 1 then --- print("npm was not found" .. "\n") --- else --- if vim.fn.executable('eslint_d') ~= 1 then --- os.execute('sudo npm install -g eslint_d') --- end --- if vim.fn.executable('prettier') ~= 1 then --- os.execute('sudo npm install -g prettier') --- end --- end --- opts.root_dir = function(fname) --- return require 'lspconfig/util'.root_pattern( --- "package.json", --- "tsconfig.json", --- ".git" --- )(fname) or vim.loop.cwd() --- end --- opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) --- end --- --- if server.name == "jdtls" or server.name == 'clangd' then --- goto --- continue --- end --- --- -- Other default languages --- server:setup(opts) --- vim.cmd("bufdo e")::continue:: --- end) --- --- -- special language java --- vim.api.nvim_exec( --- [[ --- augroup jdtls_lsp --- au! --- au FileType java lua require('languages.config.server.java.nvim-jdtls').setup() --- augroup end --- ]], --- false --- ) --- --- -- specical language c/cpp --- vim.cmd 'packadd clangd_extensions.nvim' --- require("clangd_extensions").setup() --- --- -- NOTE: finally, setup lsp saga and config --- vim.cmd ' packadd lspsaga.nvim' --- local saga = require 'lspsaga' --- saga.init_lsp_saga { --- use_saga_diagnostic_sign = true, --- error_sign = '❌', --- warn_sign = '⚠️ ', --- hint_sign = '🌵', --- infor_sign = 'ℹ️', --- diagnostic_header_icon = '🐞', --- code_action_icon = '💡' --- } --- --- ------------------------------- --- --NOTE: define the diagnostic color --- --[[ vim.cmd("hi VirtualTextWarning guifg='yellow'") --- vim.cmd("hi VirtualTextError guifg='red'") --- vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") --- vim.cmd("hi VirtualTextHint guifg=#2c6e4e") --- vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") --- vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") --- vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") --- vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") --- vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") --- vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] --- +local on_attach = function(client, bufnr) + local function buf_set_keymap(...) + vim.api.nvim_buf_set_keymap(bufnr, ...) + end + local function buf_set_option(...) + vim.api.nvim_buf_set_option(bufnr, ...) + end + + --Enable completion triggered by + buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') + buf_set_keymap( + 'n', + 'gh', + 'lua require\'lspsaga.provider\'.lsp_finder()', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', { + noremap = true, + silent = true + }) + buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', { + noremap = true, + silent = true + }) + buf_set_keymap( + 'n', + 'K', + 'lua require(\'lspsaga.hover\').render_hover_doc()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', { + noremap = true, + silent = true + }) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.signaturehelp\').signature_help()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'wa', + 'lua vim.lsp.buf.add_workspace_folder()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'wr', + 'lua vim.lsp.buf.remove_workspace_folder()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'wl', + 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'ld', + 'lua require\'lspsaga.provider\'.preview_definition()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(1)', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + '', + 'lua require(\'lspsaga.action\').smart_scroll_with_saga(-1)', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'lr', + 'lua require(\'lspsaga.rename\').rename()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'la', + 'lua require(\'lspsaga.codeaction\').code_action()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'v', + 'la', + 'lua require(\'lspsaga.codeaction\').range_code_action()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'gr', + 'Telescope lsp_references', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'gI', 'Telescope lsp_implementations', { + noremap = true, + silent = true + }) + buf_set_keymap( + 'n', + '[g', + 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_prev()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + ']g', + 'lua require\'lspsaga.diagnostic\'.lsp_jump_diagnostic_next()', + {noremap = true, silent = true} + ) + buf_set_keymap( + 'n', + 'll', + 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', + {noremap = true, silent = true} + ) + buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { + noremap = true, + silent = true + }) + buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { + noremap = true, + silent = true + }) +end + +----------------------------------------------------------- + +local lspservers = { + "go:gopls", + "lua:sumneko_lua", + "cpp:clangd", + "cmake:cmake", + "java:jdtls", + "bash:bashls", + "css:cssls", + "html:html", + "typescript:tsserver", + "json:jsonls", + "python:pyright", + "rust:rust_analyzer", + "docker:dockerls", + "vim:vimls", + "vue:vuels", + "yaml:yamlls", + "xml:lemminx", + "emmet:emmet_ls" +} +vim.cmd 'packadd nvim-lsp-installer' + +local function split(s, delimiter) + local result = {}; + for match in (s .. delimiter):gmatch("(.-)" .. delimiter) do + table.insert(result, match); + end + return result; +end + +local function contains(tables, value) + for _, values in pairs(tables) do + if values == value then + return true + end + end + return false +end + +-- NOTE: first, install the servers we need +for _, server in ipairs(lspservers) do + local ac_server = split(server, ':'); + if not require("nvim-lsp-installer.servers").is_server_installed(ac_server[2]) then + require("nvim-lsp-installer").install(ac_server[2]) + end +end + +-- NOTE: then, we should setup the servers + +-- use a loop to conveniently call 'setup' on multiple servers and +-- map buffer local keybindings when the language server attaches +local lsp_installer = require("nvim-lsp-installer") + +vim.cmd('packadd null-ls.nvim') + +require("null-ls").setup({ + sources = { + -- require("null-ls").builtins.formatting.stylua, + require("null-ls").builtins.diagnostics.eslint, + }, +}) + +lsp_installer.on_server_ready(function(server) + local opts = { + autostart = true, + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + }, + capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) + } + + -- special language lua + if server.name == "sumneko_lua" then + opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} + end + + -- special language typescript + if server.name == "tsserver" then + if vim.fn.executable('npm') ~= 1 then + print("npm was not found" .. "\n") + else + if vim.fn.executable('eslint_d') ~= 1 then + os.execute('sudo npm install -g eslint_d') + end + if vim.fn.executable('prettier') ~= 1 then + os.execute('sudo npm install -g prettier') + end + end + opts.root_dir = function(fname) + return require 'lspconfig/util'.root_pattern( + "package.json", + "tsconfig.json", + ".git" + )(fname) or vim.loop.cwd() + end + opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) + end + + if server.name == "jdtls" or server.name == 'clangd' then + goto + continue + end + + -- Other default languages + server:setup(opts) + vim.cmd("bufdo e")::continue:: +end) + +-- special language java +vim.api.nvim_exec( + [[ + augroup jdtls_lsp + au! + au FileType java lua require('languages.config.server.java.nvim-jdtls').setup() + augroup end + ]], + false +) + +-- specical language c/cpp +vim.cmd 'packadd clangd_extensions.nvim' +require("clangd_extensions").setup() + +-- NOTE: finally, setup lsp saga and config +vim.cmd ' packadd lspsaga.nvim' +local saga = require 'lspsaga' +saga.init_lsp_saga { + use_saga_diagnostic_sign = true, + error_sign = '❌', + warn_sign = '⚠️ ', + hint_sign = '🌵', + infor_sign = 'ℹ️', + diagnostic_header_icon = '🐞', + code_action_icon = '💡' +} + +------------------------------- +--NOTE: define the diagnostic color +--[[ vim.cmd("hi VirtualTextWarning guifg='yellow'") +vim.cmd("hi VirtualTextError guifg='red'") +vim.cmd("hi VirtualTextInfo guifg='#0db9d7'") +vim.cmd("hi VirtualTextHint guifg=#2c6e4e") +vim.cmd("hi ErrorText cterm=underline gui=undercurl guisp=red") +vim.cmd("hi WarningText cterm=underline gui=undercurl guisp=yellow") +vim.cmd("hi HintText cterm=underline gui=undercurl guisp=#2c6e4e") +vim.cmd("hi InformationText cterm=underline gui=undercurl guisp=#0db9d7") +vim.cmd("hi CursorWord0 ctermbg=239 guibg=#3d3c3b") +vim.cmd("hi SpellBad cterm=underline gui=undercurl guisp=None") ]] + +--NOTE: define the auto format on save +vim.api.nvim_exec( + [[ +augroup FormatAutogroup + autocmd! + autocmd BufWritePost * lua vim.lsp.buf.formatting() +augroup END +]], + true +) + diff --git a/lua/languages/config/server/java/nvim-jdtls.lua b/lua/languages/config/server/java/nvim-jdtls.lua index 9d8940d..c48cc18 100644 --- a/lua/languages/config/server/java/nvim-jdtls.lua +++ b/lua/languages/config/server/java/nvim-jdtls.lua @@ -151,7 +151,7 @@ function M.setup() 'lua lua require(\'jdtls\').extract_method(true)', {silent = true, noremap = true} ) - vim.cmd 'packadd which-key.nvim' + vim.cmd ' packadd which-key.nvim' require "which-key".register({["lR"] = {name = "refactor"}}) require "which-key".register({["lc"] = {name = "extract"}}) require "which-key".register({["lcv"] = {name = "extract_variable"}}) From 0817d26a40a0012f54c4c1674ac3d5f8e4014bc5 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Fri, 14 Jun 2024 05:18:05 +0800 Subject: [PATCH 87/92] try to add new feature --- lua/plugins/config/gitsigns.lua | 2 +- lua/plugins/config/which-key.lua | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lua/plugins/config/gitsigns.lua b/lua/plugins/config/gitsigns.lua index 5f0522b..a02083b 100644 --- a/lua/plugins/config/gitsigns.lua +++ b/lua/plugins/config/gitsigns.lua @@ -4,6 +4,7 @@ require 'gitsigns'.setup({ numhl = true, + linehl = true, keymaps = { -- Default keymap options noremap = true, @@ -25,7 +26,6 @@ require 'gitsigns'.setup({ ['n gR'] = 'lua require"gitsigns".reset_buffer()', ['n gp'] = 'lua require"gitsigns".preview_hunk()', ['n gb'] = 'lua require"gitsigns".blame_line(true)', - ['n gd'] = 'lua require"gitsigns".diffthis("~")', ['n gl'] = 'Gitsigns toggle_current_line_blame', -- Text objects diff --git a/lua/plugins/config/which-key.lua b/lua/plugins/config/which-key.lua index 13ee887..fc9bd32 100644 --- a/lua/plugins/config/which-key.lua +++ b/lua/plugins/config/which-key.lua @@ -158,7 +158,6 @@ wk.register({ ["gl"] = {name = "toggle line blame"}, ["g["] = {name = "previous hunk"}, ["g]"] = {name = "next hunk"}, - ["gd"] = {name = "show diff"}, ---------------------------------- ["sb"] = {name = "search in buffer"}, From b3f64607fdd00e889c86bf3225a30cb687dc3238 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Mon, 24 Jun 2024 18:24:15 +0800 Subject: [PATCH 88/92] rollback mason --- lua/core/init.lua | 1 + plugin/packer_compiled.lua | 683 +++++++++++++++++++++++++++++++++++++ 2 files changed, 684 insertions(+) create mode 100644 plugin/packer_compiled.lua diff --git a/lua/core/init.lua b/lua/core/init.lua index ee7b893..111fd87 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -82,6 +82,7 @@ packer.startup(function(use) requires = { {'nvim-lua/popup.nvim'}, {'nvim-lua/plenary.nvim'}, + {'BurntSushi/ripgrep'} }, config = function() require 'core.config.telescope' diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua new file mode 100644 index 0000000..6f79ecb --- /dev/null +++ b/plugin/packer_compiled.lua @@ -0,0 +1,683 @@ +-- Automatically generated packer.nvim plugin loader code + +if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return +end + +vim.api.nvim_command('packadd packer.nvim') + +local no_errors, error_msg = pcall(function() + local time + local profile_info + local should_profile = false + if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end + else + time = function(chunk, start) + end + end + + local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) + return a[2] > b[2] + end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end + + _G._packer = _G._packer or {} + _G._packer.profile_output = results + end + + time([[Luarocks path setup]], true) + local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" + local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" + if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str + end + + if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern + end + + time([[Luarocks path setup]], false) + time([[try_loadstring definition]], true) + local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s)) + if not success then + vim.schedule(function() + vim.api.nvim_notify( + 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, + vim.log.levels.ERROR, + {} + ) + end) + end + return result + end + + time([[try_loadstring definition]], false) + time([[Defining packer_plugins]], true) + _G.packer_plugins = { + ["DAPInstall.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" + }, + ["accelerated-jk"] = { + config = { + "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { + "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" + }, + ["cmp-buffer"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer/after/plugin/cmp_buffer.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer" + }, + ["cmp-calc"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc/after/plugin/cmp_calc.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc" + }, + ["cmp-emoji"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji/after/plugin/cmp_emoji.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji" + }, + ["cmp-latex-symbols"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols/after/plugin/cmp_latex.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols" + }, + ["cmp-look"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look/after/plugin/cmp_look.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp" + }, + ["cmp-nvim-lua"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua" + }, + ["cmp-nvim-tags"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags/after/plugin/cmp_nvim_tags.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags" + }, + ["cmp-nvim-ultisnips"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips/after/plugin/cmp_nvim_ultisnips.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips" + }, + ["cmp-path"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path/after/plugin/cmp_path.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path" + }, + ["cmp-spell"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell/after/plugin/cmp-spell.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell" + }, + ["cmp-tabnine"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine/after/plugin/cmp-tabnine.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine" + }, + ["cmp-treesitter"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter/after/plugin/cmp_treesitter.lua" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter" + }, + ["cmp-vsnip"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip/after/plugin/cmp_vsnip.vim" + }, + load_after = {}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip" + }, + ["dashboard-nvim"] = { + config = { + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" + }, + ["dial.nvim"] = { + config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" + }, + everforest = { + config = { + "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { + "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + config = { + "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { + "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { + "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" + }, + hop = { + config = { + "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" + }, + ["indent-blankline.nvim"] = { + config = { + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" + }, + kommentary = { + config = { + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" + }, + ["lspkind-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/lspkind-nvim" + }, + ["lspsaga.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" + }, + ["neoscroll.nvim"] = { + config = { + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" + }, + ["nvim-autopairs"] = { + config = { + "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" + }, + ["nvim-cmp"] = { + after = { + "cmp-vsnip", + "cmp-treesitter", + "cmp-nvim-lua", + "cmp-emoji", + "cmp-latex-symbols", + "cmp-nvim-ultisnips", + "cmp-calc", + "cmp-spell", + "cmp-nvim-tags", + "cmp-look", + "cmp-tabnine", + "cmp-path", + "cmp-buffer" + }, + loaded = true, + only_config = true + }, + ["nvim-colorizer.lua"] = { + config = { + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" + }, + ["nvim-dap"] = { + config = { + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" + }, + ["nvim-dap-virtual-text"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" + }, + ["nvim-jdtls"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" + }, + ["nvim-lsp-installer"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-installer" + }, + ["nvim-lspconfig"] = { + after = { + "nvim-lsp-installer", + "nvim-jdtls", + "nvim-lspinstall", + "lspsaga.nvim" + }, + loaded = true, + only_config = true + }, + ["nvim-lspinstall"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" + }, + ["nvim-markdown-preview"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" + }, + ["nvim-toggleterm.lua"] = { + config = { + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" + }, + ["nvim-transparent"] = { + config = { + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" + }, + ["nvim-tree.lua"] = { + config = { + "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + after = { + "spellsitter.nvim", + "nvim-treesitter-textobjects", + "nvim-ts-rainbow", + "nvim-ts-autotag" + }, + loaded = true, + only_config = true + }, + ["nvim-treesitter-textobjects"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" + }, + ["nvim-ts-autotag"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" + }, + ["nvim-ts-rainbow"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" + }, + ["popup.nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" + }, + ripgrep = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/ripgrep" + }, + sonokai = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" + }, + ["space-nvim"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" + }, + ["spellsitter.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" + }, + ["telescope.nvim"] = { + config = { + "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" + }, + loaded = false, + needs_bufread = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" + }, + ["todo-comments.nvim"] = { + config = { + "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" + }, + ["vim-bookmarks"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" + }, + ["vim-cursorword"] = { + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" + }, + ["vim-rooter"] = { + config = { + "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" + }, + loaded = true, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" + }, + ["vim-sayonara"] = { + config = { + "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" + }, + ["vim-vsnip"] = { + after = {"vim-vsnip-integ"}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip" + }, + ["vim-vsnip-integ"] = { + after_files = { + "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" + }, + load_after = {["vim-vsnip"] = true}, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" + }, + ["vista.vim"] = { + config = { + "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" + }, + ["which-key.nvim"] = { + config = { + "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" + } + } + + time([[Defining packer_plugins]], false) + + -- Config for: nvim-treesitter + time([[Config for nvim-treesitter]], true) + try_loadstring( + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", + "config", + "nvim-treesitter" + ) + time([[Config for nvim-treesitter]], false) + + -- Config for: nvim-cmp + time([[Config for nvim-cmp]], true) + try_loadstring( + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0", + "config", + "nvim-cmp" + ) + time([[Config for nvim-cmp]], false) + + -- Config for: nvim-colorizer.lua + time([[Config for nvim-colorizer.lua]], true) + try_loadstring( + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", + "config", + "nvim-colorizer.lua" + ) + time([[Config for nvim-colorizer.lua]], false) + + -- Config for: vim-rooter + time([[Config for vim-rooter]], true) + try_loadstring( + "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", + "config", + "vim-rooter" + ) + time([[Config for vim-rooter]], false) + + -- Config for: accelerated-jk + time([[Config for accelerated-jk]], true) + try_loadstring( + "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", + "config", + "accelerated-jk" + ) + time([[Config for accelerated-jk]], false) + + -- Config for: nvim-dap + time([[Config for nvim-dap]], true) + try_loadstring( + "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", + "config", + "nvim-dap" + ) + time([[Config for nvim-dap]], false) + + -- Config for: neoscroll.nvim + time([[Config for neoscroll.nvim]], true) + try_loadstring( + "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", + "config", + "neoscroll.nvim" + ) + time([[Config for neoscroll.nvim]], false) + + -- Config for: kommentary + time([[Config for kommentary]], true) + try_loadstring( + "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", + "config", + "kommentary" + ) + time([[Config for kommentary]], false) + + -- Config for: nvim-lspconfig + time([[Config for nvim-lspconfig]], true) + try_loadstring( + "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", + "config", + "nvim-lspconfig" + ) + time([[Config for nvim-lspconfig]], false) + + -- Config for: nvim-autopairs + time([[Config for nvim-autopairs]], true) + try_loadstring( + "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", + "config", + "nvim-autopairs" + ) + time([[Config for nvim-autopairs]], false) + + -- Config for: dial.nvim + time([[Config for dial.nvim]], true) + try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") + time([[Config for dial.nvim]], false) + + -- Load plugins in order defined by `after` + time([[Sequenced loading]], true) + vim.cmd [[ packadd spellsitter.nvim ]] + vim.cmd [[ packadd nvim-ts-rainbow ]] + vim.cmd [[ packadd nvim-ts-autotag ]] + vim.cmd [[ packadd nvim-treesitter-textobjects ]] + vim.cmd [[ packadd nvim-lspinstall ]] + vim.cmd [[ packadd nvim-jdtls ]] + vim.cmd [[ packadd nvim-lsp-installer ]] + vim.cmd [[ packadd lspsaga.nvim ]] + time([[Sequenced loading]], false) + vim.cmd [[augroup packer_load_aucmds]] + vim.cmd [[au!]] + + -- Filetype lazy-loads + time([[Defining lazy-load filetype autocommands]], true) + vim.cmd [[au FileType tex ++once lua require("packer.load")({'cmp-latex-symbols'}, { ft = "tex" }, _G.packer_plugins)]] + time([[Defining lazy-load filetype autocommands]], false) + + -- Event lazy-loads + time([[Defining lazy-load event autocommands]], true) + vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-transparent', 'dashboard-nvim', 'telescope.nvim', 'vista.vim', 'nvim-toggleterm.lua'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] + vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-emoji', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-path', 'cmp-buffer'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] + vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'gruvbox-material', 'github-nvim-theme', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] + time([[Defining lazy-load event autocommands]], false) + vim.cmd("augroup END") + if should_profile then + save_profiles() + end +end) + +if not no_errors then + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: ' .. error_msg .. '" | echom "Please check your config for correctness" | echohl None') +end From 6a17018986638b2b3fbdc5d2136bd981915ec74a Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Wed, 3 Jul 2024 21:12:29 +0800 Subject: [PATCH 89/92] fix mason --- lua/core/config/nvim-treesitter.lua | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lua/core/config/nvim-treesitter.lua b/lua/core/config/nvim-treesitter.lua index fc1d0fd..fce3bc4 100644 --- a/lua/core/config/nvim-treesitter.lua +++ b/lua/core/config/nvim-treesitter.lua @@ -27,10 +27,9 @@ require 'nvim-treesitter.configs'.setup { "php", "toml", "yaml", - - -- due to treesitter pr:https://github.com/nvim-treesitter/nvim-treesitter/pull/3297 - -- use html to parse xml - -- "xml", +-- due to treesitter pr:https://github.com/nvim-treesitter/nvim-treesitter/pull/3297 +-- use html to parse xml +-- "xml", "vue" }, highlight = {enable = true}, From 258460641e943fc106df7aa1a83cad154f8cc0a0 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Tue, 9 Jul 2024 20:04:23 +0800 Subject: [PATCH 90/92] common fix --- lua/core/config/nvim-tree.lua | 1 + lua/core/init.lua | 13 ++++++--- lua/languages/config/nvim-lspconfig.lua | 36 ++++++------------------- 3 files changed, 18 insertions(+), 32 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index 475fdb0..f809166 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -1,3 +1,4 @@ +local tree_cb = require 'nvim-tree.config'.nvim_tree_callback local list = { {key = {"", "o", "l"}, action = "edit"}, {key = {""}, action = "cd"}, diff --git a/lua/core/init.lua b/lua/core/init.lua index 111fd87..5ea9f1e 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -38,13 +38,13 @@ packer.startup(function(use) end } - use { + --[[ use { TODO: not use it to improve performance --a smooth scrolling neovim plugin written in lua 'karb94/neoscroll.nvim', config = function() require 'neoscroll'.setup() end - } + } ]] use { --provide a single command that deletes the current buffer 'mhinz/vim-sayonara', @@ -175,14 +175,12 @@ packer.startup(function(use) {'"williamboman/mason.nvim"', after = 'nvim-lspconfig',run = ":MasonUpdate"}, {'tami5/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, - {'p00f/clangd_extensions.nvim', after = 'nvim-lspconfig'}, {'jose-elias-alvarez/nvim-lsp-ts-utils', after = 'nvim-lspconfig'}, { 'JoosepAlviste/nvim-ts-context-commentstring', after = 'nvim-lspconfig' }, {'jose-elias-alvarez/null-ls.nvim', after = 'nvim-lspconfig'}, - {'folke/trouble.nvim', after = 'nvim-lspconfig'}, }, config = function() require 'languages.config.nvim-lspconfig' @@ -260,6 +258,13 @@ packer.startup(function(use) -- event = 'BufferRead' } ]] + --use{ --formatter TODO: Not use now, instead by lsp + --'mhartington/formatter.nvim', + --config = function() + --require'languages.config.formatter' + --end + --} + -------------------------------- ----------NOTE:style layer----------- use { 'projekt0n/github-nvim-theme', diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 597637d..23e48fa 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -134,10 +134,6 @@ local on_attach = function(client, bufnr) 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', {noremap = true, silent = true} ) - buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { - noremap = true, - silent = true - }) buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { noremap = true, silent = true @@ -155,7 +151,6 @@ local lspservers = { "bash:bashls", "css:cssls", "html:html", - "typescript:tsserver", "json:jsonls", "python:pyright", "rust:rust_analyzer", @@ -164,9 +159,11 @@ local lspservers = { "vue:vuels", "yaml:yamlls", "xml:lemminx", - "emmet:emmet_ls" + "emmet:emmet_ls", + + -- "typescript:tsserver", } -vim.cmd 'packadd nvim-lsp-installer' +vim.cmd ' packadd nvim-lsp-installer' local function split(s, delimiter) local result = {}; @@ -199,15 +196,6 @@ end -- map buffer local keybindings when the language server attaches local lsp_installer = require("nvim-lsp-installer") -vim.cmd('packadd null-ls.nvim') - -require("null-ls").setup({ - sources = { - -- require("null-ls").builtins.formatting.stylua, - require("null-ls").builtins.diagnostics.eslint, - }, -}) - lsp_installer.on_server_ready(function(server) local opts = { autostart = true, @@ -218,13 +206,13 @@ lsp_installer.on_server_ready(function(server) capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) } - -- special language lua if server.name == "sumneko_lua" then opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} end - - -- special language typescript if server.name == "tsserver" then + vim.cmd ' packadd null-ls.nvim' + require("null-ls").config {} + require("lspconfig")["null-ls"].setup {} if vim.fn.executable('npm') ~= 1 then print("npm was not found" .. "\n") else @@ -245,17 +233,13 @@ lsp_installer.on_server_ready(function(server) opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) end - if server.name == "jdtls" or server.name == 'clangd' then + if server.name == "jdtls" then goto continue end - - -- Other default languages server:setup(opts) vim.cmd("bufdo e")::continue:: end) - --- special language java vim.api.nvim_exec( [[ augroup jdtls_lsp @@ -266,10 +250,6 @@ vim.api.nvim_exec( false ) --- specical language c/cpp -vim.cmd 'packadd clangd_extensions.nvim' -require("clangd_extensions").setup() - -- NOTE: finally, setup lsp saga and config vim.cmd ' packadd lspsaga.nvim' local saga = require 'lspsaga' From 2e3ac97b414b4cccd70e844d05248dfeca3bca8f Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Tue, 9 Jul 2024 20:04:39 +0800 Subject: [PATCH 91/92] Revert "common fix" This reverts commit 258460641e943fc106df7aa1a83cad154f8cc0a0. --- lua/core/config/nvim-tree.lua | 1 - lua/core/init.lua | 13 +++------ lua/languages/config/nvim-lspconfig.lua | 36 +++++++++++++++++++------ 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/lua/core/config/nvim-tree.lua b/lua/core/config/nvim-tree.lua index f809166..475fdb0 100644 --- a/lua/core/config/nvim-tree.lua +++ b/lua/core/config/nvim-tree.lua @@ -1,4 +1,3 @@ -local tree_cb = require 'nvim-tree.config'.nvim_tree_callback local list = { {key = {"", "o", "l"}, action = "edit"}, {key = {""}, action = "cd"}, diff --git a/lua/core/init.lua b/lua/core/init.lua index 5ea9f1e..111fd87 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -38,13 +38,13 @@ packer.startup(function(use) end } - --[[ use { TODO: not use it to improve performance + use { --a smooth scrolling neovim plugin written in lua 'karb94/neoscroll.nvim', config = function() require 'neoscroll'.setup() end - } ]] + } use { --provide a single command that deletes the current buffer 'mhinz/vim-sayonara', @@ -175,12 +175,14 @@ packer.startup(function(use) {'"williamboman/mason.nvim"', after = 'nvim-lspconfig',run = ":MasonUpdate"}, {'tami5/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, + {'p00f/clangd_extensions.nvim', after = 'nvim-lspconfig'}, {'jose-elias-alvarez/nvim-lsp-ts-utils', after = 'nvim-lspconfig'}, { 'JoosepAlviste/nvim-ts-context-commentstring', after = 'nvim-lspconfig' }, {'jose-elias-alvarez/null-ls.nvim', after = 'nvim-lspconfig'}, + {'folke/trouble.nvim', after = 'nvim-lspconfig'}, }, config = function() require 'languages.config.nvim-lspconfig' @@ -258,13 +260,6 @@ packer.startup(function(use) -- event = 'BufferRead' } ]] - --use{ --formatter TODO: Not use now, instead by lsp - --'mhartington/formatter.nvim', - --config = function() - --require'languages.config.formatter' - --end - --} - -------------------------------- ----------NOTE:style layer----------- use { 'projekt0n/github-nvim-theme', diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 23e48fa..597637d 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -134,6 +134,10 @@ local on_attach = function(client, bufnr) 'lua require\'lspsaga.diagnostic\'.show_line_diagnostics()', {noremap = true, silent = true} ) + buf_set_keymap('n', 'lq', 'TroubleToggle quickfix', { + noremap = true, + silent = true + }) buf_set_keymap("n", "bf", "lua vim.lsp.buf.formatting()", { noremap = true, silent = true @@ -151,6 +155,7 @@ local lspservers = { "bash:bashls", "css:cssls", "html:html", + "typescript:tsserver", "json:jsonls", "python:pyright", "rust:rust_analyzer", @@ -159,11 +164,9 @@ local lspservers = { "vue:vuels", "yaml:yamlls", "xml:lemminx", - "emmet:emmet_ls", - - -- "typescript:tsserver", + "emmet:emmet_ls" } -vim.cmd ' packadd nvim-lsp-installer' +vim.cmd 'packadd nvim-lsp-installer' local function split(s, delimiter) local result = {}; @@ -196,6 +199,15 @@ end -- map buffer local keybindings when the language server attaches local lsp_installer = require("nvim-lsp-installer") +vim.cmd('packadd null-ls.nvim') + +require("null-ls").setup({ + sources = { + -- require("null-ls").builtins.formatting.stylua, + require("null-ls").builtins.diagnostics.eslint, + }, +}) + lsp_installer.on_server_ready(function(server) local opts = { autostart = true, @@ -206,13 +218,13 @@ lsp_installer.on_server_ready(function(server) capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) } + -- special language lua if server.name == "sumneko_lua" then opts.settings = {Lua = {diagnostics = {globals = {'vim'}}}} end + + -- special language typescript if server.name == "tsserver" then - vim.cmd ' packadd null-ls.nvim' - require("null-ls").config {} - require("lspconfig")["null-ls"].setup {} if vim.fn.executable('npm') ~= 1 then print("npm was not found" .. "\n") else @@ -233,13 +245,17 @@ lsp_installer.on_server_ready(function(server) opts.on_attach = require('languages.config.server.typescript.tsserver').setup(on_attach) end - if server.name == "jdtls" then + if server.name == "jdtls" or server.name == 'clangd' then goto continue end + + -- Other default languages server:setup(opts) vim.cmd("bufdo e")::continue:: end) + +-- special language java vim.api.nvim_exec( [[ augroup jdtls_lsp @@ -250,6 +266,10 @@ vim.api.nvim_exec( false ) +-- specical language c/cpp +vim.cmd 'packadd clangd_extensions.nvim' +require("clangd_extensions").setup() + -- NOTE: finally, setup lsp saga and config vim.cmd ' packadd lspsaga.nvim' local saga = require 'lspsaga' From 032927ad9eca2fd2f3f0de7d46c13d09f2eebfa4 Mon Sep 17 00:00:00 2001 From: Jeremy Chen Date: Fri, 12 Jul 2024 00:00:41 +0800 Subject: [PATCH 92/92] fix error --- lua/core/init.lua | 6 +- lua/languages/config/nvim-lspconfig.lua | 2 +- plugin/packer_compiled.lua | 1344 ++++++++++++----------- 3 files changed, 691 insertions(+), 661 deletions(-) diff --git a/lua/core/init.lua b/lua/core/init.lua index 111fd87..19840e2 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -172,7 +172,7 @@ packer.startup(function(use) --language service protocol client 'neovim/nvim-lspconfig', requires = { - {'"williamboman/mason.nvim"', after = 'nvim-lspconfig',run = ":MasonUpdate"}, + {'williamboman/mason.nvim', after = 'nvim-lspconfig',run = ":MasonUpdate"}, {'tami5/lspsaga.nvim', after = 'nvim-lspconfig'}, {'mfussenegger/nvim-jdtls', after = 'nvim-lspconfig'}, {'p00f/clangd_extensions.nvim', after = 'nvim-lspconfig'}, @@ -437,6 +437,10 @@ packer.startup(function(use) "MattesGroeger/vim-bookmarks" } + use { + --Github Copilot + "github/copilot.vim" + } -------------------------------- end) require 'packer'.install() diff --git a/lua/languages/config/nvim-lspconfig.lua b/lua/languages/config/nvim-lspconfig.lua index 597637d..e7968d0 100644 --- a/lua/languages/config/nvim-lspconfig.lua +++ b/lua/languages/config/nvim-lspconfig.lua @@ -166,7 +166,7 @@ local lspservers = { "xml:lemminx", "emmet:emmet_ls" } -vim.cmd 'packadd nvim-lsp-installer' +-- vim.cmd 'packadd nvim-lsp-installer' local function split(s, delimiter) local result = {}; diff --git a/plugin/packer_compiled.lua b/plugin/packer_compiled.lua index 6f79ecb..7a91e02 100644 --- a/plugin/packer_compiled.lua +++ b/plugin/packer_compiled.lua @@ -1,683 +1,709 @@ -- Automatically generated packer.nvim plugin loader code if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then - vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') - return + vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"') + return end vim.api.nvim_command('packadd packer.nvim') local no_errors, error_msg = pcall(function() - local time - local profile_info - local should_profile = false - if should_profile then - local hrtime = vim.loop.hrtime - profile_info = {} - time = function(chunk, start) - if start then - profile_info[chunk] = hrtime() - else - profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 - end - end - else - time = function(chunk, start) - end - end - local function save_profiles(threshold) - local sorted_times = {} - for chunk_name, time_taken in pairs(profile_info) do - sorted_times[#sorted_times + 1] = {chunk_name, time_taken} - end - table.sort(sorted_times, function(a, b) - return a[2] > b[2] - end) - local results = {} - for i, elem in ipairs(sorted_times) do - if not threshold or threshold and elem[2] > threshold then - results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' - end - end +_G._packer = _G._packer or {} +_G._packer.inside_compile = true - _G._packer = _G._packer or {} - _G._packer.profile_output = results - end - - time([[Luarocks path setup]], true) - local package_path_str = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" - local install_cpath_pattern = "/home/jeremy/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so" - if not string.find(package.path, package_path_str, 1, true) then - package.path = package.path .. ';' .. package_path_str - end - - if not string.find(package.cpath, install_cpath_pattern, 1, true) then - package.cpath = package.cpath .. ';' .. install_cpath_pattern - end - - time([[Luarocks path setup]], false) - time([[try_loadstring definition]], true) - local function try_loadstring(s, component, name) - local success, result = pcall(loadstring(s)) - if not success then - vim.schedule(function() - vim.api.nvim_notify( - 'packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, - vim.log.levels.ERROR, - {} - ) - end) - end - return result - end - - time([[try_loadstring definition]], false) - time([[Defining packer_plugins]], true) - _G.packer_plugins = { - ["DAPInstall.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/DAPInstall.nvim" - }, - ["accelerated-jk"] = { - config = { - "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/accelerated-jk" - }, - ["barbar.nvim"] = { - config = { - "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/barbar.nvim" - }, - ["cmp-buffer"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer/after/plugin/cmp_buffer.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-buffer" - }, - ["cmp-calc"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc/after/plugin/cmp_calc.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-calc" - }, - ["cmp-emoji"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji/after/plugin/cmp_emoji.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-emoji" - }, - ["cmp-latex-symbols"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols/after/plugin/cmp_latex.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols" - }, - ["cmp-look"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look/after/plugin/cmp_look.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-look" - }, - ["cmp-nvim-lsp"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp" - }, - ["cmp-nvim-lua"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua" - }, - ["cmp-nvim-tags"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags/after/plugin/cmp_nvim_tags.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags" - }, - ["cmp-nvim-ultisnips"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips/after/plugin/cmp_nvim_ultisnips.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-nvim-ultisnips" - }, - ["cmp-path"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path/after/plugin/cmp_path.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-path" - }, - ["cmp-spell"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell/after/plugin/cmp-spell.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-spell" - }, - ["cmp-tabnine"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine/after/plugin/cmp-tabnine.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-tabnine" - }, - ["cmp-treesitter"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter/after/plugin/cmp_treesitter.lua" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-treesitter" - }, - ["cmp-vsnip"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip/after/plugin/cmp_vsnip.vim" - }, - load_after = {}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/cmp-vsnip" - }, - ["dashboard-nvim"] = { - config = { - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/dashboard-nvim" - }, - ["dial.nvim"] = { - config = {"\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0"}, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/dial.nvim" - }, - everforest = { - config = { - "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/everforest" - }, - ["friendly-snippets"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/friendly-snippets" - }, - ["galaxyline.nvim"] = { - config = { - "\27LJ\2\0026\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim" - }, - ["github-nvim-theme"] = { - config = { - "\27LJ\2\2\5\0\0\5\0\18\00016\0\0\0009\0\1\0'\1\2\0B\0\2\0016\0\0\0009\0\1\0'\1\3\0B\0\2\0016\0\0\0009\0\1\0'\1\4\0B\0\2\0016\0\0\0009\0\1\0'\1\5\0B\0\2\0016\0\0\0009\0\1\0'\1\6\0B\0\2\0016\0\0\0009\0\1\0'\1\a\0B\0\2\0016\0\0\0009\0\1\0'\1\b\0B\0\2\0016\0\0\0009\0\1\0'\1\t\0B\0\2\0016\0\0\0009\0\1\0'\1\n\0B\0\2\0016\0\0\0009\0\1\0'\1\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\1\14\0'\2\15\0'\3\16\0005\4\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2/lua require'github-theme'.setup()\15tc1\6n\20nvim_set_keymap\bapi9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'\bcmd\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/github-nvim-theme" - }, - ["gitsigns.nvim"] = { - config = { - "\27LJ\2\0027\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim" - }, - ["gruvbox-material"] = { - config = { - "\27LJ\2\2\t\0\0\5\0\29\0Q6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0'\1\5\0=\1\4\0006\0\0\0009\0\6\0'\1\a\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\n\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\v\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\f\0B\0\2\0016\0\0\0009\0\b\0009\0\t\0'\1\r\0B\0\2\0016\0\0\0009\0\6\0'\1\14\0B\0\2\0016\0\0\0009\0\6\0'\1\15\0B\0\2\0016\0\0\0009\0\6\0'\1\16\0B\0\2\0016\0\0\0009\0\6\0'\1\17\0B\0\2\0016\0\0\0009\0\6\0'\1\18\0B\0\2\0016\0\0\0009\0\6\0'\1\19\0B\0\2\0016\0\0\0009\0\6\0'\1\20\0B\0\2\0016\0\0\0009\0\6\0'\1\21\0B\0\2\0016\0\0\0009\0\6\0'\1\22\0B\0\2\0016\0\0\0009\0\6\0'\1\23\0B\0\2\0016\0\0\0009\0\b\0009\0\24\0'\1\25\0'\2\26\0'\3\27\0005\4\28\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap9hi SpellBad cterm=underline gui=undercurl guisp=None-hi CursorWord0 ctermbg=239 guibg=#3d3c3bChi InformationText cterm=underline gui=undercurl guisp=#0db9d7hi WarningText cterm=underline gui=undercurl guisp=yellow9hi ErrorText cterm=underline gui=undercurl guisp=red'hi VirtualTextHint guifg='#2c6e4e''hi VirtualTextInfo guifg='#0db9d7'$hi VirtualTextError guifg='red')hi VirtualTextWarning guifg='yellow'=highlight default HopUnmatched guifg=#666666 ctermfg=242;highlight default HopNextKey2 guifg=#2b8db3 ctermfg=33Ohighlight default HopNextKey1 guifg=#00dfff gui=bold ctermfg=45 cterm=boldPhighlight default HopNextKey guifg=#ff007c gui=bold ctermfg=198 cterm=bold\17nvim_command\bapi!colorscheme gruvbox-material\bcmd\bmix\29gruvbox_material_palette\vmedium gruvbox_material_background\6g\bvim\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/gruvbox-material" - }, - hop = { - config = { - "\27LJ\2\0022\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/hop" - }, - ["indent-blankline.nvim"] = { - config = { - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim" - }, - kommentary = { - config = { - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/kommentary" - }, - ["lspkind-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/lspkind-nvim" - }, - ["lspsaga.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim" - }, - ["neoscroll.nvim"] = { - config = { - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/neoscroll.nvim" - }, - ["nvim-autopairs"] = { - config = { - "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-autopairs" - }, - ["nvim-cmp"] = { - after = { - "cmp-vsnip", - "cmp-treesitter", - "cmp-nvim-lua", - "cmp-emoji", - "cmp-latex-symbols", - "cmp-nvim-ultisnips", - "cmp-calc", - "cmp-spell", - "cmp-nvim-tags", - "cmp-look", - "cmp-tabnine", - "cmp-path", - "cmp-buffer" - }, - loaded = true, - only_config = true - }, - ["nvim-colorizer.lua"] = { - config = { - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua" - }, - ["nvim-dap"] = { - config = { - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap" - }, - ["nvim-dap-ui"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-ui" - }, - ["nvim-dap-virtual-text"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-dap-virtual-text" - }, - ["nvim-jdtls"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-jdtls" - }, - ["nvim-lsp-installer"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lsp-installer" - }, - ["nvim-lspconfig"] = { - after = { - "nvim-lsp-installer", - "nvim-jdtls", - "nvim-lspinstall", - "lspsaga.nvim" - }, - loaded = true, - only_config = true - }, - ["nvim-lspinstall"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-lspinstall" - }, - ["nvim-markdown-preview"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview" - }, - ["nvim-toggleterm.lua"] = { - config = { - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua" - }, - ["nvim-transparent"] = { - config = { - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-transparent" - }, - ["nvim-tree.lua"] = { - config = { - "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua" - }, - ["nvim-treesitter"] = { - after = { - "spellsitter.nvim", - "nvim-treesitter-textobjects", - "nvim-ts-rainbow", - "nvim-ts-autotag" - }, - loaded = true, - only_config = true - }, - ["nvim-treesitter-textobjects"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects" - }, - ["nvim-ts-autotag"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag" - }, - ["nvim-ts-rainbow"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow" - }, - ["nvim-web-devicons"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/nvim-web-devicons" - }, - ["packer.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/packer.nvim" - }, - ["plenary.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/plenary.nvim" - }, - ["popup.nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/popup.nvim" - }, - ripgrep = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/ripgrep" - }, - sonokai = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/sonokai" - }, - ["space-nvim"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/space-nvim" - }, - ["spellsitter.nvim"] = { - load_after = {}, - loaded = true, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim" - }, - ["telescope.nvim"] = { - config = { - "\27LJ\2\0025\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" - }, - loaded = false, - needs_bufread = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/telescope.nvim" - }, - ["todo-comments.nvim"] = { - config = { - "\27LJ\2\2<\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim" - }, - ["vim-bookmarks"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-bookmarks" - }, - ["vim-cursorword"] = { - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-cursorword" - }, - ["vim-rooter"] = { - config = { - "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" - }, - loaded = true, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/start/vim-rooter" - }, - ["vim-sayonara"] = { - config = { - "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-sayonara" - }, - ["vim-vsnip"] = { - after = {"vim-vsnip-integ"}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip" - }, - ["vim-vsnip-integ"] = { - after_files = { - "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" - }, - load_after = {["vim-vsnip"] = true}, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ" - }, - ["vista.vim"] = { - config = { - "\27LJ\2\0021\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/vista.vim" - }, - ["which-key.nvim"] = { - config = { - "\27LJ\2\0028\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" - }, - loaded = false, - needs_bufread = false, - path = "/home/jeremy/.local/share/nvim/site/pack/packer/opt/which-key.nvim" - } - } - - time([[Defining packer_plugins]], false) - - -- Config for: nvim-treesitter - time([[Config for nvim-treesitter]], true) - try_loadstring( - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", - "config", - "nvim-treesitter" - ) - time([[Config for nvim-treesitter]], false) - - -- Config for: nvim-cmp - time([[Config for nvim-cmp]], true) - try_loadstring( - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0", - "config", - "nvim-cmp" - ) - time([[Config for nvim-cmp]], false) - - -- Config for: nvim-colorizer.lua - time([[Config for nvim-colorizer.lua]], true) - try_loadstring( - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", - "config", - "nvim-colorizer.lua" - ) - time([[Config for nvim-colorizer.lua]], false) - - -- Config for: vim-rooter - time([[Config for vim-rooter]], true) - try_loadstring( - "\27LJ\2\0025\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", - "config", - "vim-rooter" - ) - time([[Config for vim-rooter]], false) +local time +local profile_info +local should_profile = false +if should_profile then + local hrtime = vim.loop.hrtime + profile_info = {} + time = function(chunk, start) + if start then + profile_info[chunk] = hrtime() + else + profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6 + end + end +else + time = function(chunk, start) end +end - -- Config for: accelerated-jk - time([[Config for accelerated-jk]], true) - try_loadstring( - "\27LJ\2\2:\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", - "config", - "accelerated-jk" - ) - time([[Config for accelerated-jk]], false) +local function save_profiles(threshold) + local sorted_times = {} + for chunk_name, time_taken in pairs(profile_info) do + sorted_times[#sorted_times + 1] = {chunk_name, time_taken} + end + table.sort(sorted_times, function(a, b) return a[2] > b[2] end) + local results = {} + for i, elem in ipairs(sorted_times) do + if not threshold or threshold and elem[2] > threshold then + results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms' + end + end + if threshold then + table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)') + end - -- Config for: nvim-dap - time([[Config for nvim-dap]], true) - try_loadstring( - "\27LJ\2\0029\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0\30languages.config.nvim-dap\frequire\0", - "config", - "nvim-dap" - ) - time([[Config for nvim-dap]], false) + _G._packer.profile_output = results +end - -- Config for: neoscroll.nvim - time([[Config for neoscroll.nvim]], true) - try_loadstring( - "\27LJ\2\0027\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", - "config", - "neoscroll.nvim" - ) - time([[Config for neoscroll.nvim]], false) +time([[Luarocks path setup]], true) +local package_path_str = "/home/jeremychen/.cache/nvim/packer_hererocks/2.1.1720049189/share/lua/5.1/?.lua;/home/jeremychen/.cache/nvim/packer_hererocks/2.1.1720049189/share/lua/5.1/?/init.lua;/home/jeremychen/.cache/nvim/packer_hererocks/2.1.1720049189/lib/luarocks/rocks-5.1/?.lua;/home/jeremychen/.cache/nvim/packer_hererocks/2.1.1720049189/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/jeremychen/.cache/nvim/packer_hererocks/2.1.1720049189/lib/lua/5.1/?.so" +if not string.find(package.path, package_path_str, 1, true) then + package.path = package.path .. ';' .. package_path_str +end - -- Config for: kommentary - time([[Config for kommentary]], true) - try_loadstring( - "\27LJ\2\2;\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", - "config", - "kommentary" - ) - time([[Config for kommentary]], false) +if not string.find(package.cpath, install_cpath_pattern, 1, true) then + package.cpath = package.cpath .. ';' .. install_cpath_pattern +end - -- Config for: nvim-lspconfig - time([[Config for nvim-lspconfig]], true) - try_loadstring( - "\27LJ\2\2?\0\0\2\0\2\0\0046\0\0\0'\1\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", - "config", - "nvim-lspconfig" - ) - time([[Config for nvim-lspconfig]], false) +time([[Luarocks path setup]], false) +time([[try_loadstring definition]], true) +local function try_loadstring(s, component, name) + local success, result = pcall(loadstring(s), name, _G.packer_plugins[name]) + if not success then + vim.schedule(function() + vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {}) + end) + end + return result +end - -- Config for: nvim-autopairs - time([[Config for nvim-autopairs]], true) - try_loadstring( - "\27LJ\2\2<\0\0\2\0\3\0\0066\0\0\0'\1\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", - "config", - "nvim-autopairs" - ) - time([[Config for nvim-autopairs]], false) +time([[try_loadstring definition]], false) +time([[Defining packer_plugins]], true) +_G.packer_plugins = { + ["accelerated-jk"] = { + config = { "\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/accelerated-jk", + url = "https://github.com/rhysd/accelerated-jk" + }, + ["barbar.nvim"] = { + config = { "\27LJ\2\n2\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\23core.config.barbar\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/barbar.nvim", + url = "https://github.com/romgrk/barbar.nvim" + }, + ["clangd_extensions.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/clangd_extensions.nvim", + url = "https://github.com/p00f/clangd_extensions.nvim" + }, + ["cmp-buffer"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-buffer/after/plugin/cmp_buffer.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-buffer", + url = "https://github.com/hrsh7th/cmp-buffer" + }, + ["cmp-calc"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-calc/after/plugin/cmp_calc.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-calc", + url = "https://github.com/hrsh7th/cmp-calc" + }, + ["cmp-emoji"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-emoji/after/plugin/cmp_emoji.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-emoji", + url = "https://github.com/hrsh7th/cmp-emoji" + }, + ["cmp-latex-symbols"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols/after/plugin/cmp_latex.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-latex-symbols", + url = "https://github.com/kdheepak/cmp-latex-symbols" + }, + ["cmp-look"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-look/after/plugin/cmp_look.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-look", + url = "https://github.com/octaltree/cmp-look" + }, + ["cmp-nvim-lsp"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", + url = "https://github.com/hrsh7th/cmp-nvim-lsp" + }, + ["cmp-nvim-lua"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-nvim-lua", + url = "https://github.com/hrsh7th/cmp-nvim-lua" + }, + ["cmp-nvim-tags"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags/after/plugin/cmp_nvim_tags.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-nvim-tags", + url = "https://github.com/quangnguyen30192/cmp-nvim-tags" + }, + ["cmp-path"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-path/after/plugin/cmp_path.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-path", + url = "https://github.com/hrsh7th/cmp-path" + }, + ["cmp-spell"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-spell/after/plugin/cmp-spell.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-spell", + url = "https://github.com/f3fora/cmp-spell" + }, + ["cmp-tabnine"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-tabnine/after/plugin/cmp-tabnine.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-tabnine", + url = "https://github.com/tzachar/cmp-tabnine" + }, + ["cmp-treesitter"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-treesitter/after/plugin/cmp_treesitter.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-treesitter", + url = "https://github.com/ray-x/cmp-treesitter" + }, + ["cmp-vsnip"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-vsnip/after/plugin/cmp_vsnip.lua" }, + load_after = {}, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/cmp-vsnip", + url = "https://github.com/hrsh7th/cmp-vsnip" + }, + ["colorbuddy.vim"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/colorbuddy.vim", + url = "https://github.com/tjdevries/colorbuddy.vim" + }, + ["copilot.vim"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/copilot.vim", + url = "https://github.com/github/copilot.vim" + }, + ["dashboard-nvim"] = { + config = { "\27LJ\2\n9\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\30core.config.dashboard-vim\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/dashboard-nvim", + url = "https://github.com/glepnir/dashboard-nvim" + }, + ["dial.nvim"] = { + config = { "\27LJ\2\n\v\0\0\1\0\0\0\1K\0\1\0\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/dial.nvim", + url = "https://github.com/monaqa/dial.nvim" + }, + edge = { + config = { "\27LJ\2\n\1\0\0\b\0\n\0\r6\0\0\0009\0\1\0'\1\3\0006\2\0\0009\2\4\0029\2\5\2'\4\6\0'\5\a\0'\6\b\0005\a\t\0B\2\5\1=\1\2\0K\0\1\0\1\0\1\vsilent\2\30colorscheme edge\15tc6\6n\20nvim_set_keymap\bapi\fcolored!edge_diagnostic_virtual_text\6g\bvim\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/edge", + url = "https://github.com/sainnhe/edge" + }, + everforest = { + config = { "\27LJ\2\n\1\0\0\6\0\n\0\r6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\4\0009\0\5\0'\2\6\0'\3\a\0'\4\b\0005\5\t\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\fcolored'everforest_diagnostic_virtual_text\6g\bvim\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/everforest", + url = "https://github.com/sainnhe/everforest" + }, + ["friendly-snippets"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/friendly-snippets", + url = "https://github.com/rafamadriz/friendly-snippets" + }, + ["galaxyline.nvim"] = { + config = { "\27LJ\2\n6\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\27core.config.galaxyline\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/galaxyline.nvim", + url = "https://github.com/NTBBloodbath/galaxyline.nvim" + }, + ["github-nvim-theme"] = { + config = { "\27LJ\2\n|\0\0\6\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2%colorscheme github_dark\15tc1\6n\20nvim_set_keymap\bapi\bvim\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/github-nvim-theme", + url = "https://github.com/projekt0n/github-nvim-theme" + }, + ["gitsigns.nvim"] = { + config = { "\27LJ\2\n7\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\28plugins.config.gitsigns\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/gitsigns.nvim", + url = "https://github.com/lewis6991/gitsigns.nvim" + }, + ["gruvbox-material"] = { + config = { "\27LJ\2\n\3\0\0\6\0\18\0!6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0)\1\1\0=\1\4\0006\0\0\0009\0\1\0)\1\1\0=\1\5\0006\0\0\0009\0\1\0'\1\a\0=\1\6\0006\0\0\0009\0\1\0'\1\t\0=\1\b\0006\0\0\0009\0\n\0'\2\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\2\14\0'\3\15\0'\4\16\0005\5\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap\bapi!colorscheme gruvbox-material\bcmd\fcolored-gruvbox_material_diagnostic_virtual_text\bmix\29gruvbox_material_palette,gruvbox_material_disable_italic_comment#gruvbox_material_enable_italic\tsoft gruvbox_material_background\6g\bvim\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/gruvbox-material", + url = "https://github.com/sainnhe/gruvbox-material" + }, + ["gruvbuddy.nvim"] = { + config = { "\27LJ\2\n\1\0\0\6\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2>lua require'colorbuddy'.colorscheme('gruvbuddy')\15tc5\6n\20nvim_set_keymap\bapi\bvim\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/gruvbuddy.nvim", + url = "https://github.com/tjdevries/gruvbuddy.nvim" + }, + hop = { + config = { "\27LJ\2\n2\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\23plugins.config.hop\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/hop", + url = "https://github.com/phaazon/hop.nvim" + }, + ["indent-blankline.nvim"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim/after/plugin/commands.lua" }, + config = { "\27LJ\2\n?\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0$plugins.config.indent-blankline\frequire\0" }, + loaded = false, + needs_bufread = true, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/indent-blankline.nvim", + url = "https://github.com/lukas-reineke/indent-blankline.nvim" + }, + kommentary = { + config = { "\27LJ\2\n;\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/kommentary", + url = "https://github.com/b3nj5m1n/kommentary" + }, + ["lspkind-nvim"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/lspkind-nvim", + url = "https://github.com/onsails/lspkind-nvim" + }, + ["lspsaga.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/lspsaga.nvim", + url = "https://github.com/tami5/lspsaga.nvim" + }, + ["mason.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/mason.nvim", + url = "https://github.com/williamboman/mason.nvim" + }, + ["neoscroll.nvim"] = { + config = { "\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/neoscroll.nvim", + url = "https://github.com/karb94/neoscroll.nvim" + }, + ["null-ls.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/null-ls.nvim", + url = "https://github.com/jose-elias-alvarez/null-ls.nvim" + }, + ["nvim-autopairs"] = { + config = { "\27LJ\2\n<\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/nvim-autopairs", + url = "https://github.com/windwp/nvim-autopairs" + }, + ["nvim-cmp"] = { + after = { "cmp-calc", "cmp-treesitter", "cmp-buffer", "cmp-emoji", "cmp-nvim-lua", "cmp-spell", "cmp-look", "cmp-nvim-tags", "cmp-vsnip", "cmp-tabnine", "cmp-latex-symbols", "cmp-path" }, + config = { "\27LJ\2\n9\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0" }, + loaded = true, + only_config = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/nvim-cmp", + url = "https://github.com/hrsh7th/nvim-cmp" + }, + ["nvim-colorizer.lua"] = { + config = { "\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua", + url = "https://github.com/norcalli/nvim-colorizer.lua" + }, + ["nvim-jdtls"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/nvim-jdtls", + url = "https://github.com/mfussenegger/nvim-jdtls" + }, + ["nvim-lsp-ts-utils"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/nvim-lsp-ts-utils", + url = "https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils" + }, + ["nvim-lspconfig"] = { + after = { "trouble.nvim", "lspsaga.nvim", "nvim-jdtls", "clangd_extensions.nvim", "nvim-lsp-ts-utils", "null-ls.nvim", "mason.nvim" }, + config = { "\27LJ\2\n?\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0" }, + loaded = true, + only_config = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", + url = "https://github.com/neovim/nvim-lspconfig" + }, + ["nvim-markdown-preview"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/nvim-markdown-preview", + url = "https://github.com/davidgranstrom/nvim-markdown-preview" + }, + ["nvim-navic"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/nvim-navic", + url = "https://github.com/SmiteshP/nvim-navic" + }, + ["nvim-toggleterm.lua"] = { + config = { "\27LJ\2\n;\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0 core.config.nvim-toggleterm\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/nvim-toggleterm.lua", + url = "https://github.com/akinsho/nvim-toggleterm.lua" + }, + ["nvim-transparent"] = { + config = { "\27LJ\2\n?\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0$plugins.config.nvim-transparent\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/nvim-transparent", + url = "https://github.com/xiyaowong/nvim-transparent" + }, + ["nvim-tree.lua"] = { + config = { "\27LJ\2\n5\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\26core.config.nvim-tree\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/nvim-tree.lua", + url = "https://github.com/kyazdani42/nvim-tree.lua" + }, + ["nvim-treesitter"] = { + after = { "nvim-treesitter-textobjects", "nvim-ts-rainbow", "spellsitter.nvim", "nvim-ts-context-commentstring", "nvim-ts-autotag" }, + config = { "\27LJ\2\n;\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0" }, + loaded = true, + only_config = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/nvim-treesitter", + url = "https://github.com/nvim-treesitter/nvim-treesitter" + }, + ["nvim-treesitter-textobjects"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/nvim-treesitter-textobjects", + url = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects" + }, + ["nvim-ts-autotag"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/nvim-ts-autotag", + url = "https://github.com/windwp/nvim-ts-autotag" + }, + ["nvim-ts-context-commentstring"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/nvim-ts-context-commentstring", + url = "https://github.com/JoosepAlviste/nvim-ts-context-commentstring" + }, + ["nvim-ts-rainbow"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/nvim-ts-rainbow", + url = "https://github.com/p00f/nvim-ts-rainbow" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/nvim-web-devicons", + url = "https://github.com/kyazdani42/nvim-web-devicons" + }, + onebuddy = { + config = { "\27LJ\2\n\1\0\0\6\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2=lua require'colorbuddy'.colorscheme('onebuddy')\15tc4\6n\20nvim_set_keymap\bapi\bvim\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/onebuddy", + url = "https://github.com/Th3Whit3Wolf/onebuddy" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/plenary.nvim", + url = "https://github.com/nvim-lua/plenary.nvim" + }, + ["popup.nvim"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/popup.nvim", + url = "https://github.com/nvim-lua/popup.nvim" + }, + ripgrep = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/ripgrep", + url = "https://github.com/BurntSushi/ripgrep" + }, + ["shade.nvim"] = { + config = { "\27LJ\2\n[\0\0\3\0\4\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0B\0\2\1K\0\1\0\1\0\2\17opacity_step\3\1\20overlay_opacity\0032\nsetup\nshade\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/shade.nvim", + url = "https://github.com/sunjon/shade.nvim" + }, + sonokai = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/sonokai", + url = "https://github.com/sainnhe/sonokai" + }, + ["space-nvim"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/space-nvim", + url = "https://github.com/Th3Whit3Wolf/space-nvim" + }, + ["spellsitter.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/spellsitter.nvim", + url = "https://github.com/lewis6991/spellsitter.nvim" + }, + ["telescope.nvim"] = { + config = { "\27LJ\2\n5\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\26core.config.telescope\frequire\0" }, + loaded = false, + needs_bufread = true, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/telescope.nvim", + url = "https://github.com/nvim-telescope/telescope.nvim" + }, + ["todo-comments.nvim"] = { + config = { "\27LJ\2\n<\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0!plugins.config.todo-comments\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/todo-comments.nvim", + url = "https://github.com/folke/todo-comments.nvim" + }, + ["trouble.nvim"] = { + load_after = {}, + loaded = true, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/trouble.nvim", + url = "https://github.com/folke/trouble.nvim" + }, + ["vim-bookmarks"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/vim-bookmarks", + url = "https://github.com/MattesGroeger/vim-bookmarks" + }, + ["vim-cursorword"] = { + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/vim-cursorword", + url = "https://github.com/itchyny/vim-cursorword" + }, + ["vim-rooter"] = { + config = { "\27LJ\2\n5\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/vim-rooter", + url = "https://github.com/airblade/vim-rooter" + }, + ["vim-sayonara"] = { + config = { "\27LJ\2\n8\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\29core.config.vim-sayonara\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/vim-sayonara", + url = "https://github.com/mhinz/vim-sayonara" + }, + ["vim-vsnip"] = { + after = { "vim-vsnip-integ" }, + loaded = false, + needs_bufread = true, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/vim-vsnip", + url = "https://github.com/hrsh7th/vim-vsnip" + }, + ["vim-vsnip-integ"] = { + after_files = { "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" }, + load_after = { + ["vim-vsnip"] = true + }, + loaded = false, + needs_bufread = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ", + url = "https://github.com/hrsh7th/vim-vsnip-integ" + }, + ["vista.vim"] = { + config = { "\27LJ\2\n1\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\22core.config.vista\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/vista.vim", + url = "https://github.com/liuchengxu/vista.vim" + }, + ["which-key.nvim"] = { + config = { "\27LJ\2\n8\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\29plugins.config.which-key\frequire\0" }, + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/opt/which-key.nvim", + url = "https://github.com/folke/which-key.nvim" + }, + ["zen-mode.nvim"] = { + config = { "\27LJ\2\n7\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\28plugins.config.zen-mode\frequire\0" }, + loaded = true, + path = "/home/jeremychen/.local/share/nvim/site/pack/packer/start/zen-mode.nvim", + url = "https://github.com/folke/zen-mode.nvim" + } +} - -- Config for: dial.nvim - time([[Config for dial.nvim]], true) - try_loadstring("\27LJ\2\2\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") - time([[Config for dial.nvim]], false) +time([[Defining packer_plugins]], false) +-- Config for: nvim-lspconfig +time([[Config for nvim-lspconfig]], true) +try_loadstring("\27LJ\2\n?\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0$languages.config.nvim-lspconfig\frequire\0", "config", "nvim-lspconfig") +time([[Config for nvim-lspconfig]], false) +-- Config for: onebuddy +time([[Config for onebuddy]], true) +try_loadstring("\27LJ\2\n\1\0\0\6\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2=lua require'colorbuddy'.colorscheme('onebuddy')\15tc4\6n\20nvim_set_keymap\bapi\bvim\0", "config", "onebuddy") +time([[Config for onebuddy]], false) +-- Config for: gruvbox-material +time([[Config for gruvbox-material]], true) +try_loadstring("\27LJ\2\n\3\0\0\6\0\18\0!6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\1\0)\1\1\0=\1\4\0006\0\0\0009\0\1\0)\1\1\0=\1\5\0006\0\0\0009\0\1\0'\1\a\0=\1\6\0006\0\0\0009\0\1\0'\1\t\0=\1\b\0006\0\0\0009\0\n\0'\2\v\0B\0\2\0016\0\0\0009\0\f\0009\0\r\0'\2\14\0'\3\15\0'\4\16\0005\5\17\0B\0\5\1K\0\1\0\1\0\1\vsilent\2*colorscheme gruvbox-material\15tc2\6n\20nvim_set_keymap\bapi!colorscheme gruvbox-material\bcmd\fcolored-gruvbox_material_diagnostic_virtual_text\bmix\29gruvbox_material_palette,gruvbox_material_disable_italic_comment#gruvbox_material_enable_italic\tsoft gruvbox_material_background\6g\bvim\0", "config", "gruvbox-material") +time([[Config for gruvbox-material]], false) +-- Config for: gruvbuddy.nvim +time([[Config for gruvbuddy.nvim]], true) +try_loadstring("\27LJ\2\n\1\0\0\6\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2>lua require'colorbuddy'.colorscheme('gruvbuddy')\15tc5\6n\20nvim_set_keymap\bapi\bvim\0", "config", "gruvbuddy.nvim") +time([[Config for gruvbuddy.nvim]], false) +-- Config for: everforest +time([[Config for everforest]], true) +try_loadstring("\27LJ\2\n\1\0\0\6\0\n\0\r6\0\0\0009\0\1\0'\1\3\0=\1\2\0006\0\0\0009\0\4\0009\0\5\0'\2\6\0'\3\a\0'\4\b\0005\5\t\0B\0\5\1K\0\1\0\1\0\1\vsilent\2$colorscheme everforest\15tc3\6n\20nvim_set_keymap\bapi\fcolored'everforest_diagnostic_virtual_text\6g\bvim\0", "config", "everforest") +time([[Config for everforest]], false) +-- Config for: accelerated-jk +time([[Config for accelerated-jk]], true) +try_loadstring("\27LJ\2\n:\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\31core.config.accelerated-jk\frequire\0", "config", "accelerated-jk") +time([[Config for accelerated-jk]], false) +-- Config for: zen-mode.nvim +time([[Config for zen-mode.nvim]], true) +try_loadstring("\27LJ\2\n7\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\28plugins.config.zen-mode\frequire\0", "config", "zen-mode.nvim") +time([[Config for zen-mode.nvim]], false) +-- Config for: vim-rooter +time([[Config for vim-rooter]], true) +try_loadstring("\27LJ\2\n5\0\0\2\0\3\0\0056\0\0\0009\0\1\0)\1\1\0=\1\2\0K\0\1\0\24rooter_silent_chdir\6g\bvim\0", "config", "vim-rooter") +time([[Config for vim-rooter]], false) +-- Config for: kommentary +time([[Config for kommentary]], true) +try_loadstring("\27LJ\2\n;\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0 languages.config.kommentary\frequire\0", "config", "kommentary") +time([[Config for kommentary]], false) +-- Config for: nvim-colorizer.lua +time([[Config for nvim-colorizer.lua]], true) +try_loadstring("\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") +time([[Config for nvim-colorizer.lua]], false) +-- Config for: nvim-treesitter +time([[Config for nvim-treesitter]], true) +try_loadstring("\27LJ\2\n;\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0 core.config.nvim-treesitter\frequire\0", "config", "nvim-treesitter") +time([[Config for nvim-treesitter]], false) +-- Config for: nvim-cmp +time([[Config for nvim-cmp]], true) +try_loadstring("\27LJ\2\n9\0\0\3\0\2\0\0046\0\0\0'\2\1\0B\0\2\1K\0\1\0\30languages.config.nvim-cmp\frequire\0", "config", "nvim-cmp") +time([[Config for nvim-cmp]], false) +-- Config for: edge +time([[Config for edge]], true) +try_loadstring("\27LJ\2\n\1\0\0\b\0\n\0\r6\0\0\0009\0\1\0'\1\3\0006\2\0\0009\2\4\0029\2\5\2'\4\6\0'\5\a\0'\6\b\0005\a\t\0B\2\5\1=\1\2\0K\0\1\0\1\0\1\vsilent\2\30colorscheme edge\15tc6\6n\20nvim_set_keymap\bapi\fcolored!edge_diagnostic_virtual_text\6g\bvim\0", "config", "edge") +time([[Config for edge]], false) +-- Config for: github-nvim-theme +time([[Config for github-nvim-theme]], true) +try_loadstring("\27LJ\2\n|\0\0\6\0\a\0\t6\0\0\0009\0\1\0009\0\2\0'\2\3\0'\3\4\0'\4\5\0005\5\6\0B\0\5\1K\0\1\0\1\0\1\vsilent\2%colorscheme github_dark\15tc1\6n\20nvim_set_keymap\bapi\bvim\0", "config", "github-nvim-theme") +time([[Config for github-nvim-theme]], false) +-- Config for: dial.nvim +time([[Config for dial.nvim]], true) +try_loadstring("\27LJ\2\n\v\0\0\1\0\0\0\1K\0\1\0\0", "config", "dial.nvim") +time([[Config for dial.nvim]], false) +-- Config for: nvim-autopairs +time([[Config for nvim-autopairs]], true) +try_loadstring("\27LJ\2\n<\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\19nvim-autopairs\frequire\0", "config", "nvim-autopairs") +time([[Config for nvim-autopairs]], false) +-- Config for: neoscroll.nvim +time([[Config for neoscroll.nvim]], true) +try_loadstring("\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14neoscroll\frequire\0", "config", "neoscroll.nvim") +time([[Config for neoscroll.nvim]], false) +-- Load plugins in order defined by `after` +time([[Sequenced loading]], true) +vim.cmd [[ packadd nvim-ts-context-commentstring ]] +vim.cmd [[ packadd nvim-ts-autotag ]] +vim.cmd [[ packadd spellsitter.nvim ]] +vim.cmd [[ packadd nvim-ts-rainbow ]] +vim.cmd [[ packadd nvim-treesitter-textobjects ]] +vim.cmd [[ packadd clangd_extensions.nvim ]] +vim.cmd [[ packadd trouble.nvim ]] +vim.cmd [[ packadd nvim-jdtls ]] +vim.cmd [[ packadd lspsaga.nvim ]] +vim.cmd [[ packadd null-ls.nvim ]] +vim.cmd [[ packadd mason.nvim ]] +vim.cmd [[ packadd nvim-lsp-ts-utils ]] +time([[Sequenced loading]], false) +vim.cmd [[augroup packer_load_aucmds]] +vim.cmd [[au!]] + -- Filetype lazy-loads +time([[Defining lazy-load filetype autocommands]], true) +vim.cmd [[au FileType tex ++once lua require("packer.load")({'cmp-latex-symbols'}, { ft = "tex" }, _G.packer_plugins)]] +time([[Defining lazy-load filetype autocommands]], false) + -- Event lazy-loads +time([[Defining lazy-load event autocommands]], true) +vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'vim-vsnip', 'cmp-calc', 'cmp-treesitter', 'cmp-buffer', 'cmp-emoji', 'cmp-nvim-lua', 'cmp-spell', 'cmp-look', 'cmp-nvim-tags', 'cmp-vsnip', 'cmp-tabnine', 'cmp-path'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] +vim.cmd [[au BufRead * ++once lua require("packer.load")({'shade.nvim', 'gitsigns.nvim', 'hop', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] +vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'vista.vim', 'nvim-tree.lua', 'nvim-toggleterm.lua', 'telescope.nvim', 'which-key.nvim', 'nvim-transparent', 'dashboard-nvim', 'indent-blankline.nvim', 'barbar.nvim', 'vim-sayonara', 'galaxyline.nvim'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] +time([[Defining lazy-load event autocommands]], false) +vim.cmd("augroup END") - -- Load plugins in order defined by `after` - time([[Sequenced loading]], true) - vim.cmd [[ packadd spellsitter.nvim ]] - vim.cmd [[ packadd nvim-ts-rainbow ]] - vim.cmd [[ packadd nvim-ts-autotag ]] - vim.cmd [[ packadd nvim-treesitter-textobjects ]] - vim.cmd [[ packadd nvim-lspinstall ]] - vim.cmd [[ packadd nvim-jdtls ]] - vim.cmd [[ packadd nvim-lsp-installer ]] - vim.cmd [[ packadd lspsaga.nvim ]] - time([[Sequenced loading]], false) - vim.cmd [[augroup packer_load_aucmds]] - vim.cmd [[au!]] +_G._packer.inside_compile = false +if _G._packer.needs_bufread == true then + vim.cmd("doautocmd BufRead") +end +_G._packer.needs_bufread = false - -- Filetype lazy-loads - time([[Defining lazy-load filetype autocommands]], true) - vim.cmd [[au FileType tex ++once lua require("packer.load")({'cmp-latex-symbols'}, { ft = "tex" }, _G.packer_plugins)]] - time([[Defining lazy-load filetype autocommands]], false) +if should_profile then save_profiles() end - -- Event lazy-loads - time([[Defining lazy-load event autocommands]], true) - vim.cmd [[au BufWinEnter * ++once lua require("packer.load")({'galaxyline.nvim', 'barbar.nvim', 'vim-sayonara', 'indent-blankline.nvim', 'nvim-tree.lua', 'which-key.nvim', 'nvim-transparent', 'dashboard-nvim', 'telescope.nvim', 'vista.vim', 'nvim-toggleterm.lua'}, { event = "BufWinEnter *" }, _G.packer_plugins)]] - vim.cmd [[au InsertCharPre * ++once lua require("packer.load")({'cmp-vsnip', 'cmp-treesitter', 'cmp-nvim-lua', 'cmp-emoji', 'cmp-nvim-ultisnips', 'cmp-calc', 'cmp-spell', 'cmp-nvim-tags', 'cmp-look', 'cmp-tabnine', 'vim-vsnip', 'cmp-path', 'cmp-buffer'}, { event = "InsertCharPre *" }, _G.packer_plugins)]] - vim.cmd [[au BufRead * ++once lua require("packer.load")({'hop', 'gitsigns.nvim', 'everforest', 'gruvbox-material', 'github-nvim-theme', 'todo-comments.nvim'}, { event = "BufRead *" }, _G.packer_plugins)]] - time([[Defining lazy-load event autocommands]], false) - vim.cmd("augroup END") - if should_profile then - save_profiles() - end end) if not no_errors then - vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: ' .. error_msg .. '" | echom "Please check your config for correctness" | echohl None') + error_msg = error_msg:gsub('"', '\\"') + vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None') end