1
0
Fork 0
mirror of https://github.com/vim/vim synced 2025-03-16 06:47:52 +01:00
vim/runtime/syntax/meson.vim

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

163 lines
4 KiB
VimL
Raw Normal View History

2019-10-26 19:53:45 +02:00
" Vim syntax file
" Language: Meson
" License: VIM License
" Maintainer: Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
2021-05-16 12:39:47 +02:00
" Liam Beguin <liambeguin@gmail.com>
2023-06-10 21:40:39 +01:00
" Last Change: 2023 May 27
2019-10-26 19:53:45 +02:00
" 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
"
2021-05-16 12:39:47 +02:00
if exists("b:current_syntax")
2019-10-26 19:53:45 +02:00
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
2021-05-16 12:39:47 +02:00
syn keyword mesonRepeat foreach endforeach
syn keyword mesonOperator and not or in
syn keyword mesonStatement continue break
2019-10-26 19:53:45 +02:00
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\+\>"
2021-11-07 20:27:04 +00:00
syn match mesonNumber "\<0x\x\+\>"
syn match mesonNumber "\<0o\o\+\>"
2019-10-26 19:53:45 +02:00
" booleans
2021-11-07 20:27:04 +00:00
syn keyword mesonBoolean false true
2019-10-26 19:53:45 +02:00
" Built-in functions
syn keyword mesonBuiltin
\ add_global_arguments
\ add_global_link_arguments
\ add_languages
\ add_project_arguments
2023-06-10 21:40:39 +01:00
\ add_project_dependencies
2019-10-26 19:53:45 +02:00
\ 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
2023-06-10 21:40:39 +01:00
\ install_symlink
2021-11-07 20:27:04 +00:00
\ install_emptydir
2019-10-26 19:53:45 +02:00
\ is_disabler
\ is_variable
\ jar
\ join_paths
\ library
\ meson
\ message
\ option
\ project
\ run_command
\ run_target
\ set_variable
\ shared_library
\ shared_module
\ static_library
2023-06-10 21:40:39 +01:00
\ structured_sources
2019-10-26 19:53:45 +02:00
\ subdir
\ subdir_done
\ subproject
2021-05-16 12:39:47 +02:00
\ summary
2019-10-26 19:53:45 +02:00
\ target_machine
\ test
2021-11-07 20:27:04 +00:00
\ unset_variable
2019-10-26 19:53:45 +02:00
\ vcs_tag
\ warning
2021-05-16 12:39:47 +02:00
\ range
2023-06-10 21:40:39 +01:00
\ debug
2019-10-26 19:53:45 +02:00
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
2021-05-16 12:39:47 +02:00
" The default highlight links. Can be overridden later.
hi def link mesonStatement Statement
hi def link mesonConditional Conditional
2021-11-07 20:27:04 +00:00
hi def link mesonRepeat Repeat
2021-05-16 12:39:47 +02:00
hi def link mesonOperator Operator
hi def link mesonComment Comment
hi def link mesonTodo Todo
2021-11-07 20:27:04 +00:00
hi def link mesonString String
hi def link mesonEscape Special
hi def link mesonNumber Number
2021-05-16 12:39:47 +02:00
hi def link mesonBuiltin Function
2021-11-07 20:27:04 +00:00
hi def link mesonBoolean Boolean
2023-06-10 21:40:39 +01:00
if exists("meson_space_error_highlight")
2021-05-16 12:39:47 +02:00
hi def link mesonSpaceError Error
2019-10-26 19:53:45 +02:00
endif
let b:current_syntax = "meson"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2 ts=8 noet: