"""" PLUGINS CONFIGURATION " ALE configuration " let g:ale_python_auto_poetry = 1 let g:ale_set_balloons = 1 " enable tooltips let g:ale_fixers = { \ '*': ['remove_trailing_lines', 'trim_whitespace'], \ 'bash': ['shfmt'], \ 'sh': ['shfmt'], \ 'json': ['prettier'], \ 'c': ['clang-format'], \ 'cpp': ['clang-format'], \ 'cmake': ['cmakeformat'], \ 'css': ['prettier'], \ 'html': ['prettier'], \ 'kotlin': ['ktlint'], \ 'markdown': ['prettier'], \ 'terraform': ['terraform'], \ 'yaml': ['prettier'], \ 'python': ['ruff_format'], \ 'go': ['gofmt', 'goimports'], \ 'rust': ['rustfmt'], \ 'sql': ['pgformatter'], \ 'java': ['clang-format'], \ 'javascript': ['prettier', 'eslint'], \ 'vue': ['prettier', 'eslint'], \} let g:ale_fixers_aliases = {'vue': ['vue', 'javascript'], 'arduino': 'cpp'} let g:ale_arduino_ccls_executable = 'ccls' let g:ale_arduino_ccls_init_options = {} let g:ale_popup_menu_enabled = 1 let g:ale_python_bandit_options = '-c banditrc' let g:ale_python_pylint_options = '-j0 --disable=W0511' let g:ale_python_mypy_options = '--ignore-missing-imports' " let g:ale_cpp_clang_options = '-std=c++17 -Wall -Wpedantic' " let g:ale_cpp_gcc_options = '-std=c++17 -Wall -Wpedantic' let g:ale_rust_cargo_use_clippy = 1 let g:ale_linters = { \ 'bash': ['bash-language-server', 'bashlint', 'shellcheck', 'shell'], \ 'dockerfile': ['hadolint'], \ 'zsh': ['bashlint', 'shellcheck', 'shell'], \ 'c': ['ccls', 'clangd'], \ 'cpp': ['clangd'], \ 'qml': ['qmllint'], \ 'python': ['pylsp', 'mypy', 'ruff'], \ 'go': ['gopls', 'gobuild'], \ 'rust': ['analyzer', 'cargo'], \ 'yaml.gha': ['actionlint', 'yamllint', 'yaml-language-server'], \ 'yaml.ansible': ['yamllint', 'ansible-language-server', 'ansible-lint', 'yaml-language-server'], \ 'yaml': ['yaml-language-server', 'yamllint'], \ 'javascript': ['yarn lint', 'eslint'], \ 'xml': ['android'], \ 'groovy': ['android'], \ 'java': ['eclipselsp', 'android'], \ 'kotlin': ['android', 'ktlint', 'languageserver'], \ 'vue': ['volar', 'eslint'] \} let g:ale_linter_aliases = {'vue': ['vue', 'javascript'], 'arduino': 'cpp'} " disable gradle signs/loclist as they conflict with ALE (vim-android) let g:gradle_loclist_show = 0 let g:gradle_show_signs = 0 let g:ale_java_eclipselsp_path = '~/git/eclipse.jdt.ls' let g:ale_yaml_yamllint_options = '--config .editorconfig' let g:ale_open_list = 0 let g:ale_keep_list_window_open = 1 let g:ale_lint_on_save = 1 let g:ale_lint_on_enter = 1 let g:ale_lint_on_insert_leave = 1 let g:ale_lint_on_text_changed = 0 let g:ale_lint_delay = 2500 " lint 2.5 seconds after text has changed augroup androiddev " avoid death by gradle autocmd! FileType java,kotlin let g:ale_lint_on_insert_leave = 0 augroup END let g:ale_fix_on_save = 1 let g:ale_cursor_detail=1 let g:ale_detail_to_floating_preview = 1 let g:ale_completion_enabled = 1 " let g:ale_completion_autoimport = 1 let g:ale_lsp_show_message_severity = 'information' let g:ale_lsp_suggestions = 1 let g:ale_rename_tsserver_find_in_comment = 1 let g:ale_sign_priority = 99 let g:ale_sign_error = 'xx' let g:ale_sign_warning = '>>' let g:ale_sign_info = '--' "let g:ale_sign_style_error = "let g:ale_sign_style_warning = highlight link ALEVirtualTextError ALEError highlight link ALEVirtualTextWarning ALEWarning let g:ale_virtualtext_column = "45%" let g:ale_virtualtext_single = 0 " show all errors let g:ale_virtualtext_prefix= "[%linter%] %code: %" let g:ale_exclude_highlights = [ \ 'line too long', \] augroup rust autocmd! autocmd BufRead *.rs let g:ale_set_highlights = 0 augroup END let g:ale_completion_symbols = { \ 'text': '', \ 'method': '', \ 'function': '', \ 'constructor': '', \ 'field': '', \ 'variable': '', \ 'class': '', \ 'interface': '', \ 'module': '', \ 'property': '', \ 'unit': 'unit', \ 'value': 'val', \ 'enum': '', \ 'keyword': 'keyword', \ 'snippet': '', \ 'color': 'color', \ 'file': '', \ 'reference': 'ref', \ 'folder': '', \ 'enum member': '', \ 'constant': '', \ 'struct': '', \ 'event': 'event', \ 'operator': '', \ 'type_parameter': 'type param', \ '': 'v' \ } " Fix some gitgutter stuff let g:gitgutter_enabled = 1 let g:gitgutter_sign_allow_clobber = 0 " do not allow gitgutter to overwrite signs let g:gitgutter_sign_priority = 50 let g:gitgutter_sign_added = '+' let g:gitgutter_sign_modified = '~' let g:gitgutter_sign_modified_removed = 'x' " Airline config " set laststatus=2 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#show_splits = 1 " let g:airline#extensions#tabline#tab_nr_type = 2 let g:airline#extensions#tabline#buffer_idx_mode = 1 nmap 1 AirlineSelectTab1 nmap 2 AirlineSelectTab2 nmap 3 AirlineSelectTab3 nmap 4 AirlineSelectTab4 nmap 5 AirlineSelectTab5 nmap 6 AirlineSelectTab6 nmap 7 AirlineSelectTab7 nmap 8 AirlineSelectTab8 nmap 9 AirlineSelectTab9 nmap 0 AirlineSelectTab0 nmap - AirlineSelectPrevTab nmap + AirlineSelectNextTab let g:airline_theme='gruvbox' if !exists('g:airline_symbols') let g:airline_symbols = {} endif let g:airline_left_sep = '' let g:airline_left_alt_sep = '' let g:airline_right_sep = '' let g:airline_right_alt_sep = '' let g:airline_symbols.branch = '' let g:airline_symbols.readonly = '' let g:airline_symbols.colnr = ':' let g:airline_symbols.linenr = '' let g:airline_symbols.maxlinenr = '' let g:airline_section_y = '' let g:airline#extensions#tagbar#enabled = 1 let g:airline_section_x=' %{tagbar#currenttag("%s", "", "f")}' let g:airline#extensions#tagbar#flags = 's' let g:airline#extensions#tagbar#searchmethod = 'scoped-stl' " only these functions will only be defined when lightline#gradle#... funtions " are defined, which happens when vim-android is loaded if exists('lightline#gradle#running') call airline#parts#define_function( \ 'gradle-running', \ 'lightline#gradle#running' \) call airline#parts#define_function( \ 'gradle-errors', \ 'lightline#gradle#errors' \) call airline#parts#define_function( \ 'gradle-warnings', \ 'lightline#gradle#warnings' \) call airline#parts#define_function( \ 'gradle-project', \ 'lightline#gradle#project' \) let g:airline_section_x= airline#section#create_right([ \ 'filetype', \ 'gradle-running', \ 'gradle-errors', \ 'gradle-warnings' \]) let g:gradle_glyph_gradle = '' let g:gradle_glyph_android = '' let g:gradle_glyph_error = '' let g:gradle_glyph_warning = '' let g:gradle_glyph_building = '' endif " These are the default mappings for vim-multi-cursor let g:multi_cursor_start_word_key = '' let g:multi_cursor_select_all_word_key = '' let g:multi_cursor_start_key = 'g' let g:multi_cursor_select_all_key = 'g' let g:multi_cursor_next_key = '' let g:multi_cursor_prev_key = '' let g:multi_cursor_skip_key = '' let g:multi_cursor_quit_key = '' " indent-guides, toggle with ig let g:indent_guides_enable_on_vim_startup = 0 let g:indent_guides_exclude_filetypes = ['help', 'terminal', 'nerdtree'] let g:indent_guides_start_level = 2 let g:indent_guides_guide_size = 1 "" Gutentags" let g:gutentags_cache_dir = expand('~/.vim/ctags_cache/') let g:gutentags_file_list_command = { \ 'markers': { \ '.git': 'git ls-files', \ '.hg': 'hg files', \ }, \ } let g:gutentags_generate_on_empty_buffer = 1 let g:gutentags_ctags_exclude = ['build', 'dist', '*css', '*json', '*yaml', '*md', '.venv', '*rst'] let g:gutentags_ctags_extra_args = ['--tag-relative=always', ] "" nerdtree let NERDTreeIgnore=['__pycache__'] " ultisnips let g:UltiSnipsExpandTrigger='' let g:UltiSnipsJumpForwardTrigger='' let g:UltiSnipsJumpBackwardTrigger='' let g:UltiSnipsEditSplit='context' "" Fzf let g:fzf_layout = { 'window': { 'width': 1, 'height': 0.9 } } let g:fzf_colors = \ { 'fg': ['fg', 'Normal'], \ 'bg': ['bg', 'Normal'], \ 'hl': ['fg', 'Comment'], \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], \ 'hl+': ['fg', 'Statement'], \ 'info': ['fg', 'PreProc'], \ 'border': ['fg', 'Ignore'], \ 'prompt': ['fg', 'Conditional'], \ 'pointer': ['fg', 'Exception'], \ 'marker': ['fg', 'Keyword'], \ 'spinner': ['fg', 'Label'], \ 'header': ['fg', 'Comment'] } autocmd! FileType fzf autocmd FileType fzf set laststatus=0 noshowmode noruler \| autocmd BufLeave set laststatus=2 showmode ruler let g:goyo_width='85%' let g:goyo_linenr=1 " vim-go " let g:go_doc_balloon = 1 let g:go_doc_keywordprg_enabled=0