mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			35 lines
		
	
	
		
			796 B
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			796 B
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim indent file | ||
|  | " Language: ssh config file | ||
|  | " Maintainer: JasonKim <git@jasonk.me> | ||
|  | " Last Change: 2020 May 16 | ||
|  | 
 | ||
|  | if exists("b:did_indent") | ||
|  |   finish | ||
|  | endif | ||
|  | let b:did_indent = 1 | ||
|  | 
 | ||
|  | setlocal autoindent | ||
|  | setlocal indentexpr=GetSshconfigIndent(v:lnum) | ||
|  | setlocal indentkeys=o,O,*<Return>,0=~host\ ,0=~match\ ,0#,!^F | ||
|  | 
 | ||
|  | let b:undo_indent = "setlocal autoindent< indentexpr< indentkeys<" | ||
|  | 
 | ||
|  | if exists("*GetSshconfigIndent") | ||
|  |   finish | ||
|  | endif | ||
|  | 
 | ||
|  | function GetSshconfigIndent(lnum) | ||
|  |   let sw = shiftwidth() | ||
|  |   let prev_lnum = prevnonblank(a:lnum - 1) | ||
|  |   let curr_lnum = a:lnum | ||
|  |   let prev_line = getline(prev_lnum) | ||
|  |   let curr_line = getline(curr_lnum) | ||
|  |   if curr_line =~? '^\s*\(host\|match\)\s' | ||
|  |     return 0 | ||
|  |   elseif prev_line =~? '^\s*\(host\|match\)\s' | ||
|  |     return sw | ||
|  |   else | ||
|  |     return indent(prev_lnum) | ||
|  |   endif | ||
|  | endfunction |