Update
This commit is contained in:
		
							parent
							
								
									d07f8f78e1
								
							
						
					
					
						commit
						eadc5b4c75
					
				| @ -35,9 +35,6 @@ endfunction | ||||
| 
 | ||||
| 
 | ||||
| call deoplete#enable() | ||||
| call deoplete#custom#source('LanguageClient', | ||||
| 			\ 'min_pattern_length', | ||||
| 			\ 2) | ||||
| inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>" | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -15,4 +15,4 @@ call deoplete#custom#option('sources', { | ||||
| call deoplete#custom#source('ale', 'rank', 999) | ||||
| call deoplete#custom#source('ale', 'input_pattern', '[^. *\t]\.\w*') | ||||
| 
 | ||||
| autocmd FileType typescript setlocal balloonexpr=tsuquyomi#balloonexpr() | ||||
| " autocmd FileType typescript setlocal balloonexpr=tsuquyomi#balloonexpr() | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| if has('nvim') | ||||
| if has('nvim') && !exists("g:vscode") | ||||
| lua << EOF | ||||
| 	vim.diagnostic.config({ | ||||
| 	  virtual_text = false, | ||||
| @ -8,7 +8,6 @@ lua << EOF | ||||
| 	  severity_sort = false, | ||||
| 	}) | ||||
| 
 | ||||
| vim.cmd('autocmd CursorHold * lua vim.diagnostic.open_float()') | ||||
| vim.o.updatetime = 300 | ||||
| 
 | ||||
| -- Show all diagnostics on current line in floating window | ||||
| @ -29,5 +28,27 @@ vim.o.updatetime = 300 | ||||
| --  { noremap = true, silent = true } | ||||
| --) | ||||
| 
 | ||||
| -- IMPORTANT!: this is only a showcase of how you can set default options! | ||||
| require("telescope").setup { | ||||
|   extensions = { | ||||
|     file_browser = { | ||||
| 	  grouped = true, | ||||
|       theme = "ivy", | ||||
|       mappings = { | ||||
|         ["i"] = { | ||||
|           -- your custom insert mode mappings | ||||
|         }, | ||||
|         ["n"] = { | ||||
|           -- your custom normal mode mappings | ||||
|         }, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
| -- To get telescope-file-browser loaded and working with telescope, | ||||
| -- you need to call load_extension, somewhere after setup function: | ||||
| require("telescope").load_extension "file_browser" | ||||
| 
 | ||||
| EOF | ||||
| endif | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										119
									
								
								autoload/log-autocmds.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								autoload/log-autocmds.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,119 @@ | ||||
| command! LogAutocmds call s:log_autocmds_toggle() | ||||
| 
 | ||||
| function! s:log_autocmds_toggle() | ||||
|   augroup LogAutocmd | ||||
|     autocmd! | ||||
|   augroup END | ||||
| 
 | ||||
|   let l:date = strftime('%F', localtime()) | ||||
|   let s:activate = get(s:, 'activate', 0) ? 0 : 1 | ||||
|   if !s:activate | ||||
|     call s:log('Stopped autocmd log (' . l:date . ')') | ||||
|     return | ||||
|   endif | ||||
| 
 | ||||
|   call s:log('Started autocmd log (' . l:date . ')') | ||||
|   augroup LogAutocmd | ||||
|     for l:au in s:aulist | ||||
|       silent execute 'autocmd' l:au '* call s:log(''' . l:au . ''')' | ||||
|     endfor | ||||
|   augroup END | ||||
| endfunction | ||||
| 
 | ||||
| function! s:log(message) | ||||
|   silent execute '!echo "' | ||||
|         \ . strftime('%T', localtime()) . ' - ' . a:message . '"' | ||||
|         \ '>> /tmp/vim_log_autocommands' | ||||
| endfunction | ||||
| 
 | ||||
| " These are deliberately left out due to side effects | ||||
| " - SourceCmd | ||||
| " - FileAppendCmd | ||||
| " - FileWriteCmd | ||||
| " - BufWriteCmd | ||||
| " - FileReadCmd | ||||
| " - BufReadCmd | ||||
| " - FuncUndefined | ||||
| 
 | ||||
| let s:aulist = [ | ||||
|       \ 'BufNewFile', | ||||
|       \ 'BufReadPre', | ||||
|       \ 'BufRead', | ||||
|       \ 'BufReadPost', | ||||
|       \ 'FileReadPre', | ||||
|       \ 'FileReadPost', | ||||
|       \ 'FilterReadPre', | ||||
|       \ 'FilterReadPost', | ||||
|       \ 'StdinReadPre', | ||||
|       \ 'StdinReadPost', | ||||
|       \ 'BufWrite', | ||||
|       \ 'BufWritePre', | ||||
|       \ 'BufWritePost', | ||||
|       \ 'FileWritePre', | ||||
|       \ 'FileWritePost', | ||||
|       \ 'FileAppendPre', | ||||
|       \ 'FileAppendPost', | ||||
|       \ 'FilterWritePre', | ||||
|       \ 'FilterWritePost', | ||||
|       \ 'BufAdd', | ||||
|       \ 'BufCreate', | ||||
|       \ 'BufDelete', | ||||
|       \ 'BufWipeout', | ||||
|       \ 'BufFilePre', | ||||
|       \ 'BufFilePost', | ||||
|       \ 'BufEnter', | ||||
|       \ 'BufLeave', | ||||
|       \ 'BufWinEnter', | ||||
|       \ 'BufWinLeave', | ||||
|       \ 'BufUnload', | ||||
|       \ 'BufHidden', | ||||
|       \ 'BufNew', | ||||
|       \ 'SwapExists', | ||||
|       \ 'FileType', | ||||
|       \ 'Syntax', | ||||
|       \ 'EncodingChanged', | ||||
|       \ 'TermChanged', | ||||
|       \ 'VimEnter', | ||||
|       \ 'GUIEnter', | ||||
|       \ 'GUIFailed', | ||||
|       \ 'TermResponse', | ||||
|       \ 'QuitPre', | ||||
|       \ 'VimLeavePre', | ||||
|       \ 'VimLeave', | ||||
|       \ 'FileChangedShell', | ||||
|       \ 'FileChangedShellPost', | ||||
|       \ 'FileChangedRO', | ||||
|       \ 'ShellCmdPost', | ||||
|       \ 'ShellFilterPost', | ||||
|       \ 'CmdUndefined', | ||||
|       \ 'SpellFileMissing', | ||||
|       \ 'SourcePre', | ||||
|       \ 'VimResized', | ||||
|       \ 'FocusGained', | ||||
|       \ 'FocusLost', | ||||
|       \ 'CursorHold', | ||||
|       \ 'CursorHoldI', | ||||
|       \ 'CursorMoved', | ||||
|       \ 'CursorMovedI', | ||||
|       \ 'WinEnter', | ||||
|       \ 'WinLeave', | ||||
|       \ 'TabEnter', | ||||
|       \ 'TabLeave', | ||||
|       \ 'CmdwinEnter', | ||||
|       \ 'CmdwinLeave', | ||||
|       \ 'InsertEnter', | ||||
|       \ 'InsertChange', | ||||
|       \ 'InsertLeave', | ||||
|       \ 'InsertCharPre', | ||||
|       \ 'TextChanged', | ||||
|       \ 'TextChangedI', | ||||
|       \ 'ColorScheme', | ||||
|       \ 'RemoteReply', | ||||
|       \ 'QuickFixCmdPre', | ||||
|       \ 'QuickFixCmdPost', | ||||
|       \ 'SessionLoadPost', | ||||
|       \ 'MenuPopup', | ||||
|       \ 'CompleteDone', | ||||
|       \ 'User', | ||||
|       \ ] | ||||
| 
 | ||||
							
								
								
									
										551
									
								
								autoload/submode.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										551
									
								
								autoload/submode.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,551 @@ | ||||
| " submode - Create your own submodes | ||||
| " Version: 0.3.1 | ||||
| " Copyright (C) 2008-2014 kana <http://whileimautomaton.net/> | ||||
| " License: MIT license  {{{ | ||||
| "     Permission is hereby granted, free of charge, to any person obtaining | ||||
| "     a copy of this software and associated documentation files (the | ||||
| "     "Software"), to deal in the Software without restriction, including | ||||
| "     without limitation the rights to use, copy, modify, merge, publish, | ||||
| "     distribute, sublicense, and/or sell copies of the Software, and to | ||||
| "     permit persons to whom the Software is furnished to do so, subject to | ||||
| "     the following conditions: | ||||
| " | ||||
| "     The above copyright notice and this permission notice shall be included | ||||
| "     in all copies or substantial portions of the Software. | ||||
| " | ||||
| "     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||||
| "     OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
| "     MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||||
| "     IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | ||||
| "     CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||||
| "     TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||||
| "     SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
| " }}} | ||||
| " Concept  "{{{1 | ||||
| " | ||||
| " In the following pseudo code, :MAP means :map or :noremap, and it depends on | ||||
| " user's specification. | ||||
| " | ||||
| " map {key-to-enter} | ||||
| " \   <Plug>(submode-before-entering:{submode}:with:{key-to-enter}) | ||||
| "    \<Plug>(submode-before-entering:{submode}) | ||||
| "    \<Plug>(submode-enter:{submode}) | ||||
| " | ||||
| " MAP <Plug>(submode-before-entering:{submode}:with:{key-to-enter}) | ||||
| " \   {anything} | ||||
| " noremap <Plug>(submode-before-entering:{submode}) | ||||
| " \       {tweaking 'timeout' and others} | ||||
| " map <Plug>(submode-enter:{submode}) | ||||
| " \   <Plug>(submode-before-action:{submode}) | ||||
| "    \<Plug>(submode-prefix:{submode}) | ||||
| " | ||||
| " map <Plug>(submode-prefix:{submode}) | ||||
| " \   <Plug>(submode-leave:{submode}) | ||||
| " map <Plug>(submode-prefix:{submode}){the first N keys in {lhs}} | ||||
| " \   <Plug>(submode-leave:{submode}) | ||||
| " map <Plug>(submode-prefix:{submode}){lhs} | ||||
| " \   <Plug>(submode-rhs:{submode}:for:{lhs}) | ||||
| "    \<Plug>(submode-enter:{submode}) | ||||
| " MAP <Plug>(submode-rhs:{submode}:for:{lhs}) | ||||
| " \   {rhs} | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| " Variables  "{{{1 | ||||
| 
 | ||||
| if !exists('g:submode_always_show_submode') | ||||
|   let g:submode_always_show_submode = 0 | ||||
| endif | ||||
| 
 | ||||
| if !exists('g:submode_keep_leaving_key') | ||||
|   let g:submode_keep_leaving_key = 0 | ||||
| endif | ||||
| 
 | ||||
| if !exists('g:submode_keyseqs_to_leave') | ||||
|   let g:submode_keyseqs_to_leave = ['<Esc>'] | ||||
| endif | ||||
| 
 | ||||
| if !exists('g:submode_timeout') | ||||
|   let g:submode_timeout = &timeout | ||||
| endif | ||||
| 
 | ||||
| if !exists('g:submode_timeoutlen') | ||||
|   let g:submode_timeoutlen = &timeoutlen | ||||
| endif | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| "" See s:set_up_options() and s:restore_options(). | ||||
| " | ||||
| " let s:original_showcmd = &showcmd | ||||
| " let s:original_showmode = &showmode | ||||
| " let s:original_timeout = &timeout | ||||
| " let s:original_timeoutlen = &timeoutlen | ||||
| " let s:original_ttimeout = &ttimeout | ||||
| " let s:original_ttimeoutlen = &ttimeoutlen | ||||
| 
 | ||||
| if !exists('s:options_overridden_p') | ||||
|   let s:options_overridden_p = 0 | ||||
| endif | ||||
| 
 | ||||
| " A padding string to wipe out internal key mappings in 'showcmd' area.  (gh-3) | ||||
| " | ||||
| " We use no-break spaces (U+00A0) or dots, depending of the current 'encoding'. | ||||
| " Because | ||||
| " | ||||
| " * A normal space (U+0020) is rendered as "<20>" since Vim 7.4.116. | ||||
| " * U+00A0 is rendered as an invisible glyph if 'encoding' is set to one of | ||||
| "   Unicode encodings.  Otherwise "| " is rendered instead. | ||||
| let s:STEALTH_TYPEAHEAD = | ||||
| \ &g:encoding =~# '^u' | ||||
| \ ? repeat("\<Char-0xa0>", 5) | ||||
| \ : repeat('.', 10) | ||||
| 
 | ||||
| let s:current_submode = '' | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| " Interface  "{{{1 | ||||
| " :SubmodeRestoreOptions  "{{{2 | ||||
| 
 | ||||
| command! -bar -nargs=0 SubmodeRestoreOptions  call submode#restore_options() | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! submode#current()  "{{{2 | ||||
|   return s:current_submode | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! submode#enter_with(submode, modes, options, lhs, ...)  "{{{2 | ||||
|   let rhs = 0 < a:0 ? a:1 : '<Nop>' | ||||
|   for mode in s:each_char(a:modes) | ||||
|     call s:define_entering_mapping(a:submode, mode, a:options, a:lhs, rhs) | ||||
|   endfor | ||||
|   return | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! submode#leave_with(submode, modes, options, lhs)  "{{{2 | ||||
|   let options = substitute(a:modes, 'e', '', 'g')  " <Nop> is not expression. | ||||
|   return submode#map(a:submode, a:modes, options . 'x', a:lhs, '<Nop>') | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! submode#map(submode, modes, options, lhs, rhs)  "{{{2 | ||||
|   for mode in s:each_char(a:modes) | ||||
|     call s:define_submode_mapping(a:submode, mode, a:options, a:lhs, a:rhs) | ||||
|   endfor | ||||
|   return | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! submode#restore_options()  "{{{2 | ||||
|   call s:restore_options() | ||||
|   return | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! submode#unmap(submode, modes, options, lhs)  "{{{2 | ||||
|   for mode in s:each_char(a:modes) | ||||
|     call s:undefine_submode_mapping(a:submode, mode, a:options, a:lhs) | ||||
|   endfor | ||||
|   return | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| " Core  "{{{1 | ||||
| function! s:define_entering_mapping(submode, mode, options, lhs, rhs)  "{{{2 | ||||
|   execute s:map_command(a:mode, 'r') | ||||
|   \       s:map_options(s:filter_flags(a:options, 'bu')) | ||||
|   \       (a:lhs) | ||||
|   \       (s:named_key_before_entering_with(a:submode, a:lhs) | ||||
|   \        . s:named_key_before_entering(a:submode) | ||||
|   \        . s:named_key_enter(a:submode)) | ||||
| 
 | ||||
|   if !s:mapping_exists_p(s:named_key_enter(a:submode), a:mode) | ||||
|     " When the given submode is not defined yet - define the default key | ||||
|     " mappings to leave the submode. | ||||
|     for keyseq in g:submode_keyseqs_to_leave | ||||
|       call submode#leave_with(a:submode, a:mode, a:options, keyseq) | ||||
|     endfor | ||||
|   endif | ||||
| 
 | ||||
|   execute s:map_command(a:mode, s:filter_flags(a:options, 'r')) | ||||
|   \       s:map_options(s:filter_flags(a:options, 'besu')) | ||||
|   \       s:named_key_before_entering_with(a:submode, a:lhs) | ||||
|   \       a:rhs | ||||
|   execute s:map_command(a:mode, '') | ||||
|   \       s:map_options('e') | ||||
|   \       s:named_key_before_entering(a:submode) | ||||
|   \       printf('<SID>on_entering_submode(%s)', string(a:submode)) | ||||
|   execute s:map_command(a:mode, 'r') | ||||
|   \       s:map_options('') | ||||
|   \       s:named_key_enter(a:submode) | ||||
|   \       (s:named_key_before_action(a:submode) | ||||
|   \        . s:named_key_prefix(a:submode)) | ||||
| 
 | ||||
|   execute s:map_command(a:mode, '') | ||||
|   \       s:map_options('e') | ||||
|   \       s:named_key_before_action(a:submode) | ||||
|   \       printf('<SID>on_executing_action(%s)', string(a:submode)) | ||||
|   execute s:map_command(a:mode, 'r') | ||||
|   \       s:map_options('') | ||||
|   \       s:named_key_prefix(a:submode) | ||||
|   \       s:named_key_leave(a:submode) | ||||
|   " NB: :map-<expr> cannot be used for s:on_leaving_submode(), | ||||
|   "     because it uses some commands not allowed in :map-<expr>. | ||||
|   execute s:map_command(a:mode, '') | ||||
|   \       s:map_options('s') | ||||
|   \       s:named_key_leave(a:submode) | ||||
|   \       printf('%s<SID>on_leaving_submode(%s)<Return>', | ||||
|   \              a:mode =~# '[ic]' ? '<C-r>=' : '@=', | ||||
|   \              string(a:submode)) | ||||
| 
 | ||||
|   return | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:define_submode_mapping(submode, mode, options, lhs, rhs)  "{{{2 | ||||
|   execute s:map_command(a:mode, 'r') | ||||
|   \       s:map_options(s:filter_flags(a:options, 'bu')) | ||||
|   \       (s:named_key_prefix(a:submode) . a:lhs) | ||||
|   \       (s:named_key_rhs(a:submode, a:lhs) | ||||
|   \        . (s:has_flag_p(a:options, 'x') | ||||
|   \           ? s:named_key_leave(a:submode) | ||||
|   \           : s:named_key_enter(a:submode))) | ||||
|   execute s:map_command(a:mode, s:filter_flags(a:options, 'r')) | ||||
|   \       s:map_options(s:filter_flags(a:options, 'besu')) | ||||
|   \       s:named_key_rhs(a:submode, a:lhs) | ||||
|   \       a:rhs | ||||
| 
 | ||||
|   let keys = s:split_keys(a:lhs) | ||||
|   for n in range(1, len(keys) - 1) | ||||
|     let first_n_keys = join(keys[:-(n+1)], '') | ||||
|     silent! execute s:map_command(a:mode, 'r') | ||||
|     \               s:map_options(s:filter_flags(a:options, 'bu')) | ||||
|     \               (s:named_key_prefix(a:submode) . first_n_keys) | ||||
|     \               s:named_key_leave(a:submode) | ||||
|   endfor | ||||
| 
 | ||||
|   return | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:undefine_submode_mapping(submode, mode, options, lhs)  "{{{2 | ||||
|   execute s:map_command(a:mode, 'u') | ||||
|   \       s:map_options(s:filter_flags(a:options, 'b')) | ||||
|   \       s:named_key_rhs(a:submode, a:lhs) | ||||
| 
 | ||||
|   let keys = s:split_keys(a:lhs) | ||||
|   for n in range(len(keys), 1, -1) | ||||
|     let first_n_keys = join(keys[:n-1], '') | ||||
|     execute s:map_command(a:mode, 'u') | ||||
|     \       s:map_options(s:filter_flags(a:options, 'b')) | ||||
|     \       s:named_key_prefix(a:submode) . first_n_keys | ||||
|     if s:longer_mapping_exists_p(s:named_key_prefix(a:submode), first_n_keys) | ||||
|       execute s:map_command(a:mode, 'r') | ||||
|       \       s:map_options(s:filter_flags(a:options, 'b')) | ||||
|       \       s:named_key_prefix(a:submode) . first_n_keys | ||||
|       \       s:named_key_leave(a:submode) | ||||
|       break | ||||
|     endif | ||||
|   endfor | ||||
| 
 | ||||
|   return | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| " Misc.  "{{{1 | ||||
| function! s:each_char(s)  "{{{2 | ||||
|   return split(a:s, '.\zs') | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:filter_flags(s, cs)  "{{{2 | ||||
|   return join(map(s:each_char(a:cs), 's:has_flag_p(a:s, v:val) ? v:val : ""'), | ||||
|   \           '') | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:has_flag_p(s, c)  "{{{2 | ||||
|   return 0 <= stridx(a:s, a:c) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:insert_mode_p(mode)  "{{{2 | ||||
|   return a:mode =~# '^[iR]' | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:longer_mapping_exists_p(submode, lhs)  "{{{2 | ||||
|   " FIXME: Implement the proper calculation. | ||||
|   "        Note that mapcheck() can't be used for this purpose because it may | ||||
|   "        act as s:shorter_mapping_exists_p() if there is such a mapping. | ||||
|   return !0 | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:map_command(mode, flags)  "{{{2 | ||||
|   if s:has_flag_p(a:flags, 'u') | ||||
|     return a:mode . 'unmap' | ||||
|   else | ||||
|     return a:mode . (s:has_flag_p(a:flags, 'r') ? 'map' : 'noremap') | ||||
|   endif | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:map_options(options)  "{{{2 | ||||
|   let _ = { | ||||
|   \   'b': '<buffer>', | ||||
|   \   'e': '<expr>', | ||||
|   \   's': '<silent>', | ||||
|   \   'u': '<unique>', | ||||
|   \ } | ||||
|   return join(map(s:each_char(a:options), 'get(_, v:val, "")')) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:mapping_exists_p(keyseq, mode)  "{{{2 | ||||
|   return maparg(a:keyseq, a:mode) != '' | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:may_override_showmode_p(mode)  "{{{2 | ||||
|   " Normal mode / Visual mode (& its variants) / Insert mode (& its variants) | ||||
|   return a:mode =~# "^[nvV\<C-v>sS\<C-s>]" || s:insert_mode_p(a:mode) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:named_key_before_action(submode)  "{{{2 | ||||
|   return printf('<Plug>(submode-before-action:%s)', a:submode) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:named_key_before_entering(submode)  "{{{2 | ||||
|   return printf('<Plug>(submode-before-entering:%s)', a:submode) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:named_key_before_entering_with(submode, lhs)  "{{{2 | ||||
|   return printf('<Plug>(submode-before-entering:%s:with:%s)', a:submode, a:lhs) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:named_key_enter(submode)  "{{{2 | ||||
|   return printf('<Plug>(submode-enter:%s)', a:submode) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:named_key_leave(submode)  "{{{2 | ||||
|   return printf('<Plug>(submode-leave:%s)', a:submode) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:named_key_prefix(submode)  "{{{2 | ||||
|   return printf('<Plug>(submode-prefix:%s)%s', a:submode, s:STEALTH_TYPEAHEAD) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:named_key_rhs(submode, lhs)  "{{{2 | ||||
|   return printf('<Plug>(submode-rhs:%s:for:%s)', a:submode, a:lhs) | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:on_entering_submode(submode)  "{{{2 | ||||
|   call s:set_up_options(a:submode) | ||||
|   return '' | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:on_executing_action(submode)  "{{{2 | ||||
|   if (s:original_showmode || g:submode_always_show_submode) | ||||
|   \  && s:may_override_showmode_p(mode()) | ||||
|     echohl ModeMsg | ||||
|     echo '-- Submode:' a:submode '--' | ||||
|     echohl None | ||||
|   endif | ||||
|   return '' | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:on_leaving_submode(submode)  "{{{2 | ||||
|   if (s:original_showmode || g:submode_always_show_submode) | ||||
|   \  && s:may_override_showmode_p(mode()) | ||||
|     if s:insert_mode_p(mode()) | ||||
|       let cursor_position = getpos('.') | ||||
|     endif | ||||
| 
 | ||||
|       " BUGS: :redraw! doesn't redraw 'showmode'. | ||||
|     execute "normal! \<C-l>" | ||||
| 
 | ||||
|     if s:insert_mode_p(mode()) | ||||
|       call setpos('.', cursor_position) | ||||
|     endif | ||||
|   endif | ||||
|   if !g:submode_keep_leaving_key && getchar(1) isnot 0 | ||||
|     " To completely ignore unbound key sequences in a submode, | ||||
|     " here we have to fetch and drop the last key in the key sequence. | ||||
|     call getchar() | ||||
|   endif | ||||
|   call s:restore_options() | ||||
|   return '' | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:remove_flag(s, c)  "{{{2 | ||||
|   " Assumption: a:c is not a meta character. | ||||
|   return substitute(a:s, a:c, '', 'g') | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:restore_options()  "{{{2 | ||||
|   if !s:options_overridden_p | ||||
|     return | ||||
|   endif | ||||
|   let s:options_overridden_p = 0 | ||||
| 
 | ||||
|   let &showcmd = s:original_showcmd | ||||
|   let &showmode = s:original_showmode | ||||
|   let &timeout = s:original_timeout | ||||
|   let &timeoutlen = s:original_timeoutlen | ||||
|   let &ttimeout = s:original_ttimeout | ||||
|   let &ttimeoutlen = s:original_ttimeoutlen | ||||
| 
 | ||||
|   let s:current_submode = '' | ||||
| 
 | ||||
|   return | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:set_up_options(submode)  "{{{2 | ||||
|   if s:options_overridden_p | ||||
|     return | ||||
|   endif | ||||
|   let s:options_overridden_p = !0 | ||||
| 
 | ||||
|   let s:original_showcmd = &showcmd | ||||
|   let s:original_showmode = &showmode | ||||
|   let s:original_timeout = &timeout | ||||
|   let s:original_timeoutlen = &timeoutlen | ||||
|   let s:original_ttimeout = &ttimeout | ||||
|   let s:original_ttimeoutlen = &ttimeoutlen | ||||
| 
 | ||||
|   " NB: 'showcmd' must be enabled to render the cursor properly. | ||||
|   " If 'showcmd' is disabled and the current submode message is rendered, the | ||||
|   " cursor is rendered at the end of the message, not the actual position in | ||||
|   " the current window.  (gh-9) | ||||
|   set showcmd | ||||
|   set noshowmode | ||||
|   let &timeout = g:submode_timeout | ||||
|   let &ttimeout = s:original_timeout ? !0 : s:original_ttimeout | ||||
|   let &timeoutlen = g:submode_timeoutlen | ||||
|   let &ttimeoutlen = s:original_ttimeoutlen < 0 | ||||
|   \                  ? s:original_timeoutlen | ||||
|   \                  : s:original_ttimeoutlen | ||||
| 
 | ||||
|   let s:current_submode = a:submode | ||||
| 
 | ||||
|   return | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| function! s:split_keys(keyseq)  "{{{2 | ||||
|   " Assumption: Special keys such as <C-u> are escaped with < and >, i.e., | ||||
|   "             a:keyseq doesn't directly contain any escape sequences. | ||||
|   return split(a:keyseq, '\(<[^<>]\+>\|.\)\zs') | ||||
| endfunction | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| " __END__  "{{{1 | ||||
| " vim: foldmethod=marker | ||||
| 
 | ||||
| 
 | ||||
| @ -295,8 +295,7 @@ inoremap <C-A> <C-O>:call Select()<CR> | ||||
| 
 | ||||
| nnoremap <leader>cd :cd %:p:h<CR>:pwd<CR> | ||||
| 
 | ||||
| nnoremap <Leader>cc :cclose<CR> | ||||
| nnoremap <Leader>co :copen<CR> | ||||
| nnoremap <Leader>cc :call ToggleQuickFix()<CR> | ||||
| 
 | ||||
| function! ToggleQuickFix() | ||||
|     if empty(filter(getwininfo(), 'v:val.quickfix')) | ||||
| @ -325,6 +324,7 @@ nnoremap <silent> <F4> :call ToggleLocList()<CR> | ||||
| 
 | ||||
| " NERDTree | ||||
| if !exists('g:vscode') | ||||
| " noremap <C-j> :Telescope file_browser<CR> | ||||
| noremap <C-j> :NERDTreeToggle<CR> | ||||
| " noremap <C-B> :TagbarToggle<CR> | ||||
| inoremap <C-B> <C-O>:TagbarToggle<CR> | ||||
| @ -349,7 +349,7 @@ if !exists('g:vscode') | ||||
| 	if has('nvim') | ||||
| 		nnoremap <leader>ag <cmd>lua require('telescope.builtin').live_grep({ default_text = vim.fn.expand("<cword>") })<cr> | ||||
| 		nnoremap <silent> <leader>tg <cmd>lua require('telescope.builtin').tags({ default_text = vim.fn.expand("<cword>") })<cr> | ||||
| 		nmap <C-f> :call ComIfGit('lua require("telescope.builtin").git_files()', 'lua require("telescope.builtin").find_files()')<CR> | ||||
| 		nmap <silent> <C-f> :call ComIfGit('lua require("telescope.builtin").git_files()', 'lua require("telescope.builtin").find_files()')<CR> | ||||
| 		nmap <F1> <cmd>lua require('telescope.builtin').tags()<cr> | ||||
| 		nmap <C-b> <cmd>lua require('telescope.builtin').buffers()<cr> | ||||
| 		nmap <C-d> <cmd>lua require('telescope.builtin').diagnostics()<cr> | ||||
| @ -359,7 +359,7 @@ if !exists('g:vscode') | ||||
| 		nnoremap <leader>ag :Clap grep ++query=<cword><CR> | ||||
| 		nnoremap <leader>dg :Clap dumb_jump ++query=<cword><CR> | ||||
| 		" nnoremap <silent> <leader>tg :Clap proj_tags ++query=<cword><CR> | ||||
| 		nmap <C-f> :call ComIfGit('Clap gfiles', 'Clap files')<CR> | ||||
| 		nmap <silent> <C-f> :call ComIfGit('Clap gfiles', 'Clap files')<CR> | ||||
| 		nmap <F1> :Clap tags<CR> | ||||
| 		nmap <F2> :Clap proj_tags<CR> | ||||
| 		nmap <C-b> :Clap buffers<CR> | ||||
| @ -415,8 +415,8 @@ else | ||||
| 		nnoremap <leader>la :lua vim.lsp.buf.code_action()<CR> | ||||
| 		nnoremap <leader>rn :lua vim.lsp.buf.rename()<CR> | ||||
| 
 | ||||
| 		nnoremap <leader>ln <Plug>(lcn-diagnostics-next) | ||||
| 		nnoremap <leader>lp <Plug>(lcn-diagnostics-prev) | ||||
| 		nnoremap <leader>ci :lua vim.lsp.buf.incoming_calls()<CR> | ||||
| 		nnoremap <leader>co :lua vim.lsp.buf.outgoing_calls()<CR> | ||||
| 
 | ||||
| 		" Vim Script | ||||
| 		nnoremap <leader>xx <cmd>TroubleToggle<cr> | ||||
|  | ||||
							
								
								
									
										306
									
								
								plugins.toml
									
									
									
									
									
								
							
							
						
						
									
										306
									
								
								plugins.toml
									
									
									
									
									
								
							| @ -1,4 +1,93 @@ | ||||
| [[plugins]] | ||||
| repo = 'dstein64/nvim-scrollview' | ||||
| hook_add = ''' | ||||
| lua require('scrollview').setup({ excluded_filetypes = {'nerdtree'}, current_only = true, winblend = 75, base = 'right', column = 1 }) | ||||
| ''' | ||||
| on_if = 'has("nvim") && !exists("g:vscode")' | ||||
| lazy = false | ||||
| [[plugins]] | ||||
| repo = 'romgrk/fzy-lua-native' | ||||
| [[plugins]] | ||||
| repo = 'gelguy/wilder.nvim' | ||||
| on_event = 'CmdlineEnter' | ||||
| hook_post_source = ''' | ||||
| call wilder#setup({ | ||||
|       \ 'modes': [':', '/', '?'], | ||||
| 	  \ 'enable_cmdline_enter': 0, | ||||
|       \ }) | ||||
| 
 | ||||
| call wilder#set_option('noselect', 0) | ||||
| 
 | ||||
| call wilder#set_option('pipeline', [ | ||||
|       \   wilder#branch( | ||||
|       \     wilder#python_file_finder_pipeline({ | ||||
|       \       'file_command': {_, arg -> stridx(arg, '.') != -1 ? ['fd', '-tf', '-H'] : ['fd', '-tf']}, | ||||
|       \       'dir_command': ['fd', '-td'], | ||||
|       \       'filters': ['cpsm_filter'], | ||||
|       \     }), | ||||
|       \     wilder#substitute_pipeline({ | ||||
|       \       'pipeline': wilder#python_search_pipeline({ | ||||
|       \         'skip_cmdtype_check': 1, | ||||
|       \         'pattern': wilder#python_fuzzy_pattern({ | ||||
|       \           'start_at_boundary': 0, | ||||
|       \         }), | ||||
|       \       }), | ||||
|       \     }), | ||||
|       \     wilder#cmdline_pipeline({ | ||||
|       \       'fuzzy': 2, | ||||
|       \       'fuzzy_filter': has('nvim') ? wilder#lua_fzy_filter() : wilder#vim_fuzzy_filter(), | ||||
|       \     }), | ||||
|       \     [ | ||||
|       \       wilder#check({_, x -> empty(x)}), | ||||
|       \       wilder#history(), | ||||
|       \     ], | ||||
|       \     wilder#python_search_pipeline({ | ||||
|       \       'pattern': wilder#python_fuzzy_pattern({ | ||||
|       \         'start_at_boundary': 0, | ||||
|       \       }), | ||||
|       \     }), | ||||
|       \   ), | ||||
|       \ ]) | ||||
| 
 | ||||
| let s:highlighters = [ | ||||
|       \ wilder#pcre2_highlighter(), | ||||
|       \ has('nvim') ? wilder#lua_fzy_highlighter() : wilder#cpsm_highlighter(), | ||||
|       \ ] | ||||
| 
 | ||||
| let s:popupmenu_renderer = wilder#popupmenu_renderer(wilder#popupmenu_border_theme({ | ||||
|       \ 'border': 'rounded', | ||||
|       \ 'empty_message': wilder#popupmenu_empty_message_with_spinner(), | ||||
|       \ 'highlighter': s:highlighters, | ||||
|       \ 'left': [ | ||||
|       \   ' ', | ||||
|       \   wilder#popupmenu_devicons(), | ||||
|       \   wilder#popupmenu_buffer_flags({ | ||||
|       \     'flags': ' a + ', | ||||
|       \     'icons': {'+': '', 'a': '', 'h': ''}, | ||||
|       \   }), | ||||
|       \ ], | ||||
|       \ 'right': [ | ||||
|       \   ' ', | ||||
|       \   wilder#popupmenu_scrollbar(), | ||||
|       \ ], | ||||
|       \ })) | ||||
| 
 | ||||
| let s:wildmenu_renderer = wilder#wildmenu_renderer({ | ||||
|       \ 'highlighter': s:highlighters, | ||||
|       \ 'separator': ' · ', | ||||
|       \ 'left': [' ', wilder#wildmenu_spinner(), ' '], | ||||
|       \ 'right': [' ', wilder#wildmenu_index()], | ||||
|       \ }) | ||||
| 
 | ||||
| call wilder#set_option('renderer', wilder#renderer_mux({ | ||||
|       \ ':': s:popupmenu_renderer, | ||||
|       \ '/': s:wildmenu_renderer, | ||||
|       \ 'substitute': s:wildmenu_renderer, | ||||
|       \ })) | ||||
| ''' | ||||
| #[[plugins]] | ||||
| #repo = 'dstein64/vim-startuptime' | ||||
| [[plugins]] | ||||
| repo = 'purescript-contrib/purescript-vim' | ||||
| [[plugins]] | ||||
| repo = 'PProvost/vim-ps1' | ||||
| @ -85,7 +174,6 @@ hook_add = ''' | ||||
| on_if = '!exists("g:vscode")' | ||||
| [[plugins]] | ||||
| repo = 'Xuyuanp/nerdtree-git-plugin' | ||||
| on_event = 'NERDTreeToggle' | ||||
| on_if = '!exists("g:vscode")' | ||||
| [[plugins]] | ||||
| repo = 'xolox/vim-easytags' | ||||
| @ -190,50 +278,50 @@ repo = 'mkitt/tabline.vim' | ||||
| repo = 'kshenoy/vim-signature' | ||||
| 
 | ||||
| # finder | ||||
| [[plugins]] | ||||
| repo = 'liuchengxu/vim-clap' | ||||
| build = 'make' | ||||
| hook_add = ''' | ||||
| 	autocmd Filetype clap_input inoremap <silent> <buffer> <kPageDown> <C-R>=clap#navigation#scroll('down')<CR> | ||||
| 	autocmd Filetype clap_input inoremap <silent> <buffer> <kPageUp> <C-R>=clap#navigation#scroll('up')<CR> | ||||
| 	autocmd Filetype clap_input nnoremap <silent> <buffer> <kPageDown> <C-R>=clap#navigation#scroll('down')<CR> | ||||
| 	autocmd Filetype clap_input nnoremap <silent> <buffer> <kPageUp> <C-R>=clap#navigation#scroll('up')<CR> | ||||
| 
 | ||||
|   let g:clap_popup_move_manager = { | ||||
|       \ "\<kPageUp>": "\<PageUp>", | ||||
|       \ "\<kPageDown>": "\<PageDown>", | ||||
|       \ } | ||||
| 
 | ||||
| 	let g:clap_layout = {'relative': 'editor', 'width': '95%', 'height': '33%', 'row': '33%', 'col': '5%'} | ||||
| 	let g:clap_use_pure_python = 1 | ||||
| 
 | ||||
| 	function! MultiClap(com, ...) abort | ||||
| 	  let opts = map(copy(a:000), "printf('++query=%s', v:val)") | ||||
| 	  execute 'Clap ' a:com join(opts, ' ') | ||||
| 	endfunction | ||||
| 
 | ||||
| 	command! -nargs=* Rag call MultiClap('grep', <f-args>) | ||||
| 	command! -nargs=* Dag call MultiClap('dumb_jump', <f-args>) | ||||
| 
 | ||||
| 	let g:clap_provider_generated_tags = { | ||||
| 	\ 'source': {-> Tags__source()}, | ||||
| 	\ 'sink': {line -> Tags__sink(line)}, | ||||
| 	\} | ||||
| 
 | ||||
| 	function! Tags__source () | ||||
| 	  return flatten(map(tagfiles(), {_, file -> filter(readfile(file), 'stridx(v:val, "!_TAG") != 0')})) | ||||
| 	endfunc | ||||
| 
 | ||||
| 	function! Tags__sink (line) | ||||
| 	  " Let vim handle the tag | ||||
| 	  execute 'tag' split(a:line, '\t')[0] | ||||
| 	endfunc | ||||
| 
 | ||||
| 	cabbrev C Clap | ||||
| 	cabbrev c Clap | ||||
| 	cabbrev cp Clap proj_tags | ||||
| ''' | ||||
| on_if = '!has("nvim") && !exists("g:vscode")' | ||||
| #[[plugins]] | ||||
| #repo = 'liuchengxu/vim-clap' | ||||
| #build = 'make' | ||||
| #hook_add = ''' | ||||
| #	autocmd Filetype clap_input inoremap <silent> <buffer> <kPageDown> <C-R>=clap#navigation#scroll('down')<CR> | ||||
| #	autocmd Filetype clap_input inoremap <silent> <buffer> <kPageUp> <C-R>=clap#navigation#scroll('up')<CR> | ||||
| #	autocmd Filetype clap_input nnoremap <silent> <buffer> <kPageDown> <C-R>=clap#navigation#scroll('down')<CR> | ||||
| #	autocmd Filetype clap_input nnoremap <silent> <buffer> <kPageUp> <C-R>=clap#navigation#scroll('up')<CR> | ||||
| # | ||||
| #  let g:clap_popup_move_manager = { | ||||
| #	  \ "\<kPageUp>": "\<PageUp>", | ||||
| #	  \ "\<kPageDown>": "\<PageDown>", | ||||
| #	  \ } | ||||
| # | ||||
| #	let g:clap_layout = {'relative': 'editor', 'width': '95%', 'height': '33%', 'row': '33%', 'col': '5%'} | ||||
| #	let g:clap_use_pure_python = 1 | ||||
| # | ||||
| #	function! MultiClap(com, ...) abort | ||||
| #	  let opts = map(copy(a:000), "printf('++query=%s', v:val)") | ||||
| #	  execute 'Clap ' a:com join(opts, ' ') | ||||
| #	endfunction | ||||
| # | ||||
| #	command! -nargs=* Rag call MultiClap('grep', <f-args>) | ||||
| #	command! -nargs=* Dag call MultiClap('dumb_jump', <f-args>) | ||||
| # | ||||
| #	let g:clap_provider_generated_tags = { | ||||
| #	\ 'source': {-> Tags__source()}, | ||||
| #	\ 'sink': {line -> Tags__sink(line)}, | ||||
| #	\} | ||||
| # | ||||
| #	function! Tags__source () | ||||
| #	  return flatten(map(tagfiles(), {_, file -> filter(readfile(file), 'stridx(v:val, "!_TAG") != 0')})) | ||||
| #	endfunc | ||||
| # | ||||
| #	function! Tags__sink (line) | ||||
| #	  " Let vim handle the tag | ||||
| #	  execute 'tag' split(a:line, '\t')[0] | ||||
| #	endfunc | ||||
| # | ||||
| #	cabbrev C Clap | ||||
| #	cabbrev c Clap | ||||
| #	cabbrev cp Clap proj_tags | ||||
| #''' | ||||
| #on_if = '!has("nvim") && !exists("g:vscode")' | ||||
| 
 | ||||
| # scm | ||||
| [[plugins]] | ||||
| @ -245,7 +333,6 @@ on_if = '!exists("g:vscode")' | ||||
| [[plugins]] | ||||
| repo = 'tommcdo/vim-fubitive' | ||||
| [[plugins]] | ||||
| on_if = '!exists("g:vscode")' | ||||
| repo = 'airblade/vim-gitgutter' | ||||
| hook_add = ''' | ||||
| 	" https://github.com/airblade/vim-gitgutter/issues/696 | ||||
| @ -289,10 +376,15 @@ repo = 'LucHermitte/local_vimrc' | ||||
| [[plugins]] | ||||
| repo = 'Shougo/deoplete.nvim' | ||||
| hook_add = ''' | ||||
| 	let g:deoplete#enable_at_startup = 0 | ||||
|     let g:deoplete#enable_at_startup = 1 | ||||
| 	autocmd FileType TelescopePrompt call deoplete#custom#buffer_option('auto_complete', v:false) | ||||
| ''' | ||||
| on_if = '!exists("g:vscode")' | ||||
| lazy = false | ||||
| [[plugins]] | ||||
| repo = 'Shougo/deoplete-lsp' | ||||
| on_if = '!exists("g:vscode")' | ||||
| lazy = false | ||||
| [[plugins]] | ||||
| repo = 'roxma/nvim-yarp' | ||||
| on_if = '!has("nvim")' | ||||
| @ -382,6 +474,7 @@ hook_add = ''' | ||||
| 		\ 'typescript': ['typescript-language-server', '--stdio'] | ||||
| 		\ } | ||||
| ''' | ||||
| on_if = '!has("nvim")' | ||||
| #[[plugins]] | ||||
| #repo = 'prabirshrestha/vim-lsp' | ||||
| #hook_add = ''' | ||||
| @ -593,11 +686,11 @@ name = 'fontzoom' | ||||
| repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' | ||||
| rtp = 'fontzoom' | ||||
| on_if = '!has("nvim")' | ||||
| [[plugins]] | ||||
| name = 'fuzzyfinder' | ||||
| repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' | ||||
| rtp = 'fuzzyfinder' | ||||
| on_if = '!exists("g:vscode")' | ||||
| #[[plugins]] | ||||
| #name = 'fuzzyfinder' | ||||
| #repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' | ||||
| #rtp = 'fuzzyfinder' | ||||
| #on_if = '!exists("g:vscode")' | ||||
| [[plugins]] | ||||
| name = 'log' | ||||
| repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' | ||||
| @ -617,12 +710,86 @@ on_if = '!exists("g:vscode")' | ||||
| 
 | ||||
| 
 | ||||
| [[plugins]] | ||||
| repo = 'neovim/nvim-lspconfig' | ||||
| repo = 'williamboman/nvim-lsp-installer' | ||||
| hook_add = ''' | ||||
| lua require('lspconfig').hls.setup{} | ||||
| lua << EOF | ||||
| require("nvim-lsp-installer").setup({ | ||||
|     automatic_installation = false, | ||||
|     ui = { | ||||
|         icons = { | ||||
|             server_installed = "✓", | ||||
|             server_pending = "➜", | ||||
|             server_uninstalled = "✗" | ||||
|         } | ||||
|     } | ||||
| }) | ||||
| EOF | ||||
| ''' | ||||
| on_if = 'has("nvim") && !exists("g:vscode")' | ||||
| lazy = false | ||||
| lazy = true | ||||
| depends = 'nvim-lspconfig' | ||||
| [[plugins]] | ||||
| repo = 'neovim/nvim-lspconfig' | ||||
| hook_add = ''' | ||||
| " https://github.com/nvim-lua/diagnostic-nvim/issues/29#issuecomment-819344193 | ||||
| " https://github.com/neovim/neovim/issues/12389 | ||||
| 
 | ||||
| function! Diagnostic_open() | ||||
|   if len(filter(nvim_tabpage_list_wins(0), {k,v->nvim_win_get_config(v).relative!=""})) <= 1 | ||||
| 	lua vim.diagnostic.open_float({focusable = false}) | ||||
|   endif | ||||
| endfunction | ||||
| 
 | ||||
| lua << EOF | ||||
| 
 | ||||
| local on_attach = function(client, bufnr) | ||||
|   vim.cmd('autocmd CursorHold * call Diagnostic_open()') | ||||
| end | ||||
| require('lspconfig').hls.setup{ | ||||
|   cmd = { vim.fs.normalize('~/.ghcup/bin/haskell-language-server-wrapper'), '--lsp', '+RTS', '--nonmoving-gc', '-RTS' }, | ||||
|   on_attach = on_attach, | ||||
|   settings = { | ||||
| 	  haskell = { | ||||
| 		formattingProvider = "brittany", | ||||
| 		plugin = { | ||||
|           ["ghcide-hover-and-symbols"]            = { globalOn = true  }, | ||||
|           ["ghcide-code-actions-imports-exports"] = { globalOn = true  }, | ||||
|           ["ghcide-code-actions-type-signatures"] = { globalOn = false }, | ||||
|           ["ghcide-code-actions-bindings"]        = { globalOn = false }, | ||||
|           ["ghcide-code-actions-fill-holes"]      = { globalOn = false }, | ||||
|           ["ghcide-completions"]                  = { globalOn = true  }, | ||||
|           ["ghcide-type-lenses"]                  = { globalOn = false }, | ||||
|           pragmas                                 = { globalOn = false }, | ||||
|           tactics                                 = { globalOn = false }, | ||||
|           rename                                  = { globalOn = false }, | ||||
|           retrie                                  = { globalOn = false }, | ||||
|           callHierarchy                           = { globalOn = true  }, | ||||
|           class                                   = { globalOn = false }, | ||||
|           haddockComments                         = { globalOn = true  }, | ||||
|           eval                                    = { globalOn = false }, | ||||
|           importLens                              = { globalOn = false }, | ||||
|           qualifyImportNames                      = { globalOn = true  }, | ||||
|           refineImports                           = { globalOn = true  }, | ||||
|           moduleName                              = { globalOn = false }, | ||||
|           hlint                                   = { globalOn = true  }, | ||||
|           splice                                  = { globalOn = false }, | ||||
|           alternateNumberFormat                   = { globalOn = false }, | ||||
|           selectionRange                          = { globalOn = false }, | ||||
|           changeTypeSignature                     = { globalOn = false } | ||||
| 		} | ||||
| 	  } | ||||
|   } | ||||
| } | ||||
| require('lspconfig').tsserver.setup{ on_attach = on_attach } | ||||
| require('lspconfig').bashls.setup{ on_attach = on_attach } | ||||
| require('lspconfig').jsonls.setup{ on_attach = on_attach } | ||||
| require('lspconfig').vimls.setup{ on_attach = on_attach } | ||||
| require('lspconfig').dockerls.setup{ on_attach = on_attach } | ||||
| require('lspconfig').powershell_es.setup{ on_attach = on_attach, bundle_path = 'c:/w/PowerShellEditorServices', shell = 'pwsh' } | ||||
| EOF | ||||
| ''' | ||||
| on_if = 'has("nvim") && !exists("g:vscode")' | ||||
| lazy = true | ||||
| 
 | ||||
| [[plugins]] | ||||
| repo = 'kyazdani42/nvim-web-devicons' | ||||
| @ -646,7 +813,36 @@ EOF | ||||
| lazy = false | ||||
| on_if = 'has("nvim") && !exists("g:vscode")' | ||||
| 
 | ||||
| [[plugins]] | ||||
| repo = 'nvim-telescope/telescope-file-browser.nvim' | ||||
| lazy = false | ||||
| on_if = 'has("nvim") && !exists("g:vscode")' | ||||
| [[plugins]] | ||||
| repo = 'nvim-telescope/telescope.nvim' | ||||
| lazy = false | ||||
| on_if = 'has("nvim") && !exists("g:vscode")' | ||||
| hook_add = ''' | ||||
| 	command! -nargs=* Rag :lua require('telescope.builtin').live_grep({ default_text = vim.fn.expand(<f-args>) }) | ||||
| ''' | ||||
| 
 | ||||
| [[plugins]] | ||||
| repo = 'ldelossa/litee.nvim' | ||||
| lazy = false | ||||
| hook_add = ''' | ||||
| lua << EOF | ||||
|   require("litee.lib").setup({}) | ||||
| EOF | ||||
| ''' | ||||
| on_if = 'has("nvim") && !exists("g:vscode")' | ||||
| 
 | ||||
| [[plugins]] | ||||
| repo = 'hasufell/litee-calltree.nvim' | ||||
| lazy = false | ||||
| hook_add = ''' | ||||
| lua << EOF | ||||
|   require("litee.calltree").setup({ | ||||
|   	map_resize_keys = false | ||||
|   }) | ||||
| EOF | ||||
| ''' | ||||
| on_if = 'has("nvim") && !exists("g:vscode")' | ||||
|  | ||||
							
								
								
									
										6
									
								
								vimrc
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								vimrc
									
									
									
									
									
								
							| @ -4,6 +4,8 @@ | ||||
| set shortmess+=A | ||||
| 
 | ||||
| let g:pymode_python = 'python3' | ||||
| let g:python_host_prog = '/usr/bin/python2' | ||||
| let g:python3_host_prog = '/usr/bin/python3' | ||||
| 
 | ||||
| " plugin stuff | ||||
| filetype plugin on | ||||
| @ -28,6 +30,7 @@ endif | ||||
| set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim | ||||
| 
 | ||||
| let s:toml = $HOME . '/.vim/plugins.toml' | ||||
| let g:dein#lazy_rplugins = v:false | ||||
| " Required: | ||||
| if dein#load_state($HOME . '/.cache/dein') | ||||
|   call dein#begin($HOME . '/.cache/dein', [$HOME . '/.vim/vimrc', $HOME . '/.vim/plugins.toml']) | ||||
| @ -67,6 +70,7 @@ call CmdAlias('Nf', 'Neoformat') | ||||
| call CmdAlias('NF', 'Neoformat') | ||||
| call CmdAlias('nf', 'Neoformat') | ||||
| call CmdAlias('LS', 'LanguageClientStart') | ||||
| call CmdAlias('LspLog', 'lua vim.cmd("e"..vim.lsp.get_log_path())<CR>') | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -278,5 +282,7 @@ endfunction | ||||
| 
 | ||||
| 
 | ||||
| set title | ||||
| autocmd BufEnter * set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:h\")})%)%(\ %a%) | ||||
| 
 | ||||
| 
 | ||||
| " vim:foldmethod=marker:foldlevel=0 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user