mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 a98a6996c2
			
		
	
	a98a6996c2
	
	
	
		
			
			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>
		
	
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " ninja build file syntax.
 | |
| " Language: ninja build file as described at
 | |
| "           http://martine.github.com/ninja/manual.html
 | |
| " Version: 1.4
 | |
| " Last Change: 2014/05/13
 | |
| " Maintainer: Nicolas Weber <nicolasweber@gmx.de>
 | |
| " Version 1.4 of this script is in the upstream vim repository and will be
 | |
| " included in the next vim release. If you change this, please send your change
 | |
| " upstream.
 | |
| 
 | |
| " ninja lexer and parser are at
 | |
| " https://github.com/martine/ninja/blob/master/src/lexer.in.cc
 | |
| " https://github.com/martine/ninja/blob/master/src/manifest_parser.cc
 | |
| 
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| let s:cpo_save = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| syn case match
 | |
| 
 | |
| syn match ninjaComment /#.*/  contains=@Spell
 | |
| 
 | |
| " Toplevel statements are the ones listed here and
 | |
| " toplevel variable assignments (ident '=' value).
 | |
| " lexer.in.cc, ReadToken() and manifest_parser.cc, Parse()
 | |
| syn match ninjaKeyword "^build\>"
 | |
| syn match ninjaKeyword "^rule\>"
 | |
| syn match ninjaKeyword "^pool\>"
 | |
| syn match ninjaKeyword "^default\>"
 | |
| syn match ninjaKeyword "^include\>"
 | |
| syn match ninjaKeyword "^subninja\>"
 | |
| 
 | |
| " Both 'build' and 'rule' begin a variable scope that ends
 | |
| " on the first line without indent. 'rule' allows only a
 | |
| " limited set of magic variables, 'build' allows general
 | |
| " let assignments.
 | |
| " manifest_parser.cc, ParseRule()
 | |
| syn region ninjaRule start="^rule" end="^\ze\S" contains=ALL transparent
 | |
| syn keyword ninjaRuleCommand contained command deps depfile description generator
 | |
|                                      \ pool restat rspfile rspfile_content
 | |
| 
 | |
| syn region ninjaPool start="^pool" end="^\ze\S" contains=ALL transparent
 | |
| syn keyword ninjaPoolCommand contained depth
 | |
| 
 | |
| " Strings are parsed as follows:
 | |
| " lexer.in.cc, ReadEvalString()
 | |
| " simple_varname = [a-zA-Z0-9_-]+;
 | |
| " varname = [a-zA-Z0-9_.-]+;
 | |
| " $$ -> $
 | |
| " $\n -> line continuation
 | |
| " '$ ' -> escaped space
 | |
| " $simple_varname -> variable
 | |
| " ${varname} -> variable
 | |
| 
 | |
| syn match   ninjaDollar "\$\$"
 | |
| syn match   ninjaWrapLineOperator "\$$"
 | |
| syn match   ninjaSimpleVar "\$[a-zA-Z0-9_-]\+"
 | |
| syn match   ninjaVar       "\${[a-zA-Z0-9_.-]\+}"
 | |
| 
 | |
| " operators are:
 | |
| " variable assignment =
 | |
| " rule definition :
 | |
| " implicit dependency |
 | |
| " order-only dependency ||
 | |
| syn match ninjaOperator "\(=\|:\||\|||\)\ze\s"
 | |
| 
 | |
| hi def link ninjaComment Comment
 | |
| hi def link ninjaKeyword Keyword
 | |
| hi def link ninjaRuleCommand Statement
 | |
| hi def link ninjaPoolCommand Statement
 | |
| hi def link ninjaDollar ninjaOperator
 | |
| hi def link ninjaWrapLineOperator ninjaOperator
 | |
| hi def link ninjaOperator Operator
 | |
| hi def link ninjaSimpleVar ninjaVar
 | |
| hi def link ninjaVar Identifier
 | |
| 
 | |
| let b:current_syntax = "ninja"
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 |