diff options
Diffstat (limited to '.vim/lua/conf')
| -rw-r--r-- | .vim/lua/conf/colors.lua | 9 | ||||
| -rw-r--r-- | .vim/lua/conf/diagnostic.lua | 17 | ||||
| -rw-r--r-- | .vim/lua/conf/lsp.lua | 51 | ||||
| -rw-r--r-- | .vim/lua/conf/telescope.lua | 75 | ||||
| -rw-r--r-- | .vim/lua/conf/treesitter.lua | 21 |
5 files changed, 173 insertions, 0 deletions
diff --git a/.vim/lua/conf/colors.lua b/.vim/lua/conf/colors.lua new file mode 100644 index 0000000..65d1fb1 --- /dev/null +++ b/.vim/lua/conf/colors.lua @@ -0,0 +1,9 @@ + +local lush = require('lush') +local hsl = lush.hsl + +return lush(function() + return { + Normal { bg = hsl} + } +end) diff --git a/.vim/lua/conf/diagnostic.lua b/.vim/lua/conf/diagnostic.lua new file mode 100644 index 0000000..4fd5047 --- /dev/null +++ b/.vim/lua/conf/diagnostic.lua @@ -0,0 +1,17 @@ + +vim.g.diagnostic_enable_virtual_text = 1 +vim.g.diagnostic_trimmed_virtual_text = '40' +vim.g.diagnostic_insert_delay = 1 +vim.api.nvim_command('nnoremap <silent> c[ <cmd>PrevDiagnosticCycle<cr>') +vim.api.nvim_command('nnoremap <silent> c] <cmd>NextDiagnosticCycle<cr>') + + +vim.fn.sign_define("LspDiagnosticsErrorSign", {text="✘", texthl="LspDiagnosticsError"}) +vim.fn.sign_define("LspDiagnosticsWarningSign", {text="‼", texthl="LspDiagnosticsWarning"}) +vim.fn.sign_define("LspDiagnosticsInformationSign", {text="i", texthl="LspDiagnosticsInformation"}) +vim.fn.sign_define("LspDiagnosticsHintSign", {text="☛",texthl="LspDiagnosticsHint"}) + +vim.api.nvim_command('highlight link LspDiagnosticsError Error') +vim.api.nvim_command('highlight link LspDiagnosticsWarning WarningMsg') +vim.api.nvim_command('highlight link LspDiagnosticsInformation Todo') +vim.api.nvim_command('highlight link LspDiagnosticsHint Question') diff --git a/.vim/lua/conf/lsp.lua b/.vim/lua/conf/lsp.lua new file mode 100644 index 0000000..4249de5 --- /dev/null +++ b/.vim/lua/conf/lsp.lua @@ -0,0 +1,51 @@ +-- lsp config + +local lsp = require 'lspconfig' +local util = require 'lspconfig.util' + +local function my_attach(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}) + + -- nnoremap <silent> gD <cmd> lua vim.lsp.buf.declaration()<CR> + -- nnoremap <silent> gd <cmd> lua vim.lsp.buf.definition()<CR> + -- nnoremap <silent> gT <cmd> lua vim.lsp.buf.type_definition()<CR> + -- nnoremap <silent> gI <cmd> lua vim.lsp.buf.implementation()<CR> + -- nnoremap <silent> gr <cmd> lua vim.lsp.buf.references()<CR> + -- nnoremap <silent> g0 <cmd> lua vim.lsp.buf.document_symbol()<CR> + -- nnoremap <silent> gW <cmd> lua vim.lsp.buf.workspace_symbol()<CR> + -- nnoremap <silent> ;h <cmd> lua vim.lsp.buf.hover()<CR> + -- nnoremap <silent> ;s <cmd> lua vim.lsp.buf.signature_help()<CR> +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{ + cmd = { 'lua-language-server' }; + on_attach = my_attach; +} + +lsp.rust_analyzer.setup{ + cmd = { 'env', 'CARGO_TARGET_DIR=/tmp', 'rust-analyzer' }, + on_attach = my_attach, + +} diff --git a/.vim/lua/conf/telescope.lua b/.vim/lua/conf/telescope.lua new file mode 100644 index 0000000..e1145c2 --- /dev/null +++ b/.vim/lua/conf/telescope.lua @@ -0,0 +1,75 @@ +-- config for telescope.nvim +local telescope = require('telescope') +local finders = require('telescope.finders') +local pickers = require('telescope.pickers') +local previewers = require('telescope.previewers') +local make_entry = require('telescope.make_entry') +local sorters = require('telescope.sorters') + +telescope.setup{ + defaults = { + borderchars = {'─', '│', '─', '│', '┌', '┐', '┘', '└'}, + winblend = 3, + layout_strategy = 'flex', + } +} + +vim.api.nvim_set_keymap('n', ';f', "<cmd>lua require'telescope.builtin'.find_files{}<cr>", + {noremap=true, silent=true}) +vim.api.nvim_set_keymap('n', ';g', "<cmd>lua require'telescope.builtin'.live_grep{}<cr>", + {noremap=true, silent=true}) +vim.api.nvim_set_keymap('n', ';r', "<cmd>lua require'telescope.builtin'.lsp_references{}<cr>", + {noremap=true, silent=true}) +vim.api.nvim_set_keymap('n', ';q', "<cmd>lua require'telescope.builtin'.quickfix{}<cr>", + {noremap=true, silent=true}) +vim.api.nvim_set_keymap('n', ';l', "<cmd>lua require'telescope.builtin'.loclist{}<cr>", + {noremap=true, silent=true}) +vim.api.nvim_set_keymap('n', ';b', "<cmd>lua require'telescope.builtin'.buffers{}<cr>", + {noremap=true, silent=true}) +-- vim.api.nvim_set_keymap('n', ';h', "<cmd>lua require'conf.telescope'.home{}<cr>", +-- {noremap=true, silent=true}) +vim.api.nvim_set_keymap('n', ';w', "<cmd>lua require'conf.telescope'.wiki{}<cr>", + {noremap=true, silent=true}) + +local M = {} +M.fzf = function(opts) + opts = opts or {} + if opts.cwd then + opts.cwd = vim.fn.expand(opts.cwd) + end + local cmd = {'fd', '--type', 'f', '--no-ignore', '--absolute-path'} + if opts.extensions then + for _, ext in ipairs(opts.extensions) do + table.insert(cmd, '--extension') + table.insert(cmd, ext) + end + end + if opts.exclude then + for _, excl in ipairs(opts.exclude) do + table.insert(cmd, '--exclude') + table.insert(cmd, excl) + end + end + pickers.new(opts, { + prompt = opts.prompt or "FZF", + finder = finders.new_oneshot_job(cmd, opts), + previewer = previewers.cat.new(opts), + sorter = sorters.get_fuzzy_file(), + }):find() +end + +M.wiki = function() + return M.fzf { + prompt = 'WIKI', + cwd = '~/wiki', + extensions = {'md'}, + exclude = {'_templates/*'} + } +end +-- M.home = function() +-- return M.fzf { +-- prompt = 'HOME', +-- cwd = '~', +-- } +-- end +return M diff --git a/.vim/lua/conf/treesitter.lua b/.vim/lua/conf/treesitter.lua new file mode 100644 index 0000000..79763b8 --- /dev/null +++ b/.vim/lua/conf/treesitter.lua @@ -0,0 +1,21 @@ + +require 'nvim-treesitter.configs'.setup { + ensure_installed = { "c", "c_sharp", "lua", "bash" }, + highlight = { + enable = false, + }, + refactor = { + navigation = { + enable = true, + keymaps = { + goto_definition = "<c-]>", + }, + }, + smart_rename = { + enable = true, + keymaps = { + smart_rename = "grr", + }, + }, + }, +} |