diff options
Diffstat (limited to '')
| -rw-r--r-- | .vim/lua/plugins.lua | 201 | ||||
| -rw-r--r-- | .vim/lua/plugins/_colorizer.lua | 8 | ||||
| -rw-r--r-- | .vim/lua/plugins/_completion.lua | 17 | ||||
| -rw-r--r-- | .vim/lua/plugins/_git-messenger.lua | 3 | ||||
| -rw-r--r-- | .vim/lua/plugins/_goyo.lua | 9 | ||||
| -rw-r--r-- | .vim/lua/plugins/_indent-guides.lua | 4 | ||||
| -rw-r--r-- | .vim/lua/plugins/_limelight.lua | 7 | ||||
| -rw-r--r-- | .vim/lua/plugins/_lsp.lua (renamed from .vim/lua/conf/lsp.lua) | 57 | ||||
| -rw-r--r-- | .vim/lua/plugins/_markdown.lua | 9 | ||||
| -rw-r--r-- | .vim/lua/plugins/_signify.lua | 6 | ||||
| -rw-r--r-- | .vim/lua/plugins/_telescope.lua | 99 | ||||
| -rw-r--r-- | .vim/lua/plugins/_treesitter.lua (renamed from .vim/lua/conf/treesitter.lua) | 2 | ||||
| -rw-r--r-- | .vim/lua/plugins/_ultisnips.lua | 4 | ||||
| -rw-r--r-- | .vim/lua/plugins/_vimtex.lua | 8 |
14 files changed, 325 insertions, 109 deletions
diff --git a/.vim/lua/plugins.lua b/.vim/lua/plugins.lua index 0ccfb05..4830b4b 100644 --- a/.vim/lua/plugins.lua +++ b/.vim/lua/plugins.lua @@ -1,24 +1,27 @@ -- load by calling `lua require('plugins')` from your init.vim +local cmd = vim.cmd +local g = vim.g +local u = require('utils') function disable_distribution_plugins() - vim.g.loaded_gzip = 1 - vim.g.loaded_tar = 1 - vim.g.loaded_tarPlugin = 1 - vim.g.loaded_zip = 1 - vim.g.loaded_zipPlugin = 1 - vim.g.loaded_getscript = 1 - vim.g.loaded_getscriptPlugin = 1 - vim.g.loaded_vimball = 1 - vim.g.loaded_vimballPlugin = 1 - vim.g.loaded_matchit = 1 - -- vim.g.loaded_matchparen = 1 - vim.g.loaded_2html_plugin = 1 - vim.g.loaded_logiPat = 1 - vim.g.loaded_rrhelper = 1 - vim.g.loaded_netrw = 1 - vim.g.loaded_netrwPlugin = 1 - vim.g.loaded_netrwSettings = 1 - vim.g.loaded_netrwFileHandlers = 1 + g.loaded_gzip = 1 + g.loaded_tar = 1 + g.loaded_tarPlugin = 1 + g.loaded_zip = 1 + g.loaded_zipPlugin = 1 + g.loaded_getscript = 1 + g.loaded_getscriptPlugin = 1 + g.loaded_vimball = 1 + g.loaded_vimballPlugin = 1 + g.loaded_matchit = 1 + -- g.loaded_matchparen = 1 + g.loaded_2html_plugin = 1 + g.loaded_logiPat = 1 + g.loaded_rrhelper = 1 + g.loaded_netrw = 1 + g.loaded_netrwPlugin = 1 + g.loaded_netrwSettings = 1 + g.loaded_netrwFileHandlers = 1 end -- enable to bootstrap packer from ~/.local/share/nvim/site/pack/packer/opt/packer.nvim @@ -31,112 +34,124 @@ return require'packer'.startup(function() -- manage packer itself use {'wbthomason/packer.nvim'} - use {'mhinz/vim-signify'} -- git status in the sign column + -- git status in the sign column + use {'mhinz/vim-signify', + config = "require('plugins._signify')" + } + use {'tpope/vim-commentary'} -- auto-comment using `gcc` use {'cohama/lexima.vim'} -- auto-close parens, brackets, etc. use {'tpope/vim-surround'} -- edit surroundings in pairs - -- use {'itchyny/lightline.vim'} -- lightweight status bar - use {'glepnir/galaxyline.nvim', - branch = 'main', - config=function() require 'line' end} - use {'neomake/neomake'} -- async job runner - use {'sbdchd/neoformat'} -- async code formatter + -- use {'neomake/neomake'} -- async job runner + -- use {'sbdchd/neoformat'} -- async code formatter use {'justinmk/vim-dirvish'} -- folder browser - use {'justinmk/vim-sneak'} -- powerful missing vim motions - - use { 'neovim/nvim-lspconfig', - requires = {'nvim-lua/completion-nvim'}, -- , 'nvim-lua/diagnostic-nvim'}, - config=function() require'conf.lsp' end} + use {'justinmk/vim-sneak', + config = "vim.g['sneak#label'] = true" + } - use { 'steelsojka/completion-buffers' } - -- config = function() - -- vim.api.nvim_command("autocmd BufEnter * require'completion'.on_attach()") - -- end} + use {'neovim/nvim-lspconfig', + requires = { + {'nvim-lua/completion-nvim', + requires = {'steelsojka/completion-buffers'}, + config = "require('plugins._completion')"}, + 'kosayoda/nvim-lightbulb', + }, + config = "require('plugins._lsp')" + } - use { 'nvim-treesitter/nvim-treesitter', + use {'nvim-treesitter/nvim-treesitter', requires = { 'nvim-lua/completion-nvim', 'nvim-treesitter/completion-treesitter', 'nvim-treesitter/nvim-treesitter-refactor', }, - config=function() require'conf.treesitter' end} - - use { 'nvim-lua/telescope.nvim', - requires = {'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim'}, - config=function() require'conf.telescope' end} + config = "require('plugins._treesitter')" + } + + use {'nvim-telescope/telescope.nvim', + requires = { + 'nvim-lua/popup.nvim', + 'nvim-lua/plenary.nvim', + -- telescope plugins: + 'nvim-telescope/telescope-fzf-writer.nvim', + }, + config = "require('plugins._telescope')" + } + + -- polyfill for some missing stuff + use {'tjdevries/astronauta.nvim'} -- snippets use {'SirVer/ultisnips', - requires = {'honza/vim-snippets'}} - - -- interactive finder / dispatcher - -- use {'liuchengxu/vim-clap', - -- run = ':Clap install-binary!'} + requires = {'honza/vim-snippets'}, + config = "require('plugins._ultisnips')" + } - use {'junegunn/vim-easy-align', - cmd = {'EasyAlign'}} + use {'junegunn/vim-easy-align'} -- use {'tpope/vim-sleuth'} -- detect indentation - use {'nathanaelkane/vim-indent-guides'} -- show indentation levels + use {'nathanaelkane/vim-indent-guides', + config = "require('plugins._indent-guides')" + } + use {'tpope/vim-repeat'} -- extend '.' to plugins - use {'liuchengxu/vista.vim'} -- sidebar populated by lsp, ctags, etc. use {'sgur/vim-editorconfig'} -- implements editorconfig in vimscript - -- use 'rhysd/conflict-marker.vim' use {'michaeljsmith/vim-indent-object'} -- adds indentation text-objects - use {'kshenoy/vim-signature'} -- toggle, display and navigate marks - -- highlight color codes + use {'kshenoy/vim-signature', disable = true} -- toggle, display and navigate marks use {'norcalli/nvim-colorizer.lua', - config=function() - require'colorizer'.setup(nil, { - name = true; - RRGGBB = true; - RRGGBBAA = false; - rgb_fn = true; - hsl_fn = true; - mode = 'background'; - }) - end} - use {'rhysd/git-messenger.vim'} -- git-blame in a popup - use {'kassio/neoterm'} + config = "require('plugins._colorizer')" + } + + use {'rhysd/git-messenger.vim', + config = "require('plugins._git-messenger')" + } + + use {'rhysd/conflict-marker.vim', disable = true} + -- use {'liuchengxu/vista.vim'} -- sidebar populated by lsp, ctags, etc. + use {'kassio/neoterm', disable = true} -- languages -- NOTE: these should only be loaded when they are required... - -- use {'rhysd/vim-grammarous', ft = {'markdown', 'latex', 'tex'}} - use {'lervag/vimtex', ft = {'latex', 'tex'}} - use {'plasticboy/vim-markdown', ft = {'markdown'}} - use {'masukomi/vim-markdown-folding', ft = {'markdown'}} - -- easy html editing - use {'mattn/emmet-vim', ft = {'html'}} - -- use {'valloric/matchtagalways', ft = {'html', 'vue', 'xml'}} -- visually match HTML tags enclosing cursor location - -- use {'ledger/vim-ledger', ft = {'ledger'}, - -- requires = { - -- 'tpope/vim-speeddating', -- easy time/date incrementing - -- 'vim-scripts/utl.vim'}} -- follow links/urls - + -- use {'rhysd/vim-grammarous', + -- ft = {'markdown', 'latex', 'tex'} + -- } + use {'lervag/vimtex', + ft = {'latex', 'tex'}, + config = "require('plugins._vimtex')" + } + use {'plasticboy/vim-markdown', + ft = {'markdown'}, + config = "require('plugins._markdown')" + } + use {'masukomi/vim-markdown-folding', + ft = {'markdown'} + } + use {'jjo/vim-cue', + ft = {'cue'} + } use {'gentoo/gentoo-syntax'} - use {'jjo/vim-cue'} -- multi-language support with lazy loading -- NOTE: put language specific plugs before this to avoid conflicsts use {'sheerun/vim-polyglot'} -- minimal ux - use {'junegunn/goyo.vim', cmd = 'Goyo'} -- hide ui clutter - use {'junegunn/limelight.vim', cmd = 'Limelight'} -- dims colors - -- use 'equalsraf/neovim-gui-shim' - - -- colorschemes - use {'NLKNguyen/papercolor-theme'} - -- use {'cideM/yui'} - use {'ayu-theme/ayu-vim'} - -- use {'rktjmp/lush.nvim', - -- config=function() require'conf.colors' end} - - use {'dstein64/vim-startuptime'} + use {'junegunn/goyo.vim', + cmd = 'Goyo', + config = "require('plugins._goyo')" + } + use {'junegunn/limelight.vim', + cmd = 'Limelight', + config = "require('plugins._limelight')" + } + + use {'rktjmp/lush.nvim', + disable = true, + config="require('plugins._lush')"} + + -- vim config debugging + use {'dstein64/vim-startuptime', disable = true} -- local - -- use {'~/devel/projects/nihon-theme/vim'} - -- use {'~/devel/projects/vim-orgdown'} - use {'~/.vim/devel/obsidian.nvim'} - use {'~/.vim/devel/vim-github-link'} + use {'~/devel/upstream/github.com/knsh14/vim-github-link'} end) diff --git a/.vim/lua/plugins/_colorizer.lua b/.vim/lua/plugins/_colorizer.lua new file mode 100644 index 0000000..7b6f678 --- /dev/null +++ b/.vim/lua/plugins/_colorizer.lua @@ -0,0 +1,8 @@ +require('colorizer').setup(nil, { + name = true; + RRGGBB = true; + RRGGBBAA = false; + rgb_fn = true; + hsl_fn = true; + mode = 'background'; +}) diff --git a/.vim/lua/plugins/_completion.lua b/.vim/lua/plugins/_completion.lua new file mode 100644 index 0000000..8a4a92e --- /dev/null +++ b/.vim/lua/plugins/_completion.lua @@ -0,0 +1,17 @@ +local g = vim.g +local u = require('utils') + +g.completion_enable_auto_popup = true +g.completion_enable_auto_signature = true +g.completion_enable_auto_paren = false +g.completion_confirm_key = '<tab>' +g.completion_enable_snippet = 'UltiSnips' +g.completion_auto_change_source = true +g.completion_chain_complete_list = { + {complete_items = {'lsp', 'snippet', 'buffers', 'ts', 'path'}}, + {mode = 'file'}, +} + +u.augroup('completion', { + {'BufEnter', '*', 'lua require("completion").on_attach()'}, +}) diff --git a/.vim/lua/plugins/_git-messenger.lua b/.vim/lua/plugins/_git-messenger.lua new file mode 100644 index 0000000..ea1c271 --- /dev/null +++ b/.vim/lua/plugins/_git-messenger.lua @@ -0,0 +1,3 @@ +-- vim.g.git_messenger_include_diff = false +vim.g.git_messenger_always_into_popup = true +vim.g.git_messenger_close_on_cursor_moved = true diff --git a/.vim/lua/plugins/_goyo.lua b/.vim/lua/plugins/_goyo.lua new file mode 100644 index 0000000..e18d2ba --- /dev/null +++ b/.vim/lua/plugins/_goyo.lua @@ -0,0 +1,9 @@ +vim.g.goyo_width = 120 +vim.g.goyo_height = 90 +vim.g.goyo_linenr = false +require('utils').augroup('goyo_hooks', { + {'User', 'GoyoEnter', 'set laststatus=0 scrolloff=999'}, + {'User', 'GoyoEnter', 'Limelight'}, + {'User', 'GoyoLeave', 'set laststatus=2 scrolloff=5'}, + {'User', 'GoyoLeave', 'Limelight!'}, +}) diff --git a/.vim/lua/plugins/_indent-guides.lua b/.vim/lua/plugins/_indent-guides.lua new file mode 100644 index 0000000..eb3c4aa --- /dev/null +++ b/.vim/lua/plugins/_indent-guides.lua @@ -0,0 +1,4 @@ +vim.g.indent_guides_enable_on_vim_startup = false +vim.g.indent_guides_start_level = 2 +vim.g.indent_guides_color_change_percent = 2 +vim.g.indent_guides_guide_size = 1 diff --git a/.vim/lua/plugins/_limelight.lua b/.vim/lua/plugins/_limelight.lua new file mode 100644 index 0000000..b77fdfc --- /dev/null +++ b/.vim/lua/plugins/_limelight.lua @@ -0,0 +1,7 @@ +vim.g.limelight_conceal_ctermfg = 'gray' +vim.g.limelight_conceal_ctermbg = 'none' +vim.g.limelight_conceal_guifg = '#828282' +vim.g.limelight_conceal_guibg = 'none' +vim.g.limelight_default_coefficient = 0.5 +vim.g.limelight_paragraph_span = 1 +vim.g.limelight_priority = -1 diff --git a/.vim/lua/conf/lsp.lua b/.vim/lua/plugins/_lsp.lua index 4249de5..9d98aca 100644 --- a/.vim/lua/conf/lsp.lua +++ b/.vim/lua/plugins/_lsp.lua @@ -1,21 +1,33 @@ -- lsp config -local lsp = require 'lspconfig' -local util = require 'lspconfig.util' +local lsp = require('lspconfig') +local util = require('lspconfig.util') +local u = require('utils') -local function my_attach(client) +-- https://github.com/kosayoda/nvim-lightbulb +require('nvim-lightbulb').update_lightbulb { + sign = { + enabled = true, + priority = 10, + }, + float = { + enabled = true, + text = '', + win_opts = {}, + }, +} + +local my_attach = function(client) -- attach completion require 'completion'.on_attach(client) - -- do lsp mappings - vim.fn.nvim_buf_set_keymap(0, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>', - {noremap=true, silent=true}) - vim.fn.nvim_buf_set_keymap(0, 'n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<cr>', - {noremap=true, silent=true}) - vim.fn.nvim_buf_set_keymap(0, 'n', 'grr', '<cmd>lua vim.lsp.buf.rename()<cr>', - {noremap=true, silent=true}) - vim.fn.nvim_buf_set_keymap(0, 'i', '<c-h>', '<cmd>lua vim.lsp.buf.signature_help()<cr>', - {noremap=true, silent=true}) + -- lsp mappings + u.map('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>') + u.map(0, 'n', '<c-]>', '<cmd>lua vim.lsp.buf.definition()<cr>') + u.map(0, 'n', 'grr', '<cmd>lua vim.lsp.buf.rename()<cr>') + u.map(0, 'i', '<c-h>', '<cmd>lua vim.lsp.buf.signature_help()<cr>') + u.map(0, 'n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<cr>') + u.map(0, 'n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>') -- nnoremap <silent> gD <cmd> lua vim.lsp.buf.declaration()<CR> -- nnoremap <silent> gd <cmd> lua vim.lsp.buf.definition()<CR> @@ -40,12 +52,27 @@ lsp.gopls.setup{ } lsp.sumneko_lua.setup{ - cmd = { 'lua-language-server' }; on_attach = my_attach; + cmd = { 'lua-language-server' }; + settings = { + Lua = { + runtime = { + version = 'LuaJIT', + }, + diagnostics = { + globals = {'vim'}, + }, + workspace = { + library = { + [vim.fn.expand('$VIMRUNTIME/lua')] = true, + [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true, + } + } + } + }, } lsp.rust_analyzer.setup{ - cmd = { 'env', 'CARGO_TARGET_DIR=/tmp', 'rust-analyzer' }, on_attach = my_attach, - + cmd = { 'env', 'CARGO_TARGET_DIR=/tmp', 'rust-analyzer' }, } diff --git a/.vim/lua/plugins/_markdown.lua b/.vim/lua/plugins/_markdown.lua new file mode 100644 index 0000000..c773d50 --- /dev/null +++ b/.vim/lua/plugins/_markdown.lua @@ -0,0 +1,9 @@ +g.vim_markdown_folding_disabled = true +g.vim_markdown_math = true +g.vim_markdown_frontmatter = true +g.vim_markdown_json_frontmatter = true +g.vim_markdown_toml_frontmatter = true +g.vim_markdown_folding_level = 2 +g.vim_markdown_strikethrough = true +g.vim_markdown_auto_insert_bullets = true +g.vim_markdown_new_list_item_indent = false diff --git a/.vim/lua/plugins/_signify.lua b/.vim/lua/plugins/_signify.lua new file mode 100644 index 0000000..a91ecb6 --- /dev/null +++ b/.vim/lua/plugins/_signify.lua @@ -0,0 +1,6 @@ +vim.g.signify_sign_change = '~' +require('utils').map('n', ']h', '<plug>(signify-next-hunk)', {silent=false}) +require('utils').map('n', '[h', '<plug>(signify-prev-hunk)') +vim.cmd('hi SignifySignChange guibg=NONE ctermbg=NONE') +vim.cmd('hi SignifySignAdd guibg=NONE ctermbg=NONE') +vim.cmd('hi SignifySignDelete guibg=NONE ctermbg=NONE') diff --git a/.vim/lua/plugins/_telescope.lua b/.vim/lua/plugins/_telescope.lua new file mode 100644 index 0000000..d4f9b89 --- /dev/null +++ b/.vim/lua/plugins/_telescope.lua @@ -0,0 +1,99 @@ +-- telescope.nvim et al config + +local u = require('utils') + +local M = {} + +-- TELESCOPE config -- {{{ +require('telescope').setup{ + defaults = { + -- vimgrep_arguments = { + -- 'rg', + -- '--color=never', + -- '--no-heading', + -- '--with-filename', + -- '--line-number', + -- '--column', + -- '--smart-case' + -- }, + + prompt_prefix = ' >', + borderchars = {'─', '│', '─', '│', '┌', '┐', '┘', '└'}, + winblend = 0, + preview_cutoff = 120, + + layout_strategy = 'flex', + + file_previewer = require('telescope.previewers').vim_buffer_cat_new, + grep_previewer = require('telescope.previewers').vim_buffer_vimgrep_new, + qflist_previewer = require('telescope.previewers').vim_buffer_qflist_new, + + extensions = { + fzf_writer = { + use_highlighter = true, + minimum_grep_characters = 4, + shorten_path = true, + } + } + } +} +-- }}} + +-- LOCAL finders -- {{{ +M.wrap = function(opts) + opts = opts or {} + my_opts = require('telescope.themes').get_dropdown({ width = 110 }) + return vim.tbl_deep_extend("force", my_opts, opts) +end + +M.live_grep = function() + require('telescope').extensions.fzf_writer.staged_grep(M.wrap()) +end + +M.repo_search = function() + require('telescope').extensions.fzf_writer.files(M.wrap({ + previewer = false, + cwd = require('lspconfig.util').root_pattern('.git')(vim.fn.expand('%:p')), + })) +end + +M.wiki = function() + require('telescope').extensions.fzf_writer.files(M.wrap({ + previewer = false, + cwd = '~/wiki/', + })) +end + +M.devel = function() + require('telescope').extensions.fzf_writer.files(M.wrap({ + previewer = false, + cwd = '~/devel/', + })) +end +-- }}} + +-- MAPPINGS -- {{{ + +u.map('n', ';g', "<cmd>lua require('plugins._telescope').live_grep()<cr>") +u.map('n', ';r', "<cmd>lua require('plugins._telescope').repo_search()<cr>") +-- u.map('n', ';w', "<cmd>lua require('plugins._telescope').wiki()<cr>") +u.map('n', ';d', "<cmd>lua require('plugins._telescope').devel()<cr>") + +local mapbuiltin = function(key, fn, previewer) + opts = (not previewer and '{ previewer = false }') or '{}' + u.map('n', key, "<cmd>lua require('telescope.builtin')."..fn.."(require('plugins._telescope').wrap("..opts.."))<cr>") +end + +mapbuiltin(';f', 'fd', true) +mapbuiltin(';q', 'quickfix') +mapbuiltin(';l', 'loclist') +mapbuiltin(';b', 'buffers') +mapbuiltin(';t', 'tags') +mapbuiltin(';lr', 'lsp_references') +mapbuiltin(';la', 'lsp_code_actions') +mapbuiltin(';lw', 'lsp_workspace_symbols') +mapbuiltin(';c', 'command_history') + +-- }}} + +return M diff --git a/.vim/lua/conf/treesitter.lua b/.vim/lua/plugins/_treesitter.lua index fed55e1..ef24286 100644 --- a/.vim/lua/conf/treesitter.lua +++ b/.vim/lua/plugins/_treesitter.lua @@ -1,5 +1,5 @@ -require 'nvim-treesitter.configs'.setup { +require('nvim-treesitter.configs').setup { ensure_installed = { "c", "c_sharp", "javascript", "lua", "bash" }, highlight = { enable = false, diff --git a/.vim/lua/plugins/_ultisnips.lua b/.vim/lua/plugins/_ultisnips.lua new file mode 100644 index 0000000..f2a6f6e --- /dev/null +++ b/.vim/lua/plugins/_ultisnips.lua @@ -0,0 +1,4 @@ +-- vim.g.UltiSnipsListSnippets = "<c-tab>" +vim.g.UltiSnipsExpandTrigger = "<Tab>" +vim.g.UltiSnipsJumpForwardTrigger = "<c-n>" +vim.g.UltiSnipsJumpBackwardTrigger = "<c-p>" diff --git a/.vim/lua/plugins/_vimtex.lua b/.vim/lua/plugins/_vimtex.lua new file mode 100644 index 0000000..2a3d550 --- /dev/null +++ b/.vim/lua/plugins/_vimtex.lua @@ -0,0 +1,8 @@ +vim.g.tex_flavor = 'latex' +vim.g.vimtex_compiler_enabled = 1 +vim.g.vimtex_compiler_method = 'tectonic' +vim.g.vimtex_compiler_tectonic = "{'executable': 'tectonic'}" +vim.g.vimtex_view_method = 'zathura' +-- vim.g.vimtex_view_zathura_check_libsynctex = false +-- vim.g.vimtex_view_use_temp_files = true +-- vim.g.vimtex_view_forward_search_on_start = false |