From 1996ef15613f2d4773017128bba1a719a1b63a19 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Sat, 20 Feb 2021 21:27:26 +0100 Subject: Move to lua based vimrc --- .vim/lua/plugins/_colorizer.lua | 8 +++ .vim/lua/plugins/_completion.lua | 17 +++++++ .vim/lua/plugins/_git-messenger.lua | 3 ++ .vim/lua/plugins/_goyo.lua | 9 ++++ .vim/lua/plugins/_indent-guides.lua | 4 ++ .vim/lua/plugins/_limelight.lua | 7 +++ .vim/lua/plugins/_lsp.lua | 78 +++++++++++++++++++++++++++++ .vim/lua/plugins/_markdown.lua | 9 ++++ .vim/lua/plugins/_signify.lua | 6 +++ .vim/lua/plugins/_telescope.lua | 99 +++++++++++++++++++++++++++++++++++++ .vim/lua/plugins/_treesitter.lua | 24 +++++++++ .vim/lua/plugins/_ultisnips.lua | 4 ++ .vim/lua/plugins/_vimtex.lua | 8 +++ 13 files changed, 276 insertions(+) create mode 100644 .vim/lua/plugins/_colorizer.lua create mode 100644 .vim/lua/plugins/_completion.lua create mode 100644 .vim/lua/plugins/_git-messenger.lua create mode 100644 .vim/lua/plugins/_goyo.lua create mode 100644 .vim/lua/plugins/_indent-guides.lua create mode 100644 .vim/lua/plugins/_limelight.lua create mode 100644 .vim/lua/plugins/_lsp.lua create mode 100644 .vim/lua/plugins/_markdown.lua create mode 100644 .vim/lua/plugins/_signify.lua create mode 100644 .vim/lua/plugins/_telescope.lua create mode 100644 .vim/lua/plugins/_treesitter.lua create mode 100644 .vim/lua/plugins/_ultisnips.lua create mode 100644 .vim/lua/plugins/_vimtex.lua (limited to '.vim/lua/plugins') 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 = '' +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/plugins/_lsp.lua b/.vim/lua/plugins/_lsp.lua new file mode 100644 index 0000000..9d98aca --- /dev/null +++ b/.vim/lua/plugins/_lsp.lua @@ -0,0 +1,78 @@ +-- lsp config + +local lsp = require('lspconfig') +local util = require('lspconfig.util') +local u = require('utils') + +-- 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) + + -- lsp mappings + u.map('n', 'K', 'lua vim.lsp.buf.hover()') + u.map(0, 'n', '', 'lua vim.lsp.buf.definition()') + u.map(0, 'n', 'grr', 'lua vim.lsp.buf.rename()') + u.map(0, 'i', '', 'lua vim.lsp.buf.signature_help()') + u.map(0, 'n', ']d', 'lua vim.lsp.diagnostic.goto_next()') + u.map(0, 'n', '[d', 'lua vim.lsp.diagnostic.goto_prev()') + + -- nnoremap gD lua vim.lsp.buf.declaration() + -- nnoremap gd lua vim.lsp.buf.definition() + -- nnoremap gT lua vim.lsp.buf.type_definition() + -- nnoremap gI lua vim.lsp.buf.implementation() + -- nnoremap gr lua vim.lsp.buf.references() + -- nnoremap g0 lua vim.lsp.buf.document_symbol() + -- nnoremap gW lua vim.lsp.buf.workspace_symbol() + -- nnoremap ;h lua vim.lsp.buf.hover() + -- nnoremap ;s lua vim.lsp.buf.signature_help() +end + +-- lsp.ccls.setup{ +-- on_attach = my_attach, +-- } + +lsp.gopls.setup{ + on_attach = my_attach, + root_dir = util.root_pattern('go.mod', '.git'), + -- NOTE: this is done to avoid the gopls warning about being outside gopath + -- message_level = vim.lsp.protocol.MessageType.Error, +} + +lsp.sumneko_lua.setup{ + 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{ + 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', '(signify-next-hunk)', {silent=false}) +require('utils').map('n', '[h', '(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', "lua require('plugins._telescope').live_grep()") +u.map('n', ';r', "lua require('plugins._telescope').repo_search()") +-- u.map('n', ';w', "lua require('plugins._telescope').wiki()") +u.map('n', ';d', "lua require('plugins._telescope').devel()") + +local mapbuiltin = function(key, fn, previewer) + opts = (not previewer and '{ previewer = false }') or '{}' + u.map('n', key, "lua require('telescope.builtin')."..fn.."(require('plugins._telescope').wrap("..opts.."))") +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/plugins/_treesitter.lua b/.vim/lua/plugins/_treesitter.lua new file mode 100644 index 0000000..ef24286 --- /dev/null +++ b/.vim/lua/plugins/_treesitter.lua @@ -0,0 +1,24 @@ + +require('nvim-treesitter.configs').setup { + ensure_installed = { "c", "c_sharp", "javascript", "lua", "bash" }, + highlight = { + enable = false, + }, + indent = { + enable = true, + }, + refactor = { + navigation = { + enable = true, + keymaps = { + goto_definition = "", + }, + }, + smart_rename = { + enable = true, + keymaps = { + smart_rename = "grr", + }, + }, + }, +} 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 = "" +vim.g.UltiSnipsExpandTrigger = "" +vim.g.UltiSnipsJumpForwardTrigger = "" +vim.g.UltiSnipsJumpBackwardTrigger = "" 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 -- cgit 1.4.1