aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.config/nvim
diff options
context:
space:
mode:
Diffstat (limited to 'dotfiles/.config/nvim')
-rw-r--r--dotfiles/.config/nvim/init.vim44
-rw-r--r--dotfiles/.config/nvim/lua.lua73
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