blob: af090ed8ddf1e99e1c62c3edf115c15a9cc58ffb [file]
{
"name": "Meson",
"scopeName": "source.meson",
"author": "Patrick Griffis",
"fileTypes": [
"meson.build",
"meson_options.txt"
],
"uuid": "b3713e1e-4289-4e0c-88af-79e8876e5adb",
"patterns": [
{
"match": "\\#.*$",
"name": "comment.line.meson"
},
{
"include": "#string_quoted_single"
},
{
"match": "\\b(if|else|elif|endif|foreach|endforeach)\\b",
"name": "keyword.control.flow.meson"
},
{
"match": "\\b(and|not|or)\\b",
"name": "keyword.operator.logical.meson"
},
{
"match": "\\b(true|false)\\b",
"name": "constant.language.meson"
},
{
"match": "\\b([1-9]+[0-9]*\\.[0-9]*)",
"name": "constant.numeric.float.meson"
},
{
"match": "\\b([1-9]+[0-9]*|0)",
"name": "constant.numeric.integer.decimal.meson"
},
{
"match": "\\b(meson|host_machine|build_machine|target_machine)\\b",
"name": "support.variable.meson"
},
{
"match": "\\b([\\w_]+)\\s*(?=:)",
"name": "variable.parameter.function.keyword.meson"
},
{
"match": "<\\=|>\\=|\\=\\=|<|>|\\!\\=",
"name": "keyword.operator.comparison.meson"
},
{
"match": "\\+\\=",
"name": "keyword.operator.assignment.augmented.meson"
},
{
"match": "\\=",
"name": "keyword.operator.assignment.meson"
},
{
"match": "\\+|\\-|\\*|%|\\/",
"name": "keyword.operator.arithmetic.meson"
},
{
"match": "(?x)\\b(add_global_arguments|add_project_arguments|add_global_link_arguments|add_project_link_arguments|add_test_setup|add_languages|assert|benchmark|build_target|configuration_data|configure_file|custom_target|declare_dependency|dependency|environment|error|executable|generator|gettext|get_option|get_variable|files|find_library|find_program|include_directories|import|install_data|install_headers|install_man|install_subdir|is_variable|jar|join_paths|library|message|option|project|run_target|run_command|set_variable|subdir|subproject|shared_library|shared_module|static_library|test|vcs_tag\n)\\b\\s*(?=\\()",
"name": "support.function.builtin.meson"
}
],
"repository": {
"constant_placeholder": {
"match": "(?i:(%(\\([a-z_]+\\))?#?0?\\-?[ ]?\\+?([0-9]*|\\*)(\\.([0-9]*|\\*))?([hL][a-z]|[a-z%]))|(\\{([!\\[\\].:\\w ]+)?\\}))",
"name": "constant.other.placeholder.meson"
},
"escaped_character": {
"captures": {
"1": {
"name": "constant.character.escape.newline.meson"
},
"2": {
"name": "constant.character.escape.backlash.meson"
},
"3": {
"name": "constant.character.escape.single-quote.meson"
},
"4": {
"name": "constant.character.escape.linefeed.meson"
},
"5": {
"name": "constant.character.escape.return.meson"
},
"6": {
"name": "constant.character.escape.tab.meson"
}
},
"match": "((\\\\\\n)|(\\\\\\\\)|(\\\\')|(\\\\n)|(\\\\r)|(\\\\t))"
},
"string_quoted_single": {
"patterns": [
{
"captures": {
"1": {
"name": "puncutation.definition.string.begin.meson"
},
"2": {
"name": "puncutation.definition.string.end.meson"
},
"3": {
"name": "meta.empty-string.single.meson"
}
},
"match": "(?<!')(')(('))(?!')",
"name": "string.quoted.single.single-line.meson"
},
{
"begin": "(''')",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.meson"
}
},
"end": "((?<=''')(')''|''')",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.meson"
},
"2": {
"name": "meta.empty-string.single.meson"
}
},
"name": "string.quoted.single.block.meson",
"patterns": [
{
"include": "#constant_placeholder"
},
{
"include": "#escaped_character"
}
]
},
{
"begin": "(')",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.meson"
}
},
"end": "(')|(\\n)",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.meson"
},
"2": {
"name": "invalid.illegal.unclosed-string.meson"
}
},
"name": "string.quoted.single.single-line.meson",
"patterns": [
{
"include": "#constant_placeholder"
},
{
"include": "#escaped_character"
}
]
}
]
}
}
}