Browse Source

Replace syntax highlight from sublime to atom
Add icon
Release 0.1.1

Geequlim 8 years ago
parent
commit
50b81b115f
7 changed files with 213 additions and 392 deletions
  1. 2 1
      .gitignore
  2. 7 0
      CHANGELOG.md
  3. 5 1
      README.md
  4. 0 388
      configrations/GDScript.tmLanguage
  5. 196 0
      configrations/GDScript.tmLanguage.json
  6. BIN
      icon.png
  7. 3 2
      package.json

+ 2 - 1
.gitignore

@@ -1,4 +1,5 @@
 out
 node_modules
 server
-test
+test
+*.vsix

+ 7 - 0
CHANGELOG.md

@@ -0,0 +1,7 @@
+# Change Log
+
+### 0.1.1
+* Better syntax highlit with GDScript
+
+### 0.1.0
+* Initial release

+ 5 - 1
README.md

@@ -43,4 +43,8 @@ Please feel free to open issues and pull requirests on github about the [Godot-T
 
 ## Release Notes
 
-### 0.1.0 Initialize publish
+### 0.1.1
+* Better syntax highlit with GDScript
+
+### 0.1.0
+* Initial release

+ 0 - 388
configrations/GDScript.tmLanguage

@@ -1,388 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-	<key>fileTypes</key>
-	<array>
-		<string>gd</string>
-	</array>
-	<key>name</key>
-	<string>GDScript (Godot Engine)</string>
-	<key>patterns</key>
-	<array>
-		<dict>
-			<key>captures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>punctuation.definition.comment.number-sign.gdscript</string>
-				</dict>
-			</dict>
-			<key>match</key>
-			<string>(#).*$\n?</string>
-			<key>name</key>
-			<string>comment.line.number-sign.gdscript</string>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>^(""")</string>
-			<key>beginCaptures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>punctuation.definition.comment.triple-quote.gdscript</string>
-				</dict>
-			</dict>
-			<key>end</key>
-			<string>(""")</string>
-			<key>endCaptures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>punctuation.definition.comment.triple-quote.gdscript</string>
-				</dict>
-			</dict>
-			<key>name</key>
-			<string>comment.block.triple-quote</string>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>"</string>
-			<key>end</key>
-			<string>(?&lt;!\\)"</string>
-			<key>name</key>
-			<string>string.quoted.double.gdscript</string>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>'</string>
-			<key>end</key>
-			<string>(?&lt;!\\)'</string>
-			<key>name</key>
-			<string>string.quoted.single.gdscript</string>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>"""</string>
-			<key>end</key>
-			<string>(?&lt;!\\)"""</string>
-			<key>name</key>
-			<string>string.quoted.triple.gdscript</string>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>@"</string>
-			<key>end</key>
-			<string>(?&lt;!\\)"</string>
-			<key>name</key>
-			<string>string.quoted.double.node-path.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:0x\h*)\b</string>
-			<key>name</key>
-			<string>constant.numeric.integer.hexadecimal.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:(\d+\.\d*(e[\-\+]?\d+)?))\b</string>
-			<key>name</key>
-			<string>constant.numeric.float.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:(\.\d+(e[\-\+]?\d+)?))\b</string>
-			<key>name</key>
-			<string>constant.numeric.float.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:(\d+e[\-\+]?\d+))\b</string>
-			<key>name</key>
-			<string>constant.numeric.float.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b\d+\b</string>
-			<key>name</key>
-			<string>constant.numeric.integer.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:elif|else|for|if|while|break|continue|pass|return)\b</string>
-			<key>name</key>
-			<string>keyword.control.flow.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:&amp;&amp;|and|in|is|!|not|\|\||or)\b</string>
-			<key>name</key>
-			<string>keyword.operator.logical.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>&lt;=|&gt;=|==|&lt;|&gt;|!=</string>
-			<key>name</key>
-			<string>keyword.operator.comparison.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\+=|-=|\*=|/=|%=|&amp;=|\|=|\*|/|%|\+|-|&lt;&lt;|&gt;&gt;|&amp;|\||\^|~</string>
-			<key>name</key>
-			<string>keyword.operator.arithmetic.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>=</string>
-			<key>name</key>
-			<string>keyword.operator.assignment.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(bool|int|float|String|funcref)\b</string>
-			<key>name</key>
-			<string>support.type.basic.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(Vector[23]|Rect2|Matrix32?|Plane|Quat|AABB|Transform)\b</string>
-			<key>name</key>
-			<string>support.type.vector.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(Color|Image|NodePath|RID|Object|InputEvent)\b</string>
-			<key>name</key>
-			<string>support.type.engine.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(Array|Dictionary|ByteArray|IntArray|FloatArray|StringArray|Vector[23]Array|ColorArray)\b</string>
-			<key>name</key>
-			<string>support.type.container.gdscript</string>
-		</dict>
-		<dict>
-			<key>captures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>storage.type.class.gdscript</string>
-				</dict>
-				<key>2</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.type.class.gdscript</string>
-				</dict>
-			</dict>
-			<key>match</key>
-			<string>^\s*(?i:(class))\s+([a-zA-Z_][a-zA-Z_0-9]*)\s*:</string>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>^\s*(?i:(?:(static)\s+)?(func))\s+([a-zA-Z_][a-zA-Z_0-9]*)\s*\(</string>
-			<key>beginCaptures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>storage.modifier.static-function.gdscript</string>
-				</dict>
-				<key>2</key>
-				<dict>
-					<key>name</key>
-					<string>storage.type.function.gdscript</string>
-				</dict>
-				<key>3</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.function.gdscript</string>
-				</dict>
-			</dict>
-			<key>end</key>
-			<string>\)\s*:</string>
-			<key>patterns</key>
-			<array>
-				<dict>
-					<key>match</key>
-					<string>[a-zA-Z_][a-zA-Z_0-9]*</string>
-					<key>name</key>
-					<string>variable.parameter.gdscript</string>
-				</dict>
-			</array>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>^\s*(?i:(signal))\s+([a-zA-Z_][a-zA-Z_0-9]*)\s*\(</string>
-			<key>beginCaptures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>storage.type.signal.gdscript</string>
-				</dict>
-				<key>2</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.function.siglan.gdscript</string>
-				</dict>
-			</dict>
-			<key>end</key>
-			<string>\)\s*:</string>
-			<key>patterns</key>
-			<array>
-				<dict>
-					<key>match</key>
-					<string>[a-zA-Z_][a-zA-Z_0-9]*</string>
-					<key>name</key>
-					<string>variable.parameter.gdscript</string>
-				</dict>
-			</array>
-		</dict>
-		<dict>
-			<key>captures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>keyword.other.onready.gdscript</string>
-				</dict>
-				<key>2</key>
-				<dict>
-					<key>name</key>
-					<string>storage.type.var.gdscript</string>
-				</dict>
-				<key>3</key>
-				<dict>
-					<key>name</key>
-					<string>variable.other.gdscript</string>
-				</dict>
-			</dict>
-			<key>match</key>
-			<string>(?i:\b(?:(onready)\s+)?(var))\s+([a-zA-Z_][a-zA-Z_0-9]*)</string>
-		</dict>
-		<dict>
-			<key>captures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>storage.type.const.gdscript</string>
-				</dict>
-				<key>2</key>
-				<dict>
-					<key>name</key>
-					<string>variable.other.gdscript</string>
-				</dict>
-			</dict>
-			<key>match</key>
-			<string>\b(?i:(const))\s+([a-zA-Z_][a-zA-Z_0-9]*)</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:extends|assert|breakpoint)\b</string>
-			<key>name</key>
-			<string>keyword.other.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>(?&lt;=extends)\s+[a-zA-Z_][a-zA-Z_0-9]*(\.([a-zA-Z_][a-zA-Z_0-9]*))?</string>
-			<key>name</key>
-			<string>entity.other.inherited-class.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:true|false|null)\b</string>
-			<key>name</key>
-			<string>constant.language.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:export|tool)\b</string>
-			<key>name</key>
-			<string>storage.modifier.static.gdscript</string>
-		</dict>
-		<dict>
-			<key>captures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>keyword.operator.setget.gdscript</string>
-				</dict>
-				<key>2</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.function.gdscript</string>
-				</dict>
-				<key>3</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.function.gdscript</string>
-				</dict>
-				<key>4</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.function.gdscript</string>
-				</dict>
-			</dict>
-			<key>match</key>
-			<string>\b((?i:setget))\b\s+(?:,?([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\s*,\s*([a-zA-Z_][a-zA-Z_0-9]*))</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:yield)\b</string>
-			<key>name</key>
-			<string>keyword.control.flow.yield.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>\b(?i:var|const|onready|class|func|signal)\b</string>
-			<key>name</key>
-			<string>invalid.illegal</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>([A-Z][a-zA-Z_0-9]*)</string>
-			<key>name</key>
-			<string>entity.name.type.class-type.gdscript</string>
-		</dict>
-		<dict>
-			<key>match</key>
-			<string>([a-z_][a-zA-Z_0-9]*)</string>
-			<key>name</key>
-			<string>entity.name.type.variant.gdscript</string>
-		</dict>
-		<dict>
-			<key>begin</key>
-			<string>([a-z][a-zA-Z_0-9]*)\s*\(</string>
-			<key>beginCaptures</key>
-			<dict>
-				<key>1</key>
-				<dict>
-					<key>name</key>
-					<string>entity.name.function.reference.gdscript</string>
-				</dict>
-			</dict>
-			<key>end</key>
-			<string>\)</string>
-			<key>patterns</key>
-			<array>
-				<dict>
-					<key>match</key>
-					<string>([a-zA-Z_][a-zA-Z_0-9]*)</string>
-					<key>name</key>
-					<string>variable.parameter.gdscript</string>
-				</dict>
-			</array>
-		</dict>
-	</array>
-	<key>scopeName</key>
-	<string>source.gdscript</string>
-	<key>uuid</key>
-	<string>e08b7d98-5d50-4aa9-8935-7c759a4a8fdd</string>
-</dict>
-</plist>

+ 196 - 0
configrations/GDScript.tmLanguage.json

@@ -0,0 +1,196 @@
+{
+  "fileTypes": [
+    "gd"
+  ],
+  "scopeName": "source.gdscript",
+  "name": "Godot Engine GDScript",
+  "patterns": [
+    {
+      "include": "#strings"
+    },
+    {
+      "include": "#numbers"
+    },
+    {
+      "include": "#const_vars"
+    },
+    {
+      "include": "#self"
+    },
+    {
+      "match": "(#).*$\\n?",
+      "name": "punctuation.definition.comment.gdscript"
+    },
+    {
+      "match": "\\b(?i:elif|else|for|if|while|break|continue|pass|and|in|is|not|or|return|onready|setget|breakpoint)\\b",
+      "name": "keyword.control.gdscript"
+    },
+    {
+      "match": "\\b(&&|!|\\|\\|)\\b",
+      "name": "keyword.operator.logical.gdscript"
+    },
+    {
+      "match": "<=|>=|==|<|>|!=",
+      "name": "keyword.operator.comparison.gdscript"
+    },
+    {
+      "match": "\\+=|-=|\\*=|/=|%=|&=|\\|=|\\*|/|%|\\+|-|<<|>>|&|\\||\\^|~",
+      "name": "keyword.operator.arithmetic.gdscript"
+    },
+    {
+      "match": "=",
+      "name": "keyword.operator.assignment.gdscript"
+    },
+    {
+      "match": "\\b(?i:class|extends|assert|signal)\\b",
+      "name": "keyword.other.gdscript"
+    },
+    {
+      "match": "(?<=extends)\\s+[a-zA-Z_][a-zA-Z_0-9]*(\\.([a-zA-Z_][a-zA-Z_0-9]*))?",
+      "name": "entity.other.inherited-class.gdscript"
+    },
+    {
+      "match": "\\b(?i:true|false|null)\\b",
+      "name": "constant.language.gdscript"
+    },
+    {
+      "match": "\\b(?i:export|tool|yield)\\b",
+      "name": "storage.modifier.static.gdscript"
+    },
+    {
+      "match": "\\bvar\\b",
+      "name": "storage.type.var.gdscript"
+    },
+    {
+      "match": "(?<![^.]\\.|:)\\b(sin|cos|tan|sinh|cosh|tanh|asin|acos|atan|atan2|sqrt|fmod|fposmod|floor|ceil|round|abs|sign|pow|log|exp|isnan|isinf|ease|decimals|stepify|lerp|dectime|randomize|randi|randf|rand_range|seed|rand_seed|deg2rad|rad2deg|linear2db|db2linear|max|min|clamp|nearest_po2|weakref|funcref|convert|typeof|str|print|printt|prints|printerr|printraw|var2str|str2var|var2bytes|bytes2var|range|load|inst2dict|dict2inst|hash|Color8|print_stack|instance_from_id|preload|yield|assert)\\b(?=(\\()([^)]*)(\\)))",
+      "name": "support.function.gdscript"
+    },
+    {
+      "match": "(?<![^.]\\.|:)\\b(print|set_\\w+|get_\\w+)\\b(?=(\\()([^)]*)(\\)))",
+      "name": "support.function.library.gdscript"
+    },
+    {
+      "match": "\\b([A-Za-z_]\\w*)\\b(?=\\s*(?:[(]))",
+      "name": "support.function.any-method.gdscript"
+    },
+    {
+      "match": "(?<=[^.]\\.)\\b([A-Za-z_]\\w*)\\b(?![(])",
+      "name": "variable.other.property.gdscript"
+    },
+    {
+      "captures": {
+        "1": {
+          "name": "entity.name.type.class.gdscript"
+        }
+      },
+      "match": "(?<=^class)\\s+([a-zA-Z_]\\w*)\\s*(?=:)"
+    },
+    {
+      "captures": {
+        "1": {
+          "name": "storage.type.const.gdscript"
+        },
+        "2": {
+          "name": "constant.other.gdscript"
+        }
+      },
+      "match": "\\b(?i:(const))\\s+([a-zA-Z_][a-zA-Z_0-9]*)"
+    },
+    {
+      "captures": {
+        "1": {
+          "name": "entity.name.type.instance.gdscript"
+        },
+        "2": {
+          "name": "keyword.operator.new.gdscript"
+        }
+      },
+      "match": "\\s*\\b(\\w+)\\.(new)\\b"
+    },
+    {
+      "begin": "^\\s*(static)?\\s*(func)\\s+([a-zA-Z_]\\w*)s*(\\()",
+      "beginCaptures": {
+        "1": {
+          "name": "storage.modifier.static.gdscript"
+        },
+        "2": {
+          "name": "storage.type.function.gdscript"
+        },
+        "3": {
+          "name": "entity.name.function.gdscript"
+        },
+        "4": {
+          "name": "punctuation.definition.parameters.begin.bracket.round.gdscript"
+        }
+      },
+      "end": "(\\))\\s*:",
+      "endCaptures": {
+        "1": {
+          "name": "punctuation.definition.parameters.end.bracket.round.gdscript"
+        }
+      },
+      "patterns": [
+        {
+          "match": "[a-zA-Z_][a-zA-Z_0-9]*",
+          "name": "variable.parameter.function.gdscript"
+        },
+        {
+          "match": ",",
+          "name": "punctuation.definition.parameters.comma.gdscript"
+        },
+        {
+          "match": "\\s*",
+          "name": "punctuation.definition.parameters.space.gdscript"
+        }
+      ]
+    }
+  ],
+  "repository": {
+    "self": {
+      "match": "\\bself\\b",
+      "name": "variable.language.gdscript"
+    },
+    "const_vars": {
+      "match": "\\b([A-Z_0-9]+)\\b",
+      "name": "constant.other.gdscript"
+    },
+    "strings": {
+      "patterns": [
+        {
+          "begin": "\"",
+          "end": "(?<!\\\\)\"",
+          "name": "string.quoted.double.gdscript"
+        },
+        {
+          "begin": "'",
+          "end": "(?<!\\\\)'",
+          "name": "string.quoted.single.gdscript"
+        }
+      ]
+    },
+    "numbers": {
+      "patterns": [
+        {
+          "match": "\\b(?i:0x\\h*)\\b",
+          "name": "constant.numeric.integer.hexadecimal.gdscript"
+        },
+        {
+          "match": "\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))\\b",
+          "name": "constant.numeric.float.gdscript"
+        },
+        {
+          "match": "\\b(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))\\b",
+          "name": "constant.numeric.float.gdscript"
+        },
+        {
+          "match": "\\b(?i:(\\d+e[\\-\\+]?\\d+))\\b",
+          "name": "constant.numeric.float.gdscript"
+        },
+        {
+          "match": "\\b\\d+\\b",
+          "name": "constant.numeric.integer.gdscript"
+        }
+      ]
+    }
+  }
+}

BIN
icon.png


+ 3 - 2
package.json

@@ -1,8 +1,9 @@
 {
   "name": "godot-tools",
   "displayName": "Godot Tools",
+  "icon": "icon.png",
   "description": "\"Tools for game development with godot game engine\"",
-  "version": "0.1.0",
+  "version": "0.1.1",
   "publisher": "geequlim",
   "engines": {
     "vscode": "^1.5.0"
@@ -72,7 +73,7 @@
       {
         "language": "gdscript",
         "scopeName": "source.gdscript",
-        "path": "./configrations/GDScript.tmLanguage"
+        "path": "./configrations/GDScript.tmLanguage.json"
       }
     ],
     "snippets": [