diff options
Diffstat (limited to 'lua')
32 files changed, 274 insertions, 581 deletions
diff --git a/lua/colorscheme.lua b/lua/colorscheme.lua new file mode 100644 index 00000000..0090af8f --- /dev/null +++ b/lua/colorscheme.lua @@ -0,0 +1,3 @@ +vim.cmd('colorscheme nvcode') +vim.cmd('let g:nvcode_termcolors=256') +--vim.api.nvim_exec([[colorscheme nvcode]]) diff --git a/lua/keymappings.lua b/lua/keymappings.lua new file mode 100644 index 00000000..1d20f49e --- /dev/null +++ b/lua/keymappings.lua @@ -0,0 +1,36 @@ +vim.api.nvim_set_keymap('n', '<Space>', '<NOP>', { noremap = true, silent = true }) +vim.g.mapleader = ' ' + +-- no hl +vim.api.nvim_set_keymap('n', '<Leader>h', ':set hlsearch!<CR>', { noremap = true, silent = true }) + +-- explorer +vim.api.nvim_set_keymap('n', '<Leader>e', ':NvimTreeToggle<CR>', { noremap = true, silent = true }) + + +-- better window movement +vim.api.nvim_set_keymap('n', '<C-h>', '<C-w>h', { silent = true }) +vim.api.nvim_set_keymap('n', '<C-j>', '<C-w>j', { silent = true }) +vim.api.nvim_set_keymap('n', '<C-k>', '<C-w>k', { silent = true }) +vim.api.nvim_set_keymap('n', '<C-l>', '<C-w>l', { silent = true }) + +-- better indenting +vim.api.nvim_set_keymap('v', '<', '<gv', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('v', '>', '>gv', { noremap = true, silent = true }) + +-- I hate escape +vim.api.nvim_set_keymap('i', 'jk', '<ESC>', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('i', 'kj', '<ESC>', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('i', 'jj', '<ESC>', { noremap = true, silent = true }) + +-- Tab switch buffer +vim.api.nvim_set_keymap('n', '<TAB>', ':bnext<CR>', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', '<S-TAB>', ':bprevious<CR>', { noremap = true, silent = true }) + +-- Move selected line / block of text in visual mode +vim.api.nvim_set_keymap('x', 'K', ':move \'<-2<CR>gv-gv\'', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('x', 'J', ':move \'>+1<CR>gv-gv\'', { noremap = true, silent = true }) + +-- TAB Complete +--vim.api.nvim_set_keymap('i', '<expr><TAB>', 'pumvisible() ? \"\\<C-n>\" : \"\\<TAB>\"', { noremap = true, silent = true }) + diff --git a/lua/lsp-wrapper.lua b/lua/lsp-wrapper.lua deleted file mode 100644 index 0771f1df..00000000 --- a/lua/lsp-wrapper.lua +++ /dev/null @@ -1,254 +0,0 @@ -local lsp_wrapper = {} - --- buf - -function lsp_wrapper.add_to_workspace_folder() - vim.lsp.buf.add_workspace_folder() -end - -function lsp_wrapper.clear_references() - vim.lsp.buf.clear_references() -end - -function lsp_wrapper.code_action() - vim.lsp.buf.code_action() -end - -function lsp_wrapper.declaration() - vim.lsp.buf.declaration() - vim.lsp.buf.clear_references() -end - -function lsp_wrapper.definition() - vim.lsp.buf.definition() - vim.lsp.buf.clear_references() -end - -function lsp_wrapper.document_highlight() - vim.lsp.buf.document_highlight() -end - -function lsp_wrapper.document_symbol() - vim.lsp.buf.document_symbol() -end - -function lsp_wrapper.formatting() - vim.lsp.buf.formatting() -end - -function lsp_wrapper.formatting_sync() - vim.lsp.buf.formatting_sync() -end - -function lsp_wrapper.hover() - vim.lsp.buf.hover() -end - -function lsp_wrapper.implementation() - vim.lsp.buf.implementation() -end - -function lsp_wrapper.incoming_calls() - vim.lsp.buf.incoming_calls() -end - -function lsp_wrapper.list_workspace_folders() - vim.lsp.buf.list_workspace_folders() -end - -function lsp_wrapper.outgoing_calls() - vim.lsp.buf.outgoing_calls() -end - -function lsp_wrapper.range_code_action() - vim.lsp.buf.range_code_action() -end - -function lsp_wrapper.range_formatting() - vim.lsp.buf.range_formatting() -end - -function lsp_wrapper.references() - vim.lsp.buf.references() - vim.lsp.buf.clear_references() -end - -function lsp_wrapper.remove_workspace_folder() - vim.lsp.buf.remove_workspace_folder() -end - -function lsp_wrapper.rename() - vim.lsp.buf.rename() -end - -function lsp_wrapper.signature_help() - vim.lsp.buf.signature_help() -end - -function lsp_wrapper.type_definition() - vim.lsp.buf.type_definition() -end - -function lsp_wrapper.workspace_symbol() - vim.lsp.buf.workspace_symbol() -end - --- diagnostic - -function lsp_wrapper.get_all() - vim.lsp.diagnostic.get_all() -end - -function lsp_wrapper.get_next() - vim.lsp.diagnostic.get_next() -end - -function lsp_wrapper.get_prev() - vim.lsp.diagnostic.get_prev() -end - -function lsp_wrapper.goto_next() - vim.lsp.diagnostic.goto_next() -end - -function lsp_wrapper.goto_prev() - vim.lsp.diagnostic.goto_prev() -end - -function lsp_wrapper.show_line_diagnostics() - vim.lsp.diagnostic.show_line_diagnostics() -end - --- misc - --- :lua print(vim.inspect(vim.lsp.buf_get_clients())) - --- autoformat --- autocmd BufWritePre *.rs lua vim.lsp.buf.formatting_sync(nil, 1000) - -return lsp_wrapper - --- You can see more about the differences in types here: --- https://microsoft.github.io/language-server-protocol/specification#textDocument_documentHighlight - --- *hl-LspReferenceText* --- LspReferenceText used for highlighting "text" references --- *hl-LspReferenceRead* --- LspReferenceRead used for highlighting "read" references --- *hl-LspReferenceWrite* --- LspReferenceWrite used for highlighting "write" references - --- *lsp-highlight-diagnostics* --- All highlights defined for diagnostics begin with `LspDiagnostics` followed by --- the type of highlight (e.g., `Sign`, `Underline`, etc.) and then the Severity --- of the highlight (e.g. `Error`, `Warning`, etc.) - --- Sign, underline and virtual text highlights (by default) are linked to their --- corresponding LspDiagnosticsDefault highlight. - --- For example, the default highlighting for |hl-LspDiagnosticsSignError| is --- linked to |hl-LspDiagnosticsDefaultError|. To change the default (and --- therefore the linked highlights), use the |:highlight| command: > - --- highlight LspDiagnosticsDefaultError guifg="BrightRed" --- < - --- *hl-LspDiagnosticsDefaultError* --- LspDiagnosticsDefaultError --- Used as the base highlight group. --- Other LspDiagnostic highlights link to this by default (except Underline) - --- *hl-LspDiagnosticsDefaultWarning* --- LspDiagnosticsDefaultWarning --- Used as the base highlight group. --- Other LspDiagnostic highlights link to this by default (except Underline) - --- *hl-LspDiagnosticsDefaultInformation* --- LspDiagnosticsDefaultInformation --- Used as the base highlight group. --- Other LspDiagnostic highlights link to this by default (except Underline) - --- *hl-LspDiagnosticsDefaultHint* --- LspDiagnosticsDefaultHint --- Used as the base highlight group. --- Other LspDiagnostic highlights link to this by default (except Underline) - --- *hl-LspDiagnosticsVirtualTextError* --- LspDiagnosticsVirtualTextError --- Used for "Error" diagnostic virtual text. --- See |vim.lsp.diagnostic.set_virtual_text()| - --- *hl-LspDiagnosticsVirtualTextWarning* --- LspDiagnosticsVirtualTextWarning --- Used for "Warning" diagnostic virtual text. --- See |vim.lsp.diagnostic.set_virtual_text()| - --- *hl-LspDiagnosticsVirtualTextInformation* --- LspDiagnosticsVirtualTextInformation --- Used for "Information" diagnostic virtual text. --- See |vim.lsp.diagnostic.set_virtual_text()| - --- *hl-LspDiagnosticsVirtualTextHint* --- LspDiagnosticsVirtualTextHint --- Used for "Hint" diagnostic virtual text. --- See |vim.lsp.diagnostic.set_virtual_text()| - --- *hl-LspDiagnosticsUnderlineError* --- LspDiagnosticsUnderlineError --- Used to underline "Error" diagnostics. --- See |vim.lsp.diagnostic.set_underline()| - --- *hl-LspDiagnosticsUnderlineWarning* --- LspDiagnosticsUnderlineWarning --- Used to underline "Warning" diagnostics. --- See |vim.lsp.diagnostic.set_underline()| - --- *hl-LspDiagnosticsUnderlineInformation* --- LspDiagnosticsUnderlineInformation --- Used to underline "Information" diagnostics. --- See |vim.lsp.diagnostic.set_underline()| - --- *hl-LspDiagnosticsUnderlineHint* --- LspDiagnosticsUnderlineHint --- Used to underline "Hint" diagnostics. --- See |vim.lsp.diagnostic.set_underline()| - --- *hl-LspDiagnosticsFloatingError* --- LspDiagnosticsFloatingError --- Used to color "Error" diagnostic messages in diagnostics float. --- See |vim.lsp.diagnostic.show_line_diagnostics()| - --- *hl-LspDiagnosticsFloatingWarning* --- LspDiagnosticsFloatingWarning --- Used to color "Warning" diagnostic messages in diagnostics float. --- See |vim.lsp.diagnostic.show_line_diagnostics()| - --- *hl-LspDiagnosticsFloatingInformation* --- LspDiagnosticsFloatingInformation --- Used to color "Information" diagnostic messages in diagnostics float. --- See |vim.lsp.diagnostic.show_line_diagnostics()| - --- *hl-LspDiagnosticsFloatingHint* --- LspDiagnosticsFloatingHint --- Used to color "Hint" diagnostic messages in diagnostics float. --- See |vim.lsp.diagnostic.show_line_diagnostics()| - --- *hl-LspDiagnosticsSignError* --- LspDiagnosticsSignError --- Used for "Error" signs in sign column. --- See |vim.lsp.diagnostic.set_signs()| - --- *hl-LspDiagnosticsSignWarning* --- LspDiagnosticsSignWarning --- Used for "Warning" signs in sign column. --- See |vim.lsp.diagnostic.set_signs()| - --- *hl-LspDiagnosticsSignInformation* --- LspDiagnosticsSignInformation --- Used for "Information" signs in sign column. --- See |vim.lsp.diagnostic.set_signs()| - --- *hl-LspDiagnosticsSignHint* --- LspDiagnosticsSignHint --- Used for "Hint" signs in sign column. --- See |vim.lsp.diagnostic.set_signs()| diff --git a/lua/lsp-wrapper.vim b/lua/lsp-wrapper.vim deleted file mode 100644 index ca400bb6..00000000 --- a/lua/lsp-wrapper.vim +++ /dev/null @@ -1,37 +0,0 @@ -command! LspCodeAction lua require 'lsp-wrapper'.code_action() -command! LspDeclaration lua require 'lsp-wrapper'.declaration() -command! LspDefinition lua require 'lsp-wrapper'.definition() -command! LspDocumentSymbol lua require 'lsp-wrapper'.document_symbol() -command! LspFormatting lua require 'lsp-wrapper'.formatting() -command! LspFormattingSync lua require 'lsp-wrapper'.formatting_sync() -command! LspHover lua require 'lsp-wrapper'.hover() -command! LspImplementation lua require 'lsp-wrapper'.implementation() -command! LspRangeCodeAction lua require 'lsp-wrapper'.range_code_action() -command! LspRangeFormatting lua require 'lsp-wrapper'.range_formatting() -command! LspReferences lua require 'lsp-wrapper'.references() -command! LspRename lua require 'lsp-wrapper'.rename() -command! LspTypeDefinition lua require 'lsp-wrapper'.type_definition() -command! LspWorkspaceSymbol lua require 'lsp-wrapper'.workspace_symbol() -command! LspGotoNext lua require 'lsp-wrapper'.goto_next() -command! LspGotoPrev lua require 'lsp-wrapper'.goto_prev() -command! LspShowLineDiagnostics lua require 'lsp-wrapper'.show_line_diagnostics() -" command! LspAddToWorkspaceFolder lua require 'lsp-wrapper'.add_to_workspace_folder() -" command! LspRemoveWorkspaceFolder lua require 'lsp-wrapper'.remove_workspace_folder() -" command! LspListWorkspaceFolders lua require 'lsp-wrapper'.list_workspace_folders() -" command! LspClearReferences lua require 'lsp-wrapper'.clear_references() -" command! LspGetNext lua require 'lsp-wrapper'.get_next() -" command! LspGetPrev lua require 'lsp-wrapper'.get_prev() -" command! LspGetAll lua require 'lsp-wrapper'.get_all() -" command! LspIncomingCalls lua require 'lsp-wrapper'.incoming_calls() -" command! LspOutGoingCalls lua require 'lsp-wrapper'.outgoing_calls() -" command! LspDocumentHighlight lua require 'lsp-wrapper'.document_highlight() - -" Java - -" command! FileType java LspCodeAction <Esc><Cmd>lua require('jdtls').code_action(true)<CR> -" command! FileType java LspCodeAction <Esc><Cmd>lua require('jdtls').code_action(false, 'refactor')<CR> - -" nnoremap <A-o> <Cmd>lua require'jdtls'.organize_imports()<CR> -" nnoremap crv <Cmd>lua require('jdtls').extract_variable()<CR> -" vnoremap crv <Esc><Cmd>lua require('jdtls').extract_variable(true)<CR> -" vnoremap crm <Esc><Cmd>lua require('jdtls').extract_method(true)<CR> diff --git a/lua/lsp/bash-ls.lua b/lua/lsp/bash-ls.lua deleted file mode 100644 index ae3e7d70..00000000 --- a/lua/lsp/bash-ls.lua +++ /dev/null @@ -1,3 +0,0 @@ --- npm i -g bash-language-server -require'lspconfig'.bashls.setup{} - diff --git a/lua/lsp/css-ls.lua b/lua/lsp/css-ls.lua deleted file mode 100644 index 337fd585..00000000 --- a/lua/lsp/css-ls.lua +++ /dev/null @@ -1,3 +0,0 @@ --- npm install -g vscode-css-languageserver-bin -require'lspconfig'.cssls.setup{} - diff --git a/lua/lsp/docker-ls.lua b/lua/lsp/docker-ls.lua deleted file mode 100644 index 32b8b946..00000000 --- a/lua/lsp/docker-ls.lua +++ /dev/null @@ -1,3 +0,0 @@ --- npm install -g dockerfile-language-server-nodejs -require'lspconfig'.dockerls.setup{} - diff --git a/lua/lsp/general-ls.lua b/lua/lsp/general-ls.lua deleted file mode 100644 index fa28dbcf..00000000 --- a/lua/lsp/general-ls.lua +++ /dev/null @@ -1,15 +0,0 @@ -require"lspconfig".efm.setup { - init_options = {documentFormatting = true}, - filetypes = {"lua"}, - settings = { - rootMarkers = {".git/"}, - languages = { - lua = { - { - formatCommand = "lua-format -i --no-keep-simple-function-one-line --no-break-after-operator --column-limit=150 --break-after-table-lb", - formatStdin = true - } - } - } - } -} diff --git a/lua/lsp/graphql-ls.lua b/lua/lsp/graphql-ls.lua deleted file mode 100644 index 6369446d..00000000 --- a/lua/lsp/graphql-ls.lua +++ /dev/null @@ -1,3 +0,0 @@ --- npm install -g graphql-language-service-cli -require'lspconfig'.graphql.setup{} - diff --git a/lua/lsp/html-ls.lua b/lua/lsp/html-ls.lua deleted file mode 100644 index b27650a6..00000000 --- a/lua/lsp/html-ls.lua +++ /dev/null @@ -1,11 +0,0 @@ --- npm install -g vscode-html-languageserver-bin ---Enable (broadcasting) snippet capability for completion -local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true - -require'lspconfig'.html.setup { - capabilities = capabilities, -} - - -require'lspconfig'.html.setup{} diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/lua/lsp/init.lua diff --git a/lua/lsp/java-ls.lua b/lua/lsp/java-ls.lua deleted file mode 100644 index 689b71eb..00000000 --- a/lua/lsp/java-ls.lua +++ /dev/null @@ -1,8 +0,0 @@ --- In Vimscript --- augroup lsp --- au! --- au FileType java lua require('jdtls').start_or_attach({cmd = {'java-linux-ls'}}) --- augroup end --- find_root looks for parent directories relative to the current buffer containing one of the given arguments. --- require'lspconfig'.jdtls.setup {cmd = {'java-linux-ls'}} -require('jdtls').start_or_attach({cmd = {'java-linux-ls'}, root_dir = require('jdtls.setup').find_root({'gradle.build', 'pom.xml'})}) diff --git a/lua/lsp/javascript-ls.lua b/lua/lsp/javascript-ls.lua deleted file mode 100644 index 62ca0675..00000000 --- a/lua/lsp/javascript-ls.lua +++ /dev/null @@ -1,3 +0,0 @@ --- npm install -g typescript typescript-language-server -require'lspconfig'.tsserver.setup{} - diff --git a/lua/lsp/json-ls.lua b/lua/lsp/json-ls.lua deleted file mode 100644 index 474f1803..00000000 --- a/lua/lsp/json-ls.lua +++ /dev/null @@ -1,11 +0,0 @@ --- npm install -g vscode-json-languageserver -require'lspconfig'.jsonls.setup { - commands = { - Format = { - function() - vim.lsp.buf.range_formatting({},{0,0},{vim.fn.line("$"),0}) - end - } - } -} - diff --git a/lua/lsp/lsp-config.lua b/lua/lsp/lsp-config.lua deleted file mode 100644 index 74b82865..00000000 --- a/lua/lsp/lsp-config.lua +++ /dev/null @@ -1,61 +0,0 @@ --- local nvim_lsp = require('lspconfig') --- 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 - --- buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - --- -- Mappings. --- local opts = { noremap=true, silent=true } --- buf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts) --- -- buf_set_keymap('n', 'gd', ':lua vim.lsp.buf.definition()') --- buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts) --- buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts) --- buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts) --- buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts) --- buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts) --- buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts) --- buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts) --- buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts) --- buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts) --- -- buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts) --- buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts) --- buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts) --- buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts) --- buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts) - --- -- *vim.lsp.buf.code_action() - --- -- Set some keybinds conditional on server capabilities --- if client.resolved_capabilities.document_formatting then --- buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts) --- elseif client.resolved_capabilities.document_range_formatting then --- buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.range_formatting()<CR>", opts) --- end --- -- Set autocommands conditional on server_capabilities --- -- if client.resolved_capabilities.document_highlight then --- -- vim.api.nvim_exec([[ --- -- hi LspReferenceRead cterm=bold ctermbg=red guibg=Pink --- -- hi LspReferenceText cterm=bold ctermbg=red guibg=Pink --- -- hi LspReferenceWrite cterm=bold ctermbg=red guibg=Pink --- -- augroup lsp_document_highlight --- -- autocmd! * <buffer> --- -- autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight() --- -- autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references() --- -- augroup END --- -- ]], false) --- -- end --- end - --- -- Use a loop to conveniently both setup defined servers --- -- and map buffer local keybindings when the language server attaches --- local servers = { "pyright", "rust_analyzer", "tsserver" } --- for _, lsp in ipairs(servers) do --- nvim_lsp[lsp].setup { on_attach = on_attach } --- end - - -vim.fn.sign_define("LspDiagnosticsSignError", {text = "", numhl = "LspDiagnosticsDefaultError"}) -vim.fn.sign_define("LspDiagnosticsSignWarning", {text = "", numhl = "LspDiagnosticsDefaultWarning"}) -vim.fn.sign_define("LspDiagnosticsSignInformation", {text = "", numhl = "LspDiagnosticsDefaultInformation"}) -vim.fn.sign_define("LspDiagnosticsSignHint", {text = "", numhl = "LspDiagnosticsDefaultHint"}) diff --git a/lua/lsp/lsp-kind.lua b/lua/lsp/lsp-kind.lua deleted file mode 100644 index 7ac3fefa..00000000 --- a/lua/lsp/lsp-kind.lua +++ /dev/null @@ -1,27 +0,0 @@ --- commented options are defaults -require('lspkind').init({ - with_text = false, - symbol_map = { - Text = ' īĢ ', - Method = ' î ', - Function = ' î ', - Constructor = ' î ', - Variable = '[î]', - Class = ' ī ', - Interface = ' ī¨ ', - Module = ' ī¨ ', - Property = ' ī ', - Unit = ' īĨŦ ', - Value = ' īĸ ', - Enum = ' īŠ', - Keyword = ' ī§ ', - Snippet = ' ī ', - Color = 'îĢ', - File = 'ī
', - Folder = ' īąŽ ', - EnumMember = ' ī
', - Constant = ' īŧ ', - Struct = ' īŗ ' - }, -}) - diff --git a/lua/lsp/lua-ls.lua b/lua/lsp/lua-ls.lua index c04219a9..c2bd79c0 100644 --- a/lua/lsp/lua-ls.lua +++ b/lua/lsp/lua-ls.lua @@ -5,11 +5,11 @@ local sumneko_root_path = "" local sumneko_binary = "" if vim.fn.has("mac") == 1 then - sumneko_root_path = "/Users/" .. USER .. "/.config/nvim/lua-language-server" - sumneko_binary = "/Users/" .. USER .. "/.config/nvim/lua-language-server/bin/macOS/lua-language-server" + sumneko_root_path = "/Users/" .. USER .. "/.config/nvim/ls/lua-language-server" + sumneko_binary = "/Users/" .. USER .. "/.config/nvim/ls/lua-language-server/bin/macOS/lua-language-server" elseif vim.fn.has("unix") == 1 then - sumneko_root_path = "/home/" .. USER .. "/.config/nvim/lua-language-server" - sumneko_binary = "/home/" .. USER .. "/.config/nvim/lua-language-server/bin/Linux/lua-language-server" + sumneko_root_path = "/home/" .. USER .. "/.config/nvim/ls/lua-language-server" + sumneko_binary = "/home/" .. USER .. "/.config/nvim/ls/lua-language-server/bin/Linux/lua-language-server" else print("Unsupported system for sumneko") end diff --git a/lua/lsp/python-ls.lua b/lua/lsp/python-ls.lua deleted file mode 100644 index 0be71acb..00000000 --- a/lua/lsp/python-ls.lua +++ /dev/null @@ -1,3 +0,0 @@ --- npm i -g pyright -require'lspconfig'.pyright.setup{} - diff --git a/lua/lsp/vim-ls.lua b/lua/lsp/vim-ls.lua deleted file mode 100644 index ac1e6e19..00000000 --- a/lua/lsp/vim-ls.lua +++ /dev/null @@ -1,3 +0,0 @@ --- npm install -g vim-language-server -require'lspconfig'.vimls.setup{} - diff --git a/lua/lsp/yaml-ls.lua b/lua/lsp/yaml-ls.lua deleted file mode 100644 index 6b2de91e..00000000 --- a/lua/lsp/yaml-ls.lua +++ /dev/null @@ -1,3 +0,0 @@ --- npm install -g yaml-language-server -require'lspconfig'.yamlls.setup{} - diff --git a/lua/nv-bufferline/init.lua b/lua/nv-bufferline/init.lua new file mode 100644 index 00000000..760bb517 --- /dev/null +++ b/lua/nv-bufferline/init.lua @@ -0,0 +1,13 @@ +require'bufferline'.setup{} +vim.api.nvim_set_keymap('n', '<TAB>', ':BufferLineCycleNext<CR>', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('n', '<S-TAB>', ':BufferLineCyclePrev<CR>', { noremap = true, silent = true }) + + +--" These commands will move the current buffer backwards or forwards in the bufferline +--nnoremap <silent><mymap> :BufferLineMoveNext<CR> +--nnoremap <silent><mymap> :BufferLineMovePrev<CR> + +--" These commands will sort buffers by directory, language, or a custom criteria +--nnoremap <silent>be :BufferLineSortByExtension<CR> +--nnoremap <silent>bd :BufferLineSortByDirectory<CR> +--nnoremap <silent><mymap> :lua require'bufferline'.sort_buffers_by(function (buf_a, buf_b) return buf_a.id < buf_b.id end)<CR> diff --git a/lua/plugins/colorizer-config.lua b/lua/nv-colorizer/init.lua index e990d505..1b22f7f7 100644 --- a/lua/plugins/colorizer-config.lua +++ b/lua/nv-colorizer/init.lua @@ -1,6 +1,6 @@ require'colorizer'.setup( {'*';}, - { + { RGB = true; -- #RGB hex codes RRGGBB = true; -- #RRGGBB hex codes -- names = true; -- "Name" codes like Blue @@ -10,6 +10,3 @@ require'colorizer'.setup( css = true; -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB css_fn = true; -- Enable all CSS *functions*: rgb_fn, hsl_fn }) - - - diff --git a/lua/plugins/compe-config.lua b/lua/nv-compe/init.lua index 75630c6d..4dcfe26a 100644 --- a/lua/plugins/compe-config.lua +++ b/lua/nv-compe/init.lua @@ -1,9 +1,3 @@ --- TODO we need snippet support and to maybe get better docs idk - - -vim.cmd [[set shortmess+=c]] -vim.o.completeopt = "menuone,noselect" - require'compe'.setup { enabled = true; autocomplete = true; @@ -13,10 +7,9 @@ require'compe'.setup { throttle_time = 80; source_timeout = 200; incomplete_delay = 400; - allow_prefix_unmatch = false; - max_abbr_width = 1000; - max_kind_width = 1000; - max_menu_width = 1000000; + max_abbr_width = 100; + max_kind_width = 100; + max_menu_width = 100; documentation = true; source = { @@ -33,9 +26,37 @@ require'compe'.setup { }; } + + + + 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 + +-- Use (s-)tab to: +--- move to prev/next item in completion menuone +--- jump to prev/next snippet's placeholder +_G.tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "<C-n>" + elseif vim.fn.call("vsnip#available", {1}) == 1 then + return t "<Plug>(vsnip-expand-or-jump)" + elseif check_back_space() then + return t "<Tab>" + else + return vim.fn['compe#complete']() + end +end _G.s_tab_complete = function() if vim.fn.pumvisible() == 1 then return t "<C-p>" @@ -46,6 +67,7 @@ _G.s_tab_complete = function() end end +vim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true}) vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true}) vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true}) vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true}) diff --git a/lua/plugins/galaxyline-config.lua b/lua/nv-galaxyline/init.lua index e416b2c3..79cf2af0 100644 --- a/lua/plugins/galaxyline-config.lua +++ b/lua/nv-galaxyline/init.lua @@ -247,25 +247,3 @@ gls.short_line_left[1] = { highlight = {colors.purple,colors.bg} } } - --- gls.short_line_right[1] = { --- BufferIcon = { --- provider= 'BufferIcon', --- separator = ' ', --- separator_highlight = {colors.purple,colors.bg}, --- highlight = {colors.grey,colors.purple} --- } --- } --- function! s:my_bookmark_color() abort --- let s:scl_guibg = matchstr(execute('hi SignColumn'), 'guibg=\zs\S*') --- if empty(s:scl_guibg) --- let s:scl_guibg = 'NONE' --- endif --- exe 'hi MyBookmarkSign guifg=' . s:scl_guibg --- endfunction --- call s:my_bookmark_color() " don't remove this line! - --- augroup UserGitSignColumnColor --- autocmd! --- autocmd ColorScheme * call s:my_bookmark_color() --- augroup END diff --git a/lua/nv-gitsigns/init.lua b/lua/nv-gitsigns/init.lua new file mode 100644 index 00000000..7d183247 --- /dev/null +++ b/lua/nv-gitsigns/init.lua @@ -0,0 +1,37 @@ +require('gitsigns').setup { + signs = { + -- TODO add hl to colorscheme + 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, + buffer = true, + + ['n ]c'] = { expr = true, "&diff ? ']c' : '<cmd>lua require\"gitsigns\".next_hunk()<CR>'"}, + ['n [c'] = { expr = true, "&diff ? '[c' : '<cmd>lua require\"gitsigns\".prev_hunk()<CR>'"}, + + ['n <leader>hs'] = '<cmd>lua require"gitsigns".stage_hunk()<CR>', + ['n <leader>hu'] = '<cmd>lua require"gitsigns".undo_stage_hunk()<CR>', + ['n <leader>hr'] = '<cmd>lua require"gitsigns".reset_hunk()<CR>', + ['n <leader>hp'] = '<cmd>lua require"gitsigns".preview_hunk()<CR>', + ['n <leader>hb'] = '<cmd>lua require"gitsigns".blame_line()<CR>', + + -- Text objects + ['o ih'] = ':<C-U>lua require"gitsigns".text_object()<CR>', + ['x ih'] = ':<C-U>lua require"gitsigns".text_object()<CR>' + }, + watch_index = { + interval = 1000 + }, + sign_priority = 6, + update_debounce = 200, + status_formatter = nil, -- Use default + use_decoration_api = false +} diff --git a/lua/nv-nvim-autopairs/init.lua b/lua/nv-nvim-autopairs/init.lua new file mode 100644 index 00000000..6810a774 --- /dev/null +++ b/lua/nv-nvim-autopairs/init.lua @@ -0,0 +1,40 @@ +require('nvim-autopairs').setup() + +local pairs_map = { + ["'"] = "'", + ['"'] = '"', + ['('] = ')', + ['['] = ']', + ['{'] = '}', + ['`'] = '`', +} +local disable_filetype = { "TelescopePrompt" } +local break_line_filetype = nil -- mean all file type +local html_break_line_filetype = {'html' , 'vue' , 'typescriptreact' , 'svelte' , 'javascriptreact'} +local ignored_next_char = "%w" + +local remap = vim.api.nvim_set_keymap +local npairs = require('nvim-autopairs') + +-- skip it, if you use another global object +_G.MUtils= {} + +vim.g.completion_confirm_key = "" +MUtils.completion_confirm=function() + if vim.fn.pumvisible() ~= 0 then + if vim.fn.complete_info()["selected"] ~= -1 then + vim.fn["compe#confirm"]() + return npairs.esc("<c-y>") + else + vim.defer_fn(function() + vim.fn["compe#confirm"]("<cr>") + end, 20) + return npairs.esc("<c-n>") + end + else + return npairs.check_break_line_char() + end +end + + +remap('i' , '<CR>','v:lua.MUtils.completion_confirm()', {expr = true , noremap = true}) diff --git a/lua/plugins/nvimtree-config.lua b/lua/nv-nvimtree/init.lua index 3803765a..3803765a 100644 --- a/lua/plugins/nvimtree-config.lua +++ b/lua/nv-nvimtree/init.lua diff --git a/lua/plugins/treesitter-config.lua b/lua/nv-treesitter/init.lua index 30b65d82..f0ecf6ac 100644 --- a/lua/plugins/treesitter-config.lua +++ b/lua/nv-treesitter/init.lua @@ -14,21 +14,3 @@ require'nvim-treesitter.configs'.setup { } } - --- require'nvim-treesitter.configs'.setup { --- refactor = { --- highlight_current_scope = { enable = false }, --- }, --- } - --- require'nvim-treesitter.configs'.setup { --- refactor = { --- smart_rename = { --- enable = true, --- keymaps = { --- smart_rename = "grr", --- }, --- }, --- }, --- } - diff --git a/lua/plugins.lua b/lua/plugins.lua new file mode 100644 index 00000000..4830dfd2 --- /dev/null +++ b/lua/plugins.lua @@ -0,0 +1,69 @@ +local execute = vim.api.nvim_command +local fn = vim.fn + +local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' + + +if fn.empty(fn.glob(install_path)) > 0 then + execute('!git clone https://github.com/wbthomason/packer.nvim '..install_path) + execute 'packadd packer.nvim' +end + + +return require('packer').startup(function() + -- Packer can manage itself as an optional plugin + use {'wbthomason/packer.nvim', opt = true} + + -- Information + use 'nanotee/nvim-lua-guide' + + -- LSP + use 'neovim/nvim-lspconfig' + use 'glepnir/lspsaga.nvim' + use 'onsails/lspkind-nvim' + use 'kosayoda/nvim-lightbulb' + use 'mfussenegger/nvim-jdtls' + + -- Debugging + use 'mfussenegger/nvim-dap' + + -- Autocomplete + use 'hrsh7th/nvim-compe' + use 'hrsh7th/vim-vsnip' + + -- Treesitter + use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' } + use 'nvim-treesitter/playground' + use 'p00f/nvim-ts-rainbow' + + -- Icons + use 'kyazdani42/nvim-web-devicons' + + -- Status Line and Bufferline + use 'glepnir/galaxyline.nvim' + use {'akinsho/nvim-bufferline.lua', requires = 'kyazdani42/nvim-web-devicons'} + + -- Telescope + use 'nvim-lua/popup.nvim' + use 'nvim-lua/plenary.nvim' + use 'nvim-telescope/telescope.nvim' + use 'nvim-telescope/telescope-media-files.nvim' + + -- Explorer + use 'kyazdani42/nvim-tree.lua' + + + -- Color + use 'christianchiarulli/nvcode-color-schemes.vim' + use 'norcalli/nvim-colorizer.lua' + + -- Git + use 'TimUntersberger/neogit' + use {'lewis6991/gitsigns.nvim', requires = { 'nvim-lua/plenary.nvim' } } + + -- General Plugins + use 'windwp/nvim-autopairs' + use 'kevinhwang91/nvim-bqf' + use 'unblevable/quick-scope' + use 'airblade/vim-rooter' +end) diff --git a/lua/plugins/lspsaga-config.lua b/lua/plugins/lspsaga-config.lua deleted file mode 100644 index 139597f9..00000000 --- a/lua/plugins/lspsaga-config.lua +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/lua/plugins/telescope-config.lua b/lua/plugins/telescope-config.lua deleted file mode 100644 index c9ea4b90..00000000 --- a/lua/plugins/telescope-config.lua +++ /dev/null @@ -1,73 +0,0 @@ -local actions = require('telescope.actions') --- Global remapping ------------------------------- --- '--color=never', -require('telescope').load_extension('media_files') -require('telescope').setup { - defaults = { - vimgrep_arguments = {'rg', '--no-heading', '--with-filename', '--line-number', '--column', '--smart-case'}, - prompt_position = "top", - prompt_prefix = "īĄ ", - selection_caret = "ī¤ ", - entry_prefix = " ", - initial_mode = "insert", - selection_strategy = "reset", - sorting_strategy = "descending", - layout_strategy = "horizontal", - layout_defaults = {horizontal = {mirror = false}, vertical = {mirror = false}}, - file_sorter = require'telescope.sorters'.get_fuzzy_file, - file_ignore_patterns = {}, - generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter, - shorten_path = true, - winblend = 0, - width = 0.75, - preview_cutoff = 120, - results_height = 1, - results_width = 0.8, - border = {}, - borderchars = {'â', 'â', 'â', 'â', 'â', 'âŽ', 'â¯', 'â°'}, - color_devicons = true, - use_less = true, - set_env = {['COLORTERM'] = 'truecolor'}, -- default = nil, - 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, - - -- Developer configurations: Not meant for general override - buffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker, - mappings = { - i = { - ["<C-j>"] = actions.move_selection_next, - ["<C-k>"] = actions.move_selection_previous, - -- To disable a keymap, put [map] = false - -- So, to not map "<C-n>", just put - -- ["<c-x>"] = false, - - -- Otherwise, just set the mapping to the function that you want it to be. - -- ["<C-i>"] = actions.select_horizontal, - - -- Add up multiple actions - ["<CR>"] = actions.select_default + actions.center - - -- You can perform as many actions in a row as you like - -- ["<CR>"] = actions.select_default + actions.center + my_cool_custom_action, - }, - n = { - ["<C-j>"] = actions.move_selection_next, - ["<C-k>"] = actions.move_selection_previous - -- ["<esc>"] = actions.close, - -- ["<C-i>"] = my_cool_custom_action, - } - } - }, - require'telescope'.setup { - extensions = { - media_files = { - -- filetypes whitelist - -- defaults to {"png", "jpg", "mp4", "webm", "pdf"} - filetypes = {"png", "webp", "jpg", "jpeg"}, - find_cmd = "rg" -- find command (defaults to `fd`) - } - } - } -} diff --git a/lua/settings.lua b/lua/settings.lua new file mode 100644 index 00000000..fbf24713 --- /dev/null +++ b/lua/settings.lua @@ -0,0 +1,39 @@ +--vim.o.iskeyword="+=-" --treat dash separated words as a word text object" +--vim.o.shortmess="c" --Don't pass messages to |ins-completion-menu|. + +--vim.o.formatoptions="cro" --Stop newline continution of comments +vim.o.hidden=true --Required to keep multiple buffers open multiple buffers +vim.o.wrap=false --Display long lines as just one line +--vim.o.whichwrap="+=<,>,[,],h,l" +vim.o.encoding="utf-8" --The encoding displayed +vim.o.pumheight=10 --Makes popup menu smaller +vim.o.fileencoding="utf-8" --The encoding written to file +vim.o.ruler=true -- " Show the cursor position all the time +vim.o.cmdheight=2 --More space for displaying messages +vim.o.mouse="a" --Enable your mouse +vim.o.splitbelow=true --Horizontal splits will automatically be below +vim.o.termguicolors=true +vim.o.splitright=true --Vertical splits will automatically be to the right +vim.o.t_Co="256" --Support 256 colors +vim.o.conceallevel=0 --So that I can see `` in markdown files +vim.o.tabstop=2 --Insert 2 spaces for a tab +vim.o.shiftwidth=2 --Change the number of space characters inserted for indentation +vim.o.smarttab=true --Makes tabbing smarter will realize you have 2 vs 4 +vim.o.expandtab=true --Converts tabs to spaces +vim.o.smartindent=true --Makes indenting smart +vim.o.autoindent=true --Good auto indent +vim.o.laststatus=2 --Always display the status line +--vim.o.number=true --Line numbers +vim.wo.number = true +vim.o.cursorline=true --Enable highlighting of the current line +vim.o.background="dark" --tell vim what the background color looks like +vim.o.showtabline=2 --Always show tabs +vim.o.showmode=false --We don't need to see things like -- INSERT -- anymore +vim.o.backup=false --This is recommended by coc +vim.o.writebackup=false --This is recommended by coc +vim.o.signcolumn="yes" --Always show the signcolumn, otherwise it would shift the text each time +vim.o.updatetime=300 --Faster completion +vim.o.timeoutlen=1000 --By default timeoutlen is 1000 ms +vim.o.clipboard="unnamedplus" --Copy paste between vim and everything else +vim.o.incsearch=true +vim.o.guifont="JetBrainsMono\\ Nerd\\ Font\\ Mono:h18" |