Move rarely used functions to autoload
This commit is contained in:
		
							parent
							
								
									e292b937d0
								
							
						
					
					
						commit
						4040dc7508
					
				| @ -10,6 +10,7 @@ function! do#isort() | |||||||
|   edit! |   edit! | ||||||
| endfunction | endfunction | ||||||
| 
 | 
 | ||||||
|  | " Strip white space from right of all lines. | ||||||
| " TODO: Make do#rstrip_lines work on a range | " TODO: Make do#rstrip_lines work on a range | ||||||
| function! do#rstrip_lines() | function! do#rstrip_lines() | ||||||
|   let l:line = line('.') |   let l:line = line('.') | ||||||
| @ -18,3 +19,36 @@ function! do#rstrip_lines() | |||||||
|   nohlsearch |   nohlsearch | ||||||
|   call cursor(l:line, l:column) |   call cursor(l:line, l:column) | ||||||
| endfunction | 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() | command! ISort call do#isort() | ||||||
|  | 
 | ||||||
|  | " Strip white space from right of all lines. | ||||||
| " TODO: Make RStripLines work on a range | " TODO: Make RStripLines work on a range | ||||||
| command! RStripLines call do#rstrip_lines() | 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 | endfunction | ||||||
| command Synstack :call s:Synstack() | 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. | " Invoke terminal command without prompt and then redraw. | ||||||
| command! -nargs=+ Silent execute 'silent <args>' | 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 | " Split line at the cursor | ||||||
| nnoremap [j i<CR><Esc> | nnoremap [j i<CR><Esc> | ||||||
| nnoremap ]j a<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