diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 4edb2a4..8ea78a2 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -6,23 +6,21 @@ require('plugins') require('colorscheme') require('lsp') -require('lsp.docker-ls') -require('lsp.python-ls') -require('lsp.julia-ls') -require('lsp.json-ls') -require('lsp.elixir-ls') -require('lsp.go-ls') -require('lsp.terraform-ls') +--require('lsp.docker-ls') +--require('lsp.python-ls') +--require('lsp.julia-ls') +--require('lsp.json-ls') +--require('lsp.elixir-ls') +--require('lsp.go-ls') +--require('lsp.terraform-ls') require('plugins.telescope') require('plugins.telescope-project') require('plugins.treesitter') require('plugins.cmp') -require('plugins.which-key') require('plugins.lualine') require('plugins.tagbar') require('plugins.sneak') require('themes.nord') -require('go').setup() diff --git a/.config/nvim/lua/colorscheme.lua b/.config/nvim/lua/colorscheme.lua index bfd467f..3b279e0 100644 --- a/.config/nvim/lua/colorscheme.lua +++ b/.config/nvim/lua/colorscheme.lua @@ -1,3 +1,5 @@ vim.cmd('let g:nvcode_termcolors=256') vim.cmd('colorscheme ' .. O.colorscheme) + +vim.cmd('highlight Normal guibg=NONE ctermbg=NONE') diff --git a/.config/nvim/lua/globals.lua b/.config/nvim/lua/globals.lua index 8ecd046..56ddd1d 100644 --- a/.config/nvim/lua/globals.lua +++ b/.config/nvim/lua/globals.lua @@ -20,50 +20,6 @@ O = { splitbelow = true, database = {save_location = '~/.config/nvcode_db', auto_execute = 1}, - python = { - linter = 'flake8', - -- @usage can be 'yapf', 'black' - formatter = 'black', - autoformat = false, - isort = false, - diagnostics = {virtual_text = {spacing = 0, prefix = ""}, signs = true, underline = true}, - analysis = {type_checking = "basic", auto_search_paths = true, use_library_code_types = true} - }, - lua = { - -- @usage can be 'lua-format' - formatter = '', - autoformat = false, - diagnostics = {virtual_text = {spacing = 0, prefix = ""}, signs = true, underline = true} - }, - sh = { - -- @usage can be 'shellcheck' - linter = '', - -- @usage can be 'shfmt' - formatter = '', - autoformat = false, - diagnostics = {virtual_text = {spacing = 0, prefix = ""}, signs = true, underline = true} - }, - tsserver = { - -- @usage can be 'eslint' - linter = '', - -- @usage can be 'prettier' - formatter = '', - autoformat = false, - diagnostics = {virtual_text = {spacing = 0, prefix = ""}, signs = true, underline = true} - }, - json = { - -- @usage can be 'prettier' - formatter = '', - autoformat = false, - diagnostics = {virtual_text = {spacing = 0, prefix = ""}, signs = true, underline = true} - }, - clang = {diagnostics = {virtual_text = {spacing = 0, prefix = ""}, signs = true, underline = true}}, - ruby = { - diagnostics = {virtualtext = {spacing = 0, prefix = ""}, signs = true, underline = true}, - filetypes = {'rb', 'erb', 'rakefile'} - }, - -- css = {formatter = '', autoformat = false, virtual_text = true}, - -- json = {formatter = '', autoformat = false, virtual_text = true} } DATA_PATH = vim.fn.stdpath('data') diff --git a/.config/nvim/lua/keymappings.lua b/.config/nvim/lua/keymappings.lua index 8412e5c..6376a5e 100644 --- a/.config/nvim/lua/keymappings.lua +++ b/.config/nvim/lua/keymappings.lua @@ -1,29 +1,11 @@ vim.g.mapleader = ' ' --- TODO find better place -vim.g.floaterm_open_command = 'vsplit' ---vim.g.floaterm_position = 'bottom' - -- better window movement vim.api.nvim_set_keymap('n', '', 'h', {silent = true}) vim.api.nvim_set_keymap('n', '', 'j', {silent = true}) vim.api.nvim_set_keymap('n', '', 'k', {silent = true}) vim.api.nvim_set_keymap('n', '', 'l', {silent = true}) --- TODO fix this --- Terminal window navigation ---vim.cmd([[ - --tnoremap h - --tnoremap j - --tnoremap k - --tnoremap l - --inoremap h - --inoremap j - --inoremap k - --inoremap l - --tnoremap ---]]) - -- resize with arrows vim.api.nvim_set_keymap('n', '', ':resize -2', {silent = true}) vim.api.nvim_set_keymap('n', '', ':resize +2', {silent = true}) @@ -31,22 +13,18 @@ vim.api.nvim_set_keymap('n', '', ':vertical resize -2', {silent = tr vim.api.nvim_set_keymap('n', '', ':vertical resize +2', {silent = true}) -- improved keyboard support for navigation (especially terminal) -vim.cmd([[ - nnoremap h h - nnoremap j j - nnoremap k k - nnoremap l l - nnoremap h - nnoremap j - nnoremap k - nnoremap l -]]) +vim.api.nvim_set_keymap('n', 'h', 'h', {noremap = true}) +vim.api.nvim_set_keymap('n', 'j', 'j', {noremap = true}) +vim.api.nvim_set_keymap('n', 'k', 'k', {noremap = true}) +vim.api.nvim_set_keymap('n', 'l', 'l', {noremap = true}) +vim.api.nvim_set_keymap('n', '', 'h', {noremap = true}) +vim.api.nvim_set_keymap('n', '', 'j', {noremap = true}) +vim.api.nvim_set_keymap('n', '', 'k', {noremap = true}) +vim.api.nvim_set_keymap('n', '', 'l', {noremap = true}) -- Change 2 split windows from vert to horiz or horiz to vert -vim.cmd([[ - map th tH - map tk tK -]]) +vim.api.nvim_set_keymap('n', 'th', 'tH', {noremap = true}) +vim.api.nvim_set_keymap('n', 'tk', 'tK', {noremap = true}) -- Make adjusting split sizes a bit more friendly vim.cmd([[ @@ -56,32 +34,6 @@ vim.cmd([[ noremap :resize -3 ]]) --- FloatTerm -vim.cmd([[ - nnoremap :FloatermNew --height=0.4 --width=0.98 --wintype=floating --position=bottom --autoclose=2 --title= - tnoremap :FloatermNew --height=0.4 --width=0.98 --wintype=floating --position=bottom --autoclose=2 --title= - nnoremap :FloatermPrev - tnoremap :FloatermPrev - nnoremap :FloatermNext - tnoremap :FloatermNext - inoremap :FloatermToggle - nnoremap :FloatermToggle - tnoremap :FloatermToggle - tnoremap - nnoremap :FloatermSend - vnoremap :FloatermSend -]]) - --- -- Compe --- vim.cmd([[ --- inoremap compe#complete() --- inoremap compe#confirm('') --- inoremap compe#close('') --- inoremap compe#scroll({ 'delta': +4 }) --- inoremap compe#scroll({ 'delta': -4 }) --- ]]) - - -- better indenting vim.api.nvim_set_keymap('v', '<', '', '>gv', {noremap = true, silent = true}) @@ -91,6 +43,7 @@ vim.api.nvim_set_keymap('i', 'jk', '', {noremap = true, silent = true}) vim.api.nvim_set_keymap('i', 'kj', '', {noremap = true, silent = true}) vim.api.nvim_set_keymap('i', 'jj', '', {noremap = true, silent = true}) + -- Tab switch buffer vim.api.nvim_set_keymap('n', '', ':bnext', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', '', ':bprevious', {noremap = true, silent = true}) @@ -100,3 +53,35 @@ vim.api.nvim_set_keymap('x', 'K', ':move \'<-2gv-gv', {noremap = true, silen vim.api.nvim_set_keymap('x', 'J', ':move \'>+1gv-gv', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'Q', '', {noremap = true, silent = true}) + +-- Telescope +vim.api.nvim_set_keymap('n', 'ps', ':lua require(\'telescope.builtin\').grep_string({ search = vim.fn.input("Grep For > ")})', {noremap = true}) +vim.api.nvim_set_keymap('n', '', ':lua require(\'telescope.builtin\').git_files()', {noremap = true}) +vim.api.nvim_set_keymap('n', 'pf', ':lua require(\'telescope.builtin\').find_files()', {noremap = true}) + +vim.api.nvim_set_keymap('n', 'pw', ':lua require(\'telescope.builtin\').grep_string { search = vim.fn.expand("") }', {noremap = true}) +vim.api.nvim_set_keymap('n', 'pb', ':lua require(\'telescope.builtin\').buffers()', {noremap = true}) +vim.api.nvim_set_keymap('n', 'vh', ':lua require(\'telescope.builtin\').help_tags()', {noremap = true}) +vim.api.nvim_set_keymap('n', 'gw', ':lua require(\'telescope\').extensions.git_worktree.git_worktrees()', {noremap = true}) +vim.api.nvim_set_keymap('n', 'gm', ':lua require(\'telescope\').extensions.git_worktree.create_git_worktree()', {noremap = true}) + +-- Tagbar +vim.api.nvim_set_keymap('n', 'tt', ':SymbolsOutline', {noremap = true}) +vim.api.nvim_set_keymap('n', 'hl', ':nohl', {noremap = true}) + +-- LSP +vim.cmd("nnoremap gd lua vim.lsp.buf.definition()") +vim.cmd("nnoremap gD lua vim.lsp.buf.declaration()") +vim.cmd("nnoremap gr lua vim.lsp.buf.references()") +vim.cmd("nnoremap gi lua vim.lsp.buf.implementation()") +vim.cmd("nnoremap ca :Lspsaga code_action") +vim.cmd("nnoremap K :Lspsaga hover_doc") +vim.cmd('nnoremap lua vim.lsp.buf.signature_help()') +vim.cmd("nnoremap :Lspsaga diagnostic_jump_prev") +vim.cmd("nnoremap :Lspsaga diagnostic_jump_next") +-- -- scroll down hover doc or scroll in definition preview +vim.cmd("nnoremap lua require('lspsaga.action').smart_scroll_with_saga(1)") +-- -- scroll up hover doc +vim.cmd("nnoremap lua require('lspsaga.action').smart_scroll_with_saga(-1)") +vim.cmd('command! -nargs=0 LspVirtualTextToggle lua require("lsp/virtual_text").toggle()') + diff --git a/.config/nvim/lua/lsp/init.lua b/.config/nvim/lua/lsp.lua similarity index 58% rename from .config/nvim/lua/lsp/init.lua rename to .config/nvim/lua/lsp.lua index 065731c..2ed6288 100644 --- a/.config/nvim/lua/lsp/init.lua +++ b/.config/nvim/lua/lsp.lua @@ -16,21 +16,6 @@ vim.fn.sign_define( {texthl = "LspDiagnosticsSignInformation", text = "", numhl = "LspDiagnosticsSignInformation"} ) -vim.cmd("nnoremap gd lua vim.lsp.buf.definition()") -vim.cmd("nnoremap gD lua vim.lsp.buf.declaration()") -vim.cmd("nnoremap gr lua vim.lsp.buf.references()") -vim.cmd("nnoremap gi lua vim.lsp.buf.implementation()") -vim.cmd("nnoremap ca :Lspsaga code_action") -vim.cmd("nnoremap K :Lspsaga hover_doc") -vim.cmd('nnoremap lua vim.lsp.buf.signature_help()') -vim.cmd("nnoremap :Lspsaga diagnostic_jump_prev") -vim.cmd("nnoremap :Lspsaga diagnostic_jump_next") --- -- scroll down hover doc or scroll in definition preview -vim.cmd("nnoremap ua require('lspsaga.action').smart_scroll_with_saga(1)") --- -- scroll up hover doc -vim.cmd("nnoremap lua require('lspsaga.action').smart_scroll_with_saga(-1)") -vim.cmd('command! -nargs=0 LspVirtualTextToggle lua require("lsp/virtual_text").toggle()') - -- Set Default Prefix. -- Note: You can set a prefix per lsp server in the lv-globals.lua file vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( @@ -73,8 +58,6 @@ vim.lsp.protocol.CompletionItemKind = { "  (TypeParameter)" } -vim.cmd("autocmd BufWritePre *.go :silent! lua require('go.format').gofmt()") - local function documentHighlight(client, bufnr) -- Set autocommands conditional on server_capabilities if client.resolved_capabilities.document_highlight then @@ -93,19 +76,50 @@ local function documentHighlight(client, bufnr) ) end end -local lsp_config = {} -function lsp_config.common_on_attach(client, bufnr) - documentHighlight(client, bufnr) -end +require'lspconfig'.elixirls.setup{} -function lsp_config.tsserver_on_attach(client, bufnr) - lsp_config.common_on_attach(client, bufnr) - client.resolved_capabilities.document_formatting = false -end +-- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir) +vim.cmd([[ + au BufRead,BufNewFile *.ex,*.exs set filetype=elixir + au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir + au BufRead,BufNewFile mix.lock set filetype=elixir +]]) + +require("lspconfig").gopls.setup({ + cmd = { "gopls", "serve" }, + settings = { + gopls = { + analyses = { + unusedparams = true, + }, + staticcheck = true, + }, + }, +}) + +require'lspconfig'.julials.setup{} + +require'lspconfig'.pyright.setup{} + +require("lspconfig").rust_analyzer.setup({ + cmd = { "rustup", "run", "nightly", "rust-analyzer"}, + --[[ + settings = { + rust = { + unstable_features = true, + build_on_save = false, + all_features = true, + }, + } + --]] +}) + +vim.g.symbols_outline = { + auto_close = true, + highlight_hovered_item = true, + show_guides = true, + relative_width = true, + width = 25, +} --- Use a loop to conveniently both setup defined servers --- and map buffer local keybindings when the language server attaches --- local servers = {"pyright", "tsserver"} --- for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup {on_attach = on_attach} end -return lsp_config diff --git a/.config/nvim/lua/lsp/docker-ls.lua b/.config/nvim/lua/lsp/docker-ls.lua deleted file mode 100644 index b477a23..0000000 --- a/.config/nvim/lua/lsp/docker-ls.lua +++ /dev/null @@ -1,6 +0,0 @@ --- npm install -g dockerfile-language-server-nodejs -require'lspconfig'.dockerls.setup { - cmd = {DATA_PATH .. "/lspinstall/dockerfile/node_modules/.bin/docker-langserver", "--stdio"}, - on_attach = require'lsp'.common_on_attach, - root_dir = vim.loop.cwd -} diff --git a/.config/nvim/lua/lsp/elixir-ls.lua b/.config/nvim/lua/lsp/elixir-ls.lua deleted file mode 100644 index 39f6878..0000000 --- a/.config/nvim/lua/lsp/elixir-ls.lua +++ /dev/null @@ -1,10 +0,0 @@ -require'lspconfig'.elixirls.setup{ - cmd = { DATA_PATH .. "/lspinstall/elixir/elixir-ls/language_server.sh"}; -} - --- needed for the LSP to recognize elixir files (alternativly just use elixir-editors/vim-elixir) -vim.cmd([[ - au BufRead,BufNewFile *.ex,*.exs set filetype=elixir - au BufRead,BufNewFile *.eex,*.leex,*.sface set filetype=eelixir - au BufRead,BufNewFile mix.lock set filetype=elixir -]]) diff --git a/.config/nvim/lua/lsp/go-ls.lua b/.config/nvim/lua/lsp/go-ls.lua deleted file mode 100644 index cd34161..0000000 --- a/.config/nvim/lua/lsp/go-ls.lua +++ /dev/null @@ -1,7 +0,0 @@ -require'lspconfig'.gopls.setup{ - cmd = {DATA_PATH .. "/lsp_servers/go/gopls"}, - settings = {gopls = {analyses = {unusedparams = true}, staticcheck = true}}, - root_dir = require'lspconfig'.util.root_pattern(".git","go.mod","."), - init_options = {usePlaceholders = true, completeUnimported = true}, - on_attach = require'lsp'.common_on_attach -} diff --git a/.config/nvim/lua/lsp/json-ls.lua b/.config/nvim/lua/lsp/json-ls.lua deleted file mode 100644 index 952673a..0000000 --- a/.config/nvim/lua/lsp/json-ls.lua +++ /dev/null @@ -1,16 +0,0 @@ --- npm install -g vscode-json-languageserver -require'lspconfig'.jsonls.setup { - cmd = { - "node", DATA_PATH .. "/lspinstall/json/vscode-json/json-language-features/server/dist/node/jsonServerMain.js", - "--stdio" - }, - on_attach = require'lsp'.common_on_attach, - - commands = { - Format = { - function() - vim.lsp.buf.range_formatting({}, {0, 0}, {vim.fn.line("$"), 0}) - end - } - } -} diff --git a/.config/nvim/lua/lsp/julia-ls.lua b/.config/nvim/lua/lsp/julia-ls.lua deleted file mode 100644 index e759382..0000000 --- a/.config/nvim/lua/lsp/julia-ls.lua +++ /dev/null @@ -1,3 +0,0 @@ -require'lspconfig'.julials.setup{ - on_attach = require'lsp'.common_on_attach -} diff --git a/.config/nvim/lua/lsp/python-ls.lua b/.config/nvim/lua/lsp/python-ls.lua deleted file mode 100644 index b1759ce..0000000 --- a/.config/nvim/lua/lsp/python-ls.lua +++ /dev/null @@ -1,22 +0,0 @@ --- npm i -g pyright -require'lspconfig'.pyright.setup { - cmd = {DATA_PATH .. "/lspinstall/python/node_modules/.bin/pyright-langserver", "--stdio"}, - on_attach = require'lsp'.common_on_attach, - handlers = { - ["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { - virtual_text = O.python.diagnostics.virtual_text, - signs = O.python.diagnostics.signs, - underline = O.python.diagnostics.underline, - update_in_insert = true - }) - }, - settings = { - python = { - analysis = { - typeCheckingMode = O.python.analysis.type_checking, - autoSearchPaths = O.python.analysis.auto_search_paths, - useLibraryCodeForTypes = O.python.analysis.use_library_code_types - } - } - } -} diff --git a/.config/nvim/lua/lsp/terraform-ls.lua b/.config/nvim/lua/lsp/terraform-ls.lua deleted file mode 100644 index e90d6e7..0000000 --- a/.config/nvim/lua/lsp/terraform-ls.lua +++ /dev/null @@ -1,4 +0,0 @@ -require'lspconfig'.terraformls.setup{ - cmd = {DATA_PATH .. "/lspinstall/terraform/terraform-ls", "serve"}, - on_attach = require'lsp'.common_on_attach -} diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua index 34bcacf..8b37ab0 100644 --- a/.config/nvim/lua/plugins.lua +++ b/.config/nvim/lua/plugins.lua @@ -68,61 +68,43 @@ return require("packer").startup( -- Easy commenting for Vim use {'preservim/nerdcommenter'} - -- NERD Tree - tree explorer - -- https://github.com/scrooloose/nerdtree - -- http://usevim.com/2012/07/18/nerdtree/ - -- (loaded on first invocation of the command) - use { - 'preservim/nerdtree', - requires = {'ryanoasis/vim-devicons'} - } - - -- nerdtree-git-plugin - show git status in NERD Tree - -- https://github.com/Xuyuanp/nerdtree-git-plugi - use {'Xuyuanp/nerdtree-git-plugin'} - - -- LSP / Language Server Protocol use { 'neovim/nvim-lspconfig', 'williamboman/nvim-lsp-installer', } - --use {'hrsh7th/nvim-compe'} use {'hrsh7th/cmp-nvim-lsp'} use {'hrsh7th/cmp-buffer'} use {'hrsh7th/cmp-path'} use {'hrsh7th/cmp-cmdline'} use {'hrsh7th/nvim-cmp'} + use {'tzachar/cmp-tabnine', run = './install.sh'} + use {'onsails/lspkind-nvim'} -- Display symbol with cmp suggestions - -- use {'glepnir/lspsaga.nvim'} -- Has a bug use {'tami5/lspsaga.nvim'} use {'nvim-lua/lsp-status.nvim'} - use {'simrat39/symbols-outline.nvim'} - -- Terminal in floating window - use {'voldikss/vim-floaterm'} + --use {'simrat39/symbols-outline.nvim'} + use {'marcuscaisey/symbols-outline.nvim', branch = 'relative-width'} -- Telescope fuzzy find files/grep use {'nvim-lua/popup.nvim'} use {'nvim-lua/plenary.nvim'} use {'nvim-telescope/telescope.nvim'} use {'nvim-telescope/telescope-project.nvim'} + use {'nvim-telescope/telescope-fzy-native.nvim'} - -- Which Key - use {'folke/which-key.nvim'} + use {'theprimeagen/git-worktree.nvim'} -- => Language Support use {'neoclide/jsonc.vim'} - use {'ray-x/go.nvim'} - use {'ray-x/guihua.lua'} + use {'rust-lang/rust.vim'} -- Debugger support via dap use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap"} } - -- use {'vim-python/python-syntax', ft={'python'}, opt=true} - -- let g:python_highlight_all = 1 use {'JuliaEditorSupport/julia-vim', opt=true} vim.g.latex_to_unicode_auto = 1 diff --git a/.config/nvim/lua/plugins/cmp.lua b/.config/nvim/lua/plugins/cmp.lua index 7ec9fb7..51c7a9a 100644 --- a/.config/nvim/lua/plugins/cmp.lua +++ b/.config/nvim/lua/plugins/cmp.lua @@ -1,4 +1,13 @@ local cmp = require'cmp' +local lspkind = require('lspkind') + +local source_mapping = { + buffer = "[Buffer]", + nvim_lsp = "[LSP]", + nvim_lua = "[Lua]", + cmp_tabnine = "[TN]", + path = "[Path]", +} cmp.setup({ -- snippet = { @@ -14,22 +23,29 @@ cmp.setup({ [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), - [''] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. - [''] = cmp.mapping({ - i = cmp.mapping.abort(), - c = cmp.mapping.close(), - }), [''] = cmp.mapping.confirm({ select = true }), }, sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - -- { name = 'vsnip' }, -- For vsnip users. - -- { name = 'luasnip' }, -- For luasnip users. - -- { name = 'ultisnips' }, -- For ultisnips users. - -- { name = 'snippy' }, -- For snippy users. - }, { - { name = 'buffer' }, - }) + { name = 'cmp_tabnine' }, + { name = 'nvim_lsp' }, + }, + { + { name = 'buffer' }, + }), + formatting = { + format = function(entry, vim_item) + vim_item.kind = lspkind.presets.default[vim_item.kind] + local menu = source_mapping[entry.source.name] + if entry.source.name == 'cmp_tabnine' then + if entry.completion_item.data ~= nil and entry.completion_item.data.detail ~= nil then + menu = entry.completion_item.data.detail .. ' ' .. menu + end + vim_item.kind = '?' + end + vim_item.menu = menu + return vim_item + end + } }) -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). @@ -48,6 +64,20 @@ cmp.setup.cmdline(':', { }) }) +-- Setup tabnine +local tabnine = require('cmp_tabnine.config') +tabnine:setup({ + max_lines = 1000; + max_num_results = 20; + sort = true; + run_on_every_keystroke = true; + snippet_placeholder = '..'; + ignored_file_types = { -- default is not to ignore + -- uncomment to ignore in lua: + -- lua = true + }; +}) + -- Setup lspconfig. local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) diff --git a/.config/nvim/lua/plugins/compe.lua b/.config/nvim/lua/plugins/compe.lua deleted file mode 100644 index 1b03fb1..0000000 --- a/.config/nvim/lua/plugins/compe.lua +++ /dev/null @@ -1,70 +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 = true; - buffer = true; - calc = true; - vsnip = false; - nvim_lsp = true; - nvim_lua = true; - spell = true; - tags = true; - snippets_nvim = true; - treesitter = 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 - -_G.tab_complete = function() - if vim.fn.pumvisible() == 1 then - return t "" - --elseif vim.fn.call("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 - -vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {noremap = true, expr = true}) -vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {noremap = true, expr = true}) -vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {noremap = true, expr = true}) -vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {noremap = true, expr = true}) diff --git a/.config/nvim/lua/plugins/telescope.lua b/.config/nvim/lua/plugins/telescope.lua index 768e1ff..3f42119 100644 --- a/.config/nvim/lua/plugins/telescope.lua +++ b/.config/nvim/lua/plugins/telescope.lua @@ -19,7 +19,7 @@ require('telescope').setup { file_ignore_patterns = {}, generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter, shorten_path = true, - winblend = 0, + winblend = 0, width = 0.75, preview_cutoff = 120, results_height = 1, diff --git a/.config/nvim/lua/plugins/which-key.lua b/.config/nvim/lua/plugins/which-key.lua deleted file mode 100644 index 396a6cf..0000000 --- a/.config/nvim/lua/plugins/which-key.lua +++ /dev/null @@ -1,130 +0,0 @@ -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 - -- 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, ... - 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 - } - }, - 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 = "single", -- 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 - }, - hidden = {"", "", "", "", "call", "lua", "^:", "^ "}, -- hide mapping boilerplate - show_help = true -- show help message on the command line when the popup is visible -} - -local opts = { - mode = "n", -- NORMAL mode - prefix = "", - buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings - silent = true, -- use `silent` when creating keymaps - noremap = true, -- use `noremap` when creating keymaps - nowait = false -- use `nowait` when creating keymaps -} - --- Set leader -vim.api.nvim_set_keymap('n', '', '', {noremap = true, silent = true}) -vim.g.mapleader = ' ' - --- explorer -vim.api.nvim_set_keymap('n', 'e', ':NERDTreeToggle', {noremap = true, silent = true}) - --- TODO create entire treesitter section - -local mappings = { - ["e"] = "Explorer", - ["c"] = "NERDCommenter", - b = { - name = "+Buffers", - b = {"", "Toggle Buffer"}, - d = {"bd", "Close Buffer"}, - k = {"bd!", "Kill Buffer"}, - }, - f = { - name = "Find", - f = {"Telescope find_files", "Find File"}, - p = {"lua require'telescope'.extensions.project.project{}", "Project"}, - g = {"lua require'telescope.builtin'.live_grep()", "Grep files"}, - b = {"lua require'telescope.builtin'.buffers{}", "Buffers"}, - t = {"lua require'telescope.builtin'.help_tags{}", "Tags"}, - }, - g = { - name = "+Git", - j = {"GitGutterNextHunk", "Next Hunk"}, - k = {"GitGutterPrevHunk", "Prev Hunk"}, - p = {"GitGutterPreviewHunk", "Preview Hunk"}, - r = {"GitGutterResetHunk", "Reset Hunk"}, - s = {"GitGutterStageHunk", "Stage Hunk"}, - u = {"GitGutterUndoHunk", "Undo Stage Hunk"}, - o = {"Telescope git_status", "Open changed file"}, - b = {"Telescope git_branches", "Checkout branch"}, - c = {"Telescope git_commits", "Checkout commit"}, - C = {"Telescope git_bcommits", "Checkout commit(for current file)"}, - }, - l = { - name = "+LSP", - a = {"Lspsaga code_action", "Code Action"}, - A = {"Lspsaga range_code_action", "Selected Action"}, - d = {"Telescope lsp_document_diagnostics", "Document Diagnostics"}, - D = {"Telescope lsp_workspace_diagnostics", "Workspace Diagnostics"}, - i = {"LspInfo", "Info"}, - l = {"Lspsaga lsp_finder", "LSP Finder"}, - L = {"Lspsaga show_line_diagnostics", "Line Diagnostics"}, - p = {"Lspsaga preview_definition", "Preview Definition"}, - q = {"Telescope quickfix", "Quickfix"}, - r = {"Lspsaga rename", "Rename"}, - t = {"LspTypeDefinition", "Type Definition"}, - x = {"cclose", "Close Quickfix"}, - s = {"Telescope lsp_document_symbols", "Document Symbols"}, - S = {"Telescope lsp_workspace_symbols", "Workspace Symbols"} - }, - d = { - f = {":lua require'functions'.edit_dotfiles()", "Dotfiles search"} - }, - s = { - name = "+Search", - b = {"Telescope git_branches", "Checkout branch"}, - c = {"Telescope colorscheme", "Colorscheme"}, - d = {"Telescope lsp_document_diagnostics", "Document Diagnostics"}, - D = {"Telescope lsp_workspace_diagnostics", "Workspace Diagnostics"}, - f = {"Telescope find_files", "Find File"}, - m = {"Telescope marks", "Marks"}, - M = {"Telescope man_pages", "Man Pages"}, - r = {"Telescope oldfiles", "Open Recent File"}, - R = {"Telescope registers", "Registers"}, - t = {"Telescope live_grep", "Text"} - }, - S = { - name = "+Session", - s = {"SessionSave", "Save Session"}, - l = {"SessionLoad", "Load Session"} - }, - t = { - name = "+Tagbar", - t = {"TagbarToggle", "Toggle Tagbar"}, - } -} - -local wk = require("which-key") -wk.register(mappings, opts) diff --git a/.config/nvim/plugin/packer_compiled.lua b/.config/nvim/plugin/packer_compiled.lua index 5a4800f..335c1b1 100644 --- a/.config/nvim/plugin/packer_compiled.lua +++ b/.config/nvim/plugin/packer_compiled.lua @@ -94,6 +94,11 @@ _G.packer_plugins = { path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/cmp-path", url = "https://github.com/hrsh7th/cmp-path" }, + ["cmp-tabnine"] = { + loaded = true, + path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/cmp-tabnine", + url = "https://github.com/tzachar/cmp-tabnine" + }, ["darcula-solid.nvim"] = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/darcula-solid.nvim", @@ -109,10 +114,15 @@ _G.packer_plugins = { path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/editorconfig-vim", url = "https://github.com/editorconfig/editorconfig-vim" }, - ["go.nvim"] = { + everforest = { loaded = true, - path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/go.nvim", - url = "https://github.com/ray-x/go.nvim" + path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/everforest", + url = "https://github.com/sainnhe/everforest" + }, + ["git-worktree.nvim"] = { + loaded = true, + path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/git-worktree.nvim", + url = "https://github.com/theprimeagen/git-worktree.nvim" }, ["jsonc.vim"] = { loaded = true, @@ -130,6 +140,11 @@ _G.packer_plugins = { path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/lsp-status.nvim", url = "https://github.com/nvim-lua/lsp-status.nvim" }, + ["lspkind-nvim"] = { + loaded = true, + path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/lspkind-nvim", + url = "https://github.com/onsails/lspkind-nvim" + }, ["lspsaga.nvim"] = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/lspsaga.nvim", @@ -155,16 +170,6 @@ _G.packer_plugins = { path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nerdcommenter", url = "https://github.com/preservim/nerdcommenter" }, - nerdtree = { - loaded = true, - path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nerdtree", - url = "https://github.com/preservim/nerdtree" - }, - ["nerdtree-git-plugin"] = { - loaded = true, - path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nerdtree-git-plugin", - url = "https://github.com/Xuyuanp/nerdtree-git-plugin" - }, ["nord-vim"] = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nord-vim", @@ -175,16 +180,26 @@ _G.packer_plugins = { path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nvim-cmp", url = "https://github.com/hrsh7th/nvim-cmp" }, + ["nvim-dap"] = { + loaded = true, + path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nvim-dap", + url = "https://github.com/mfussenegger/nvim-dap" + }, + ["nvim-dap-ui"] = { + loaded = true, + path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nvim-dap-ui", + url = "https://github.com/rcarriga/nvim-dap-ui" + }, + ["nvim-lsp-installer"] = { + loaded = true, + path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nvim-lsp-installer", + url = "https://github.com/williamboman/nvim-lsp-installer" + }, ["nvim-lspconfig"] = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", url = "https://github.com/neovim/nvim-lspconfig" }, - ["nvim-lspinstall"] = { - loaded = true, - path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nvim-lspinstall", - url = "https://github.com/kabouzeid/nvim-lspinstall" - }, ["nvim-treesitter"] = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/nvim-treesitter", @@ -215,6 +230,11 @@ _G.packer_plugins = { path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/popup.nvim", url = "https://github.com/nvim-lua/popup.nvim" }, + ["rust.vim"] = { + loaded = true, + path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/rust.vim", + url = "https://github.com/rust-lang/rust.vim" + }, ["symbols-outline.nvim"] = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/symbols-outline.nvim", @@ -225,6 +245,11 @@ _G.packer_plugins = { path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/tagbar", url = "https://github.com/preservim/tagbar" }, + ["telescope-fzy-native.nvim"] = { + loaded = true, + path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/telescope-fzy-native.nvim", + url = "https://github.com/nvim-telescope/telescope-fzy-native.nvim" + }, ["telescope-project.nvim"] = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/telescope-project.nvim", @@ -235,21 +260,11 @@ _G.packer_plugins = { path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/telescope.nvim", url = "https://github.com/nvim-telescope/telescope.nvim" }, - ["vim-devicons"] = { - loaded = true, - path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/vim-devicons", - url = "https://github.com/ryanoasis/vim-devicons" - }, ["vim-easy-align"] = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/vim-easy-align", url = "https://github.com/junegunn/vim-easy-align" }, - ["vim-floaterm"] = { - loaded = true, - path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/vim-floaterm", - url = "https://github.com/voldikss/vim-floaterm" - }, ["vim-fugitive"] = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/vim-fugitive", @@ -274,11 +289,6 @@ _G.packer_plugins = { loaded = true, path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/vim-surround", url = "https://github.com/tpope/vim-surround" - }, - ["which-key.nvim"] = { - loaded = true, - path = "/Users/fbecker18/.local/share/nvim/site/pack/packer/start/which-key.nvim", - url = "https://github.com/folke/which-key.nvim" } }