[{"displayName":"GN","name":"gn","patterns":[{"include":"#expression"}],"repository":{"boolean":{"match":"\\b(true|false)\\b","name":"constant.language.boolean.gn"},"builtins":{"patterns":[{"match":"\\b(action|action_foreach|bundle_data|copy|create_bundle|executable|generated_file|group|loadable_module|rust_library|rust_proc_macro|shared_library|source_set|static_library|target)\\b","name":"support.function.gn"},{"match":"\\b(assert|config|declare_args|defined|exec_script|filter_exclude|filter_include|filter_labels_exclude|filter_labels_include|foreach|forward_variables_from|get_label_info|get_path_info|get_target_outputs|getenv|import|label_matches|not_needed|pool|print|print_stack_trace|process_file_template|read_file|rebase_path|set_default_toolchain|set_defaults|split_list|string_join|string_replace|string_split|template|tool|toolchain|write_file)\\b","name":"support.function.gn"},{"match":"\\b(current_cpu|current_os|current_toolchain|default_toolchain|gn_version|host_cpu|host_os|invoker|python_path|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_name|target_os|target_out_dir)\\b","name":"variable.language.gn"},{"match":"\\b(aliased_deps|all_dependent_configs|allow_circular_includes_from|arflags|args|asmflags|assert_no_deps|bridge_header|bundle_contents_dir|bundle_deps_filter|bundle_executable_dir|bundle_resources_dir|bundle_root_dir|cflags|cflags_cc??|cflags_objcc??|check_includes|code_signing_args|code_signing_outputs|code_signing_script|code_signing_sources|complete_static_lib|configs|contents|crate_name|crate_root|crate_type|data|data_deps|data_keys|defines|depfile|deps|externs|framework_dirs|frameworks|friend|gen_deps|include_dirs|inputs|ldflags|lib_dirs|libs|metadata|mnemonic|module_name|output_conversion|output_dir|output_extension|output_name|output_prefix_override|outputs|partial_info_plist|pool|post_processing_args|post_processing_outputs|post_processing_script|post_processing_sources|precompiled_header|precompiled_header_type|precompiled_source|product_type|public|public_configs|public_deps|rebase|response_file_contents|rustflags|script|sources|swiftflags|testonly|transparent|visibility|walk_keys|weak_frameworks|write_runtime_deps|xcasset_compiler_flags|xcode_extra_attributes|xcode_test_application_name)\\b","name":"variable.language.gn"}]},"call":{"begin":"\\b([A-Z_a-z][0-9A-Z_a-z]*)\\s*\\(","beginCaptures":{"1":{"name":"entity.name.function.gn"}},"end":"\\)","patterns":[{"include":"#expression"}]},"comment":{"begin":"#","end":"$","name":"comment.line.number-sign.gn"},"expression":{"patterns":[{"include":"#keywords"},{"include":"#builtins"},{"include":"#call"},{"include":"#literals"},{"include":"#identifier"},{"include":"#operators"},{"include":"#comment"}]},"identifier":{"match":"\\b[A-Z_a-z][0-9A-Z_a-z]*\\b","name":"variable.general.gn"},"keywords":{"match":"\\b(if|else)\\b","name":"keyword.control.if.gn"},"literals":{"patterns":[{"include":"#string"},{"include":"#number"},{"include":"#boolean"}]},"number":{"match":"\\b-?\\d+\\b","name":"constant.numeric.gn"},"operators":{"match":"\\b(\\+=??|==|!=|-=??|<=??|[!=>]|>=|&&|\\|\\|\\.)\\b","name":"keyword.operator.gn"},"string":{"begin":"\"","end":"\"","name":"string.quoted.double.gn","patterns":[{"match":"\\\\[\"$\\\\]","name":"constant.character.escape.gn"},{"match":"\\$0x\\h\\h","name":"constant.character.hex.gn"},{"begin":"\\$\\{","beginCaptures":{"0":{"name":"punctuation.definition.template-expression.begin.gn"}},"contentName":"meta.embedded.substitution.gn","end":"}","endCaptures":{"0":{"name":"punctuation.definition.template-expression.end.gn"}},"patterns":[{"include":"#expression"}]},{"captures":{"1":{"name":"punctuation.definition.template-expression.begin.gn"},"2":{"name":"meta.embedded.substitution.gn variable.general.gn"}},"match":"(\\$)([A-Z_a-z][0-9A-Z_a-z]*)"}]}},"scopeName":"source.gn"}]