mirror of
				https://github.com/vim/vim.git
				synced 2025-10-28 09:27:14 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			163 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	Meson
 | |
| " License:	VIM License
 | |
| " Maintainer:	Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
 | |
| "		Liam Beguin <liambeguin@gmail.com>
 | |
| " Last Change:	2023 May 27
 | |
| " Credits:	Zvezdan Petkovic <zpetkovic@acm.org>
 | |
| "		Neil Schemenauer <nas@meson.ca>
 | |
| "		Dmitry Vasiliev
 | |
| "
 | |
| "		This version is copied and edited from python.vim
 | |
| "		It's very basic, and doesn't do many things I'd like it to
 | |
| "		For instance, it should show errors for syntax that is valid in
 | |
| "		Python but not in Meson.
 | |
| "
 | |
| " Optional highlighting can be controlled using these variables.
 | |
| "
 | |
| "   let meson_space_error_highlight = 1
 | |
| "
 | |
| 
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| " We need nocompatible mode in order to continue lines with backslashes.
 | |
| " Original setting will be restored.
 | |
| let s:cpo_save = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| " http://mesonbuild.com/Syntax.html
 | |
| syn keyword mesonConditional	elif else if endif
 | |
| syn keyword mesonRepeat		foreach endforeach
 | |
| syn keyword mesonOperator	and not or in
 | |
| syn keyword mesonStatement	continue break
 | |
| 
 | |
| syn match   mesonComment	"#.*$" contains=mesonTodo,@Spell
 | |
| syn keyword mesonTodo		FIXME NOTE NOTES TODO XXX contained
 | |
| 
 | |
| " Strings can either be single quoted or triple counted across multiple lines,
 | |
| " but always with a '
 | |
| syn region  mesonString
 | |
|       \ start="\z('\)" end="\z1" skip="\\\\\|\\\z1"
 | |
|       \ contains=mesonEscape,@Spell
 | |
| syn region  mesonString
 | |
|       \ start="\z('''\)" end="\z1" keepend
 | |
|       \ contains=mesonEscape,mesonSpaceError,@Spell
 | |
| 
 | |
| syn match   mesonEscape	"\\[abfnrtv'\\]" contained
 | |
| syn match   mesonEscape	"\\\o\{1,3}" contained
 | |
| syn match   mesonEscape	"\\x\x\{2}" contained
 | |
| syn match   mesonEscape	"\%(\\u\x\{4}\|\\U\x\{8}\)" contained
 | |
| " Meson allows case-insensitive Unicode IDs: http://www.unicode.org/charts/
 | |
| syn match   mesonEscape	"\\N{\a\+\%(\s\a\+\)*}" contained
 | |
| syn match   mesonEscape	"\\$"
 | |
| 
 | |
| " Meson only supports integer numbers
 | |
| " http://mesonbuild.com/Syntax.html#numbers
 | |
| syn match   mesonNumber	"\<\d\+\>"
 | |
| syn match   mesonNumber	"\<0x\x\+\>"
 | |
| syn match   mesonNumber	"\<0o\o\+\>"
 | |
| 
 | |
| " booleans
 | |
| syn keyword mesonBoolean	false true
 | |
| 
 | |
| " Built-in functions
 | |
| syn keyword mesonBuiltin
 | |
|   \ add_global_arguments
 | |
|   \ add_global_link_arguments
 | |
|   \ add_languages
 | |
|   \ add_project_arguments
 | |
|   \ add_project_dependencies
 | |
|   \ add_project_link_arguments
 | |
|   \ add_test_setup
 | |
|   \ alias_target
 | |
|   \ assert
 | |
|   \ benchmark
 | |
|   \ both_libraries
 | |
|   \ build_machine
 | |
|   \ build_target
 | |
|   \ configuration_data
 | |
|   \ configure_file
 | |
|   \ custom_target
 | |
|   \ declare_dependency
 | |
|   \ dependency
 | |
|   \ disabler
 | |
|   \ environment
 | |
|   \ error
 | |
|   \ executable
 | |
|   \ files
 | |
|   \ find_library
 | |
|   \ find_program
 | |
|   \ generator
 | |
|   \ get_option
 | |
|   \ get_variable
 | |
|   \ gettext
 | |
|   \ host_machine
 | |
|   \ import
 | |
|   \ include_directories
 | |
|   \ install_data
 | |
|   \ install_headers
 | |
|   \ install_man
 | |
|   \ install_subdir
 | |
|   \ install_symlink
 | |
|   \ install_emptydir
 | |
|   \ is_disabler
 | |
|   \ is_variable
 | |
|   \ jar
 | |
|   \ join_paths
 | |
|   \ library
 | |
|   \ meson
 | |
|   \ message
 | |
|   \ option
 | |
|   \ project
 | |
|   \ run_command
 | |
|   \ run_target
 | |
|   \ set_variable
 | |
|   \ shared_library
 | |
|   \ shared_module
 | |
|   \ static_library
 | |
|   \ structured_sources
 | |
|   \ subdir
 | |
|   \ subdir_done
 | |
|   \ subproject
 | |
|   \ summary
 | |
|   \ target_machine
 | |
|   \ test
 | |
|   \ unset_variable
 | |
|   \ vcs_tag
 | |
|   \ warning
 | |
|   \ range
 | |
|   \ debug
 | |
| 
 | |
| if exists("meson_space_error_highlight")
 | |
|   " trailing whitespace
 | |
|   syn match   mesonSpaceError	display excludenl "\s\+$"
 | |
|   " mixed tabs and spaces
 | |
|   syn match   mesonSpaceError	display " \+\t"
 | |
|   syn match   mesonSpaceError	display "\t\+ "
 | |
| endif
 | |
| 
 | |
| " The default highlight links.  Can be overridden later.
 | |
| hi def link mesonStatement	Statement
 | |
| hi def link mesonConditional	Conditional
 | |
| hi def link mesonRepeat		Repeat
 | |
| hi def link mesonOperator	Operator
 | |
| hi def link mesonComment	Comment
 | |
| hi def link mesonTodo		Todo
 | |
| hi def link mesonString		String
 | |
| hi def link mesonEscape		Special
 | |
| hi def link mesonNumber		Number
 | |
| hi def link mesonBuiltin	Function
 | |
| hi def link mesonBoolean	Boolean
 | |
| if exists("meson_space_error_highlight")
 | |
|   hi def link mesonSpaceError	Error
 | |
| endif
 | |
| 
 | |
| let b:current_syntax = "meson"
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 | |
| 
 | |
| " vim:set sw=2 sts=2 ts=8 noet:
 |