-" java extension to deoplete
-Plug 'artur-shaik/vim-javacomplete2', {'for': 'java'}
+" neovim-0.4 has troubles with nvim-treesitter
+if has('nvim-0.5')
+ " neovim-0.7 works until v0.8.0
+ if has('nvim-0.9')
+ Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
+ else
+ Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate', 'tag': 'v0.8.0'}
+ endif
-Plug 'neomake/neomake'
-Plug 'puremourning/vimspector'
+ Plug 'nvim-treesitter/nvim-treesitter-refactor', {'do': ':TSUpdate'}
+endif
+
+if has('nvim-0.7')
+ Plug 'williamboman/mason.nvim'
+ Plug 'neovim/nvim-lspconfig'
+ Plug 'williamboman/mason-lspconfig.nvim'
+ Plug 'mfussenegger/nvim-lint'
+ Plug 'mhartington/formatter.nvim'
+endif
-Plug 'kana/vim-operator-user'
-Plug 'rhysd/vim-clang-format'
-Plug 'justmao945/vim-clang', {'for': ['c', 'cpp', 'objc']}
" Prevent slow foling update, e.g., for vimtex
Plug 'Konfekt/FastFold'
-Plug 'lervag/vimtex'
-
-Plug 'shuber2/vim-syntax-easychair2'
Plug 'gko/vim-coloresque'
-Plug 'vimwiki/vimwiki'
-Plug 'jceb/vim-orgmode', {'for': ['org']}
-
-Plug 'cakebaker/scss-syntax.vim', {'for': 'scss'}
-Plug 'hail2u/vim-css3-syntax', {'for': ['scss', 'css']}
+Plug 'puremourning/vimspector'
-Plug 'https://gitlab.com/dbeniamine/vim-mail'
Plug 'Konfekt/vim-DetectSpellLang', {'do': 'spell'}
-Plug 'dpelle/vim-LanguageTool'
-" Disable devicons on linux terminal
-if $TERM == 'linux'
- let g:enable_plugin_devicons=0
- " Enable loading of devicons on all others
-else
- let g:enable_plugin_devicons=1
-endif
+Plug 'dpelle/vim-LanguageTool'
-Plug 'ryanoasis/vim-devicons', Cond(g:enable_plugin_devicons)
+Plug 'ryanoasis/vim-devicons', Cond($TERM != 'linux')
Plug 'joom/latex-unicoder.vim'
Plug 'chrisbra/unicode.vim'
Plug 'sheerun/vim-polyglot'
-" neovim-0.4 has troubles with nvim-treesitter
-if has('nvim-0.5')
- " neovim-0.7 works until v0.8.0
- if has('nvim-0.9')
- Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
- else
- Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate', 'tag': 'v0.8.0'}
- endif
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" FileType specific plugins
- Plug 'nvim-treesitter/nvim-treesitter-refactor', {'do': ':TSUpdate'}
-endif
+" Java IDE:
+" https://sookocheff.com/post/vim/neovim-java-ide/
-function PluginsConfigFull()
- let g:neomake_c_enabled_makers = ['clangtidy', 'clangcheck']
- let g:neomake_cpp_enabled_makers = ['clangtidy', 'clangcheck']
- let g:clang_compilation_database = '.'
+Plug 'lervag/vimtex'
- " Taken from neomake
- if OnBattery()
- call neomake#configure#automake('w')
- else
- call neomake#configure#automake('nw', 1000)
- endif
+Plug 'shuber2/vim-syntax-easychair2'
+
+Plug 'vimwiki/vimwiki'
+
+Plug 'jceb/vim-orgmode', {'for': ['org']}
+
+Plug 'https://gitlab.com/dbeniamine/vim-mail'
+
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+function PluginsConfigFull()
if has('nvim-0.5')
set foldexpr=nvim_treesitter#foldexpr()
- lua <<EOF
- require'nvim-treesitter.configs'.setup {
- -- one of "all"
- ensure_installed = "all",
- -- List of parsers to ignore installing
- ignore_install = {},
- -- Modules and its options go here
- highlight = { enable = true },
- -- Indentation is still quite buggy, e.g., for multi-line C comments
- -- or for comments right after a preproc definition.
- -- indent = { enable = true },
- textobjects = { enable = true },
- incremental_selection = {
- enable = true,
- keymaps = {
- init_selection = "gnn",
- node_incremental = "grn",
- scope_incremental = "grc",
- node_decremental = "grm",
- },
- },
- refactor = {
- highlight_definitions = { enable = true },
- smart_rename = {
- enable = true,
- keymaps = { smart_rename = "grr" },
- },
- navigation = {
+ lua <<EOF
+ require'nvim-treesitter.configs'.setup {
+ -- one of "all"
+ ensure_installed = "all",
+ -- List of parsers to ignore installing
+ ignore_install = {},
+ -- Modules and its options go here
+ highlight = { enable = true },
+ -- Indentation is still quite buggy, e.g., for multi-line C comments
+ -- or for comments right after a preproc definition.
+ -- indent = { enable = true },
+ textobjects = { enable = true },
+ incremental_selection = {
enable = true,
keymaps = {
- goto_definition = "gnd",
- list_definitions = "gnD",
- list_definitions_toc = "gO",
- goto_next_usage = "<a-*>",
- goto_previous_usage = "<a-#>",
+ init_selection = "gnn",
+ node_incremental = "grn",
+ scope_incremental = "grc",
+ node_decremental = "grm",
},
},
- },
- }
+ refactor = {
+ highlight_definitions = { enable = true },
+ smart_rename = {
+ enable = true,
+ keymaps = { smart_rename = "grr" },
+ },
+ navigation = {
+ enable = true,
+ keymaps = {
+ goto_definition = "gnd",
+ list_definitions = "gnD",
+ list_definitions_toc = "gO",
+ goto_next_usage = "<a-*>",
+ goto_previous_usage = "<a-#>",
+ },
+ },
+ },
+ }
EOF
endif
+ if has('nvim-0.7')
+ lua <<EOF
+ require("mason").setup({
+ ui = {
+ icons = {
+ package_installed = "✓",
+ package_pending = "➜",
+ package_uninstalled = "✗"
+ }
+ }
+ })
+ require("mason-lspconfig").setup()
+ require("mason-lspconfig").setup({
+ ensure_installed = {
+ -- Latest before switching to Java 18
+ -- "java_language_server@94a684b3931661440a57738fb2ee23d579acc2ab",
+ "bashls",
+ "clangd",
+ "cssls",
+ "html",
+ "jdtls",
+ "lua_ls",
+ "markdown_oxide",
+ "pylsp",
+ "texlab",
+ "vimls",
+ }
+ })
+
+ require("mason-lspconfig").setup_handlers {
+ -- The first entry (without a key) will be the default handler
+ -- and will be called for each installed server that doesn't have
+ -- a dedicated handler.
+ function (server_name) -- default handler (optional)
+ require("lspconfig")[server_name].setup {}
+ end,
+ -- Next, you can provide a dedicated handler for specific servers.
+ -- For example, a handler override for the `rust_analyzer`:
+ -- ["rust_analyzer"] = function ()
+ -- require("rust-tools").setup {}
+ -- end
+ }
+EOF
+ " A gK mapping for hover. The default 'K' is already mapped to :Map
+ nmap <silent> gK :lua vim.lsp.buf.hover()<cr>
+
+ endif
+
let g:fastfold_minlines = 0
let g:detectspelllang_langs = {}
\ 'template_ext': '.html'}]
let g:vimwiki_global_ext = 0
-
- " Java completion
- au FileType java setlocal omnifunc=javacomplete#Complete
- au FileType java JCEnable
-
let g:vimtex_fold_enabled = 1
let g:vimtex_fold_levelmarker = '➜'
let g:vimtex_view_general_viewer = 'okular'
xmap <Leader>de <Plug>VimspectorBalloonEval
au BufNewFile .vimspector.json read ~/.vim/vimspector-config/vimspector.json
-
- " Do not show diagnostic window of vim-clang
- let g:clang_diagsopt = ''
-
- augroup ClangFormatSettings
- au!
- au FileType c,cpp,objc,javascript,java,typescript,protobuf,cuda,vala
- \ vmap <buffer><leader>cf <Plug>(operator-clang-format)
- au FileType c,cpp,objc,javascript,java,typescript,protobuf,cuda,vala
- \ nmap <buffer><leader>cf :ClangFormat<CR>
- augroup END
endfunction
+
+" vim:ft=vim
Plug 'jamessan/vim-gnupg'
-" Conditional loading does not work, see github issue #823
-Plug 'ludovicchabant/vim-gutentags'
-
Plug 'editorconfig/editorconfig-vim'
Plug 'embear/vim-localvimrc'
Plug 'airblade/vim-rooter'
-Plug 'plasticboy/vim-markdown', {'for': 'markdown'}
+Plug 'preservim/vim-markdown', {'for': 'markdown'}
Plug 'lvht/tagbar-markdown', {'for': 'markdown'}
Plug 'habamax/vim-asciidoctor', {'for': 'asciidoc'}
-Plug 'PProvost/vim-markdown-jekyll', {'for': 'markdown'}
-Plug 'tpope/vim-liquid', {'for': ['liquid', 'html', 'xml', 'markdown']}
-
Plug 'tpope/vim-ragtag'
Plug 'Shougo/neosnippet.vim'
au FileType markdown call RagtagInit()
- " Generally disable gutentags, but enable for some filetypes
- let g:gutentags_enabled = 0
- au FileType c,cpp,objc,tex let g:gutentags_enabled = 1
- " Make manually created tags files also root markers
- let g:gutentags_project_root = ['tags']
- let g:gutentags_cache_dir = expand('~/.cache/vim/ctags/')
- " Do not automatically generate on browsing
- let g:gutentags_generate_on_missing = 0
- let g:gutentags_ctags_exclude_wildignore = 1
- let g:gutentags_ctags_exclude = [
- \'node_modules', '_build', 'build*', 'CMakeFiles', '.*cache*', 'venv',
- \'*.md', '*.css', '*.html', '*.json', '*.xml', '*.xmls', '*.ui']
-
" Allow for reflow of bullet paragraphs
let g:vim_markdown_auto_insert_bullets = 0
let g:calendar_monday = 1
endfunction
+
+" vim:ft=vim