mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7
Excluding:
  Amiga icons (*.info, icons/)
  doc/hangulin.txt
  tutor/
  spell/
  lang/ (only used for menu translations)
  macros/maze/, macros/hanoi/, macros/life/, macros/urm/
      These were used to test vi compatibility.
  termcap
      "Demonstration of a termcap file (for the Amiga and Archimedes)"
Helped-by: Rich Wareham <rjw57@cam.ac.uk>
Helped-by: John <john.schmidt.h@gmail.com>
Helped-by: Yann <yann@yann-salaun.com>
Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com>
Helped-by: drasill <github@tof2k.com>
Helped-by: Tae Sandoval Murgan <taecilla@gmail.com>
Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim indent file
 | 
						|
" Language:     tf (TinyFugue)
 | 
						|
" Maintainer:   Christian J. Robinson <heptite@gmail.com>
 | 
						|
" URL:          http://christianrobinson.name/vim/indent/tf.vim
 | 
						|
" Last Change:  2002 May 29
 | 
						|
 | 
						|
" Only load this indent file when no other was loaded.
 | 
						|
if exists("b:did_indent")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
let b:did_indent = 1
 | 
						|
 | 
						|
setlocal indentexpr=GetTFIndent()
 | 
						|
setlocal indentkeys-=0{,0} indentkeys-=0# indentkeys-=:
 | 
						|
setlocal indentkeys+==/endif,=/then,=/else,=/done,0;
 | 
						|
 | 
						|
" Only define the function once:
 | 
						|
if exists("*GetTFIndent")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
function GetTFIndent()
 | 
						|
	" Find a non-blank line above the current line:
 | 
						|
	let lnum = prevnonblank(v:lnum - 1)
 | 
						|
 | 
						|
	" No indent for the start of the file:
 | 
						|
	if lnum == 0
 | 
						|
		return 0
 | 
						|
	endif
 | 
						|
 | 
						|
	let ind = indent(lnum)
 | 
						|
	let line = getline(lnum)
 | 
						|
 | 
						|
	" No indentation if the previous line didn't end with "\":
 | 
						|
	" (Could be annoying, but it lets you know if you made a mistake.)
 | 
						|
	if line !~ '\\$'
 | 
						|
		return 0
 | 
						|
	endif
 | 
						|
 | 
						|
	if line =~ '\(/def.*\\\|/for.*\(%;\s*\)\@\<!\\\)$'
 | 
						|
		let ind = ind + &sw
 | 
						|
	elseif line =~ '\(/if\|/else\|/then\)'
 | 
						|
		if line !~ '/endif'
 | 
						|
			let ind = ind + &sw
 | 
						|
		endif
 | 
						|
	elseif line =~ '/while'
 | 
						|
		if line !~ '/done'
 | 
						|
			let ind = ind + &sw
 | 
						|
		endif
 | 
						|
	endif
 | 
						|
 | 
						|
	let line = getline(v:lnum)
 | 
						|
 | 
						|
	if line =~ '\(/else\|/endif\|/then\)'
 | 
						|
		if line !~ '/if'
 | 
						|
			let ind = ind - &sw
 | 
						|
		endif
 | 
						|
	elseif line =~ '/done'
 | 
						|
		if line !~ '/while'
 | 
						|
			let ind = ind - &sw
 | 
						|
		endif
 | 
						|
	endif
 | 
						|
 | 
						|
	" Comments at the beginning of a line:
 | 
						|
	if line =~ '^\s*;'
 | 
						|
		let ind = 0
 | 
						|
	endif
 | 
						|
 | 
						|
 | 
						|
	return ind
 | 
						|
 | 
						|
endfunction
 |