| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| ( |
| /**************************************************************************/ |
| // MARK: GN keywords |
| /**************************************************************************/ |
| { |
| Identifier = "xcode.lang.gn.identifier"; |
| Syntax = { |
| Words = ( |
| "else", |
| "false", |
| "if", |
| "true", |
| "assert", |
| "config", |
| "declare_args", |
| "defined", |
| "exec_script", |
| "foreach", |
| "forward_variables_from", |
| "get_label_info", |
| "get_path_info", |
| "get_target_outputs", |
| "getenv", |
| "import", |
| "not_needed", |
| "print", |
| "process_file_template", |
| "read_file", |
| "rebase_path", |
| "set_default_toolchain", |
| "set_defaults", |
| "split_list", |
| "string_join", |
| "string_split", |
| "template", |
| "tool", |
| "toolchain", |
| "propagates_configs", |
| "write_file", |
| "current_cpu", |
| "current_os", |
| "current_toolchain", |
| "default_toolchain", |
| "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", |
| "all_dependent_configs", |
| "allow_circular_includes_from", |
| "arflags", |
| "args", |
| "asmflags", |
| "assert_no_deps", |
| "bundle_deps_filter", |
| "bundle_executable_dir", |
| "bundle_resources_dir", |
| "bundle_root_dir", |
| "cflags", |
| "cflags_c", |
| "cflags_cc", |
| "cflags_objc", |
| "cflags_objcc", |
| "check_includes", |
| "post_processing_args", |
| "post_processing_outputs", |
| "post_processing_script", |
| "post_processing_sources", |
| "complete_static_lib", |
| "configs", |
| "data", |
| "data_deps", |
| "defines", |
| "depfile", |
| "deps", |
| "framework_dir", |
| "frameworks", |
| "include_dirs", |
| "inputs", |
| "ldflags", |
| "lib_dirs", |
| "libs", |
| "output_dir", |
| "output_extension", |
| "output_name", |
| "output_prefix_override", |
| "outputs", |
| "pool", |
| "precompiled_header", |
| "precompiled_header_type", |
| "precompiled_source", |
| "product_type", |
| "public", |
| "public_configs", |
| "public_deps", |
| "response_file_contents", |
| "script", |
| "sources", |
| "testonly", |
| "visibility", |
| "write_runtime_deps", |
| "bundle_contents_dir", |
| "contents", |
| "output_conversion", |
| "rebase", |
| "data_keys", |
| "walk_keys", |
| ); |
| Type = "xcode.syntax.keyword"; |
| AltType = "xcode.syntax.identifier"; |
| }; |
| }, |
| |
| { |
| Identifier = "xcode.lang.gn.gnspecial"; |
| Syntax = { |
| Words = ( |
| "is_android", |
| ); |
| Type = "xcode.syntax.preprocessor.define"; |
| AltType = "xcode.syntax.preprocessor.identifier"; |
| }; |
| }, |
| /**************************************************************************/ |
| // MARK: GN Syntax Coloring |
| /**************************************************************************/ |
| |
| { |
| Identifier = "xcode.lang.gn"; |
| Description = "GN Coloring"; |
| BasedOn = "xcode.lang.simpleColoring"; |
| IncludeInMenu = YES; |
| Name = "GN"; |
| Syntax = { |
| Tokenizer = "xcode.lang.gn.lexer"; |
| IncludeRules = ( |
| "xcode.lang.gn.block", |
| "xcode.lang.gn.bracketexpr", |
| "xcode.lang.gn.parenexpr", |
| ); |
| Type = "xcode.syntax.plain"; |
| }; |
| }, |
| |
| // The following rule returns tokens to the other rules |
| { |
| Identifier = "xcode.lang.gn.lexer"; |
| Syntax = { |
| IncludeRules = ( |
| "xcode.lang.comment.singleline.pound", |
| "xcode.lang.string", |
| "xcode.lang.character", |
| "xcode.lang.gn.identifier", |
| "xcode.lang.gn.gnspecial", |
| "xcode.lang.number", |
| ); |
| }; |
| }, |
| /**************************************************************************/ |
| // MARK: GN blocks |
| /**************************************************************************/ |
| { |
| Identifier = "xcode.lang.gn.block"; |
| Syntax = { |
| Tokenizer = "xcode.lang.gn.lexer"; |
| Start = "{"; |
| End = "}"; |
| Foldable = YES; |
| Recursive = YES; |
| IncludeRules = ( |
| "xcode.lang.gn.bracketexpr", |
| "xcode.lang.gn.parenexpr", |
| ); |
| }; |
| }, |
| { |
| Identifier = "xcode.lang.gn.parenexpr"; |
| Syntax = { |
| Tokenizer = "xcode.lang.gn.lexer"; |
| Start = "("; |
| End = ")"; |
| Foldable = YES; |
| Recursive = YES; |
| IncludeRules = ( |
| "xcode.lang.gn.bracketexpr", |
| ); |
| }; |
| }, |
| |
| { |
| Identifier = "xcode.lang.gn.bracketexpr"; |
| Syntax = { |
| Tokenizer = "xcode.lang.gn.lexer"; |
| Start = "["; |
| End = "]"; |
| Foldable = YES; |
| Recursive = YES; |
| IncludeRules = ( |
| "xcode.lang.gn.parenexpr", |
| ); |
| }; |
| }, |
| ) |