neovim/config/init.lua
2023-04-13 16:36:41 -04:00

171 lines
4.7 KiB
Lua

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')
-- 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', '<leader>e', vim.diagnostic.open_float, opts)
-- vim.keymap.set('n', '<leader>[d', vim.diagnostic.goto_prev, opts)
-- vim.keymap.set('n', '<leader>]d', vim.diagnostic.goto_next, opts)
-- -- def viewing/rename
-- vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, opts)
-- vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, opts)
-- vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
-- vim.keymap.set('n', '<leader>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)
-- key mappings
local opts = { buffer = ev.buf,}
-- error viewing
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, opts)
vim.keymap.set('n', '<leader>[d', vim.diagnostic.goto_prev, opts)
vim.keymap.set('n', '<leader>]d', vim.diagnostic.goto_next, opts)
-- def viewing/rename
vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, opts)
vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, opts)
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
vim.keymap.set('n', '<leader>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', '<leader>e', vim.diagnostic.open_float, opts)
-- vim.keymap.set('n', '<leader>[d', vim.diagnostic.goto_prev, opts)
-- vim.keymap.set('n', '<leader>]d', vim.diagnostic.goto_next, opts)
-- -- def viewing/rename
-- vim.keymap.set('n', '<leader>gD', vim.lsp.buf.declaration, opts)
-- vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, opts)
-- vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts)
-- vim.keymap.set('n', '<leader>H', vim.lsp.buf.hover, opts)
end,
})