comparison runtime/syntax/meson.vim @ 18456:6d11fc4aa683

Update runtime files Commit: https://github.com/vim/vim/commit/96f45c0b6fc9e9d404e6805593ed1e0e6795e470 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Oct 26 19:53:45 2019 +0200 Update runtime files
author Bram Moolenaar <Bram@vim.org>
date Sat, 26 Oct 2019 20:00:04 +0200
parents
children 840665e74421
comparison
equal deleted inserted replaced
18455:3c98dfd2380c 18456:6d11fc4aa683
1 " Vim syntax file
2 " Language: Meson
3 " License: VIM License
4 " Maintainer: Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
5 " Last Change: 2019 Oct 18
6 " Credits: Zvezdan Petkovic <zpetkovic@acm.org>
7 " Neil Schemenauer <nas@meson.ca>
8 " Dmitry Vasiliev
9 "
10 " This version is copied and edited from python.vim
11 " It's very basic, and doesn't do many things I'd like it to
12 " For instance, it should show errors for syntax that is valid in
13 " Python but not in Meson.
14 "
15 " Optional highlighting can be controlled using these variables.
16 "
17 " let meson_space_error_highlight = 1
18 "
19
20 " For version 5.x: Clear all syntax items.
21 " For version 6.x: Quit when a syntax file was already loaded.
22 if version < 600
23 syntax clear
24 elseif exists("b:current_syntax")
25 finish
26 endif
27
28 " We need nocompatible mode in order to continue lines with backslashes.
29 " Original setting will be restored.
30 let s:cpo_save = &cpo
31 set cpo&vim
32
33 " http://mesonbuild.com/Syntax.html
34 syn keyword mesonConditional elif else if endif
35 syn keyword mesonRepeat foreach endforeach
36 syn keyword mesonOperator and not or
37
38 syn match mesonComment "#.*$" contains=mesonTodo,@Spell
39 syn keyword mesonTodo FIXME NOTE NOTES TODO XXX contained
40
41 " Strings can either be single quoted or triple counted across multiple lines,
42 " but always with a '
43 syn region mesonString
44 \ start="\z('\)" end="\z1" skip="\\\\\|\\\z1"
45 \ contains=mesonEscape,@Spell
46 syn region mesonString
47 \ start="\z('''\)" end="\z1" keepend
48 \ contains=mesonEscape,mesonSpaceError,@Spell
49
50 syn match mesonEscape "\\[abfnrtv'\\]" contained
51 syn match mesonEscape "\\\o\{1,3}" contained
52 syn match mesonEscape "\\x\x\{2}" contained
53 syn match mesonEscape "\%(\\u\x\{4}\|\\U\x\{8}\)" contained
54 " Meson allows case-insensitive Unicode IDs: http://www.unicode.org/charts/
55 syn match mesonEscape "\\N{\a\+\%(\s\a\+\)*}" contained
56 syn match mesonEscape "\\$"
57
58 " Meson only supports integer numbers
59 " http://mesonbuild.com/Syntax.html#numbers
60 syn match mesonNumber "\<\d\+\>"
61
62 " booleans
63 syn keyword mesonConstant false true
64
65 " Built-in functions
66 syn keyword mesonBuiltin
67 \ add_global_arguments
68 \ add_global_link_arguments
69 \ add_languages
70 \ add_project_arguments
71 \ add_project_link_arguments
72 \ add_test_setup
73 \ alias_target
74 \ assert
75 \ benchmark
76 \ both_libraries
77 \ build_machine
78 \ build_target
79 \ configuration_data
80 \ configure_file
81 \ custom_target
82 \ declare_dependency
83 \ dependency
84 \ disabler
85 \ environment
86 \ error
87 \ executable
88 \ files
89 \ find_library
90 \ find_program
91 \ generator
92 \ get_option
93 \ get_variable
94 \ gettext
95 \ host_machine
96 \ import
97 \ include_directories
98 \ install_data
99 \ install_headers
100 \ install_man
101 \ install_subdir
102 \ is_disabler
103 \ is_variable
104 \ jar
105 \ join_paths
106 \ library
107 \ meson
108 \ message
109 \ option
110 \ project
111 \ run_command
112 \ run_target
113 \ set_variable
114 \ shared_library
115 \ shared_module
116 \ static_library
117 \ subdir
118 \ subdir_done
119 \ subproject
120 \ target_machine
121 \ test
122 \ vcs_tag
123 \ warning
124
125 if exists("meson_space_error_highlight")
126 " trailing whitespace
127 syn match mesonSpaceError display excludenl "\s\+$"
128 " mixed tabs and spaces
129 syn match mesonSpaceError display " \+\t"
130 syn match mesonSpaceError display "\t\+ "
131 endif
132
133 if version >= 508 || !exists("did_meson_syn_inits")
134 if version <= 508
135 let did_meson_syn_inits = 1
136 command -nargs=+ HiLink hi link <args>
137 else
138 command -nargs=+ HiLink hi def link <args>
139 endif
140
141 " The default highlight links. Can be overridden later.
142 HiLink mesonStatement Statement
143 HiLink mesonConditional Conditional
144 HiLink mesonRepeat Repeat
145 HiLink mesonOperator Operator
146 HiLink mesonComment Comment
147 HiLink mesonTodo Todo
148 HiLink mesonString String
149 HiLink mesonEscape Special
150 HiLink mesonNumber Number
151 HiLink mesonBuiltin Function
152 HiLink mesonConstant Number
153 if exists("meson_space_error_highlight")
154 HiLink mesonSpaceError Error
155 endif
156
157 delcommand HiLink
158 endif
159
160 let b:current_syntax = "meson"
161
162 let &cpo = s:cpo_save
163 unlet s:cpo_save
164
165 " vim:set sw=2 sts=2 ts=8 noet: