require('keymap') require('plugins') require('calcurse') require('i3conf') require('go') -- prevent cursor override vim.cmd('set guicursor=') -- basic settings vim.cmd('filetype plugin indent on') vim.cmd('set ts=4 sts=4 sw=4 expandtab') -- clipboard vim.cmd('set clipboard+=unnamedplus') vim.keymap.set('n', 'Y', '"+y') vim.keymap.set('n', 'P', '"+p') -- hybrid numbering vim.opt.relativenumber = true vim.opt.number = true vim.opt.cursorline = true vim.opt.compatible = false -- ignores search case unless capital is used vim.opt.smartcase = true vim.opt.hlsearch = true -- colorscheme and syntax settings vim.cmd([[ syntax enable colorscheme hybrid hi Normal ctermbg=NONE ]]) -- defaults to transparent Transparent = true -- timeouts vim.opt.ttimeout = true vim.opt.ttimeoutlen = 100 vim.o.updatetime = 250 -- nvim tree basics vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 -- vimwiki changes vim.cmd([[ let g:vimwiki_list = [{'path': '~/vimwiki/', \ 'syntax': 'markdown', 'ext':'.md'}] ]]) -- language server setup local lspconfig = require('lspconfig') -- local on_attach = function(client, bufnr) -- -- key mappings -- local opts = { -- buffer = bufnr, -- noremap = true, -- focusable = false, -- border = 'rounded', -- source = 'always', -- prefix = ' ', -- scope = 'cursor', -- close_events = { "BufLeave","CursorMoved","InsertEnter","FocusLost" }, -- } -- -- error viewing -- vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) -- vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) -- vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) -- -- def viewing/rename -- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) -- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) -- vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) -- vim.keymap.set('n', 'H', vim.lsp.buf.hover, opts) -- -- auto hover for error viewing -- vim.api.nvim_create_autocmd("CursorHold", { -- callback = function() -- vim.diagnostic.open_float(nil, opts) -- end -- }) -- end -- Go lspconfig.gopls.setup{ cmd = {"gopls", "serve"}, filetypes = {"go", "gomod"}, settings = { gopls = { analyses = { unusedparams = true, }, staticcheck = true, }, }, } -- C/C++ lspconfig.clangd.setup{} -- Lua lspconfig.lua_ls.setup{ settings = { Lua = { diagnostics = {globals = {'vim', 'opts'}}, }, telemetry = { enable = false, }, }, } -- Rust lspconfig.rust_analyzer.setup{} -- Python lspconfig.pylsp.setup{} -- TypeScript lspconfig.tsserver.setup{} -- Fix virtual text going off screen vim.diagnostic.config({ virtual_text = false, signs = true, underline = true, update_in_insert = false, severity_sort = false, }) vim.api.nvim_create_autocmd('LspAttach', { callback = function(ev) -- custom colors vim.set('hi DiagnosticUnderlineError cterm=undercurl guisp=Red') -- key mappings local opts = { buffer = ev.buf,} -- error viewing vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) -- def viewing/rename vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) vim.keymap.set('n', 'H', vim.lsp.buf.hover, opts) -- auto hover for error viewing vim.api.nvim_create_autocmd("CursorHold", { callback = function() opts = { buffer = ev.buf, focusable = false, border = 'rounded', source = 'always', prefix = ' ', scope = 'cursor', close_events = { "BufLeave","CursorMoved","InsertEnter","FocusLost" }, } vim.diagnostic.open_float(nil, opts) end }) -- local opts = { buffer = ev.buf } -- -- error viewing -- vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) -- vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) -- vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) -- -- def viewing/rename -- vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) -- vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) -- vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) -- vim.keymap.set('n', 'H', vim.lsp.buf.hover, opts) end, })