diff options
Diffstat (limited to '')
| -rw-r--r-- | syntax/meson.vim | 166 | 
1 files changed, 166 insertions, 0 deletions
| diff --git a/syntax/meson.vim b/syntax/meson.vim new file mode 100644 index 00000000..1d73e60e --- /dev/null +++ b/syntax/meson.vim @@ -0,0 +1,166 @@ +if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'meson') != -1 +  finish +endif + +" Vim syntax file +" Language:	Meson +" Maintainer:	Nirbheek Chauhan <nirbheek.chauhan@gmail.com> +" Last Change:	2016 Dec 7 +" 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 +" + +" For version 5.x: Clear all syntax items. +" For version 6.x: Quit when a syntax file was already loaded. +if version < 600 +  syntax clear +elseif 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 +setlocal 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 + +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\+\>" + +" booleans +syn keyword mesonConstant	false true + +" Built-in functions +syn keyword mesonBuiltin +  \ add_global_arguments +  \ add_global_link_arguments +  \ add_languages +  \ add_project_arguments +  \ add_project_link_arguments +  \ add_test_setup +  \ 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 +  \ is_variable +  \ jar +  \ join_paths +  \ library +  \ meson +  \ message +  \ option +  \ project +  \ run_command +  \ run_target +  \ set_variable +  \ shared_library +  \ shared_module +  \ static_library +  \ subdir +  \ subdir_done +  \ subproject +  \ target_machine +  \ test +  \ vcs_tag +  \ warning + +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 + +if version >= 508 || !exists("did_meson_syn_inits") +  if version <= 508 +    let did_meson_syn_inits = 1 +    command -nargs=+ HiLink hi link <args> +  else +    command -nargs=+ HiLink hi def link <args> +  endif + +  " The default highlight links.  Can be overridden later. +  HiLink mesonStatement		Statement +  HiLink mesonConditional	Conditional +  HiLink mesonRepeat		Repeat +  HiLink mesonOperator		Operator +  HiLink mesonComment		Comment +  HiLink mesonTodo		Todo +  HiLink mesonString		String +  HiLink mesonEscape		Special +  HiLink mesonNumber		Number +  HiLink mesonBuiltin		Function +  HiLink mesonConstant		Number +  if exists("meson_space_error_highlight") +    HiLink mesonSpaceError	Error +  endif + +  delcommand HiLink +endif + +let b:current_syntax = "meson" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim:set sw=2 sts=2 ts=8 noet: | 
