Эх сурвалжийг харах

vscode: Fix syntax highlighting; bump to 0.1.1.

- Don't match "set" within e.g. "set-env".

- Fix the right-hand boundary of keywords such as "except".
Qi Xiao 1 жил өмнө
parent
commit
14ad776bf4

+ 2 - 2
vscode/elvish.tmLanguage.json

@@ -34,7 +34,7 @@
 			"match": "\\$[\\w\\d_:~-]+"
 		},
 		{
-			"match": "(?<=^|\\{ |\\{\t|\\(|\\||\\;)\\s*(var|set|tmp|del)((\\s+[\\w\\d_:~-]+)*)",
+			"match": "(?<=^|\\{ |\\{\t|\\(|\\||\\;)\\s*(var|set|tmp|del)((\\s+[\\w\\d_:~-]+)+)",
 			"captures": {
 				"1": {
 					"name": "keyword.other.elvish"
@@ -101,7 +101,7 @@
 			}
 		},
 		{
-			"match": "}\\s+(elif|else|finally)\\s+([\\w\\d_:~-]+)",
+			"match": "}\\s+(elif|else|catch|except|finally)(?=[\\s)}<>;|&])",
 			"captures": {
 				"1": {
 					"name": "keyword.control.elvish"

+ 1 - 1
vscode/package.json

@@ -2,7 +2,7 @@
     "name": "elvish",
     "displayName": "Elvish",
     "description": "Elvish language support for Visual Studio Code",
-    "version": "0.1.0",
+    "version": "0.1.1",
     "publisher": "elves",
     "license": "BSD-2-Clause",
     "icon": "icon.png",

+ 26 - 0
vscode/sample.elv

@@ -0,0 +1,26 @@
+# A sample file to test syntax highlighting.
+
+nop "double \n quoted" and 'single '' quoted' # comment
+
+# Various variable contexts
+nop $pid
+var var-name = { var fn-name~ = {var not-var-name} }
+nop (set var-name = foo | tmp var-name = bar); del var-name
+for var-name [] { }
+try { } catch var-name { }
+
+# Builtin functions
+!= a (nop b) | echo c
+
+# Builtin special command
+and a b # "operator"
+use re # "other"
+if a { } elif b { } else { }
+try { } except err { } else { } finally { }
+
+# Metacharacters
+echo ** () []
+
+# Regression tests
+set-env # should highlight entire set-env
+set-foo # should highlight nothing