12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- --Set highlight on search
- vim.o.hlsearch = false
- --Set statusbar
- vim.g.lightline = {
- colorscheme = 'onedark',
- active = { left = { { 'mode', 'paste' }, { 'gitbranch', 'readonly', 'filename', 'modified' } } },
- component_function = { gitbranch = 'fugitive#head' },
- }
- -- Highlight on yank
- vim.api.nvim_exec(
- [[
- augroup YankHighlight
- autocmd!
- autocmd TextYankPost * silent! lua vim.highlight.on_yank()
- augroup end
- ]],
- false
- )
- local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
- local cmp = require'cmp'
- cmp.setup({
- mapping = {
- ["<C-e>"] = cmp.mapping.close(),
- ["<C-p>"] = cmp.mapping.select_prev_item(),
- ["<C-n>"] = cmp.mapping.select_next_item(),
- ["<C-d>"] = cmp.mapping.scroll_docs(-4),
- ["<C-f>"] = cmp.mapping.scroll_docs(4),
- ["<C-y>"] = cmp.mapping.confirm {
- behavior = cmp.ConfirmBehavior.Insert,
- select = true,
- },
- ["<C-space>"] = cmp.mapping.complete(),
- ["<Tab>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "s" }),
- ["<S-Tab>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "s" }),
- },
- sources = {
- { name = "nvim_lsp" },
- { name = "path" },
- { name = "luasnip" },
- { name = "buffer", keyword_length = 5 },
- },
- snippet = {
- expand = function(args)
- require('luasnip').lsp_expand(args.body)
- end,
- },
- experimental = {
- native_menu = false
- }
- })
- local opts = { noremap=true, silent=true }
- vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
- vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
- vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
- vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
- local on_attach = function(client, bufnr)
- -- Enable completion triggered by <c-x><c-o>
- vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
- -- Mappings.
- -- See `:help vim.lsp.*` for documentation on any of the below functions
- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
- vim.api.nvim_buf_set_keymap(bufnr, 'n', '<leader>f', '<cmd>lua vim.lsp.buf.formatting()<CR>', opts)
- end
- local servers = { 'gopls', 'clangd', 'jedi_language_server' , 'rust_analyzer', 'tsserver' }
- for _, lsp in pairs(servers) do
- require('lspconfig')[lsp].setup {
- on_attach = on_attach,
- flags = {
- -- This will be the default in neovim 0.7+
- debounce_text_changes = 150,
- }
- }
- end
|