2 Copyright (c) 2011 Google Inc. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file.
7 GYP language specification for Xcode 3
9 There is not much documentation available regarding the format
10 of .xclangspec files. As a starting point, see for instance the
11 outdated documentation at:
12 http://maxao.free.fr/xcode-plugin-interface/specifications.html
14 /Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/
16 Place this file in directory:
17 ~/Library/Application Support/Developer/Shared/Xcode/Specifications/
23 Identifier = "xcode.lang.gyp.keyword";
31 Type = "xcode.syntax.keyword";
36 Identifier = "xcode.lang.gyp.target.declarator";
41 Type = "xcode.syntax.identifier.type";
46 Identifier = "xcode.lang.gyp.string.singlequote";
50 "xcode.lang.gyp.keyword",
59 Identifier = "xcode.lang.gyp.comma";
67 Identifier = "xcode.lang.gyp";
68 Description = "GYP Coloring";
69 BasedOn = "xcode.lang.simpleColoring";
73 Tokenizer = "xcode.lang.gyp.lexer.toplevel";
75 "xcode.lang.gyp.dictionary",
77 Type = "xcode.syntax.plain";
81 // The following rule returns tokens to the other rules
83 Identifier = "xcode.lang.gyp.lexer";
86 "xcode.lang.gyp.comment",
88 'xcode.lang.gyp.targetname.declarator',
89 "xcode.lang.gyp.string.singlequote",
91 "xcode.lang.gyp.comma",
97 Identifier = "xcode.lang.gyp.lexer.toplevel";
100 "xcode.lang.gyp.comment",
106 Identifier = "xcode.lang.gyp.assignment";
108 Tokenizer = "xcode.lang.gyp.lexer";
110 "xcode.lang.gyp.assignment.lhs",
112 "xcode.lang.gyp.assignment.rhs",
119 Identifier = "xcode.lang.gyp.target.declaration";
121 Tokenizer = "xcode.lang.gyp.lexer";
123 "xcode.lang.gyp.target.declarator",
125 "xcode.lang.gyp.target.name",
131 Identifier = "xcode.lang.gyp.target.name";
133 Tokenizer = "xcode.lang.gyp.lexer";
135 "xcode.lang.gyp.string.singlequote",
137 Type = "xcode.syntax.definition.function";
142 Identifier = "xcode.lang.gyp.assignment.lhs";
144 Tokenizer = "xcode.lang.gyp.lexer";
146 "xcode.lang.gyp.string.singlequote",
148 Type = "xcode.syntax.identifier.type";
153 Identifier = "xcode.lang.gyp.assignment.rhs";
155 Tokenizer = "xcode.lang.gyp.lexer";
157 "xcode.lang.gyp.string.singlequote?",
158 "xcode.lang.gyp.array?",
159 "xcode.lang.gyp.dictionary?",
160 "xcode.lang.number?",
166 Identifier = "xcode.lang.gyp.dictionary";
168 Tokenizer = "xcode.lang.gyp.lexer";
174 "xcode.lang.gyp.target.declaration",
175 "xcode.lang.gyp.assignment",
181 Identifier = "xcode.lang.gyp.array";
183 Tokenizer = "xcode.lang.gyp.lexer";
189 "xcode.lang.gyp.array",
190 "xcode.lang.gyp.dictionary",
191 "xcode.lang.gyp.string.singlequote",
197 Identifier = "xcode.lang.gyp.todo.mark";
201 "^\(TODO\(.*\):[ \t]+.*\)$", // include "TODO: " in the markers list
203 // This is the order of captures. All of the match strings above need the same order.
207 Type = "xcode.syntax.comment";
212 Identifier = "xcode.lang.gyp.comment";
213 BasedOn = "xcode.lang.comment"; // for text macros
219 "xcode.lang.url.mail",
220 "xcode.lang.comment.mark",
221 "xcode.lang.gyp.todo.mark",
223 Type = "xcode.syntax.comment";