Move rarely used functions to autoload
This commit is contained in:
		
							parent
							
								
									e292b937d0
								
							
						
					
					
						commit
						4040dc7508
					
				| @ -10,6 +10,7 @@ function! do#isort() | ||||
|   edit! | ||||
| endfunction | ||||
| 
 | ||||
| " Strip white space from right of all lines. | ||||
| " TODO: Make do#rstrip_lines work on a range | ||||
| function! do#rstrip_lines() | ||||
|   let l:line = line('.') | ||||
| @ -18,3 +19,36 @@ function! do#rstrip_lines() | ||||
|   nohlsearch | ||||
|   call cursor(l:line, l:column) | ||||
| endfunction | ||||
| 
 | ||||
| " Set the tab width for the current filetype | ||||
| function! do#set_tab_width(width) | ||||
|   execute 'setlocal tabstop='.a:width | ||||
|   execute 'setlocal shiftwidth='.a:width | ||||
|   execute 'setlocal softtabstop='.a:width | ||||
|   echo 'Tab width is now '.a:width | ||||
| endfunction | ||||
| 
 | ||||
| " Toggle GitHub style bullet checkbox | ||||
| function! do#toggle_checkbox() | ||||
|   " Get current line | ||||
|   let l:line = getline('.') | ||||
|   " Get the ' ' or 'x' character from within the task bullet | ||||
|   let l:pattern = '[-\*+] \[\zs[ x]\ze]' | ||||
|   let l:char = matchstr(l:line, l:pattern) | ||||
|   " Toggle the ' ' or 'x' character | ||||
|   if l:char ==? 'x' | ||||
|     let l:char = ' ' | ||||
|   else | ||||
|     let l:char = 'x' | ||||
|   endif | ||||
|   " Replace the current line with a new one | ||||
|   call setline(line('.'), substitute(l:line, l:pattern, l:char, '')) | ||||
| endfunction | ||||
| 
 | ||||
| " Show highlight groups under the cursor | ||||
| function! do#cursor_highlight_groups() | ||||
|   let l:hi = synIDattr(synID(line('.'),col('.'),1),'name') | ||||
|   let l:trans = synIDattr(synID(line('.'),col('.'),0),'name') | ||||
|   let l:lo = synIDattr(synIDtrans(synID(line('.'),col('.'),1)),'name') | ||||
|   echo 'hi<'.l:hi.'> trans<'.l:trans.'> lo<'.l:lo.'>' | ||||
| endfunction | ||||
|  | ||||
| @ -1,3 +1,15 @@ | ||||
| " Sort Python Imports | ||||
| command! ISort call do#isort() | ||||
| 
 | ||||
| " Strip white space from right of all lines. | ||||
| " TODO: Make RStripLines work on a range | ||||
| command! RStripLines call do#rstrip_lines() | ||||
| 
 | ||||
| " Set tab width | ||||
| command! -nargs=1 TabWidth call do#set_tab_width(<f-args>) | ||||
| 
 | ||||
| " Toggle Checkbox | ||||
| command! ToggleCheckbox call do#toggle_checkbox() | ||||
| 
 | ||||
| " Show highlight groups under the cursor | ||||
| command! CursorHighlightGroups :call do#cursor_highlight_groups() | ||||
|  | ||||
| @ -39,74 +39,5 @@ function! s:Synstack() | ||||
| endfunction | ||||
| command Synstack :call s:Synstack() | ||||
| 
 | ||||
| " Stringify | ||||
| " Make a code block in to a C string literal | ||||
| function! s:Stringify() | ||||
|   " Escape existing escape characters | ||||
|   execute 's/\\/\\\\/ge' | ||||
|   " Escape quotes | ||||
|   execute 's/"/\\"/ge' | ||||
|   " Prepend quote | ||||
|   execute 's/^/"/g' | ||||
|   " Append carriage return, quote | ||||
|   execute 's/$/\\n"/g' | ||||
|   noh | ||||
| endfunction | ||||
| map <silent> <leader>s :call s:Stringify()<CR> | ||||
| " Make a C string literal in to a code block | ||||
| function! s:Destringify() | ||||
|   " Remove final quote and carriage return | ||||
|   execute 's/\\n"\s*$//ge' | ||||
|   " Remove first quote | ||||
|   execute 's:^\(\s*\)":\1:ge' | ||||
|   " Remove quote escapes | ||||
|   execute 's/\\"/"/ge' | ||||
|   " Remove escapes of escapes characters | ||||
|   execute 's/\\\\/\\/ge' | ||||
|   noh | ||||
| endfunction | ||||
| map <silent> <leader>S :call s:Destringify()<CR> | ||||
| 
 | ||||
| " Invoke terminal command without prompt and then redraw. | ||||
| command! -nargs=+ Silent execute 'silent <args>' | redraw! | ||||
| 
 | ||||
| " Set the tab width for the current filetype | ||||
| function! s:TabWidth(width) | ||||
|   execute 'setlocal tabstop='.a:width | ||||
|   execute 'setlocal shiftwidth='.a:width | ||||
|   execute 'setlocal softtabstop='.a:width | ||||
|   echo 'Tab width is now '.a:width | ||||
| endfunction | ||||
| command! -nargs=1 TabWidth :call s:TabWidth(<f-args>) | ||||
| 
 | ||||
| " Toggle GitHub style bullet checkbox | ||||
| function! s:CheckboxToggle() | ||||
|   " Get current line | ||||
|   let l:line = getline('.') | ||||
| 
 | ||||
|   " Get the ' ' or 'x' character from within the task bullet | ||||
|   let l:pattern = '[-\*+] \[\zs[ x]\ze]' | ||||
|   let l:char = matchstr(l:line, l:pattern) | ||||
| 
 | ||||
|   " Toggle the ' ' or 'x' character | ||||
|   if l:char ==? 'x' | ||||
|     let l:char = ' ' | ||||
|   else | ||||
|     let l:char = 'x' | ||||
|   endif | ||||
| 
 | ||||
|   " Replace the current line with a new one | ||||
|   call setline(line('.'), substitute(l:line, l:pattern, l:char, '')) | ||||
| endfunction | ||||
| command! CheckboxToggle :call s:CheckboxToggle() | ||||
| nnoremap <leader><CR> :CheckboxToggle<CR> | ||||
| 
 | ||||
| " Show highlight groups under the cursor | ||||
| function! s:CursorHighlightGroups() | ||||
|   let l:hi = synIDattr(synID(line('.'),col('.'),1),'name') | ||||
|   let l:trans = synIDattr(synID(line('.'),col('.'),0),'name') | ||||
|   let l:lo = synIDattr(synIDtrans(synID(line('.'),col('.'),1)),'name') | ||||
|   echo 'hi<'.l:hi.'> trans<'.l:trans.'> lo<'.l:lo.'>' | ||||
| endfunction | ||||
| command! CursorHighlightGroups :call s:CursorHighlightGroups() | ||||
| nnoremap <leader>hi :CursorHighlightGroups<CR> | ||||
|  | ||||
| @ -85,3 +85,9 @@ noremap K <nop> | ||||
| " Split line at the cursor | ||||
| nnoremap [j i<CR><Esc> | ||||
| nnoremap ]j a<CR><Esc> | ||||
| 
 | ||||
| " Toggle Checkbox | ||||
| nnoremap <leader><CR> :ToggleCheckbox<CR> | ||||
| 
 | ||||
| " Show highlight groups under the cursor | ||||
| nnoremap <leader>hi :CursorHighlightGroups<CR> | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user