From 70a1687c7487bbe7397d1db71e04f4cb2380fc27 Mon Sep 17 00:00:00 2001 From: Oxbian Date: Thu, 29 Jun 2023 23:07:21 +0200 Subject: Updating lsp settings & documentation --- .vim/after/ftplugin/markdown.vim | 1 + .vim/keymaps.vim | 136 ++++++++++++++++++++++++++++++++------- .vim/options.vim | 90 +++----------------------- .vim/plugins.vim | 49 +++++++++----- .vim/spell/en.utf-8.add | 11 ++++ .vim/spell/en.utf-8.add.spl | Bin 0 -> 211 bytes 6 files changed, 167 insertions(+), 120 deletions(-) create mode 100644 .vim/after/ftplugin/markdown.vim create mode 100644 .vim/spell/en.utf-8.add create mode 100644 .vim/spell/en.utf-8.add.spl (limited to '.vim') diff --git a/.vim/after/ftplugin/markdown.vim b/.vim/after/ftplugin/markdown.vim new file mode 100644 index 0000000..bcda2dd --- /dev/null +++ b/.vim/after/ftplugin/markdown.vim @@ -0,0 +1 @@ +setlocal spell diff --git a/.vim/keymaps.vim b/.vim/keymaps.vim index 993ef87..eef6409 100644 --- a/.vim/keymaps.vim +++ b/.vim/keymaps.vim @@ -2,46 +2,136 @@ " Keymaps """"""""""""""""""""""""""""" +"""""""""""""""""""" " Window movement +"""""""""""""""""""" + +" Go to the bottom window noremap j + +" Go to the top window noremap k + +" Go to the right window noremap l + +" Go to the left window noremap h +"""""""""""""""""""""""" " Remove highlighting -nnoremap h :nohlsearch +"""""""""""""""""""""""" + +nnoremap hl :nohlsearch " Save file nnoremap :w! +"""""""""""""""""""""""""" +" Buffer +""""""""""""""""""""""""" + +" Close the current buffer +map bd :Bclose:tabclosegT + +" Close all the buffers +map ba :bufdo bd + +" Go to the next buffer +map l :bnext + +" Go to the previous buffer +map h :bprevious + +"""""""""""""""""""""""""""" +" Tabs +""""""""""""""""""""""""""" + +" Open a new tab +map tn :tabnew + +" Close all others tab +map to :tabonly + +" Close current tab page +map tc :tabclose + +" Move tabs after another +map tm :tabmove + +" Go to the next tab +map t :tabnext + +" Let 'tl' toggle between this and the last accessed tab +let g:lasttab = 1 +nmap tl :exe "tabn ".g:lasttab +au TabLeave * let g:lasttab = tabpagenr() + +" Opens a new tab with the current buffer's path +" Super useful when editing files in the same directory +map te :tabedit =escape(expand("%:p:h"), " ")/ + +" Switch CWD to the directory of the open buffer +map cd :cd %:p:h:pwd + +" Specify the behavior when switching between buffers +try + set switchbuf=useopen,usetab,newtab + set stal=2 +catch +endtry + +" Return to last edit position when opening files (You want this!) +au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif + +"""""""""""""""""""""""" " NerdTree +""""""""""""""""""""""" + +" Toggle nerdtree nnoremap :NERDTreeToggle +"""""""""""""""""""" " GitGutter +"""""""""""""""""""" let g:gitgutter_enabled=1 " Enable by default gitgutter -nnoremap d :GitGutterToggle + +" Enable / Disable GitGutter +nnoremap d :GitGutterToggle + +" Stage Hunk in Git nnoremap hs :GitGutterStageHunk + +" Undo Hunk nnoremap hu :GitGutterUndoHunk + +" Preview Hunk nnoremap hp :GitGutterPreviewHunk -" Vsnip -" Expand -imap vsnip#expandable() ? '(vsnip-expand)' : '' -smap vsnip#expandable() ? '(vsnip-expand)' : '' - -" Expand or jump -imap vsnip#available(1) ? '(vsnip-expand-or-jump)' : '' -smap vsnip#available(1) ? '(vsnip-expand-or-jump)' : '' - -" Jump forward or backward -imap vsnip#jumpable(1) ? '(vsnip-jump-next)' : '' -smap vsnip#jumpable(1) ? '(vsnip-jump-next)' : '' -imap vsnip#jumpable(-1) ? '(vsnip-jump-prev)' : '' -smap vsnip#jumpable(-1) ? '(vsnip-jump-prev)' : '' - -" Select or cut text to use as $TM_SELECTED_TEXT in the next snippet. -" See https://github.com/hrsh7th/vim-vsnip/pull/50 -nmap s (vsnip-select-text) -xmap s (vsnip-select-text) -nmap S (vsnip-cut-text) -xmap S (vsnip-cut-text) +" Always show the status line +set laststatus=2 + +""""""""""""""""""""" +" Spell +""""""""""""""""""""" + +" Toggle and untoggle spell checking +map ss :setlocal spell! + +" Next word to spellcheck +map sn ]s + +" Previous word to spellcheck +map sp [s + +" Add word into the spellcheck dictionnary +map sa zg + +" show the list of alternatives for the word +map s? z= + +""""""""""""""""""" +" LSP +""""""""""""""""""" +inoremap pumvisible() ? "\" : "\" +inoremap pumvisible() ? "\" : "\" diff --git a/.vim/options.vim b/.vim/options.vim index 29f9f2c..431bfc7 100644 --- a/.vim/options.vim +++ b/.vim/options.vim @@ -9,9 +9,10 @@ set hlsearch " Highlight all match search pattern " Graphics options syntax on " Show syntax color -set background=dark -colorscheme onedark +set background=dark " Set vim style as dark +colorscheme onedark " Set colorscheme as onedark set number " Show line number +set relativenumber " Show relative line number set cursorline " Select the current line set showmatch " Show matching brackets when overred set laststatus =2 " Fix for tabline @@ -38,19 +39,20 @@ set autoread " Automatically read extern changes on the file " System if has('unnamedplus') " ALlow OS & vim clipboard sync - set clipboard = "unnamedplus" + set clipboard = unnamedplus endif set undofile " Save undo history set history =500 " Max line vim remember set updatetime=500 " Delay before vim write swap file, lower better for gitgutter " Autocomplete -set completeopt = "menuone,noselect" " Show a pop up for command completion +set completeopt=menu,menuone,popup,noselect,noinsert " Show a pop up for command completion set wildmenu " Turn on wildmenu " Avoid garbled characters in Chinese language windows OS -let $LANG='en' -set langmenu=en +let $LANG='en' " Setting lang as en +set langmenu=en " Setting menu lang as en +" This delete all the defined menu source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim @@ -71,23 +73,9 @@ set whichwrap+=<,>,h,l " Don't redraw while executing macros (good performance config) set lazyredraw -" For regular expressions turn magic on -set magic - " How many tenths of a second to blink when matching brackets set mat=2 -" No annoying sound on errors -set noerrorbells -set novisualbell -set t_vb= -set tm=500 - -" Properly disable sound on errors on MacVim -if has("gui_macvim") - autocmd GUIEnter * set vb t_vb= -endif - " Add a bit extra margin to the left set foldcolumn=1 @@ -97,69 +85,7 @@ set encoding=utf8 " Use Unix as the standard file type set ffs=unix,dos,mac -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Files, backups and undo -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Turn backup off, since most stuff is in SVN, git etc. anyway... set nobackup set nowb set noswapfile - -" Close the current buffer -map bd :Bclose:tabclosegT - -" Close all the buffers -map ba :bufdo bd - -map l :bnext -map h :bprevious - -" Useful mappings for managing tabs -map tn :tabnew -map to :tabonly -map tc :tabclose -map tm :tabmove -map t :tabnext - -" Let 'tl' toggle between this and the last accessed tab -let g:lasttab = 1 -nmap tl :exe "tabn ".g:lasttab -au TabLeave * let g:lasttab = tabpagenr() - - -" Opens a new tab with the current buffer's path -" Super useful when editing files in the same directory -map te :tabedit =escape(expand("%:p:h"), " ")/ - -" Switch CWD to the directory of the open buffer -map cd :cd %:p:h:pwd - -" Specify the behavior when switching between buffers -try - set switchbuf=useopen,usetab,newtab - set stal=2 -catch -endtry - -" Return to last edit position when opening files (You want this!) -au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif - - -"""""""""""""""""""""""""""""" -" => Status line -"""""""""""""""""""""""""""""" -" Always show the status line -set laststatus=2 - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" => Spell checking -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Pressing ,ss will toggle and untoggle spell checking -map ss :setlocal spell! - -" Shortcuts using -map sn ]s -map sp [s -map sa zg -map s? z= - diff --git a/.vim/plugins.vim b/.vim/plugins.vim index d881f6a..e7e9f6e 100644 --- a/.vim/plugins.vim +++ b/.vim/plugins.vim @@ -19,17 +19,16 @@ Plug 'joshdick/onedark.vim' " Onedark themes for vim Plug 'vim-airline/vim-airline' " Vim statusline Plug 'preservim/nerdtree' " Filetree in vim Plug 'ryanoasis/vim-devicons' " Icons for vim +Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " Syntax in nerdtree for files extension " Git integration -Plug 'tpope/vim-fugitive' " Git commands & informations Plug 'airblade/vim-gitgutter' " Git diff " Autocompletion, linter, syntax -Plug 'dense-analysis/ale' " Swiss-knife for all this - -" Snippets -Plug 'hrsh7th/vim-vsnip' -Plug 'rafamadriz/friendly-snippets' +Plug 'prabirshrestha/vim-lsp' +Plug 'mattn/vim-lsp-settings' +Plug 'prabirshrestha/asyncomplete.vim' +Plug 'prabirshrestha/asyncomplete-lsp.vim' call plug#end() @@ -47,12 +46,12 @@ endif let g:airline_symbols.colnr = ' ㏇:' let g:airline_symbols.colnr = ' β„…:' let g:airline_symbols.crypt = 'πŸ”’' -let g:airline_symbols.linenr = '☰' +let g:airline_symbols.linenr = ' ☰' let g:airline_symbols.linenr = ' ␊:' let g:airline_symbols.linenr = ' ␀:' -let g:airline_symbols.linenr = 'ΒΆ' +let g:airline_symbols.linenr = ' ΒΆ' let g:airline_symbols.maxlinenr = '' -let g:airline_symbols.maxlinenr = '㏑' +let g:airline_symbols.maxlinenr = ' ㏑' let g:airline_symbols.branch = 'βŽ‡' let g:airline_symbols.paste = 'ρ' let g:airline_symbols.paste = 'Þ' @@ -60,15 +59,34 @@ let g:airline_symbols.paste = 'βˆ₯' let g:airline_symbols.spell = 'Ꞩ' let g:airline_symbols.notexists = 'Ι†' let g:airline_symbols.notexists = 'βˆ„' -let g:airline_symbols.whitespace = 'Ξ' -let g:airline#extensions#ale#enabled = 1 " Allow ALE to use status line +let g:airline_symbols.whitespace = ' Ξ' " ALE +" ALE linter let g:ale_linters = { \ 'javascript': ['eslint'], -\ 'python': ['flake8'], +\ 'python': ['flake8', 'pylint', 'pydocstyle', 'bandit', 'mypy'] \ } +let g:ale_lint_on_save = 1 +let g:ale_lint_on_text_changed = 0 +let g:ale_open_list = 1 + +" ALE fixer +let g:ale_fixers = { +\ '*': ['remove_trailing_lines', 'trim_whitespace'], +\ 'python': ['black', 'isort'] +\} +let g:ale_fix_on_save = 1 + +let g:ale_echo_msg_error_str = 'E' +let g:ale_echo_msg_warning_str = 'W' +let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' + +let g:ale_set_loclist = 0 +let g:ale_set_signs = 1 +let g:ale_set_highlights = 1 + let g:ale_completion_enabled = 1 let g:ale_completion_symbols = { \ 'text': 'ξ˜’', @@ -101,14 +119,15 @@ let g:ale_completion_symbols = { " NerdTree let NERDTreeShowHidden=1 " Show hidden files +let NERDTreeQuitOnOpen = 1 " Close a nerdtree after opening the file + " Close the tab if NERDTree is the only window remaining in it. autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif + " If another buffer tries to replace NERDTree, put it in the other window, and bring back NERDTree. autocmd BufEnter * if bufname('#') =~ 'NERD_tree_\d\+' && bufname('%') !~ 'NERD_tree_\d\+' && winnr('$') > 1 | \ let buf=bufnr() | buffer# | execute "normal! \w" | execute 'buffer'.buf | endif + " If more than one window and previous buffer was NERDTree, go back to it. autocmd BufEnter * if bufname('#') =~# "^NERD_tree_" && winnr('$') > 1 | b# | endif let g:plug_window = 'noautocmd vertical topleft new' " Stop crash if vimplug command called on the nerdtree window - -" VIM snip -let g:vsnip_filetypes = {} diff --git a/.vim/spell/en.utf-8.add b/.vim/spell/en.utf-8.add new file mode 100644 index 0000000..283920b --- /dev/null +++ b/.vim/spell/en.utf-8.add @@ -0,0 +1,11 @@ +linters +nerdtree +GitGutter +keybinds +onedark +LSP +vscode +autocompleter +linter +neovim +untoggle diff --git a/.vim/spell/en.utf-8.add.spl b/.vim/spell/en.utf-8.add.spl new file mode 100644 index 0000000..29528b3 Binary files /dev/null and b/.vim/spell/en.utf-8.add.spl differ -- cgit v1.2.3