diff options
Diffstat (limited to 'dotfiles')
| -rw-r--r-- | dotfiles/.config/nvim/init.vim | 44 | ||||
| -rw-r--r-- | dotfiles/.config/nvim/lua.lua | 73 |
2 files changed, 90 insertions, 27 deletions
diff --git a/dotfiles/.config/nvim/init.vim b/dotfiles/.config/nvim/init.vim index 1e78846..4f736e8 100644 --- a/dotfiles/.config/nvim/init.vim +++ b/dotfiles/.config/nvim/init.vim @@ -28,13 +28,12 @@ call plug#begin('~/.local/share/nvim/site/plugged') Plug 'tpope/vim-fugitive' Plug 'mmarchini/bpftrace.vim' Plug 'junkblocker/git-time-lapse' + Plug 'tikhomirov/vim-glsl' + Plug 'aklt/plantuml-syntax' if has('nvim-0.6') Plug 'neovim/nvim-lspconfig' Plug 'ojroques/nvim-lspfuzzy' endif - if has('nvim-0.9') - Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} - endif call plug#end() " Some basics: @@ -70,6 +69,7 @@ call plug#end() set background=light endfunction map <F10> :call ChangeBG()<CR> + autocmd Signal SIGUSR1 call ChangeBG() let g:markdown_fenced_languages = ['c', 'go', 'sh', 'bash=sh', 'python', 'html', 'css', 'javascript'] " Set screen title @@ -87,7 +87,7 @@ call plug#end() endfunction function! StatuslineGit() let l:branchname = GitBranch() - return strlen(l:branchname) > 0?' '.l:branchname.' ':'' + return strlen(l:branchname) > 0?' '.l:branchname.' ':'' endfunction " git-messenger settings @@ -98,17 +98,17 @@ call plug#end() hi! link diffWordsAdded DiffText hi! link diffWordsRemoved DiffText -" Statusline +" Statusline FIXME: let laststatus=2 - set statusline= + " set statusline= set statusline+=%#SignColumn# set statusline+=%{StatuslineGit()} set statusline+=%#StatusLine# - set statusline+=%< - set statusline+=\ %f%r%m - set statusline+=%= - set statusline+=\ %l/%L,%c%V - set statusline+=\ + " set statusline+=%< + " set statusline+=\ %f%r%m + " set statusline+=%= + " set statusline+=\ %l/%L,%c%V + " set statusline+=\ set statusline+=%#StatusLineNC# set statusline+=\ %Y set statusline+=\ %{&fileencoding?&fileencoding:&encoding} @@ -256,14 +256,10 @@ call plug#end() " LSP if has('nvim-0.6') set omnifunc=v:lua.vim.lsp.omnifunc - lua require('lspconfig').clangd.setup{filetypes = { "c", "cpp", "objc", "objcpp", "ch" }} - lua require('lspconfig').gopls.setup{} - lua require('lspconfig').pylsp.setup{} - lua require('lspconfig').rls.setup{} - lua require('lspconfig').quick_lint_js.setup{} - lua require('lspfuzzy').setup{} + source ~/.config/nvim/lua.lua endif + " LSP keybinds nmap <silent> gd <cmd>lua vim.lsp.buf.definition()<CR> nmap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR> @@ -280,9 +276,6 @@ call plug#end() " Treesitter if has('nvim-0.9') - " XXX: neovim's built-in C et al treesitter parsers are better, although - " not ideal either. - lua require('nvim-treesitter.configs').setup{ ensure_installed = { "go", "rust", "python", "lua", "comment" }, highlight = { enable = true, disable = { "c", "cpp", "vim", "make" } }} set foldmethod=expr set foldexpr=nvim_treesitter#foldexpr() endif @@ -299,16 +292,13 @@ call plug#end() " MFing neovim overrding my omnifunc with whatever ccomplete is autocmd FileType c,ch,header,cpp setlocal omnifunc=v:lua.vim.lsp.omnifunc fdm=syntax " No, Rust, spaces is not superior to tabs, 100 lines is too much - autocmd FileType rust setlocal noet ci pi sts=0 ts=4 sw=4 tw=80 - autocmd FileType meson setlocal noet ci pi sts=0 ts=4 sw=4 tw=80 - autocmd FileType tex setlocal spell spelllang=en_us,es,ru tw=80 | - \ let b:SuperTabContextDefaultCompletionType = "<c-p>" - autocmd FileType text setlocal spell spelllang=en_us,es,ru tw=80 | - \ let b:SuperTabContextDefaultCompletionType = "<c-p>" + autocmd FileType rust,meson setlocal noet ci pi sts=0 ts=4 sw=4 tw=80 autocmd FileType mail setlocal spell spelllang=en_us,es,ru tw=72 | \ let b:SuperTabContextDefaultCompletionType = "<c-p>" - autocmd FileType markdown setlocal spell spelllang=en_us,es,ru tw=80 | + autocmd FileType text,tex,markdown,html,rst setlocal spell spelllang=en_us,es,ru tw=80 | \ let b:SuperTabContextDefaultCompletionType = "<c-p>" + " Having this on is a retarded default + let g:zig_fmt_autosave = 0 " C indentation rules set cino=:0l1 diff --git a/dotfiles/.config/nvim/lua.lua b/dotfiles/.config/nvim/lua.lua new file mode 100644 index 0000000..5b0ddf2 --- /dev/null +++ b/dotfiles/.config/nvim/lua.lua @@ -0,0 +1,73 @@ +-- LSP configuration + +local lspconfig = require('lspconfig') + +local on_attach = function(client, _) + client.request = require('lspfuzzy').wrap_request(client.request) +end +vim.lsp.config('*', {on_attach = on_attach}) +vim.lsp.config('clangd', { + on_attach = on_attach, + filetypes = { "c", "cpp", "objc", "objcpp", "ch" }, + init_options = { fallbackFlags = { } }, + }) + +vim.lsp.enable('clangd') +vim.lsp.enable('gopls') +vim.lsp.enable('pylsp') +vim.lsp.enable('rust_analyzer') +vim.lsp.enable('quick_lint_js') +vim.lsp.enable('zls') +require('lspfuzzy').setup{} + +local lsp_icons = { + Class = " ", + Color = " ", + Constant = " ", + Constructor = " ", + Enum = " ", + EnumMember = " ", + Field = " ", + File = " ", + Folder = " ", + Function = "ƒ ", + Interface = "", + Keyword = " ", + Method = "∫ ", + Module = " ", + Property = " ", + Snippet = " ", + Struct = " ", + Text = " ", + Unit = " ", + Value = " ", + Variable = " ", +} + + +function lsp_icons_setup() + local kinds = vim.lsp.protocol.CompletionItemKind + for i, kind in ipairs(kinds) do + kinds[i] = lsp_icons[kind] or kind + end +end + +lsp_icons_setup() + +if vim.fn.has('nvim-0.11') then + vim.diagnostic.config({ + signs = { + text = { + [vim.diagnostic.severity.ERROR] = '', + [vim.diagnostic.severity.WARN] = '', + [vim.diagnostic.severity.INFO] = '', + [vim.diagnostic.severity.HINT] = '', + }, + } + }) +else + vim.fn.sign_define('DiagnosticSignError', { text = '', texthl = 'DiagnosticSignError' }) + vim.fn.sign_define('DiagnosticSignWarn', { text = '', texthl = 'DiagnosticSignWarn' }) + vim.fn.sign_define('DiagnosticSignInfo', { text = '', texthl = 'DiagnosticSignInfo' }) + vim.fn.sign_define('DiagnosticSignHint', { text = '', texthl = 'DiagnosticSignHint' }) +end |
