summaryrefslogtreecommitdiff
path: root/misc/xcode
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2009-05-20 16:09:34 -0700
committerRobert Griesemer <gri@golang.org>2009-05-20 16:09:34 -0700
commit8d98dfd548ed6fe2963bfb9e6b97ef103f2d4e75 (patch)
tree627e9d8e90aee0fdcf2bbd5a74362848fcfa224b /misc/xcode
parenta2bc6d8d8c0110cecdcbe731199c87afe16f495c (diff)
downloadgo-8d98dfd548ed6fe2963bfb9e6b97ef103f2d4e75.tar.gz
xcode config files, self-describing
R=r DELTA=250 (250 added, 0 deleted, 0 changed) OCL=29120 CL=29127
Diffstat (limited to 'misc/xcode')
-rw-r--r--misc/xcode/go.pbfilespec31
-rw-r--r--misc/xcode/go.xclangspec223
2 files changed, 254 insertions, 0 deletions
diff --git a/misc/xcode/go.pbfilespec b/misc/xcode/go.pbfilespec
new file mode 100644
index 000000000..1034778f5
--- /dev/null
+++ b/misc/xcode/go.pbfilespec
@@ -0,0 +1,31 @@
+/*
+ Copyright 2009 The Go Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style
+ license that can be found in the LICENSE file.
+
+ go.pbfilespec
+ Go source file spec for Xcode 3
+
+ There is not much documentation available regarding the format
+ of .pbfilespec files. As a starting point, see for instance the
+ outdated documentation at:
+ http://maxao.free.fr/xcode-plugin-interface/specifications.html
+ and the files in:
+ /Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/
+
+ Place this file in directory:
+ ~/Library/Application Support/Developer/Shared/Xcode/Specifications/
+*/
+
+(
+ {
+ Identifier = sourcecode.go;
+ BasedOn = sourcecode;
+ Name = "Go Files";
+ Extensions = ("go");
+ MIMETypes = ("text/go");
+ Language = "xcode.lang.go";
+ IsTextFile = YES;
+ IsSourceFile = YES;
+ }
+)
diff --git a/misc/xcode/go.xclangspec b/misc/xcode/go.xclangspec
new file mode 100644
index 000000000..40fe4f5ab
--- /dev/null
+++ b/misc/xcode/go.xclangspec
@@ -0,0 +1,223 @@
+/*
+ Copyright 2009 The Go Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style
+ license that can be found in the LICENSE file.
+
+ Go.xclangspec
+ Go language specification for Xcode 3
+
+ This is a preliminary version that supports basic syntax high-lighting
+ (such as keywords, literals, and comments) and an attempt to provide
+ some structure information (incomplete).
+
+ There is not much documentation available regarding the format
+ of .xclangspec files. As a starting point, see for instance the
+ outdated documentation at:
+ http://maxao.free.fr/xcode-plugin-interface/specifications.html
+ and the files in:
+ /Developer/Library/PrivateFrameworks/XcodeEdit.framework/Versions/A/Resources/
+
+ Place this file in directory:
+ ~/Library/Application Support/Developer/Shared/Xcode/Specifications/
+*/
+
+(
+
+// ----------------------------------------------------------------------------
+// Keywords
+
+// TODO How do we get general Unicode identifiers?
+
+ {
+ Identifier = "xcode.lang.go.identifier";
+ Syntax = {
+ StartChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";
+ Chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
+ Words = (
+ "break",
+ "case",
+ "chan",
+ "const",
+ "continue",
+
+ "default",
+ "defer",
+ "else",
+ "fallthrough",
+ "for",
+
+ "func",
+ "go",
+ "goto",
+ "if",
+ "import",
+
+ "interface",
+ "map",
+ "package",
+ "range",
+ "return",
+
+ "select",
+ "struct",
+ "switch",
+ "type",
+ "var",
+ );
+ Type = "xcode.syntax.keyword";
+ AltType = "xcode.syntax.identifier"; // non-keywords are identifiers
+ };
+ },
+
+// TODO decide what should go here, if anything
+ {
+ Identifier = "xcode.lang.go.interestingOperators";
+ Syntax = {
+ Words = (
+ "...",
+ ".",
+ ":",
+ );
+ Type = "xcode.syntax.plain";
+ };
+ },
+
+
+// ----------------------------------------------------------------------------
+// Syntax Coloring
+
+ {
+ Identifier = "xcode.lang.go";
+ Description = "Go Coloring";
+ BasedOn = "xcode.lang.simpleColoring";
+ IncludeInMenu = YES;
+ Name = "Go";
+ Syntax = {
+ Tokenizer = "xcode.lang.go.lexer.toplevel";
+ IncludeRules = (
+ "xcode.lang.go.block",
+ "xcode.lang.go.bracketexpr",
+ "xcode.lang.go.parenexpr",
+ );
+ Type = "xcode.syntax.plain";
+ };
+ },
+
+ // The following rule returns tokens to the other rules
+ {
+ Identifier = "xcode.lang.go.lexer";
+ Syntax = {
+ IncludeRules = (
+ "xcode.lang.go.comment",
+ "xcode.lang.go.comment.singleline",
+ "xcode.lang.string",
+ "xcode.lang.character",
+ "xcode.lang.go.identifier",
+ "xcode.lang.number",
+ "xcode.lang.go.interestingOperators",
+ );
+ };
+ },
+
+ {
+ Identifier = "xcode.lang.go.lexer.toplevel";
+ Syntax = {
+ IncludeRules = (
+ "xcode.lang.go.comment",
+ "xcode.lang.go.comment.singleline",
+ "xcode.lang.string",
+ "xcode.lang.character",
+ "xcode.lang.go.type.declaration",
+ "xcode.lang.go.identifier",
+ "xcode.lang.number",
+ );
+ };
+ },
+
+ {
+ Identifier = "xcode.lang.go.type.declaration";
+ Syntax = {
+ Tokenizer = "xcode.lang.go.lexer";
+ Rules = (
+ "type",
+ "xcode.lang.go.identifier",
+ );
+ Type = "xcode.syntax.name.partial";
+ };
+ },
+
+
+// ----------------------------------------------------------------------------
+// Blocks
+
+ {
+ Identifier = "xcode.lang.go.block";
+ Syntax = {
+ Tokenizer = "xcode.lang.go.lexer";
+ Start = "{";
+ End = "}";
+ Foldable = YES;
+ Recursive = YES;
+ IncludeRules = (
+ "xcode.lang.go.bracketexpr",
+ "xcode.lang.go.parenexpr",
+ );
+ };
+ },
+
+ {
+ Identifier = "xcode.lang.go.parenexpr";
+ Syntax = {
+ Tokenizer = "xcode.lang.go.lexer";
+ Start = "(";
+ End = ")";
+ Recursive = YES;
+ IncludeRules = (
+ "xcode.lang.go.bracketexpr",
+ );
+ };
+ },
+
+ {
+ Identifier = "xcode.lang.go.bracketexpr";
+ Syntax = {
+ Tokenizer = "xcode.lang.go.lexer";
+ Start = "[";
+ End = "]";
+ Recursive = YES;
+ IncludeRules = (
+ "xcode.lang.go.parenexpr",
+ );
+ };
+ },
+
+ {
+ Identifier = "xcode.lang.go.comment";
+ Syntax = {
+ Start = "/*";
+ End = "*/";
+ Foldable = YES;
+ IncludeRules = (
+ "xcode.lang.url",
+ "xcode.lang.url.mail",
+ "xcode.lang.comment.mark",
+ );
+ Type = "xcode.syntax.comment";
+ };
+ },
+
+ {
+ Identifier = "xcode.lang.go.comment.singleline";
+ Syntax = {
+ Start = "//";
+ End = "\n";
+ IncludeRules = (
+ "xcode.lang.url",
+ "xcode.lang.url.mail",
+ "xcode.lang.comment.mark",
+ );
+ Type = "xcode.syntax.comment";
+ };
+ },
+
+)