vscode: updated syntax defintion for better outline and sticky scroll
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 22 Feb 2023 17:58:09 +0000 (11:58 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Wed, 22 Feb 2023 17:58:09 +0000 (11:58 -0600)
misc/vscode/onyx-0.1.5.vsix [new file with mode: 0644]
misc/vscode/package.json
misc/vscode/syntaxes/onyx.tmLanguage
misc/vscode/textmate-configuration.json

diff --git a/misc/vscode/onyx-0.1.5.vsix b/misc/vscode/onyx-0.1.5.vsix
new file mode 100644 (file)
index 0000000..ddeb215
Binary files /dev/null and b/misc/vscode/onyx-0.1.5.vsix differ
index 5978baf6fea86061502d0b9151bad9c3d59ae313..371a5dc65bfedb716dc7e5bf651d891b6b48089e 100644 (file)
@@ -2,7 +2,7 @@
     "name": "onyx",
     "displayName": "Onyx",
     "description": "Onyx syntax highlighting.",
-    "version": "0.1.4",
+    "version": "0.1.5",
     "publisher": "brendanfh",
     "license": "BSD-2-Clause",
     "engines": {
index 236b2be9f8bc7c42c5e2cda397620b8e43a37f0f..43605084f07d971f9801804203da5bbeae14f0c3 100644 (file)
                        <key>include</key>
                        <string>#string_escaped_char</string>
                </dict>
+               <dict>
+                       <key>include</key>
+                       <string>#generic_tags</string>
+               </dict>
        </array>
        <key>repository</key>
        <dict>
@@ -59,6 +63,7 @@
                                </dict>
                        </array>
                </dict>
+
                <key>line_comment</key>
                <dict>
                        <key>begin</key>
                                </dict>
                        </array>
                </dict>
+
                <key>comments</key>
                <dict>
                        <key>patterns</key>
                                </dict>
                        </array>
                </dict>
+               
                <key>keywords</key>
                <dict>
                        <key>patterns</key>
                                </dict>
                                <dict>
                                        <key>match</key>
-                                       <string>\b(it|it_index)\b</string>
+                                       <string>\b(it)\b</string>
                                        <key>name</key>
                                        <string>keyword.other.onyx</string>
                                </dict>
                                        <key>name</key>
                                        <string>keyword.function.onyx</string>
                                </dict>
-                               <dict>
-                                       <key>match</key>
-                                       <string>([#]\s*\b([[:alpha:]_]+[[:alnum:]_]*)\b)</string>
-                                       <key>name</key>
-                                       <string>keyword.tag.onyx</string>
-                               </dict>
-                               <dict>
+                               <!-- <dict>
                                        <key>match</key>
-                                       <string>@[^\n]+</string>
+                                       <string>([#]\s*\binject.+\b)</string>
                                        <key>name</key>
-                                       <string>keyword.tag.onyx</string>
-                               </dict>
+                                       <string>keyword.tag.onyx entity.name.function.onyx</string>
+                               </dict> -->
                        </array>
                </dict>
+
                <key>types</key>
                <dict>
                        <key>patterns</key>
                                </dict>
                        </array>
                </dict>
+
                <key>functions_and_declarations</key>
                <dict>
                        <key>patterns</key>
                                </dict>
                                <dict>
                                        <key>match</key>
-                                       <string>\b(\b[[:alpha:]_]+[[:alnum:]_]*\b)\s*[:]\s*[:]\s*(struct|enum|interface)</string>
+                                       <string>\b(\b[[:alpha:]_]+[[:alnum:]_]*\b)\s*[:]\s*[:]\s*(struct)</string>
                                        <key>captures</key>
                                        <dict>
                                                <key>1</key>
                                                <dict>
                                                        <key>name</key>
-                                                       <string>meta.type.onyx entity.name.type.onyx</string>
+                                                       <string>meta.type.onyx entity.name.type.class.onyx</string>
+                                               </dict>
+                                               <key>2</key>
+                                               <dict>
+                                                       <key>name</key>
+                                                       <string>storage.type.onyx</string>
+                                               </dict>
+                                       </dict>
+                               </dict>
+                               <dict>
+                                       <key>match</key>
+                                       <string>\b(\b[[:alpha:]_]+[[:alnum:]_]*\b)\s*[:]\s*[:]\s*(interface)</string>
+                                       <key>captures</key>
+                                       <dict>
+                                               <key>1</key>
+                                               <dict>
+                                                       <key>name</key>
+                                                       <string>meta.type.onyx entity.name.type.interface.onyx</string>
+                                               </dict>
+                                               <key>2</key>
+                                               <dict>
+                                                       <key>name</key>
+                                                       <string>storage.type.onyx</string>
+                                               </dict>
+                                       </dict>
+                               </dict>
+                               <dict>
+                                       <key>match</key>
+                                       <string>\b(\b[[:alpha:]_]+[[:alnum:]_]*\b)\s*[:]\s*[:]\s*(enum)</string>
+                                       <key>captures</key>
+                                       <dict>
+                                               <key>1</key>
+                                               <dict>
+                                                       <key>name</key>
+                                                       <string>meta.type.onyx entity.name.type.enum.onyx</string>
                                                </dict>
                                                <key>2</key>
                                                <dict>
                                </dict>
                                <dict>
                                        <key>match</key>
-                                       <string>\b([#]\s*foreign)</string>
+                                       <string>([#]\s*\b(?:foreign|local|package)\b).+({)</string>
                                        <key>captures</key>
                                        <dict>
                                                <key>1</key>
                                                <dict>
                                                        <key>name</key>
-                                                       <string>keyword.tag.onyx entity.name.block.onyx</string>
+                                                       <string>keyword.tag.onyx entity.name.type.namespace.onyx</string>
+                                               </dict>
+                                               <key>2</key>
+                                               <dict>
+                                                       <key>name</key>
+                                                       <string>punctuation.block.start.onyx</string>
+                                               </dict>
+                                       </dict>
+                               </dict>
+                               <dict>
+                                       <key>match</key>
+                                       <string>([#]\s*\binject\b)\s+(\b[^{]+\b)</string>
+                                       <key>captures</key>
+                                       <dict>
+                                               <key>1</key>
+                                               <dict>
+                                                       <key>name</key>
+                                                       <string>keyword.tag.onyx</string>
+                                               </dict>
+                                               <key>2</key>
+                                               <dict>
+                                                       <key>name</key>
+                                                       <string>entity.name.type.namespace.onyx</string>
                                                </dict>
                                        </dict>
                                </dict>
                                </dict>
                        </array>
                </dict>
+
                <key>string_escaped_char</key>
                <dict>
                        <key>patterns</key>
                                </dict>
                        </array>
                </dict>
+
                <key>strings</key>
                <dict>
                        <key>patterns</key>
                                </dict>
                        </array>
                </dict>
+
+               <key>generic_tags</key>
+               <dict>
+                       <key>patterns</key>
+                       <array>
+                               <dict>
+                                       <key>match</key>
+                                       <string>([#]\s*\b([[:alpha:]_]+[[:alnum:]_]*)\b)</string>
+                                       <key>name</key>
+                                       <string>keyword.tag.onyx</string>
+                               </dict>
+                               <dict>
+                                       <key>match</key>
+                                       <string>@[^\n]+</string>
+                                       <key>name</key>
+                                       <string>keyword.tag.onyx</string>
+                               </dict>
+                       </array>
+               </dict>
        </dict>
 </dict>
 </plist>
index 23901782624b7865233ac1b58689c0bc6b48b07f..0797dc354e95f5ff0c8e679384f8870824d8aa53 100644 (file)
     "declarations": [
         "entity.name.function.onyx",
         "entity.name.type.onyx",
-        "entity.name.block.onyx"
+        "entity.name.type.class.onyx",
+        "entity.name.type.interface.onyx",
+        "entity.name.type.enum.onyx",
+        "entity.name.type.namespace.onyx",
+        "entity.name.block.onyx",
+        "entity.name.tag.onyx"
     ],
     "indentation": {
       "punctuation.block.begin.onyx": 1,
     },
     "symbols": {
         "entity.name.function.onyx": 11,
+        "entity.name.type.namespace.onyx": 2,
+        "entity.name.type.class.onyx": 4,
+        "entity.name.type.interface.onyx": 10,
+        "entity.name.type.enum.onyx": 9,
         "entity.name.type.onyx": 22
     }
 }
\ No newline at end of file