From 21e7d9f7b4e88dae396fabb6b10f81fd8491315e Mon Sep 17 00:00:00 2001 From: Justin Walsh Date: Mon, 4 Nov 2024 22:36:32 -0500 Subject: [PATCH] feat: basic unit and snapshot tests --- package-lock.json | 250 +++++++++++++++++++++++++---- package.json | 16 +- tests/snap/example.textproto | 41 +++++ tests/snap/example.textproto.snap | 224 ++++++++++++++++++++++++++ tests/unit/comments.test.textproto | 5 + tests/unit/messages.test.textproto | 22 +++ 6 files changed, 520 insertions(+), 38 deletions(-) create mode 100644 tests/snap/example.textproto create mode 100644 tests/snap/example.textproto.snap create mode 100644 tests/unit/comments.test.textproto create mode 100644 tests/unit/messages.test.textproto diff --git a/package-lock.json b/package-lock.json index 8df13b4..db3817e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "license": "MIT", "dependencies": { "highlight.js": "^10.4.1", - "markdown-it-highlightjs": "^3.4.0" + "markdown-it-highlightjs": "^3.4.0", + "vscode-tmgrammar-test": "^0.1.3" }, "devDependencies": { "@rollup/plugin-commonjs": "^17.0.0", @@ -419,14 +420,17 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -508,8 +512,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/cross-env": { "version": "7.0.3", @@ -575,6 +578,14 @@ "node": ">=0.10.0" } }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -886,8 +897,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -919,7 +929,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -1029,7 +1038,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1038,8 +1046,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/is-core-module": { "version": "2.11.0", @@ -1227,7 +1234,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1251,7 +1257,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -1289,7 +1294,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1752,6 +1756,106 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" + }, + "node_modules/vscode-textmate": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz", + "integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==" + }, + "node_modules/vscode-tmgrammar-test": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/vscode-tmgrammar-test/-/vscode-tmgrammar-test-0.1.3.tgz", + "integrity": "sha512-Wg6Pz+ePAT1O+F/A1Fc4wS5vY2X+HNtgN4qMdL+65NLQYd1/zdDWH4fhwsLjX8wTzeXkMy49Cr4ZqWTJ7VnVxg==", + "dependencies": { + "bottleneck": "^2.19.5", + "chalk": "^2.4.2", + "commander": "^9.2.0", + "diff": "^4.0.2", + "glob": "^7.1.6", + "vscode-oniguruma": "^1.5.1", + "vscode-textmate": "^7.0.1" + }, + "bin": { + "vscode-tmgrammar-snap": "dist/snapshot.js", + "vscode-tmgrammar-test": "dist/unit.js" + } + }, + "node_modules/vscode-tmgrammar-test/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vscode-tmgrammar-test/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vscode-tmgrammar-test/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/vscode-tmgrammar-test/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/vscode-tmgrammar-test/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/vscode-tmgrammar-test/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/vscode-tmgrammar-test/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/vscode-tmgrammar-test/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -1779,8 +1883,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/yallist": { "version": "4.0.0", @@ -2102,14 +2205,17 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2173,8 +2279,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "cross-env": { "version": "7.0.3", @@ -2217,6 +2322,11 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -2458,8 +2568,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "fsevents": { "version": "2.3.2", @@ -2484,7 +2593,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2558,7 +2666,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -2567,8 +2674,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "is-core-module": { "version": "2.11.0", @@ -2731,7 +2837,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2752,7 +2857,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "requires": { "wrappy": "1" } @@ -2783,8 +2887,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" }, "path-key": { "version": "3.1.1", @@ -3104,6 +3207,86 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==" + }, + "vscode-textmate": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-7.0.4.tgz", + "integrity": "sha512-9hJp0xL7HW1Q5OgGe03NACo7yiCTMEk3WU/rtKXUbncLtdg6rVVNJnHwD88UhbIYU2KoxY0Dih0x+kIsmUKn2A==" + }, + "vscode-tmgrammar-test": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/vscode-tmgrammar-test/-/vscode-tmgrammar-test-0.1.3.tgz", + "integrity": "sha512-Wg6Pz+ePAT1O+F/A1Fc4wS5vY2X+HNtgN4qMdL+65NLQYd1/zdDWH4fhwsLjX8wTzeXkMy49Cr4ZqWTJ7VnVxg==", + "requires": { + "bottleneck": "^2.19.5", + "chalk": "^2.4.2", + "commander": "^9.2.0", + "diff": "^4.0.2", + "glob": "^7.1.6", + "vscode-oniguruma": "^1.5.1", + "vscode-textmate": "^7.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -3122,8 +3305,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "yallist": { "version": "4.0.0", diff --git a/package.json b/package.json index e2d325f..1f6e369 100644 --- a/package.json +++ b/package.json @@ -43,12 +43,16 @@ "Textual Protobuf", "pbtxt", "prototxt", - "textproto" + "textproto", + "textpb", + "txtpb" ], "extensions": [ ".pbtxt", ".prototxt", - ".textproto" + ".textproto", + ".textpb", + ".txtpb" ], "configuration": "./language-configuration.json" } @@ -84,13 +88,17 @@ "format:check": "prettier --check .", "format:fix": "prettier --write .", "lint": "eslint .", - "test": "npm run format:check && npm run lint", + "test": "npm run format:check && npm run lint && npm run test:unit && npm run test:snapshot", + "test:unit": "vscode-tmgrammar-test 'tests/unit/**/*.textproto'", + "test:snapshot": "vscode-tmgrammar-snap 'tests/snap/**/*.textproto'", + "test:snapshot:update": "vscode-tmgrammar-snap --updateSnapshot 'tests/snap/**/*.textproto'", "watch": "cross-env NODE_ENV=development npm run build -- --watch", "vscode:prepublish": "cross-env NODE_ENV=production npm run build" }, "dependencies": { "highlight.js": "^10.4.1", - "markdown-it-highlightjs": "^3.4.0" + "markdown-it-highlightjs": "^3.4.0", + "vscode-tmgrammar-test": "^0.1.3" }, "devDependencies": { "@rollup/plugin-commonjs": "^17.0.0", diff --git a/tests/snap/example.textproto b/tests/snap/example.textproto new file mode 100644 index 0000000..43197c0 --- /dev/null +++ b/tests/snap/example.textproto @@ -0,0 +1,41 @@ +# This is a comment +# hi there + +b { c { + d: 5 + }} + + a { + b: { + c { + d: 1043E-04f + f: 0xfffFF00aeF + reg_scalar: 10 + reg_scalar: -inf + reg_message { foo: "bar" } + [com.foo.ext.scalar]: 10 + [com.foo.ext.message] { foo: "bar" } + + any_value { + [type.googleapis.com/com.foo.any] { foo: "bar" } + } + nums: [ + 1, + 2, + 3, + 4 + ], + objs: [ + { a: 1 }, + { a: 2 }, + { a: 3 }, + { a: 4 }, + ], + nums2: 3, + nums2: 3, + nums2: 3, + nums2: 3, + nums2: 3, + } + } + } diff --git a/tests/snap/example.textproto.snap b/tests/snap/example.textproto.snap new file mode 100644 index 0000000..f6c9cc6 --- /dev/null +++ b/tests/snap/example.textproto.snap @@ -0,0 +1,224 @@ +># This is a comment +#^ source.textproto comment.line.number-sign.textproto punctuation.definition.comment.textproto +# ^^^^^^^^^^^^^^^^^^ source.textproto comment.line.number-sign.textproto +># hi there +#^ source.textproto comment.line.number-sign.textproto punctuation.definition.comment.textproto +# ^^^^^^^^^ source.textproto comment.line.number-sign.textproto +> +>b { c { +#^ source.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.begin.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.begin.textproto +> d: 5 +#^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +> }} +#^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.end.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> +> a { +#^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.begin.textproto +> b: { +#^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.begin.textproto +> c { +#^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.begin.textproto +> d: 1043E-04f +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> f: 0xfffFF00aeF +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^^^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.hex.textproto +> reg_scalar: 10 +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +> reg_scalar: -inf +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> reg_message { foo: "bar" } +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.begin.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto string.quoted.double.textproto punctuation.definition.string.begin.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto string.quoted.double.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto string.quoted.double.textproto punctuation.definition.string.end.textproto +# ^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> [com.foo.ext.scalar]: 10 +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^^^^^^^^^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +> [com.foo.ext.message] { foo: "bar" } +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^^^^^^^^^^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.begin.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto string.quoted.double.textproto punctuation.definition.string.begin.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto string.quoted.double.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto string.quoted.double.textproto punctuation.definition.string.end.textproto +# ^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> +> any_value { +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto entity.name.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.begin.textproto +> [type.googleapis.com/com.foo.any] { foo: "bar" } +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto string.quoted.double.textproto punctuation.definition.string.begin.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto string.quoted.double.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto string.quoted.double.textproto punctuation.definition.string.end.textproto +# ^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> } +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.end.textproto +> nums: [ +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto punctuation.definition.array.begin.textproto +> 1, +#^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto constant.numeric.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto punctuation.separator.array.textproto +> 2, +#^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto constant.numeric.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto punctuation.separator.array.textproto +> 3, +#^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto constant.numeric.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto punctuation.separator.array.textproto +> 4 +#^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto constant.numeric.textproto +> ], +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto punctuation.definition.array.end.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> objs: [ +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto +# ^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto punctuation.definition.array.begin.textproto +> { a: 1 }, +#^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.begin.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> { a: 2 }, +#^^^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> { a: 3 }, +#^^^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> { a: 4 }, +#^^^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> ], +#^^^^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +> nums2: 3, +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> nums2: 3, +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> nums2: 3, +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> nums2: 3, +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> nums2: 3, +#^^^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto variable.textproto meta.structure.dictionary.value.textproto punctuation.separator.dictionary.key-value.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto constant.numeric.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto support.type.property-name.textproto +> } +#^^^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto meta.structure.dictionary.textproto punctuation.definition.dictionary.end.textproto +> } +#^^^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto invalid.illegal.expected-array-separator.textproto +> } +#^^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto +# ^ source.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.dictionary.textproto support.type.property-name.textproto meta.structure.array.textproto invalid.illegal.expected-array-separator.textproto +> \ No newline at end of file diff --git a/tests/unit/comments.test.textproto b/tests/unit/comments.test.textproto new file mode 100644 index 0000000..935ca7d --- /dev/null +++ b/tests/unit/comments.test.textproto @@ -0,0 +1,5 @@ +// SYNTAX TEST "source.textproto" "comment tests" + + # test nominal single line comment + // <- punctuation.definition.comment.textproto + // <---------------------------------- comment.line.number-sign.textproto diff --git a/tests/unit/messages.test.textproto b/tests/unit/messages.test.textproto new file mode 100644 index 0000000..2ffa4f7 --- /dev/null +++ b/tests/unit/messages.test.textproto @@ -0,0 +1,22 @@ +// SYNTAX TEST "source.textproto" "message tests" + +pet { +//<- support.type.property-name.textproto +// ^ punctuation.definition.dictionary.begin.textproto + kind: DOG +//^support.type.property-name.textproto +//^meta.structure.dictionary.value.textproto +// ^ punctuation.separator.dictionary.key-value.textproto +// ^^^ variable.other.readonly.textproto + name: "Fluffy" +//^support.type.property-name.textproto +//^meta.structure.dictionary.value.textproto +// ^ punctuation.separator.dictionary.key-value.textproto +// ^^^^^^^^ string.quoted.double.textproto + tail_wagginess: 0xA6 +//^support.type.property-name.textproto +//^meta.structure.dictionary.value.textproto +// ^ punctuation.separator.dictionary.key-value.textproto +// ^^^^ constant.numeric.hex.textproto +} +//<- punctuation.definition.dictionary.end.textproto