-
-
Save tubone24/b00e71c41a9c2305b734d7c9e787fe28 to your computer and use it in GitHub Desktop.
{"lastUpload":"2023-05-22T01:51:57.956Z","extensionVersion":"v3.4.3"} |
{"version":1,"resource":"file:///Users/tubone24/.bash_profile","entries":[{"id":"rjzt","timestamp":1662042052972}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/aiscript-syntax/LICENSE","entries":[{"id":"mIpS","timestamp":1680621855635}]} |
{"version":1,"resource":"file:///Users/yuotsubo/Downloads/%E3%83%8F%E3%83%B3%E3%83%8A%E3%81%95%E3%82%93.md","entries":[{"id":"9oyu.md","source":"textFileCreate.source","timestamp":1655894002287},{"id":"47Qy.md","timestamp":1655894092732},{"id":"Fdfu.md","timestamp":1655894185539},{"id":"H62T.md","timestamp":1655947707692}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/force-app/main/default/permissionsets/Apex_Recipes.permissionset-meta.xml","entries":[{"id":"c8FE.xml","timestamp":1676893727011},{"id":"FTSj.xml","timestamp":1676893745919}]} |
{"version":1,"resource":"file:///Users/yuotsubo/.config/git/hooks/pre-push","entries":[{"id":"fgCC","timestamp":1662381656058}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/force-app/main/default/lwc/jsconfig.json","entries":[{"id":"T87g.json","timestamp":1676891685927}]} |
{ | |
"compilerOptions": { | |
"experimentalDecorators": true | |
}, | |
"include": [ | |
"**/*", | |
"../../../../.sfdx/typings/lwc/**/*.d.ts" | |
], | |
"paths": { | |
"c/*": [ | |
"*" | |
] | |
}, | |
"typeAcquisition": { | |
"include": [ | |
"jest" | |
] | |
} | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/.zshrc","entries":[{"id":"1QBV","timestamp":1661754359311},{"id":"AR1U","timestamp":1661754438869},{"id":"F3e5","timestamp":1661754453072},{"id":"8Jzn","timestamp":1663591218544},{"id":"hcJc","timestamp":1671843784595}]} |
{"version":1,"resource":"file:///Users/tubone24/share_windows/%E3%83%A1%E3%83%A2.txt","entries":[{"id":"33BJ.txt","timestamp":1655087369433},{"id":"CDW3.txt","timestamp":1655087384164}]} |
{"version":1,"resource":"vsls:/force-app/main/default/applications/Hello.app-meta.xml","entries":[{"id":"LYg8.xml","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/infrastructure/production/index.html","entries":[{"id":"NUK8.html","source":"textFileCreate.source","timestamp":1665578311375}]} |
{"version":1,"resource":"file:///Users/tubone24/%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9Ahc.txt","entries":[{"id":"GRAC.txt","source":"textFileCreate.source","timestamp":1650719012093},{"id":"9jJi.txt","timestamp":1651218673439}]} |
{"version":1,"resource":"vsls:/force-app/main/default/classes/ApiKeyTests.cls","entries":[{"id":"wdpm.cls","source":"Workspace Edit","timestamp":null}]} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文です。" | |
] | |
}, | |
"[Ui:C:mfm]":{ | |
"prefix":"Ui:C:mfm", | |
"body":[ | |
"[Ui:C:mfm({ text: \"someText\"}]" | |
], | |
"description":[ | |
"MFMテキスト" | |
] | |
} | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
"[Ui:C:mfm]":{ | |
"prefix":"Ui:C:mfm", | |
"body":[ | |
"[Ui:C:mfm({ text: \"someText\"}]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文です。" | |
] | |
}, | |
"[Ui:C:mfm]":{ | |
"prefix":"Ui:C:mfm", | |
"body":[ | |
"[Ui:C:mfm({ text: \"someText\"}]" | |
], | |
"description":[ | |
"Markup language For Misskeyで指定されるテキストを解釈して表示します。", | |
"詳細についてはhttps://misskey-hub.net/docs/features/mfm.htmlを参照ください。" | |
] | |
} | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文です。" | |
] | |
}, | |
"[Ui:C:mfm]":{ | |
"prefix":"Ui:C:mfm", | |
"body":[ | |
"[Ui:C:mfm({ text: \"someText\", size: 1, bold: false, color: \"#000\", font: \"sans-serif\"})]" | |
], | |
"description":[ | |
"Markup language For Misskeyで指定されるテキストを解釈して表示します。", | |
"詳細についてはhttps://misskey-hub.net/docs/features/mfm.htmlを参照ください。" | |
] | |
} | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/project/aiscript-syntax/snippets/aiscript.snippet.json","entries":[{"id":"uhrk.json","timestamp":1680684546326},{"id":"U2KI.json","timestamp":1680684570978},{"id":"J5t3.json","timestamp":1680684594082},{"id":"PtUc.json","timestamp":1680684640147},{"id":"s0tb.json","timestamp":1680684651587},{"id":"PZQh.json","timestamp":1680684690954},{"id":"nN14.json","timestamp":1680684731354},{"id":"B5c4.json","timestamp":1680684747054},{"id":"AF4L.json","timestamp":1680684767248},{"id":"KYK7.json","timestamp":1680684787430},{"id":"et5U.json","timestamp":1680684798261},{"id":"CFpm.json","timestamp":1680684824492},{"id":"zy5W.json","timestamp":1680684915689},{"id":"e35u.json","timestamp":1680684970823}]} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文です。" | |
] | |
}, | |
"[Ui:C:mfm]":{ | |
"prefix":"Ui:C:mfm", | |
"body":[ | |
"[Ui:C:mfm({ text: \"someText\"}]" | |
], | |
"description":[ | |
"Markup language For Misskeyで指定されるテキストを解釈して表示します。" | |
] | |
} | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文です。" | |
] | |
}, | |
"[Ui:C:mfm]":{ | |
"prefix":"Ui:C:mfm", | |
"body":[ | |
"[Ui:C:mfm({ text: \"someText\"}]" | |
], | |
"description":[ | |
"Markup language For Misskeyテキスト" | |
] | |
} | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
"[Ui:C:mfm]":{ | |
"prefix":"Ui:C:mfm", | |
"body":[ | |
"[Ui:C:mfm({}]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
"[Ui:C:container]":{ | |
"prefix":"Ui:C:container", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
} | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
"[Ui:C:container]":{ | |
"prefix":"Ui:C:container", | |
"body":[ | |
"[Ui:C:container([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文" | |
] | |
}, | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
} | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
} | |
} |
{ | |
"[Mk:dialog]":{ | |
"prefix":"Mk:dialog", | |
"body":[ | |
"[Mk:dialog(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると info になります。" | |
] | |
}, | |
"[Mk:confirm]":{ | |
"prefix":"Mk:confirm", | |
"body":[ | |
"[Mk:confirm(\"title\" \"text\" \"type\")]" | |
], | |
"description":[ | |
"確認ダイアログを表示します。typeには以下の値が設定できます。", | |
"info success warn error question", | |
"省略すると question になります。", | |
"ユーザーが\"OK\"を選択した場合は true を、\"キャンセル\"を選択した場合は false が返ります。" | |
] | |
}, | |
"[Mk:api]":{ | |
"prefix":"Mk:api", | |
"body":[ | |
"[Mk:api(\"endpoint\" \"params\")]" | |
], | |
"description":[ | |
"Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。" | |
] | |
}, | |
"[Mk:save]":{ | |
"prefix":"Mk:save", | |
"body":[ | |
"[Mk:save(\"key\" \"value\")]" | |
], | |
"description":[ | |
"任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。" | |
] | |
}, | |
"[Mk:load]":{ | |
"prefix":"Mk:load", | |
"body":[ | |
"[Mk:load(\"key\")]" | |
], | |
"description":[ | |
"Mk:saveで永続化した指定の名前の値を読み取ります。" | |
] | |
}, | |
"[Plugin:register_post_form_action]":{ | |
"prefix":"Plugin:register_post_form_action", | |
"body":[ | |
"[Plugin:register_post_form_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_action]":{ | |
"prefix":"Plugin:register_note_action", | |
"body":[ | |
"[Plugin:register_note_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_user_action]":{ | |
"prefix":"Plugin:register_user_action", | |
"body":[ | |
"[Plugin:register_user_action(\"title\" \"fn\")]" | |
], | |
"description":[ | |
"ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。", | |
"コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。" | |
] | |
}, | |
"[Plugin:register_note_view_interruptor]":{ | |
"prefix":"Plugin:register_note_view_interruptor", | |
"body":[ | |
"[Plugin:register_note_view_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"UIに表示されるノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:register_note_post_interruptor]":{ | |
"prefix":"Plugin:register_note_post_interruptor", | |
"body":[ | |
"[Plugin:register_note_post_interruptor(\"fn\")]" | |
], | |
"description":[ | |
"ノート投稿時にノート情報を書き換えます。", | |
"コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。", | |
"コールバック関数の返り値でノートが書き換えられます。" | |
] | |
}, | |
"[Plugin:open_url]":{ | |
"prefix":"Plugin:open_url", | |
"body":[ | |
"[Plugin:open_url(\"url\")]" | |
], | |
"description":[ | |
"第一引数に渡されたURLをブラウザの新しいタブで開きます。" | |
] | |
}, | |
"[Plugin:config]":{ | |
"prefix":"Plugin:config", | |
"body":[ | |
"[Plugin:config()]" | |
], | |
"description":[ | |
"プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。" | |
] | |
}, | |
"[Ui:render]":{ | |
"prefix":"Ui:render", | |
"body":[ | |
"[Ui:render([children])]" | |
], | |
"description":[ | |
"Ui:root.update({ children: [...] }) の糖衣構文です。" | |
] | |
}, | |
"[Ui:C:mfm]":{ | |
"prefix":"Ui:C:mfm", | |
"body":[ | |
"[Ui:C:mfm({ text: \"someText\", size: 1, bold: false}]" | |
], | |
"description":[ | |
"Markup language For Misskeyで指定されるテキストを解釈して表示します。", | |
"詳細についてはhttps://misskey-hub.net/docs/features/mfm.htmlを参照ください。" | |
] | |
} | |
} |
{"version":1,"resource":"vsls:/force-app/main/default/classes/GetEventHubLead.cls","entries":[{"id":"Hw76.cls","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/force-app/main/default/objects/ApiKey__mdt/fields/KeyLabel__c.field-meta.xml","entries":[{"id":"7cFB.xml","timestamp":1684413069203}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/aiscript-syntax/README.md","entries":[{"id":"hukl.md","timestamp":1680368078525},{"id":"D40C.md","timestamp":1680368091157},{"id":"jqYd.md","timestamp":1680368121439},{"id":"4SWh.md","timestamp":1680368133783},{"id":"VZEu.md","timestamp":1680621678564},{"id":"Vwej.md","timestamp":1680621720021},{"id":"Ljo4.md","source":"undoRedo.source","timestamp":1680621726418},{"id":"NFw1.md","timestamp":1680621880800},{"id":"55Nx.md","timestamp":1680684205057},{"id":"Ozdx.md","timestamp":1680684232147},{"id":"EKTe.md","timestamp":1680684280391},{"id":"WLrP.md","timestamp":1680684464908},{"id":"nkgQ.md","timestamp":1681099219049},{"id":"YzFi.md","timestamp":1681099296766},{"id":"G6Za.md","timestamp":1681099366515}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/force-app/main/default/lwc/testOtsuboEventHubLead/testOtsuboEventHubLead.css","entries":[{"id":"IN9o.css","timestamp":1676962712304},{"id":"U900.css","timestamp":1676962792923},{"id":"EqLu.css","timestamp":1676962866350},{"id":"jHYT.css","source":"undoRedo.source","timestamp":1676962867676},{"id":"IrCc.css","timestamp":1676962899470},{"id":"215A.css","timestamp":1676963023182},{"id":"KGlZ.css","timestamp":1676963165444},{"id":"Jtle.css","timestamp":1676963293231},{"id":"2Yti.css","source":"undoRedo.source","timestamp":1677488953801},{"id":"AoYe.css","timestamp":1678782356251},{"id":"xQND.css","timestamp":1678782533976},{"id":"oeS4.css","timestamp":1678782576549},{"id":"JJJc.css","timestamp":1678782924668},{"id":"PT0C.css","timestamp":1678783007648},{"id":"ggvN.css","timestamp":1678783087055},{"id":"Xw7Y.css","timestamp":1678783242044},{"id":"xu1N.css","timestamp":1678783282086},{"id":"C8tX.css","timestamp":1678783298897},{"id":"cWHg.css","timestamp":1678783603439},{"id":"2S97.css","timestamp":1678783761385},{"id":"u1tk.css","timestamp":1678783936937},{"id":"rtlZ.css","timestamp":1678784006161},{"id":"10Ex.css","timestamp":1678784052752},{"id":"5aQy.css","timestamp":1678784172672},{"id":"ffsc.css","timestamp":1678784260094},{"id":"nnOD.css","timestamp":1678784809728},{"id":"G5Sv.css","timestamp":1678784872825},{"id":"PxUW.css","timestamp":1678784885485},{"id":"RwjU.css","timestamp":1678784962946},{"id":"Kt4t.css","timestamp":1678785033299},{"id":"O4IE.css","timestamp":1678785049194},{"id":"SUjz.css","timestamp":1678785221477},{"id":"Q8YP.css","timestamp":1678785292803},{"id":"mDfD.css","timestamp":1678785395279},{"id":"ojz4.css","timestamp":1678785537073}]} |
{"version":1,"resource":"file:///Users/yuotsubo/Downloads/aaa","entries":[{"id":"k5G3","source":"textFileCreate.source","timestamp":1669804996843},{"id":"ay2E","timestamp":1669805220768},{"id":"hoII","timestamp":1669805628639}]} |
{"version":1,"resource":"vscode-userdata:/Users/tubone24/Library/Application%20Support/Code/User/settings.json","entries":[{"id":"ZSFh.json","timestamp":1662874900749},{"id":"Uewa.json","timestamp":1679504371238},{"id":"lWUR.json","timestamp":1679504439222}]} |
{ | |
"sync.gist": "b00e71c41a9c2305b734d7c9e787fe28", | |
"sync.autoDownload": true, | |
"sync.autoUpload": true, | |
"mssql.connections": [ | |
{ | |
"server": "{{put-server-name-here}}", | |
"database": "{{put-database-name-here}}", | |
"user": "{{put-username-here}}", | |
"password": "" | |
} | |
], | |
"security.workspace.trust.untrustedFiles": "open", | |
"yaml.schemas": {}, | |
"yaml.customTags": [ | |
"!And", | |
"!And sequence", | |
"!If", | |
"!If sequence", | |
"!Not", | |
"!Not sequence", | |
"!Equals", | |
"!Equals sequence", | |
"!Or", | |
"!Or sequence", | |
"!FindInMap", | |
"!FindInMap sequence", | |
"!Base64", | |
"!Join", | |
"!Join sequence", | |
"!Cidr", | |
"!Ref", | |
"!Sub", | |
"!Sub sequence", | |
"!GetAtt", | |
"!GetAZs", | |
"!ImportValue", | |
"!ImportValue sequence", | |
"!Select", | |
"!Select sequence", | |
"!Split", | |
"!Split sequence" | |
], | |
"workbench.editor.enablePreview": false, | |
"workbench.editorAssociations": { | |
"*.xlsx": "default" | |
}, | |
"json.schemas": [], | |
"editor.unicodeHighlight.nonBasicASCII": false, | |
"editor.suggest.showMethods": true, | |
"editor.suggest.preview": true, | |
"editor.acceptSuggestionOnEnter": "on", | |
"editor.snippetSuggestions": "top", | |
"atomKeymap.promptV3Features": true, | |
"markdown-pdf.executablePath": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", | |
"settingsSync.ignoredExtensions": [ | |
], | |
"editor.inlineSuggest.enabled": true, | |
"github.copilot.enable": { | |
"*": true, | |
"yaml": false, | |
"plaintext": true, | |
"markdown": false | |
} | |
} |
{ | |
"sync.gist": "b00e71c41a9c2305b734d7c9e787fe28", | |
"sync.autoDownload": true, | |
"sync.autoUpload": true, | |
"mssql.connections": [ | |
{ | |
"server": "{{put-server-name-here}}", | |
"database": "{{put-database-name-here}}", | |
"user": "{{put-username-here}}", | |
"password": "" | |
} | |
], | |
"security.workspace.trust.untrustedFiles": "open", | |
"yaml.schemas": {}, | |
"yaml.customTags": [ | |
"!And", | |
"!And sequence", | |
"!If", | |
"!If sequence", | |
"!Not", | |
"!Not sequence", | |
"!Equals", | |
"!Equals sequence", | |
"!Or", | |
"!Or sequence", | |
"!FindInMap", | |
"!FindInMap sequence", | |
"!Base64", | |
"!Join", | |
"!Join sequence", | |
"!Cidr", | |
"!Ref", | |
"!Sub", | |
"!Sub sequence", | |
"!GetAtt", | |
"!GetAZs", | |
"!ImportValue", | |
"!ImportValue sequence", | |
"!Select", | |
"!Select sequence", | |
"!Split", | |
"!Split sequence" | |
], | |
"workbench.editor.enablePreview": false, | |
"workbench.editorAssociations": { | |
"*.xlsx": "default" | |
}, | |
"json.schemas": [], | |
"editor.unicodeHighlight.nonBasicASCII": false, | |
"editor.suggest.showMethods": true, | |
"editor.suggest.preview": true, | |
"editor.acceptSuggestionOnEnter": "on", | |
"editor.snippetSuggestions": "top", | |
"atomKeymap.promptV3Features": true, | |
"markdown-pdf.executablePath": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", | |
"settingsSync.ignoredExtensions": [ | |
], | |
"editor.inlineSuggest.enabled": true | |
} |
{ | |
"sync.gist": "b00e71c41a9c2305b734d7c9e787fe28", | |
"sync.autoDownload": true, | |
"sync.autoUpload": true, | |
"mssql.connections": [ | |
{ | |
"server": "{{put-server-name-here}}", | |
"database": "{{put-database-name-here}}", | |
"user": "{{put-username-here}}", | |
"password": "" | |
} | |
], | |
"security.workspace.trust.untrustedFiles": "open", | |
"yaml.schemas": {}, | |
"yaml.customTags": [ | |
"!And", | |
"!And sequence", | |
"!If", | |
"!If sequence", | |
"!Not", | |
"!Not sequence", | |
"!Equals", | |
"!Equals sequence", | |
"!Or", | |
"!Or sequence", | |
"!FindInMap", | |
"!FindInMap sequence", | |
"!Base64", | |
"!Join", | |
"!Join sequence", | |
"!Cidr", | |
"!Ref", | |
"!Sub", | |
"!Sub sequence", | |
"!GetAtt", | |
"!GetAZs", | |
"!ImportValue", | |
"!ImportValue sequence", | |
"!Select", | |
"!Select sequence", | |
"!Split", | |
"!Split sequence" | |
], | |
"workbench.editor.enablePreview": false, | |
"workbench.editorAssociations": { | |
"*.xlsx": "default" | |
}, | |
"json.schemas": [], | |
"editor.unicodeHighlight.nonBasicASCII": false, | |
"editor.suggest.showMethods": true, | |
"editor.suggest.preview": true, | |
"editor.acceptSuggestionOnEnter": "on", | |
"editor.snippetSuggestions": "top" | |
} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/eventsList/eventsList.js","entries":[{"id":"13Xt.js","source":"Workspace Edit","timestamp":null},{"id":"1kLU.js","source":"Workspace Edit","timestamp":null},{"id":"2oei.js","timestamp":null},{"id":"BaeO.js","source":"Workspace Edit","timestamp":null},{"id":"JXhq.js","timestamp":null},{"id":"JiEN.js","timestamp":null},{"id":"JrxE.js","source":"Workspace Edit","timestamp":null},{"id":"OfLP.js","source":"Workspace Edit","timestamp":null},{"id":"Q6NW.js","timestamp":null},{"id":"S3oO.js","source":"Workspace Edit","timestamp":null},{"id":"YwmI.js","source":"Workspace Edit","timestamp":null},{"id":"eLWk.js","source":"Workspace Edit","timestamp":null},{"id":"fhI0.js","source":"Workspace Edit","timestamp":null},{"id":"hNEB.js","timestamp":null},{"id":"hcd7.js","timestamp":null},{"id":"k5dr.js","source":"undoRedo.source","timestamp":null},{"id":"laGs.js","source":"Workspace Edit","timestamp":null},{"id":"ncLi.js","timestamp":null},{"id":"pgEn.js","source":"Workspace Edit","timestamp":null},{"id":"rEBa.js","source":"Workspace Edit","timestamp":null},{"id":"rthY.js","timestamp":null},{"id":"lrcO.js","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/force-app/main/default/lwc/testOtsuboEventHubLead/testOtsuboEventHubLead.js-meta.xml","entries":[{"id":"9oB8.xml","timestamp":1676883297575},{"id":"eica.xml","timestamp":1676883967292},{"id":"9rne.xml","timestamp":1676884054500},{"id":"PIAB.xml","timestamp":1676890894234},{"id":"KgUj.xml","timestamp":1676890966789}]} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"version": "0.0.1", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
] | |
} | |
} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"repository": "https://github.com/tubone24/aiscript-syntax-vscode", | |
"license": "MIT", | |
"version": "0.0.2", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
], | |
"snippets": [ | |
{ | |
"language": "aiscript", | |
"scopeName":"source.is", | |
"path": "./snippets/aiscript.snippet.json" | |
} | |
] | |
} | |
} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"repository": "https://github.com/tubone24/aiscript-syntax-vscode", | |
"license": "MIT", | |
"version": "0.2.0", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages", | |
"AiScript" | |
], | |
"scripts": { | |
"vsce": "vsce", | |
"package": "npm run vsce package", | |
"publish": "npm run vsce publish", | |
"fmt": "prettier --write **/*.{json,md} *.{json,md}", | |
"fmt:check": "prettier --check **/*.{json,md} *.{json,md}" | |
}, | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
], | |
"snippets": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./snippets/aiscript.snippet.json" | |
} | |
] | |
}, | |
"devDependencies": { | |
"@vscode/vsce": "2.19.0", | |
"prettier": "2.8.7" | |
} | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/project/aiscript-syntax/package.json","entries":[{"id":"TFHp.json","timestamp":1680316555695},{"id":"jAy4.json","timestamp":1680316830923},{"id":"5WZ0.json","timestamp":1680317163914},{"id":"gwjb.json","timestamp":1680317299709},{"id":"mM9V.json","timestamp":1680368192331},{"id":"YYmz.json","timestamp":1680621783520},{"id":"9DUj.json","timestamp":1680621866952},{"id":"W0Q1.json","timestamp":1680622249809},{"id":"dz7M.json","timestamp":1681570143091},{"id":"oTkW.json","timestamp":1681571092691},{"id":"F3gm.json","timestamp":1681627181775}]} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"repository": "https://github.com/tubone24/aiscript-syntax-vscode", | |
"icon": "icon.png", | |
"license": "MIT", | |
"version": "0.2.1", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"scripts": { | |
"vsce": "vsce", | |
"package": "npm run vsce package", | |
"publish": "npm run vsce publish", | |
"fmt": "prettier --write **/*.{json,md} *.{json,md}", | |
"fmt:check": "prettier --check **/*.{json,md} *.{json,md}" | |
}, | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
], | |
"snippets": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./snippets/aiscript.snippet.json" | |
} | |
] | |
}, | |
"devDependencies": { | |
"@vscode/vsce": "2.19.0", | |
"prettier": "2.8.7" | |
} | |
} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"version": "0.0.1", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
] | |
} | |
} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"version": "0.0.1", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
] | |
} | |
} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"version": "0.0.1", | |
"repository": "https://github.com/tubone24/aiscript-syntax-vscode", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
] | |
} | |
} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"repository": "https://github.com/tubone24/aiscript-syntax-vscode", | |
"license": "MIT", | |
"version": "0.2.0", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"scripts": { | |
"vsce": "vsce", | |
"package": "npm run vsce package", | |
"publish": "npm run vsce publish", | |
"fmt": "prettier --write **/*.{json,md} *.{json,md}", | |
"fmt:check": "prettier --check **/*.{json,md} *.{json,md}" | |
}, | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
], | |
"snippets": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./snippets/aiscript.snippet.json" | |
} | |
] | |
}, | |
"devDependencies": { | |
"@vscode/vsce": "2.19.0", | |
"prettier": "2.8.7" | |
} | |
} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"version": "0.0.1", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
] | |
} | |
} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"repository": "https://github.com/tubone24/aiscript-syntax-vscode", | |
"license": "MIT", | |
"version": "0.0.3", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
], | |
"snippets": [ | |
{ | |
"language": "aiscript", | |
"scopeName":"source.is", | |
"path": "./snippets/aiscript.snippet.json" | |
} | |
] | |
} | |
} |
{ | |
"name": "aiscript-syntax", | |
"displayName": "AiScript Syntax", | |
"description": "Provides AiScript syntax for Visual Studio Code", | |
"publisher": "tubone24", | |
"repository": "https://github.com/tubone24/aiscript-syntax-vscode", | |
"version": "0.0.1", | |
"engines": { | |
"vscode": "^1.77.0" | |
}, | |
"categories": [ | |
"Programming Languages" | |
], | |
"contributes": { | |
"languages": [ | |
{ | |
"id": "aiscript", | |
"aliases": [ | |
"AiScript", | |
"aiscript" | |
], | |
"extensions": [ | |
".is" | |
], | |
"configuration": "./language-configuration.json" | |
} | |
], | |
"grammars": [ | |
{ | |
"language": "aiscript", | |
"scopeName": "source.is", | |
"path": "./syntaxes/aiscript.tmLanguage.json" | |
} | |
], | |
"snippets": [ | |
{ | |
"language": "aiscript", | |
"scopeName":"source.is", | |
"path": "./snippets/aiscript.snippet.json" | |
} | |
] | |
} | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/force-app/main/default/classes/ApiKey.cls","entries":[{"id":"Pc2A.cls","timestamp":1684395382176},{"id":"wKRC.cls","timestamp":1684395527414},{"id":"iBR3.cls","timestamp":1684467175156}]} |
{"version":1,"resource":"vsls:/package.json","entries":[{"id":"JaUn.json","source":"Workspace Edit","timestamp":null}]} |
{ | |
"name": "salesforce-app", | |
"private": true, | |
"version": "1.0.0", | |
"description": "Salesforce App", | |
"scripts": { | |
"lint": "eslint **/{aura,lwc}/**", | |
"test": "npm run test:unit", | |
"test:unit": "sfdx-lwc-jest", | |
"test:unit:watch": "sfdx-lwc-jest --watch", | |
"test:unit:debug": "sfdx-lwc-jest --debug", | |
"test:unit:coverage": "sfdx-lwc-jest --coverage", | |
"prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", | |
"prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", | |
"postinstall": "husky install", | |
"precommit": "lint-staged" | |
}, | |
"devDependencies": { | |
"@lwc/eslint-plugin-lwc": "^1.1.2", | |
"@prettier/plugin-xml": "^2.0.1", | |
"@salesforce/eslint-config-lwc": "^3.2.3", | |
"@salesforce/eslint-plugin-aura": "^2.0.0", | |
"@salesforce/eslint-plugin-lightning": "^1.0.0", | |
"@salesforce/sfdx-lwc-jest": "^1.3.0", | |
"eslint": "^8.11.0", | |
"eslint-plugin-import": "^2.25.4", | |
"eslint-plugin-jest": "^26.1.2", | |
"husky": "^7.0.4", | |
"lint-staged": "^12.3.7", | |
"prettier": "^2.6.0", | |
"prettier-plugin-apex": "^1.10.0" | |
}, | |
"lint-staged": { | |
"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}": [ | |
"prettier --write" | |
], | |
"**/{aura,lwc}/**": [ | |
"eslint" | |
] | |
} | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/.huskyrc","entries":[{"id":"ea8T","source":"textFileCreate.source","timestamp":1656242660172}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/scripts/apex/hello.apex","entries":[{"id":"wAkZ.apex","source":"undoRedo.source","timestamp":1676887031211}]} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/eventsList/__tests__/eventsList.js","entries":[{"id":"BgEW.js","source":"Workspace Edit","timestamp":null},{"id":"lzAz.js","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/Downloads/plantuml","entries":[{"id":"SRP5","source":"textFileCreate.source","timestamp":1662736055656}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/force-app/main/default/classes/GetEventHubLead.cls","entries":[{"id":"p02a.cls","timestamp":1684395426874},{"id":"vTSq.cls","timestamp":1684411471320},{"id":"VISK.cls","timestamp":1684464608155},{"id":"craX.cls","timestamp":1684464749028}]} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/eventsList/__tests__/eventsList.test.js","entries":[{"id":"agX9.js","source":"Workspace Edit","timestamp":null},{"id":"kzQp.js","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/force-app/main/default/lwc/testOtsuboEventHubLead/testOtsuboEventHubLead.js","entries":[{"id":"jEY9.js","timestamp":1676956847228},{"id":"wK7P.js","timestamp":1676956857670},{"id":"ijZA.js","timestamp":1676956869087},{"id":"i2vT.js","timestamp":1676956912488},{"id":"9K4b.js","timestamp":1676956960608},{"id":"HgSt.js","timestamp":1676957011078},{"id":"2k9u.js","timestamp":1676957073273},{"id":"7Qr7.js","timestamp":1676957143966},{"id":"wog8.js","timestamp":1676957212747},{"id":"C70X.js","timestamp":1676957262017},{"id":"nRf5.js","timestamp":1676957527228},{"id":"v3t9.js","timestamp":1676957549716},{"id":"vkm8.js","timestamp":1676957700841},{"id":"TCR7.js","timestamp":1676957723585},{"id":"ctZI.js","timestamp":1676957806722},{"id":"ZMrI.js","timestamp":1676957846911},{"id":"XOJ4.js","timestamp":1676957888097},{"id":"9hvG.js","timestamp":1676957945265},{"id":"0Roa.js","timestamp":1676957969254},{"id":"gVbI.js","timestamp":1676958343423},{"id":"SCet.js","timestamp":1676963569689},{"id":"HUix.js","timestamp":1676963619055},{"id":"8WDm.js","timestamp":1676963646045},{"id":"a8fi.js","timestamp":1676963659562},{"id":"Qcuc.js","timestamp":1676967484742},{"id":"DNbO.js","timestamp":1676967517331},{"id":"jdYW.js","timestamp":1676967552314},{"id":"WswS.js","timestamp":1676967657205},{"id":"m8D1.js","timestamp":1678426333713},{"id":"FSV7.js","timestamp":1678426927490},{"id":"56XU.js","timestamp":1678686542243},{"id":"1bvs.js","timestamp":1678690667668},{"id":"PcHI.js","timestamp":1678705883328},{"id":"g6Qt.js","timestamp":1678705953179},{"id":"UOHH.js","timestamp":1678769897932},{"id":"vrCm.js","timestamp":1678770533294},{"id":"XAKu.js","timestamp":1678771519931},{"id":"VwHK.js","timestamp":1678780812887},{"id":"GiLk.js","timestamp":1678781036752},{"id":"HDTb.js","timestamp":1678781338918},{"id":"h9lJ.js","timestamp":1678781421317},{"id":"o5Nu.js","timestamp":1678781432314},{"id":"9otI.js","source":"undoRedo.source","timestamp":1678781648135},{"id":"xEre.js","timestamp":1678781711675},{"id":"8ya3.js","timestamp":1678781842575},{"id":"VOlM.js","timestamp":1678781889881},{"id":"pqTu.js","timestamp":1678782038210},{"id":"yVpC.js","timestamp":1678782735752},{"id":"qhmS.js","timestamp":1678782867326},{"id":"OSfN.js","timestamp":1678783290779}]} |
{"version":1,"resource":"file:///Users/tubone24/project/mac-auto-setup/ansible/mac/roles/dev-tools/tasks/main.yml","entries":[{"id":"mphY.yml","timestamp":1662041806625},{"id":"1byI.yml","timestamp":1662041948567}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/jest.config.js","entries":[{"id":"UXgs.js","timestamp":1680575085552},{"id":"kotz.js","timestamp":1680575147610},{"id":"cd5O.js","source":"undoRedo.source","timestamp":1680575155242},{"id":"zwSP.js","timestamp":1680575176783},{"id":"n5VV.js","source":"undoRedo.source","timestamp":1680575186576},{"id":"iJ5n.js","timestamp":1680575285119},{"id":"LqM3.js","timestamp":1680575326053},{"id":"XvVg.js","timestamp":1680575451697}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/force-app/main/default/classes/GetEventHubLead.cls","entries":[{"id":"uJAL.cls","timestamp":1676899985509},{"id":"plGy.cls","timestamp":1676899998083},{"id":"d4Pa.cls","timestamp":1676900145218},{"id":"z435.cls","timestamp":1676900166217},{"id":"X1jY.cls","timestamp":1676900316512},{"id":"pclF.cls","timestamp":1676900402325},{"id":"cMu0.cls","timestamp":1676900437310},{"id":"B3ft.cls","source":"undoRedo.source","timestamp":1676900449917},{"id":"KvDU.cls","timestamp":1676900514619},{"id":"pmaj.cls","source":"undoRedo.source","timestamp":1676900524599},{"id":"HfOO.cls","timestamp":1676900540511},{"id":"wtSw.cls","timestamp":1676900593466},{"id":"mYee.cls","timestamp":1676900788740},{"id":"JGzB.cls","timestamp":1676901061227},{"id":"SdUM.cls","timestamp":1676901103539},{"id":"MqSn.cls","timestamp":1676901143010},{"id":"CG2F.cls","timestamp":1676901218541},{"id":"Njwz.cls","timestamp":1676901252012},{"id":"Zgkj.cls","timestamp":1676901671371},{"id":"lbkw.cls","timestamp":1676901695814},{"id":"36fC.cls","timestamp":1676901728609},{"id":"UcNQ.cls","timestamp":1676901758420},{"id":"P9R5.cls","timestamp":1676901818085},{"id":"BErw.cls","timestamp":1676901897653},{"id":"qQhn.cls","timestamp":1676901929673},{"id":"7GGO.cls","timestamp":1676902069881},{"id":"pay8.cls","timestamp":1676902161057},{"id":"A1EV.cls","timestamp":1676902419138},{"id":"yOCU.cls","timestamp":1676902435836},{"id":"0QPc.cls","timestamp":1676902449214},{"id":"B8oU.cls","timestamp":1676902522874},{"id":"Ohpx.cls","timestamp":1676902626694},{"id":"Jav4.cls","timestamp":1676902644796},{"id":"V8hu.cls","timestamp":1676902701035},{"id":"MpLA.cls","timestamp":1676902800930},{"id":"HPRD.cls","timestamp":1676902820189},{"id":"XSDS.cls","timestamp":1676902833484},{"id":"ZtRZ.cls","timestamp":1676902851658},{"id":"8r5M.cls","source":"undoRedo.source","timestamp":1676902980932},{"id":"OrBk.cls","timestamp":1676903029985},{"id":"XbkJ.cls","timestamp":1676903056740},{"id":"QWxM.cls","timestamp":1676907659884},{"id":"zseN.cls","timestamp":1676907686226},{"id":"49NH.cls","timestamp":1676911410837},{"id":"fCpE.cls","timestamp":1676911422163},{"id":"VcAv.cls","timestamp":1676911559865},{"id":"LIaP.cls","timestamp":1676912017682},{"id":"oRpN.cls","timestamp":1676963414688},{"id":"cDj4.cls","source":"undoRedo.source","timestamp":1676963635190},{"id":"BJ4J.cls","timestamp":1679635957593}]} |
{"version":1,"resource":"file:///Users/yuotsubo/Downloads/new_read_and_write.json","entries":[{"id":"NalQ.json","source":"textFileCreate.source","timestamp":1669730613451}]} |
{ | |
"Version": "2012-10-17", | |
"Statement": [ | |
{ | |
"Action": [ | |
"s3:*" | |
], | |
"Resource": [ | |
"arn:aws:s3:::prod-michibiku-convocation-notice", | |
"arn:aws:s3:::prod-michibiku-convocation-notice/*", | |
"arn:aws:s3:::prod-michibiku-minutes", | |
"arn:aws:s3:::prod-michibiku-minutes/*", | |
"arn:aws:s3:::prod-michibiku-attachments", | |
"arn:aws:s3:::prod-michibiku-attachments/*", | |
"arn:aws:s3:::prod-michibiku-company-icon", | |
"arn:aws:s3:::prod-michibiku-company-icon/*" | |
], | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": [ | |
"cognito-idp:AdminDeleteUser", | |
"cognito-idp:AdminCreateUser", | |
"cognito-idp:AdminSetUserPassword", | |
"cognito-idp:AdminUpdateUserAttributes", | |
"cognito-idp:AssociateSoftwareToken", | |
"cognito-idp:VerifySoftwareToken", | |
"cognito-idp:AdminSetUserMFAPreference", | |
"cognito-idp:AdminGetUser", | |
"cognito-idp:AdminInitiateAuth", | |
"cognito-idp:AdminRespondToAuthChallenge" | |
], | |
"Resource": "arn:aws:cognito-idp:ap-northeast-1:486641582775:userpool/ap-northeast-1_3ScSQlUXw", | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": [ | |
"ses:SendEmail", | |
"ses:SendRawEmail" | |
], | |
"Resource": [ | |
"arn:aws:ses:ap-northeast-1:486641582775:identity/michibiku.co.jp", | |
"arn:aws:ses:ap-northeast-1:486641582775:configuration-set/configurationSetForEmailNotification" | |
], | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": [ | |
"s3:GetObject*", | |
"s3:GetBucket*", | |
"s3:List*", | |
"s3:DeleteObject*", | |
"s3:PutObject", | |
"s3:Abort*" | |
], | |
"Resource": [ | |
"arn:aws:s3:::prod-michibiku-transcriptions", | |
"arn:aws:s3:::prod-michibiku-transcriptions/*" | |
], | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": "states:StartExecution", | |
"Resource": "arn:aws:states:ap-northeast-1:486641582775:stateMachine:AmiVoiceRecognitionStateMachineProdB78594D7-77mVTs8dhbIY", | |
"Effect": "Allow" | |
} | |
] | |
} |
{"version":1,"resource":"file:///Users/tubone24/hc_pat.txt","entries":[{"id":"n3Dq.txt","source":"textFileCreate.source","timestamp":1650704020554}]} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/eventsList/eventsList.xml","entries":[{"id":"W07l.xml","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/eventsList/eventsList.css","entries":[{"id":"MPJ1.css","timestamp":null},{"id":"3fUI.css","source":"Workspace Edit","timestamp":null},{"id":"azVe.css","timestamp":null},{"id":"dsrC.css","source":"Workspace Edit","timestamp":null}]} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true | |
} | |
], | |
"name": "testOtsuboEventHubLead", | |
"namespace": "", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0" | |
} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true | |
} | |
], | |
"name": "testOtsuboEventHubLead", | |
"namespace": "testOtsuboEventHubLead", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0" | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/sfdx-project.json","entries":[{"id":"EJAV.json","timestamp":1676891440279},{"id":"d2K1.json","source":"undoRedo.source","timestamp":1676891464613}]} |
{"version":1,"resource":"file:///Users/yuotsubo/.ssh/config","entries":[{"id":"8PwP","timestamp":1657585524799},{"id":"oQL1","timestamp":1668416412506},{"id":"QbLd","timestamp":1668421673658},{"id":"5Hrh","timestamp":1671963620914},{"id":"0o2f","timestamp":1671963662362}]} |
{"version":1,"resource":"vsls:/force-app/main/default/classes/GetEventHubLeadTests.cls","entries":[{"id":"Vpg4.cls","source":"Workspace Edit","timestamp":null},{"id":"1b6v.cls","timestamp":null},{"id":"eA3g.cls","source":"Workspace Edit","timestamp":null}]} |
{ | |
"orgName": "EventHub, Inc.", | |
"edition": "Developer", | |
"features": ["EnableSetPasswordInApi"], | |
"settings": { | |
"lightningExperienceSettings": { | |
"enableS1DesktopEnabled": true | |
}, | |
"mobileSettings": { | |
"enableS1EncryptedStoragePref2": false | |
}, | |
"languageSettings": { | |
"enableTranslationWorkbench": true | |
} | |
} | |
} |
{ | |
"orgName": "EventHub, Inc.", | |
"edition": "Developer", | |
"features": ["EnableSetPasswordInApi"], | |
"settings": { | |
"lightningExperienceSettings": { | |
"enableS1DesktopEnabled": true | |
}, | |
"mobileSettings": { | |
"enableS1EncryptedStoragePref2": false | |
}, | |
"languageSettings": { | |
"enableTranslationWorkbench": true | |
} | |
} | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/config/project-scratch-def.json","entries":[{"id":"0RkT.json","timestamp":1684389162614},{"id":"DJZD.json","source":"undoRedo.source","timestamp":1684460155878}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/force-app/main/default/objects/ApiKey__mdt/fields/Key__c.field-meta.xml","entries":[{"id":"FMkG.xml","timestamp":1684413073527}]} |
{"version":1,"resource":"vsls:/force-app/main/default/classes/MultiRequestMock.cls","entries":[{"id":"72Du.cls","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/misskey_plugins/plugins/ramen_timer.is","entries":[{"id":"BBaG.is","source":"undoRedo.source","timestamp":1680316252208},{"id":"ev0W.is","source":"undoRedo.source","timestamp":1680317948650},{"id":"O9uN.is","timestamp":1680319792591},{"id":"LGgA.is","timestamp":1680319844089},{"id":"4SHy.is","timestamp":1681535111320},{"id":"Y1sd.is","timestamp":1681544753036},{"id":"H9gt.is","timestamp":1681565062660},{"id":"a3vp.is","timestamp":1681569087053}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub/frontend/event/env/qa.env","entries":[{"id":"smws.env","timestamp":1665579623680}]} |
{"version":1,"resource":"file:///Users/tubone24/Downloads/schema.gql","entries":[{"id":"ggkX.gql","timestamp":1664379171559},{"id":"O9O7.gql","timestamp":1664379207736},{"id":"rlFI.gql","timestamp":1664379391943},{"id":"HKWo.gql","timestamp":1664379669140},{"id":"ev5I.gql","source":"undoRedo.source","timestamp":1664380211236},{"id":"q2Vd.gql","timestamp":1664380249628},{"id":"mAyM.gql","timestamp":1664380427703},{"id":"1wwP.gql","timestamp":1664380577163},{"id":"sEMn.gql","timestamp":1664381308263}]} |
{"version":1,"resource":"file:///Users/yuotsubo/.aws/config","entries":[{"id":"mcyM","source":"textFileCreate.source","timestamp":1668421627574},{"id":"DjCr","timestamp":1669722416050}]} |
{ | |
"sync.gist": "b00e71c41a9c2305b734d7c9e787fe28", | |
"sync.autoDownload": true, | |
"sync.autoUpload": true, | |
"mssql.connections": [ | |
{ | |
"server": "{{put-server-name-here}}", | |
"database": "{{put-database-name-here}}", | |
"user": "{{put-username-here}}", | |
"password": "" | |
} | |
], | |
"security.workspace.trust.untrustedFiles": "open", | |
"yaml.schemas": {}, | |
"yaml.customTags": [ | |
"!And", | |
"!And sequence", | |
"!If", | |
"!If sequence", | |
"!Not", | |
"!Not sequence", | |
"!Equals", | |
"!Equals sequence", | |
"!Or", | |
"!Or sequence", | |
"!FindInMap", | |
"!FindInMap sequence", | |
"!Base64", | |
"!Join", | |
"!Join sequence", | |
"!Cidr", | |
"!Ref", | |
"!Sub", | |
"!Sub sequence", | |
"!GetAtt", | |
"!GetAZs", | |
"!ImportValue", | |
"!ImportValue sequence", | |
"!Select", | |
"!Select sequence", | |
"!Split", | |
"!Split sequence" | |
], | |
"workbench.editor.enablePreview": false, | |
"workbench.editorAssociations": { | |
"*.xlsx": "default" | |
}, | |
"json.schemas": [], | |
"editor.unicodeHighlight.nonBasicASCII": false, | |
"editor.suggest.showMethods": true, | |
"editor.suggest.preview": true, | |
"editor.acceptSuggestionOnEnter": "on", | |
"editor.snippetSuggestions": "top", | |
"window.zoomLevel": 1, | |
"atomKeymap.promptV3Features": true, | |
"markdown-pdf.executablePath": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", | |
"settingsSync.ignoredExtensions": [ | |
], | |
"editor.inlineSuggest.enabled": true, | |
"github.copilot.enable": { | |
"*": true, | |
"yaml": false, | |
"plaintext": true, | |
"markdown": false | |
}, | |
"[aiscript]": {} | |
} |
{ | |
"sync.gist": "b00e71c41a9c2305b734d7c9e787fe28", | |
"sync.autoDownload": true, | |
"sync.autoUpload": true, | |
"mssql.connections": [ | |
{ | |
"server": "{{put-server-name-here}}", | |
"database": "{{put-database-name-here}}", | |
"user": "{{put-username-here}}", | |
"password": "" | |
} | |
], | |
"security.workspace.trust.untrustedFiles": "open", | |
"yaml.schemas": {}, | |
"yaml.customTags": [ | |
"!And", | |
"!And sequence", | |
"!If", | |
"!If sequence", | |
"!Not", | |
"!Not sequence", | |
"!Equals", | |
"!Equals sequence", | |
"!Or", | |
"!Or sequence", | |
"!FindInMap", | |
"!FindInMap sequence", | |
"!Base64", | |
"!Join", | |
"!Join sequence", | |
"!Cidr", | |
"!Ref", | |
"!Sub", | |
"!Sub sequence", | |
"!GetAtt", | |
"!GetAZs", | |
"!ImportValue", | |
"!ImportValue sequence", | |
"!Select", | |
"!Select sequence", | |
"!Split", | |
"!Split sequence" | |
], | |
"workbench.editor.enablePreview": false, | |
"workbench.editorAssociations": { | |
"*.xlsx": "default" | |
}, | |
"json.schemas": [], | |
"editor.unicodeHighlight.nonBasicASCII": false, | |
"workbench.colorTheme": "Blueprint", | |
"editor.suggest.showMethods": true, | |
"editor.suggest.preview": true, | |
"editor.acceptSuggestionOnEnter": "on", | |
"editor.snippetSuggestions": "top", | |
"window.zoomLevel": 2 | |
} |
{"version":1,"resource":"vscode-userdata:/Users/yuotsubo/Library/Application%20Support/Code/User/settings.json","entries":[{"id":"O0ub.json","timestamp":1656505968656},{"id":"b8zR.json","timestamp":1662543755811},{"id":"XO4N.json","timestamp":1662544001154},{"id":"V70Q.json","timestamp":1664255287955},{"id":"owHN.json","timestamp":1669805335762},{"id":"aszE.json","timestamp":1680316401660}]} |
{ | |
"sync.gist": "b00e71c41a9c2305b734d7c9e787fe28", | |
"sync.autoDownload": true, | |
"sync.autoUpload": true, | |
"mssql.connections": [ | |
{ | |
"server": "{{put-server-name-here}}", | |
"database": "{{put-database-name-here}}", | |
"user": "{{put-username-here}}", | |
"password": "" | |
} | |
], | |
"security.workspace.trust.untrustedFiles": "open", | |
"yaml.schemas": {}, | |
"yaml.customTags": [ | |
"!And", | |
"!And sequence", | |
"!If", | |
"!If sequence", | |
"!Not", | |
"!Not sequence", | |
"!Equals", | |
"!Equals sequence", | |
"!Or", | |
"!Or sequence", | |
"!FindInMap", | |
"!FindInMap sequence", | |
"!Base64", | |
"!Join", | |
"!Join sequence", | |
"!Cidr", | |
"!Ref", | |
"!Sub", | |
"!Sub sequence", | |
"!GetAtt", | |
"!GetAZs", | |
"!ImportValue", | |
"!ImportValue sequence", | |
"!Select", | |
"!Select sequence", | |
"!Split", | |
"!Split sequence" | |
], | |
"workbench.editor.enablePreview": false, | |
"workbench.editorAssociations": { | |
"*.xlsx": "default" | |
}, | |
"json.schemas": [], | |
"editor.unicodeHighlight.nonBasicASCII": false, | |
"workbench.colorTheme": "Blueprint", | |
"editor.suggest.showMethods": true, | |
"editor.suggest.preview": true, | |
"editor.acceptSuggestionOnEnter": "on", | |
"editor.snippetSuggestions": "top" | |
} |
{ | |
"sync.gist": "b00e71c41a9c2305b734d7c9e787fe28", | |
"sync.autoDownload": true, | |
"sync.autoUpload": true, | |
"mssql.connections": [ | |
{ | |
"server": "{{put-server-name-here}}", | |
"database": "{{put-database-name-here}}", | |
"user": "{{put-username-here}}", | |
"password": "" | |
} | |
], | |
"security.workspace.trust.untrustedFiles": "open", | |
"yaml.schemas": {}, | |
"yaml.customTags": [ | |
"!And", | |
"!And sequence", | |
"!If", | |
"!If sequence", | |
"!Not", | |
"!Not sequence", | |
"!Equals", | |
"!Equals sequence", | |
"!Or", | |
"!Or sequence", | |
"!FindInMap", | |
"!FindInMap sequence", | |
"!Base64", | |
"!Join", | |
"!Join sequence", | |
"!Cidr", | |
"!Ref", | |
"!Sub", | |
"!Sub sequence", | |
"!GetAtt", | |
"!GetAZs", | |
"!ImportValue", | |
"!ImportValue sequence", | |
"!Select", | |
"!Select sequence", | |
"!Split", | |
"!Split sequence" | |
], | |
"workbench.editor.enablePreview": false, | |
"workbench.editorAssociations": { | |
"*.xlsx": "default" | |
}, | |
"json.schemas": [], | |
"editor.unicodeHighlight.nonBasicASCII": false, | |
"editor.suggest.showMethods": true, | |
"editor.suggest.preview": true, | |
"editor.acceptSuggestionOnEnter": "on", | |
"editor.snippetSuggestions": "top", | |
"window.zoomLevel": 1, | |
"atomKeymap.promptV3Features": true, | |
"markdown-pdf.executablePath": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" | |
} |
{ | |
"sync.gist": "b00e71c41a9c2305b734d7c9e787fe28", | |
"sync.autoDownload": true, | |
"sync.autoUpload": true, | |
"mssql.connections": [ | |
{ | |
"server": "{{put-server-name-here}}", | |
"database": "{{put-database-name-here}}", | |
"user": "{{put-username-here}}", | |
"password": "" | |
} | |
], | |
"security.workspace.trust.untrustedFiles": "open", | |
"yaml.schemas": {}, | |
"yaml.customTags": [ | |
"!And", | |
"!And sequence", | |
"!If", | |
"!If sequence", | |
"!Not", | |
"!Not sequence", | |
"!Equals", | |
"!Equals sequence", | |
"!Or", | |
"!Or sequence", | |
"!FindInMap", | |
"!FindInMap sequence", | |
"!Base64", | |
"!Join", | |
"!Join sequence", | |
"!Cidr", | |
"!Ref", | |
"!Sub", | |
"!Sub sequence", | |
"!GetAtt", | |
"!GetAZs", | |
"!ImportValue", | |
"!ImportValue sequence", | |
"!Select", | |
"!Select sequence", | |
"!Split", | |
"!Split sequence" | |
], | |
"workbench.editor.enablePreview": false, | |
"workbench.editorAssociations": { | |
"*.xlsx": "default" | |
}, | |
"json.schemas": [], | |
"editor.unicodeHighlight.nonBasicASCII": false, | |
"editor.suggest.showMethods": true, | |
"editor.suggest.preview": true, | |
"editor.acceptSuggestionOnEnter": "on", | |
"editor.snippetSuggestions": "top", | |
"window.zoomLevel": 1, | |
"atomKeymap.promptV3Features": true | |
} |
{ | |
"sync.gist": "b00e71c41a9c2305b734d7c9e787fe28", | |
"sync.autoDownload": true, | |
"sync.autoUpload": true, | |
"mssql.connections": [ | |
{ | |
"server": "{{put-server-name-here}}", | |
"database": "{{put-database-name-here}}", | |
"user": "{{put-username-here}}", | |
"password": "" | |
} | |
], | |
"security.workspace.trust.untrustedFiles": "open", | |
"yaml.schemas": {}, | |
"yaml.customTags": [ | |
"!And", | |
"!And sequence", | |
"!If", | |
"!If sequence", | |
"!Not", | |
"!Not sequence", | |
"!Equals", | |
"!Equals sequence", | |
"!Or", | |
"!Or sequence", | |
"!FindInMap", | |
"!FindInMap sequence", | |
"!Base64", | |
"!Join", | |
"!Join sequence", | |
"!Cidr", | |
"!Ref", | |
"!Sub", | |
"!Sub sequence", | |
"!GetAtt", | |
"!GetAZs", | |
"!ImportValue", | |
"!ImportValue sequence", | |
"!Select", | |
"!Select sequence", | |
"!Split", | |
"!Split sequence" | |
], | |
"workbench.editor.enablePreview": false, | |
"workbench.editorAssociations": { | |
"*.xlsx": "default" | |
}, | |
"json.schemas": [], | |
"editor.unicodeHighlight.nonBasicASCII": false, | |
"workbench.colorTheme": "Blueprint", | |
"editor.suggest.showMethods": true, | |
"editor.suggest.preview": true, | |
"editor.acceptSuggestionOnEnter": "on", | |
"editor.snippetSuggestions": "top", | |
"window.zoomLevel": 1 | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/project/aiscript-syntax/CHANGELOG.md","entries":[{"id":"fNtB.md","timestamp":1680622135733},{"id":"AJWp.md","timestamp":1680622149618},{"id":"Bq8E.md","timestamp":1681570256706}]} |
{"version":1,"resource":"vsls:/force-app/main/default/flexipages/Hello.flexipage-meta.xml","entries":[{"id":"u5S9.xml","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/Downloads/188.html","entries":[{"id":"41DS.html","source":"textFileCreate.source","timestamp":1669806059977},{"id":"8Rum.html","timestamp":1669806091195}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/force-app/main/default/objects/ApiKey__mdt/ApiKey__mdt.object-meta.xml","entries":[{"id":"gQov.xml","timestamp":1684415765141}]} |
{"version":1,"resource":"file:///Users/tubone24/.wezterm.lua","entries":[{"id":"VulZ.lua","source":"textFileCreate.source","timestamp":1662043878014}]} |
{"version":1,"resource":"vsls:/~external/c49eef5d-a6ea-4851-bbc7-621aedd757e3/settings.json","entries":[{"id":"r54q.json","source":"Workspace Edit","timestamp":null}]} |
{ | |
"editor.minimap.enabled": false, | |
"workbench.editor.enablePreview": false, | |
"editor.fontFamily": "'MesloLGS NF', Menlo, Monaco, 'Courier New', monospace", | |
"daily-memo.directory": "~/Documents/daily_memo", | |
"workbench.iconTheme": "material-icon-theme", | |
"editor.formatOnSave": true, | |
"cSpell.enabledLanguageIds": [ | |
"asciidoc", | |
"c", | |
"cpp", | |
"csharp", | |
"css", | |
"elixir", | |
"erlang", | |
"git-commit", | |
"go", | |
"graphql", | |
"handlebars", | |
"haskell", | |
"html", | |
"jade", | |
"java", | |
"javascript", | |
"javascriptreact", | |
"json", | |
"jsonc", | |
"jupyter", | |
"latex", | |
"less", | |
"markdown", | |
"php", | |
"plaintext", | |
"python", | |
"pug", | |
"restructuredtext", | |
"rust", | |
"scala", | |
"scss", | |
"scminput", | |
"swift", | |
"text", | |
"typescript", | |
"typescriptreact", | |
"vue", | |
"yaml", | |
"yml", | |
"ruby" | |
], | |
"workbench.colorTheme": "Monokai Dimmed", | |
"workbench.preferredLightColorTheme": "Red", | |
"workbench.preferredDarkColorTheme": "Monokai", | |
"[python]": { | |
"editor.formatOnType": true | |
}, | |
"window.zoomLevel": 1, | |
"terminal.integrated.defaultProfile.linux": "", | |
"terminal.integrated.defaultProfile.osx": "bash" | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/.gitconfig","entries":[{"id":"zfeC","timestamp":1663461585255},{"id":"mcKA","timestamp":1663462272379},{"id":"rERv","timestamp":1663462970859},{"id":"9Rfd","timestamp":1663464471874},{"id":"unkx","timestamp":1663464494754},{"id":"SZNJ","timestamp":1663464555945},{"id":"6mGg","timestamp":1663465336447},{"id":"AvL5","timestamp":1666785901708},{"id":"TzTZ","source":"undoRedo.source","timestamp":1666785951108},{"id":"O5wi","timestamp":1666942641180},{"id":"lZTk","timestamp":1671774219505}]} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/apiSettings/apiSettings.css","entries":[{"id":"jV92.css","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"vsls:/force-app/main/default/tab/Hello.tab-meta.xml","entries":[{"id":"q5Ce.xml","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/scripts/apex/getEventHubLead.apex","entries":[{"id":"aeR8.apex","timestamp":1676887053432},{"id":"gH9Y.apex","timestamp":1676887115538},{"id":"rPnI.apex","timestamp":1676887192910},{"id":"TGrq.apex","timestamp":1676887204605},{"id":"SDuf.apex","timestamp":1676887610968},{"id":"B2aa.apex","timestamp":1676887712850},{"id":"TdVR.apex","timestamp":1676888192792},{"id":"ypgx.apex","source":"undoRedo.source","timestamp":1676888215079},{"id":"A88t.apex","timestamp":1676888254708},{"id":"A2YN.apex","timestamp":1676888340411},{"id":"y24L.apex","timestamp":1676888462352}]} |
{"version":1,"resource":"file:///Users/tubone24/project/aleph_demo/.gitignore","entries":[{"id":"DC9r","source":"textFileCreate.source","timestamp":1662045351740}]} |
{"version":1,"resource":"vsls:/force-app/main/default/permissionsets/Hello.permissionset-meta.xml","entries":[{"id":"G4iB.xml","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/apiSettings/apiSettings.js","entries":[{"id":"9Nrx.js","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/.wezterm.lua","entries":[{"id":"eDmD.lua","timestamp":1661770900018},{"id":"8KPu.lua","timestamp":1661770911745},{"id":"q3Ma.lua","timestamp":1661770941052},{"id":"Er2x.lua","timestamp":1661770953644},{"id":"9KNm.lua","timestamp":1661770990067},{"id":"rybR.lua","timestamp":1661771020105},{"id":"fZHp.lua","timestamp":1661771039312},{"id":"UnyY.lua","timestamp":1661771097779},{"id":"wQYV.lua","timestamp":1661771138760},{"id":"iP1Z.lua","timestamp":1661771231459},{"id":"eMPO.lua","timestamp":1661771269291},{"id":"oxlq.lua","source":"undoRedo.source","timestamp":1661771283100},{"id":"NVgW.lua","timestamp":1661771289954},{"id":"yjCW.lua","source":"undoRedo.source","timestamp":1661771293758},{"id":"CQj4.lua","timestamp":1661771378441},{"id":"eJ1n.lua","timestamp":1661771463700},{"id":"Ou0q.lua","timestamp":1661771522974},{"id":"V3jg.lua","timestamp":1661773908164},{"id":"HgHf.lua","timestamp":1661773918710},{"id":"FyYA.lua","timestamp":1661773947813},{"id":"jQYw.lua","timestamp":1661773975500},{"id":"9NYo.lua","timestamp":1661774646087},{"id":"1RYU.lua","timestamp":1661774665372},{"id":"8lo1.lua","source":"undoRedo.source","timestamp":1661774707741},{"id":"2vVm.lua","timestamp":1661774791804},{"id":"vq3s.lua","timestamp":1661775054600},{"id":"vmnk.lua","timestamp":1661775194187},{"id":"Sxqj.lua","timestamp":1661775606869},{"id":"PdJP.lua","timestamp":1661775704054},{"id":"mTBl.lua","timestamp":1661775797926},{"id":"OhgD.lua","timestamp":1661775812317},{"id":"vZHu.lua","timestamp":1661775823801},{"id":"QXVn.lua","timestamp":1661775870470},{"id":"583b.lua","timestamp":1661775922784},{"id":"QPZ1.lua","timestamp":1661775975332},{"id":"Wwvl.lua","timestamp":1661776125796},{"id":"tKE4.lua","timestamp":1661776174462},{"id":"PbIC.lua","timestamp":1661776276447},{"id":"RPgJ.lua","timestamp":1661776480071},{"id":"zafS.lua","timestamp":1661776540113},{"id":"ZZSz.lua","timestamp":1661776604707},{"id":"6cKR.lua","timestamp":1661776637132},{"id":"27D9.lua","timestamp":1661776656668},{"id":"IoNf.lua","timestamp":1661776708229},{"id":"se6Y.lua","source":"undoRedo.source","timestamp":1661776731873},{"id":"M6RA.lua","timestamp":1661776905439},{"id":"bySf.lua","timestamp":1661776929843},{"id":"YUkM.lua","timestamp":1662132128120},{"id":"AMkP.lua","timestamp":1663421245536},{"id":"slUO.lua","timestamp":1663421350961}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/aiscript-syntax/LICENSE.md","entries":[{"id":"EaON.md","source":"textFileCreate.source","timestamp":1680368218976},{"id":"MDYy.md","timestamp":1680368258837}]} |
{"version":1,"resource":"file:///Users/tubone24/project/mac-auto-setup/ansible/mac/roles/dev-tools/tasks/wezterm.yml","entries":[{"id":"QLTQ.yml","timestamp":1662041847005}]} |
{"version":1,"resource":"file:///Users/tubone24/.gitconfig","entries":[{"id":"4p0Y","timestamp":1651219346813}]} |
{"version":1,"resource":"vsls:/force-app/main/default/tabs/Hello.tab-meta.xml","entries":[{"id":"PwuZ.xml","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/Downloads/186.html%5D","entries":[{"id":"KmAc.html]","source":"textFileCreate.source","timestamp":1669805644010}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/force-app/main/default/classes/ApiKeyTests.cls","entries":[{"id":"xKhu.cls","timestamp":1684395518246},{"id":"FCUW.cls","timestamp":1684411453035}]} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true, | |
"package": "EventHub App", | |
"versionName": "ver 0.4", | |
"versionNumber": "0.4.0.NEXT", | |
"versionDescription": "" | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "EventHub", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0", | |
"packageAliases": { | |
"EventHub App": "0Ho5i0000004CN0CAM", | |
"EventHub App@0.1.0-1": "04t5i00000060yKAAQ", | |
"EventHub App@0.2.0-1": "04t5i00000061mCAAQ", | |
"EventHub App@0.3.0-1": "04t5i00000061qtAAA" | |
} | |
} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "EventHub", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0" | |
} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true, | |
"package": "EventHub App", | |
"versionName": "ver 0.2", | |
"versionNumber": "0.2.0.NEXT", | |
"versionDescription": "" | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "EventHub", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0", | |
"packageAliases": { | |
"EventHub App": "0Ho5i0000004CN0CAM", | |
"EventHub App@0.1.0-1": "04t5i00000060yKAAQ" | |
} | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/sfdx-project.json","entries":[{"id":"qaJk.json","timestamp":1684229405574},{"id":"CQIW.json","timestamp":1684389020319},{"id":"CzFy.json","timestamp":1684395629583},{"id":"q8fl.json","timestamp":1684411487837},{"id":"3zCG.json","timestamp":1684413089471},{"id":"Xe2K.json","timestamp":1684415780648},{"id":"MAHs.json","source":"undoRedo.source","timestamp":1684460166735},{"id":"mpKz.json","timestamp":1684460183515},{"id":"gKQW.json","timestamp":1684464646529},{"id":"vnjU.json","timestamp":1684467192357}]} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true, | |
"package": "EventHub App", | |
"versionName": "ver 0.7", | |
"versionNumber": "0.7.0.NEXT", | |
"versionDescription": "" | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "EventHub", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0", | |
"packageAliases": { | |
"EventHub App": "0Ho5i0000004CN0CAM", | |
"EventHub App@0.1.0-1": "04t5i00000060yKAAQ", | |
"EventHub App@0.2.0-1": "04t5i00000061mCAAQ", | |
"EventHub App@0.3.0-1": "04t5i00000061qtAAA", | |
"EventHub App@0.4.0-1": "04t5i00000061r3AAA", | |
"EventHub App@0.5.0-1": "04t5i00000061vGAAQ", | |
"EventHub App@0.6.0-1": "04t5i000000627jAAA" | |
} | |
} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true, | |
"package": "EventHub App", | |
"versionName": "ver 0.5", | |
"versionNumber": "0.5.0.NEXT", | |
"versionDescription": "" | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "EventHub", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0", | |
"packageAliases": { | |
"EventHub App": "0Ho5i0000004CN0CAM", | |
"EventHub App@0.1.0-1": "04t5i00000060yKAAQ", | |
"EventHub App@0.2.0-1": "04t5i00000061mCAAQ", | |
"EventHub App@0.3.0-1": "04t5i00000061qtAAA", | |
"EventHub App@0.4.0-1": "04t5i00000061r3AAA", | |
"EventHub App@0.5.0-1": "04t5i00000061vGAAQ" | |
} | |
} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true, | |
"package": "EventHub App", | |
"versionName": "ver 0.6", | |
"versionNumber": "0.6.0.NEXT", | |
"versionDescription": "" | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "EventHub", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0", | |
"packageAliases": { | |
"EventHub App": "0Ho5i0000004CN0CAM", | |
"EventHub App@0.1.0-1": "04t5i00000060yKAAQ", | |
"EventHub App@0.2.0-1": "04t5i00000061mCAAQ", | |
"EventHub App@0.3.0-1": "04t5i00000061qtAAA", | |
"EventHub App@0.4.0-1": "04t5i00000061r3AAA", | |
"EventHub App@0.5.0-1": "04t5i00000061vGAAQ" | |
} | |
} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true, | |
"package": "EventHub App", | |
"versionName": "ver 0.3", | |
"versionNumber": "0.3.0.NEXT", | |
"versionDescription": "" | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "EventHub", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0", | |
"packageAliases": { | |
"EventHub App": "0Ho5i0000004CN0CAM", | |
"EventHub App@0.1.0-1": "04t5i00000060yKAAQ", | |
"EventHub App@0.2.0-1": "04t5i00000061mCAAQ" | |
} | |
} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "ehbetatest", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0" | |
} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true, | |
"package": "EventHub App", | |
"versionName": "ver 0.8", | |
"versionNumber": "0.8.0.NEXT", | |
"versionDescription": "" | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "EventHub", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0", | |
"packageAliases": { | |
"EventHub App": "0Ho5i0000004CN0CAM", | |
"EventHub App@0.1.0-1": "04t5i00000060yKAAQ", | |
"EventHub App@0.2.0-1": "04t5i00000061mCAAQ", | |
"EventHub App@0.3.0-1": "04t5i00000061qtAAA", | |
"EventHub App@0.4.0-1": "04t5i00000061r3AAA", | |
"EventHub App@0.5.0-1": "04t5i00000061vGAAQ", | |
"EventHub App@0.6.0-1": "04t5i000000627jAAA", | |
"EventHub App@0.7.0-1": "04t5i00000062BwAAI" | |
} | |
} |
{ | |
"packageDirectories": [ | |
{ | |
"path": "force-app", | |
"default": true, | |
"package": "EventHub App", | |
"versionName": "ver 0.5", | |
"versionNumber": "0.5.0.NEXT", | |
"versionDescription": "" | |
} | |
], | |
"name": "EventHubLightningWebComponent", | |
"namespace": "EventHub", | |
"sfdcLoginUrl": "https://login.salesforce.com", | |
"sourceApiVersion": "56.0", | |
"packageAliases": { | |
"EventHub App": "0Ho5i0000004CN0CAM", | |
"EventHub App@0.1.0-1": "04t5i00000060yKAAQ", | |
"EventHub App@0.2.0-1": "04t5i00000061mCAAQ", | |
"EventHub App@0.3.0-1": "04t5i00000061qtAAA", | |
"EventHub App@0.4.0-1": "04t5i00000061r3AAA" | |
} | |
} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/eventsList/eventsList.html","entries":[{"id":"CL05.html","timestamp":null},{"id":"VrLN.html","timestamp":null},{"id":"YlsS.html","source":"Workspace Edit","timestamp":null},{"id":"q9lF.html","source":"Workspace Edit","timestamp":null},{"id":"yNfs.html","source":"Workspace Edit","timestamp":null},{"id":"2vdc.html","timestamp":null},{"id":"8dzx.html","source":"Workspace Edit","timestamp":null},{"id":"FS5H.html","timestamp":null},{"id":"GbGK.html","source":"Workspace Edit","timestamp":null},{"id":"kvq6.html","timestamp":null},{"id":"y4q2.html","source":"Workspace Edit","timestamp":null},{"id":"83gS.html","timestamp":null},{"id":"luh2.html","source":"Workspace Edit","timestamp":null},{"id":"otfS.html","timestamp":null},{"id":"wpEx.html","source":"Workspace Edit","timestamp":null},{"id":"G2Ox.html","timestamp":null},{"id":"kUqv.html","source":"Workspace Edit","timestamp":null},{"id":"qL5x.html","timestamp":null},{"id":"1wS7.html","source":"Workspace Edit","timestamp":null},{"id":"kY2K.html","timestamp":null}]} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-primitive": { | |
"name": "support.type.primitive.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.expression.keyof.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
}, | |
{ | |
"name": "keyword.operator.expression.import.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" | |
} | |
] | |
}, | |
"type-infer": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", | |
"name": "meta.type.infer.aiscript", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.expression.infer.aiscript" | |
}, | |
"2": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"3": { | |
"name": "keyword.operator.expression.extends.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"include": "#string" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"include": "#boolean-literal" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*{[\\s\\S]*}", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings_double" | |
}, | |
{ | |
"include": "#strings_single" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"strings_double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"strings_single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.js", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*{([\\s\\S]*?)}", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script-configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var-declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
}, | |
{ | |
"include": "#array-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script-configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var-declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"include": "#string" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"include": "#boolean-literal" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"array-literal": { | |
"name": "meta.array.literal.aiscript", | |
"begin": "\\s*(\\[)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-primitive": { | |
"name": "support.type.primitive.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.expression.keyof.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
}, | |
{ | |
"name": "keyword.operator.expression.import.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" | |
} | |
] | |
}, | |
"type-infer": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", | |
"name": "meta.type.infer.aiscript", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.expression.infer.aiscript" | |
}, | |
"2": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"3": { | |
"name": "keyword.operator.expression.extends.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
}, | |
{ | |
"include": "#array-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"include": "#string" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"include": "#boolean-literal" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"array-literal": { | |
"name": "meta.array.literal.aiscript", | |
"begin": "\\s*(\\[)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.hex.js", | |
"match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", | |
"captures": { | |
"1": { | |
"name": "storage.type.numeric.bigint.js" | |
} | |
} | |
}, | |
{ | |
"name": "constant.numeric.binary.js", | |
"match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", | |
"captures": { | |
"1": { | |
"name": "storage.type.numeric.bigint.js" | |
} | |
} | |
}, | |
{ | |
"name": "constant.numeric.octal.js", | |
"match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", | |
"captures": { | |
"1": { | |
"name": "storage.type.numeric.bigint.js" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.js" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.js" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*{([\\s\\S]*?)}", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]}, | |
"3": {} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/project/aiscript-syntax/syntaxes/aiscript.tmLanguage.json","entries":[{"id":"MO2j.json","source":"undoRedo.source","timestamp":1680319628670},{"id":"SY48.json","timestamp":1680320012672},{"id":"2jok.json","timestamp":1680320070591},{"id":"Glam.json","timestamp":1680320070603},{"id":"ktHb.json","timestamp":1680320070620},{"id":"l6UY.json","timestamp":1680320070622},{"id":"74eQ.json","timestamp":1680320169197},{"id":"dWTY.json","timestamp":1680320276190},{"id":"UmpK.json","timestamp":1680365475996},{"id":"Gf2o.json","timestamp":1681535076180},{"id":"etG4.json","timestamp":1681535281422},{"id":"qFcA.json","timestamp":1681535368864},{"id":"Jcrq.json","timestamp":1681535558589},{"id":"WsbD.json","timestamp":1681535592266},{"id":"49g0.json","timestamp":1681535625503},{"id":"rsrL.json","timestamp":1681535655548},{"id":"je6y.json","timestamp":1681535767458},{"id":"VWMT.json","timestamp":1681542653521},{"id":"XYk8.json","timestamp":1681542788272},{"id":"KHgX.json","timestamp":1681543399576},{"id":"rSA4.json","timestamp":1681543439027},{"id":"LgQq.json","timestamp":1681543567698},{"id":"GIR7.json","timestamp":1681544453474},{"id":"0bdf.json","source":"undoRedo.source","timestamp":1681544516773},{"id":"lFYc.json","timestamp":1681544771711},{"id":"gSgi.json","timestamp":1681544789995},{"id":"jISi.json","timestamp":1681544984769},{"id":"bcbw.json","timestamp":1681545028057},{"id":"MZXX.json","timestamp":1681545507573},{"id":"ZHGd.json","timestamp":1681545599560},{"id":"wApm.json","timestamp":1681563551824},{"id":"Ry2c.json","timestamp":1681564414066},{"id":"CfcJ.json","timestamp":1681564563108},{"id":"vgla.json","timestamp":1681564619939},{"id":"tjuR.json","timestamp":1681564654688},{"id":"aEg0.json","timestamp":1681564672178},{"id":"VVks.json","timestamp":1681564947630},{"id":"LF5k.json","timestamp":1681565132386},{"id":"Ut42.json","timestamp":1681565656895},{"id":"auEk.json","source":"undoRedo.source","timestamp":1681565685011},{"id":"OOvj.json","timestamp":1681566078825},{"id":"0e2v.json","timestamp":1681566111552},{"id":"8CNO.json","timestamp":1681566200084},{"id":"Zn9b.json","timestamp":1681569265544},{"id":"VI9J.json","timestamp":1681569280703},{"id":"oWRQ.json","timestamp":1681569403467},{"id":"kw1u.json","timestamp":1681569768325},{"id":"2A7z.json","timestamp":1681569903140},{"id":"bVzI.json","timestamp":1681570013220},{"id":"AKZd.json","timestamp":1681570041412}]} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings_double" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"strings_double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings_double" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings_double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-primitive": { | |
"name": "support.type.primitive.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.expression.keyof.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
}, | |
{ | |
"name": "keyword.operator.expression.import.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" | |
} | |
] | |
}, | |
"type-infer": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", | |
"name": "meta.type.infer.aiscript", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.expression.infer.aiscript" | |
}, | |
"2": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"3": { | |
"name": "keyword.operator.expression.extends.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*{[\\s\\S]*}", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-primitive": { | |
"name": "support.type.primitive.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.expression.keyof.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
}, | |
{ | |
"name": "keyword.operator.expression.import.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" | |
} | |
] | |
}, | |
"type-infer": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", | |
"name": "meta.type.infer.aiscript", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.expression.infer.aiscript" | |
}, | |
"2": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"3": { | |
"name": "keyword.operator.expression.extends.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings_double" | |
}, | |
{ | |
"include": "#strings_single" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"strings_double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"strings_single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.js" | |
} | |
}, | |
"end": "'", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings_double" | |
}, | |
{ | |
"include": "#strings_single" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"strings_double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"strings_single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\$\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*{[\\s\\S]*}", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"include": "#string" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"include": "#boolean-literal" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"begin": "### {", | |
"end": "}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*{[\\s\\S]*}", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-primitive": { | |
"name": "support.type.primitive.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.expression.keyof.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
}, | |
{ | |
"name": "keyword.operator.expression.import.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" | |
} | |
] | |
}, | |
"type-infer": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", | |
"name": "meta.type.infer.aiscript", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.expression.infer.aiscript" | |
}, | |
"2": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"3": { | |
"name": "keyword.operator.expression.extends.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line", | |
"match": "\\/\\/.*" | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*{[\\s\\S]*}", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-primitive": { | |
"name": "support.type.primitive.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.expression.keyof.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
}, | |
{ | |
"name": "keyword.operator.expression.import.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" | |
} | |
] | |
}, | |
"type-infer": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", | |
"name": "meta.type.infer.aiscript", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.expression.infer.aiscript" | |
}, | |
"2": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"3": { | |
"name": "keyword.operator.expression.extends.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"include": "#string" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings_double" | |
}, | |
{ | |
"include": "#strings_single" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"strings_double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"strings_single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"end": "'", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\$\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings_double" | |
}, | |
{ | |
"include": "#strings_single" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"strings_double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"strings_single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.js", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.js", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*{[\\s\\S]*}", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.js" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
}] | |
}, | |
"strings": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": {"patterns": [{"include": "#var"}]}, | |
"2": {"patterns": [{"include": "#var_name"}]}, | |
"3": {"patterns": [{"include": "#constant"}]} | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name" : "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{"include": "#constant_number"}, | |
{"include": "#constant_string"} | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": {"patterns": [{"include": "#function_name"}]}, | |
"2": {"patterns": [{"include": "#function_arguments"}]} | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.js" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.js" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.js" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
}, | |
{ | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"end": "'" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.js", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.js" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.js" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.js" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.js", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.js" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.js" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.js" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.js", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.js", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.js" | |
}, | |
"2": { | |
"name": "string.template.js punctuation.definition.string.template.begin.js" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.js punctuation.definition.string.template.end.js" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.js", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.js" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.js", | |
"begin": "\\$\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.js" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.js" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.js" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.js", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.js" | |
}, | |
"2": { | |
"name": "string.template.js punctuation.definition.string.template.begin.js" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.js punctuation.definition.string.template.end.js" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.js", | |
"begin": "\\$\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.js" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.js" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.js" | |
}, | |
"regex": { | |
"patterns": [ | |
{ | |
"name": "string.regexp.js", | |
"begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", | |
"beginCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.begin.js" | |
} | |
}, | |
"end": "(/)([dgimsuy]*)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.js" | |
}, | |
"2": { | |
"name": "keyword.other.js" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#regexp" | |
} | |
] | |
}, | |
{ | |
"name": "string.regexp.js", | |
"begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.js" | |
} | |
}, | |
"end": "(/)([dgimsuy]*)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.js" | |
}, | |
"2": { | |
"name": "keyword.other.js" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#regexp" | |
} | |
] | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#strings_double" | |
}, | |
{ | |
"include": "#strings_single" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"strings_double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"", | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"strings_single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\." | |
} | |
] | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-call": { | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", | |
"end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", | |
"patterns": [ | |
{ | |
"include": "#support-function-call-identifiers" | |
}, | |
{ | |
"name": "entity.name.function.tagged-template.aiscript", | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)" | |
} | |
] | |
}, | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
} | |
}, | |
"end": "(?=`)", | |
"patterns": [ | |
{ | |
"include": "#type-arguments" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\$\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#expression" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"include": "#template-call" | |
}, | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\$\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-primitive" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-parameters" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-conditional" | |
}, | |
{ | |
"include": "#type-fn-type-parameters" | |
}, | |
{ | |
"include": "#type-paren-or-function-parameters" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-primitive": { | |
"name": "support.type.primitive.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-conditional": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
}, | |
"end": "(?<=:)", | |
"patterns": [ | |
{ | |
"begin": "\\?", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"end": ":", | |
"endCaptures": { | |
"0": { | |
"name": "keyword.operator.ternary.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
} | |
] | |
}, | |
"type-paren-or-function-parameters": { | |
"name": "meta.type.paren.cover.aiscript", | |
"begin": "\\(", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"end": "\\)", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.round.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "entity.name.function.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "entity.name.function.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.rest.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"4": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"5": { | |
"name": "keyword.operator.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"name": "punctuation.separator.parameter.aiscript", | |
"match": "," | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-fn-type-parameters": { | |
"patterns": [ | |
{ | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", | |
"beginCaptures": { | |
"1": { | |
"name": "meta.type.constructor.aiscript storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.constructor.aiscript keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=>)", | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#type-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.constructor.aiscript", | |
"begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
}, | |
"2": { | |
"name": "keyword.control.new.aiscript" | |
} | |
}, | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.aiscript", | |
"begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", | |
"end": "(?<=\\))", | |
"patterns": [ | |
{ | |
"include": "#function-parameters" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.expression.keyof.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
}, | |
{ | |
"name": "keyword.operator.expression.import.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" | |
} | |
] | |
}, | |
"type-infer": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", | |
"name": "meta.type.infer.aiscript", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.expression.infer.aiscript" | |
}, | |
"2": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"3": { | |
"name": "keyword.operator.expression.extends.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "constant.character.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
} | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"scopeName": "source.is" | |
} |
{ | |
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", | |
"name": "AiScript", | |
"patterns": [ | |
{ | |
"include": "#comments" | |
}, | |
{ | |
"include": "#script_configuration" | |
}, | |
{ | |
"include": "#keywords" | |
}, | |
{ | |
"include": "#string" | |
}, | |
{ | |
"include": "#var_declaration" | |
}, | |
{ | |
"include": "#function" | |
}, | |
{ | |
"include": "#boolean-literal" | |
}, | |
{ | |
"include": "#number-literal" | |
} | |
], | |
"repository": { | |
"comments": { | |
"patterns": [ | |
{ | |
"name": "comment.line.aiscript", | |
"match": "\\/\\/.*" | |
}, | |
{ | |
"name": "comment.block.aiscript", | |
"begin": "/\\*", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
}, | |
"end": "\\*/", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.comment.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"script_configuration": { | |
"patterns": [ | |
{ | |
"name": "markup.aiscript", | |
"match": "###\\s*{([\\s\\S]*?)}" | |
} | |
] | |
}, | |
"keywords": { | |
"patterns": [ | |
{ | |
"name": "keyword.control.aiscript", | |
"match": "\\b(if|elif|else|each|for|return)\\b" | |
} | |
] | |
}, | |
"string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template" | |
} | |
] | |
}, | |
"qstring-double": { | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\")|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"qstring-single": { | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.string.begin.aiscript" | |
} | |
}, | |
"end": "(\\')|((?:[^\\\\\\n])$)", | |
"endCaptures": { | |
"1": { | |
"name": "punctuation.definition.string.end.aiscript" | |
}, | |
"2": { | |
"name": "invalid.illegal.newline.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
}, | |
"string-character-escape": { | |
"name": "constant.character.escape.aiscript", | |
"match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" | |
}, | |
"template": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type-string": { | |
"patterns": [ | |
{ | |
"include": "#qstring-single" | |
}, | |
{ | |
"include": "#qstring-double" | |
}, | |
{ | |
"include": "#template-type" | |
} | |
] | |
}, | |
"template-type": { | |
"patterns": [ | |
{ | |
"contentName": "string.template.aiscript", | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.function.tagged-template.aiscript" | |
}, | |
"2": { | |
"name": "string.template.aiscript punctuation.definition.string.template.begin.aiscript" | |
} | |
}, | |
"end": "`", | |
"endCaptures": { | |
"0": { | |
"name": "string.template.aiscript punctuation.definition.string.template.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#template-type-substitution-element" | |
}, | |
{ | |
"include": "#string-character-escape" | |
} | |
] | |
} | |
] | |
}, | |
"template-type-substitution-element": { | |
"name": "meta.template.expression.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.begin.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.template-expression.end.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
], | |
"contentName": "meta.embedded.line.aiscript" | |
}, | |
"type": { | |
"patterns": [ | |
{ | |
"include": "#type-string" | |
}, | |
{ | |
"include": "#numeric-literal" | |
}, | |
{ | |
"include": "#type-builtin-literals" | |
}, | |
{ | |
"include": "#type-tuple" | |
}, | |
{ | |
"include": "#type-object" | |
}, | |
{ | |
"include": "#type-operators" | |
}, | |
{ | |
"include": "#type-function-return-type" | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", | |
"captures": { | |
"1": { | |
"name": "storage.modifier.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type-name" | |
} | |
] | |
}, | |
"type-builtin-literals": { | |
"name": "support.type.builtin.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
"type-tuple": { | |
"name": "meta.type.tuple.aiscript", | |
"begin": "\\[", | |
"beginCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"end": "\\]", | |
"endCaptures": { | |
"0": { | |
"name": "meta.brace.square.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"name": "keyword.operator.rest.aiscript", | |
"match": "\\.\\.\\." | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", | |
"captures": { | |
"1": { | |
"name": "entity.name.label.aiscript" | |
}, | |
"2": { | |
"name": "keyword.operator.optional.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.separator.label.aiscript" | |
} | |
} | |
}, | |
{ | |
"include": "#type" | |
}, | |
{ | |
"include": "#punctuation-comma" | |
} | |
] | |
}, | |
"type-object": { | |
"name": "meta.object.type.aiscript", | |
"begin": "\\{", | |
"beginCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"end": "\\}", | |
"endCaptures": { | |
"0": { | |
"name": "punctuation.definition.block.aiscript" | |
} | |
}, | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"include": "#method-declaration" | |
}, | |
{ | |
"include": "#indexer-declaration" | |
}, | |
{ | |
"include": "#indexer-mapped-type-declaration" | |
}, | |
{ | |
"include": "#field-declaration" | |
}, | |
{ | |
"include": "#type-annotation" | |
}, | |
{ | |
"begin": "\\.\\.\\.", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.spread.aiscript" | |
} | |
}, | |
"end": "(?=\\}|;|,|$)|(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
{ | |
"include": "#punctuation-comma" | |
}, | |
{ | |
"include": "#punctuation-semicolon" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-function-return-type": { | |
"patterns": [ | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "(=>)(?=\\s*\\S)", | |
"beginCaptures": { | |
"1": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
}, | |
{ | |
"name": "meta.type.function.return.aiscript", | |
"begin": "=>", | |
"beginCaptures": { | |
"0": { | |
"name": "storage.type.function.arrow.aiscript" | |
} | |
}, | |
"end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", | |
"patterns": [ | |
{ | |
"include": "#type-function-return-type-core" | |
} | |
] | |
} | |
] | |
}, | |
"type-function-return-type-core": { | |
"patterns": [ | |
{ | |
"include": "#comment" | |
}, | |
{ | |
"begin": "(?<==>)(?=\\s*\\{)", | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"include": "#type-predicate-operator" | |
}, | |
{ | |
"include": "#type" | |
} | |
] | |
}, | |
"type-operators": { | |
"patterns": [ | |
{ | |
"include": "#typeof-operator" | |
}, | |
{ | |
"include": "#type-infer" | |
}, | |
{ | |
"begin": "([&|])(?=\\s*\\{)", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?<=\\})", | |
"patterns": [ | |
{ | |
"include": "#type-object" | |
} | |
] | |
}, | |
{ | |
"begin": "[&|]", | |
"beginCaptures": { | |
"0": { | |
"name": "keyword.operator.type.aiscript" | |
} | |
}, | |
"end": "(?=\\S)" | |
}, | |
{ | |
"name": "keyword.operator.ternary.aiscript", | |
"match": "(\\?|\\:)" | |
} | |
] | |
}, | |
"type-predicate-operator": { | |
"patterns": [ | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
}, | |
"4": { | |
"name": "keyword.operator.expression.is.aiscript" | |
} | |
} | |
}, | |
{ | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", | |
"captures": { | |
"1": { | |
"name": "keyword.operator.type.asserts.aiscript" | |
}, | |
"2": { | |
"name": "variable.parameter.aiscript variable.language.this.aiscript" | |
}, | |
"3": { | |
"name": "variable.parameter.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "keyword.operator.type.asserts.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "keyword.operator.expression.is.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"type-name": { | |
"patterns": [ | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
}, | |
"4": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", | |
"beginCaptures": { | |
"1": { | |
"name": "entity.name.type.aiscript" | |
}, | |
"2": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.begin.aiscript" | |
} | |
}, | |
"end": "(>)", | |
"endCaptures": { | |
"1": { | |
"name": "meta.type.parameters.aiscript punctuation.definition.typeparameters.end.aiscript" | |
} | |
}, | |
"contentName": "meta.type.parameters.aiscript", | |
"patterns": [ | |
{ | |
"include": "#type-arguments-body" | |
} | |
] | |
}, | |
{ | |
"match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "entity.name.type.module.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"3": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
{ | |
"name": "entity.name.type.aiscript", | |
"match": "[_$[:alpha:]][_$[:alnum:]]*" | |
} | |
] | |
}, | |
"punctuation-comma": { | |
"name": "punctuation.separator.comma.aiscript", | |
"match": "," | |
}, | |
"punctuation-semicolon": { | |
"name": "punctuation.terminator.statement.aiscript", | |
"match": ";" | |
}, | |
"punctuation-accessor": { | |
"match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", | |
"captures": { | |
"1": { | |
"name": "punctuation.accessor.aiscript" | |
}, | |
"2": { | |
"name": "punctuation.accessor.optional.aiscript" | |
} | |
} | |
}, | |
"var_declaration": { | |
"patterns": [ | |
{ | |
"match": "(\\S+)\\s+(\\S+)\\s+=\\s+(\\S+)", | |
"captures": { | |
"1": { "patterns": [{ "include": "#var" }] }, | |
"2": { "patterns": [{ "include": "#var_name" }] }, | |
"3": { "patterns": [{ "include": "#constant" }] } | |
} | |
} | |
], | |
"repository": { | |
"var": { | |
"patterns": [ | |
{ | |
"name": "storage.type.aiscript", | |
"match": "var|let|const" | |
} | |
] | |
}, | |
"var_name": { | |
"patterns": [ | |
{ | |
"name": "variable.other.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"constant": { | |
"patterns": [ | |
{ "include": "#constant_number" }, | |
{ "include": "#constant_string" } | |
], | |
"repository": { | |
"constant_number": { | |
"patterns": [ | |
{ | |
"name": "constant.numeric.aiscript", | |
"match": "-?[0-9]+" | |
} | |
] | |
}, | |
"constant_string": { | |
"patterns": [ | |
{ | |
"name": "string.quoted.double.aiscript", | |
"begin": "\"", | |
"end": "\"" | |
}, | |
{ | |
"name": "string.quoted.single.aiscript", | |
"begin": "'", | |
"end": "'" | |
}, | |
] | |
}, | |
"constant_boolean": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "true|false" | |
} | |
] | |
}, | |
"constant_null": { | |
"patterns": [ | |
{ | |
"name": "constant.language.aiscript", | |
"match": "null" | |
} | |
] | |
}, | |
"constant_object": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\{", | |
"end": "\\}" | |
} | |
] | |
}, | |
"constant_array": { | |
"patterns": [ | |
{ | |
"name": "constant.other.aiscript", | |
"begin": "\\[", | |
"end": "\\]" | |
} | |
] | |
} | |
} | |
} | |
} | |
}, | |
"function": { | |
"patterns": [ | |
{ | |
"match": "@(\\S+)\\s*\\((.*)\\)\\s*", | |
"captures": { | |
"1": { "patterns": [{ "include": "#function_name" }] }, | |
"2": { "patterns": [{ "include": "#function_arguments" }] } | |
} | |
} | |
], | |
"repository": { | |
"function_name": { | |
"patterns": [ | |
{ | |
"name": "entity.name.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
}, | |
"function_arguments": { | |
"patterns": [ | |
{ | |
"name": "variable.parameter.function.aiscript", | |
"match": "[0-9a-zA-Z]+" | |
} | |
] | |
} | |
} | |
} | |
}, | |
"boolean-literal": { | |
"patterns": [ | |
{ | |
"name": "constant.language.boolean.true.aiscript", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
}, | |
{ | |
"name": "constant.language.boolean.false.aiscript ", | |
"match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" | |
} | |
] | |
}, | |
"numeric-literal": { | |
"patterns": [ | |
{ | |
"match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", | |
"captures": { | |
"0": { | |
"name": "constant.numeric.decimal.aiscript" | |
}, | |
"1": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"2": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"3": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"4": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"5": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"6": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"7": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"8": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"9": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"10": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"11": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"12": { | |
"name": "meta.delimiter.decimal.period.aiscript" | |
}, | |
"13": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
}, | |
"14": { | |
"name": "storage.type.numeric.bigint.aiscript" | |
} | |
} | |
} | |
] | |
}, | |
"scopeName": "source.is" | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/project/aiscript-syntax/.gitignore","entries":[{"id":"bas1","timestamp":1680315297350}]} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/apiSettings/apiSettings.html","entries":[{"id":"ABkx.html","source":"Workspace Edit","timestamp":null}]} |
[ | |
{ | |
"questionnaireAnswers": [{ "questions": [] }], | |
"startAt": "2022-01-01T09:00:00.000Z", | |
"endAt": "2022-01-10T01:00:00.000Z", | |
"name": "sample event 0", | |
"eventKey": "00000000" | |
}, | |
{ | |
"questionnaireAnswers": [{ "questions": [] }], | |
"startAt": "2022-01-02T09:00:00.000Z", | |
"endAt": "2022-01-04T01:00:00.000Z", | |
"name": "sample event 3", | |
"eventKey": "333333333" | |
}, | |
{ | |
"questionnaireAnswers": [], | |
"startAt": "2022-01-02T09:00:00.000Z", | |
"endAt": "2022-01-31T01:00:00.000Z", | |
"name": "sample event 2", | |
"eventKey": "22222222" | |
}, | |
{ | |
"questionnaireAnswers": [], | |
"startAt": "2022-03-01T09:00:00.000Z", | |
"endAt": "2022-03-02T01:00:00.000Z", | |
"name": "sample event 4", | |
"eventKey": "44444444" | |
}, | |
{ | |
"questionnaireAnswers": [{ "questions": [] }], | |
"startAt": "2022-02-12T09:00:00.000Z", | |
"endAt": "2022-02-12T10:00:00.000Z", | |
"name": "sample event 6", | |
"eventKey": "66666666" | |
}, | |
{ | |
"questionnaireAnswers": [], | |
"startAt": "2022-01-22T09:00:00.000Z", | |
"endAt": "2022-01-23T01:00:00.000Z", | |
"name": "sample event 5", | |
"eventKey": "5555555" | |
} | |
] |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/eventsList/__tests__/data/getLeadInfoUnsorted.json","entries":[{"id":"Drf5.json","source":"Workspace Edit","timestamp":null},{"id":"hfPe.json","source":"Workspace Edit","timestamp":null}]} |
[ | |
{ | |
"questionnaireAnswers": [true], | |
"startAt": "2022-01-01T09:00:00.000Z", | |
"endAt": "2022-01-10T01:00:00.000Z", | |
"name": "sample event 0", | |
"eventKey": "00000000" | |
}, | |
{ | |
"questionnaireAnswers": [true], | |
"startAt": "2022-01-02T09:00:00.000Z", | |
"endAt": "2022-01-04T01:00:00.000Z", | |
"name": "sample event 3", | |
"eventKey": "333333333" | |
}, | |
{ | |
"startAt": "2022-01-02T09:00:00.000Z", | |
"endAt": "2022-01-31T01:00:00.000Z", | |
"name": "sample event 2", | |
"eventKey": "22222222" | |
}, | |
{ | |
"startAt": "2022-03-01T09:00:00.000Z", | |
"endAt": "2022-03-02T01:00:00.000Z", | |
"name": "sample event 4", | |
"eventKey": "44444444" | |
}, | |
{ | |
"questionnaireAnswers": [true], | |
"startAt": "2022-02-12T09:00:00.000Z", | |
"endAt": "2022-02-13T01:00:00.000Z", | |
"name": "sample event 6", | |
"eventKey": "66666666" | |
}, | |
{ | |
"startAt": "2022-01-22T09:00:00.000Z", | |
"endAt": "2022-01-23T01:00:00.000Z", | |
"name": "sample event 5", | |
"eventKey": "5555555" | |
} | |
] |
{"version":1,"resource":"file:///Users/tubone24/.gitignore_global","entries":[{"id":"mNhO","source":"textFileCreate.source","timestamp":1651219304048}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/testOtsuboEventHubLead/force-app/main/default/lwc/testOtsuboEventHubLead/testOtsuboEventHubLead.html","entries":[{"id":"GbG1.html","timestamp":1676958138973},{"id":"v1cg.html","timestamp":1676958166053},{"id":"Iknr.html","timestamp":1676961660905},{"id":"YrAt.html","timestamp":1676961719534},{"id":"rZYd.html","timestamp":1676961781324},{"id":"sQXy.html","timestamp":1676961804237},{"id":"2W5t.html","timestamp":1676961819097},{"id":"9iWf.html","timestamp":1676961892178},{"id":"Njc3.html","timestamp":1676961920152},{"id":"kMlL.html","timestamp":1676961960156},{"id":"saPG.html","timestamp":1676962006458},{"id":"sWRZ.html","timestamp":1676962047807},{"id":"Rlg7.html","timestamp":1676962718054},{"id":"WzDm.html","timestamp":1676962950050},{"id":"xq5v.html","timestamp":1676963082013},{"id":"dOFc.html","timestamp":1676963093222},{"id":"yMnr.html","timestamp":1676963156942},{"id":"pCQJ.html","timestamp":1676963344774},{"id":"53yg.html","timestamp":1676964500693},{"id":"bdHA.html","timestamp":1676964728343},{"id":"RKbe.html","timestamp":1676964743638},{"id":"FdbX.html","timestamp":1676964889060},{"id":"Jd8O.html","timestamp":1676964936242},{"id":"FHhu.html","timestamp":1676965028174},{"id":"Tsj5.html","timestamp":1676965075408},{"id":"OJCA.html","source":"undoRedo.source","timestamp":1676965115691},{"id":"5ECK.html","timestamp":1676965230331},{"id":"zIsN.html","timestamp":1676965271963},{"id":"6Qhu.html","timestamp":1676965294588},{"id":"KXYk.html","timestamp":1676965318764},{"id":"0fp3.html","source":"undoRedo.source","timestamp":1676965347269},{"id":"fF1A.html","timestamp":1676965355038},{"id":"vQRv.html","timestamp":1676965380288},{"id":"pdFe.html","timestamp":1676965530038},{"id":"jSUY.html","timestamp":1676965561999},{"id":"6nDF.html","timestamp":1676965581275},{"id":"qI5m.html","timestamp":1676965703736},{"id":"Msw0.html","timestamp":1676965889011},{"id":"hFJz.html","timestamp":1676967222117},{"id":"SiC7.html","timestamp":1676967578890},{"id":"CQuZ.html","timestamp":1676967589412},{"id":"3lDU.html","timestamp":1676967662077},{"id":"bkBH.html","timestamp":1676967870698},{"id":"hepV.html","timestamp":1676969179585},{"id":"ZiZN.html","timestamp":1678079330722},{"id":"A0hz.html","timestamp":1678079386605},{"id":"hu3P.html","timestamp":1678079641032},{"id":"5xfu.html","timestamp":1678425768456},{"id":"BgSw.html","timestamp":1679474430276},{"id":"siqq.html","source":"undoRedo.source","timestamp":1679474501660}]} |
{"version":1,"resource":"vsls:/force-app/main/default/classes/ApiKey.cls","entries":[{"id":"soNd.cls","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"vsls:/force-app/main/default/lwc/eventsList/eventsList.js-meta.xml","entries":[{"id":"XP3u.xml","source":"Workspace Edit","timestamp":null}]} |
{"version":1,"resource":"file:///Users/yuotsubo/sfdc_connectionapp_key/README.md","entries":[{"id":"U3ja.md","source":"textFileCreate.source","timestamp":1681263972691},{"id":"hKdx.md","timestamp":1681263975748}]} |
{"version":1,"resource":"file:///Users/yuotsubo/project/eventhub-sfdc-app/force-app/main/default/profiles/Admin.profile-meta.xml","entries":[{"id":"EZZq.xml","source":"undoRedo.source","timestamp":1684475300037}]} |
{"version":1,"resource":"file:///Users/yuotsubo/Downloads/backup_read_and_write.json","entries":[{"id":"gOze.json","source":"textFileCreate.source","timestamp":1669730475305}]} |
{ | |
"Version": "2012-10-17", | |
"Statement": [ | |
{ | |
"Action": [ | |
"s3:GetObject*", | |
"s3:GetBucket*", | |
"s3:List*", | |
"s3:DeleteObject*", | |
"s3:PutObject", | |
"s3:Abort*" | |
], | |
"Resource": [ | |
"arn:aws:s3:::prod-michibiku-convocation-notice", | |
"arn:aws:s3:::prod-michibiku-convocation-notice/*" | |
], | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": [ | |
"s3:GetObject*", | |
"s3:GetBucket*", | |
"s3:List*", | |
"s3:DeleteObject*", | |
"s3:PutObject", | |
"s3:Abort*" | |
], | |
"Resource": [ | |
"arn:aws:s3:::prod-michibiku-minutes", | |
"arn:aws:s3:::prod-michibiku-minutes/*" | |
], | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": [ | |
"s3:GetObject*", | |
"s3:GetBucket*", | |
"s3:List*", | |
"s3:DeleteObject*", | |
"s3:PutObject", | |
"s3:Abort*" | |
], | |
"Resource": [ | |
"arn:aws:s3:::prod-michibiku-attachments", | |
"arn:aws:s3:::prod-michibiku-attachments/*" | |
], | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": [ | |
"s3:GetObject*", | |
"s3:GetBucket*", | |
"s3:List*", | |
"s3:DeleteObject*", | |
"s3:PutObject", | |
"s3:Abort*" | |
], | |
"Resource": [ | |
"arn:aws:s3:::prod-michibiku-company-icon", | |
"arn:aws:s3:::prod-michibiku-company-icon/*" | |
], | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": [ | |
"cognito-idp:AdminDeleteUser", | |
"cognito-idp:AdminCreateUser", | |
"cognito-idp:AdminSetUserPassword", | |
"cognito-idp:AdminUpdateUserAttributes", | |
"cognito-idp:AssociateSoftwareToken", | |
"cognito-idp:VerifySoftwareToken", | |
"cognito-idp:AdminSetUserMFAPreference", | |
"cognito-idp:AdminGetUser", | |
"cognito-idp:AdminInitiateAuth", | |
"cognito-idp:AdminRespondToAuthChallenge" | |
], | |
"Resource": "arn:aws:cognito-idp:ap-northeast-1:486641582775:userpool/ap-northeast-1_3ScSQlUXw", | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": [ | |
"ses:SendEmail", | |
"ses:SendRawEmail" | |
], | |
"Resource": [ | |
"arn:aws:ses:ap-northeast-1:486641582775:identity/michibiku.co.jp", | |
"arn:aws:ses:ap-northeast-1:486641582775:configuration-set/configurationSetForEmailNotification" | |
], | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": [ | |
"s3:GetObject*", | |
"s3:GetBucket*", | |
"s3:List*", | |
"s3:DeleteObject*", | |
"s3:PutObject", | |
"s3:Abort*" | |
], | |
"Resource": [ | |
"arn:aws:s3:::prod-michibiku-transcriptions", | |
"arn:aws:s3:::prod-michibiku-transcriptions/*" | |
], | |
"Effect": "Allow" | |
}, | |
{ | |
"Action": "states:StartExecution", | |
"Resource": "arn:aws:states:ap-northeast-1:486641582775:stateMachine:AmiVoiceRecognitionStateMachineProdB78594D7-77mVTs8dhbIY", | |
"Effect": "Allow" | |
} | |
] | |
} |
{"version":1,"resource":"file:///Users/yuotsubo/.gitignore_global","entries":[{"id":"1DA9","timestamp":1659665435897}]} |
[ | |
{ | |
"metadata": { | |
"id": "e481f37f-988f-48e8-85c8-f8b6554acd8f", | |
"publisherId": "adelphes.android-dev-ext", | |
"publisherDisplayName": "adelphes" | |
}, | |
"name": "android-dev-ext", | |
"publisher": "adelphes", | |
"version": "1.3.2" | |
}, | |
{ | |
"metadata": { | |
"id": "7b1a75e2-45ea-4217-b257-c8e3671ec822", | |
"publisherId": "Jarga.apib", | |
"publisherDisplayName": "Jarga" | |
}, | |
"name": "apib", | |
"publisher": "Jarga", | |
"version": "0.0.2" | |
}, | |
{ | |
"metadata": { | |
"id": "fa57ae0e-d21e-40d8-a0bb-a58b5fd9ead3", | |
"publisherId": "ms-vscode.atom-keybindings", | |
"publisherDisplayName": "ms-vscode" | |
}, | |
"name": "atom-keybindings", | |
"publisher": "ms-vscode", | |
"version": "3.3.0" | |
}, | |
{ | |
"metadata": { | |
"id": "f1b47f88-a256-4d39-a24a-546cbf1a4ed9", | |
"publisherId": "mark-tucker.aws-cli-configure", | |
"publisherDisplayName": "mark-tucker" | |
}, | |
"name": "aws-cli-configure", | |
"publisher": "mark-tucker", | |
"version": "0.3.0" | |
}, | |
{ | |
"metadata": { | |
"id": "ac5787df-9b2d-441c-abf0-977d62bc66f0", | |
"publisherId": "amazonwebservices.aws-toolkit-vscode", | |
"publisherDisplayName": "amazonwebservices" | |
}, | |
"name": "aws-toolkit-vscode", | |
"publisher": "amazonwebservices", | |
"version": "1.73.0" | |
}, | |
{ | |
"metadata": { | |
"id": "5178733e-4b02-4829-95c5-1ce970847c23", | |
"publisherId": "teabyii.ayu", | |
"publisherDisplayName": "teabyii" | |
}, | |
"name": "ayu", | |
"publisher": "teabyii", | |
"version": "1.0.5" | |
}, | |
{ | |
"metadata": { | |
"id": "f4f0748b-9f86-461e-84f9-73bf2e1f91c2", | |
"publisherId": "rogalmic.bash-debug", | |
"publisherDisplayName": "rogalmic" | |
}, | |
"name": "bash-debug", | |
"publisher": "rogalmic", | |
"version": "0.3.9" | |
}, | |
{ | |
"metadata": { | |
"id": "697255a9-3f36-44c8-b084-d3b91edfb23a", | |
"publisherId": "HookyQR.beautify", | |
"publisherDisplayName": "HookyQR" | |
}, | |
"name": "beautify", | |
"publisher": "HookyQR", | |
"version": "1.5.0" | |
}, | |
{ | |
"metadata": { | |
"id": "42c113a2-e02a-4bb7-8df1-d1432646a78c", | |
"publisherId": "coddx.coddx-alpha", | |
"publisherDisplayName": "coddx" | |
}, | |
"name": "coddx-alpha", | |
"publisher": "coddx", | |
"version": "0.3.1" | |
}, | |
{ | |
"metadata": { | |
"id": "e337c67b-55c2-4fef-8949-eb260e7fb7fd", | |
"publisherId": "Shan.code-settings-sync", | |
"publisherDisplayName": "Shan" | |
}, | |
"name": "code-settings-sync", | |
"publisher": "Shan", | |
"version": "3.4.3" | |
}, | |
{ | |
"metadata": { | |
"id": "23c4aeee-f844-43cd-b53e-1113e483f1a6", | |
"publisherId": "GitHub.copilot", | |
"publisherDisplayName": "GitHub" | |
}, | |
"name": "copilot", | |
"publisher": "GitHub", | |
"version": "1.86.82" | |
}, | |
{ | |
"metadata": { | |
"id": "690b692e-e8a9-493f-b802-8089d50ac1b2", | |
"publisherId": "ms-vscode.cpptools", | |
"publisherDisplayName": "ms-vscode" | |
}, | |
"name": "cpptools", | |
"publisher": "ms-vscode", | |
"version": "1.15.4" | |
}, | |
{ | |
"metadata": { | |
"id": "f57f68ea-9ee8-42b5-9a97-041d3e4278c4", | |
"publisherId": "Dart-Code.dart-code", | |
"publisherDisplayName": "Dart-Code" | |
}, | |
"name": "dart-code", | |
"publisher": "Dart-Code", | |
"version": "3.64.0" | |
}, | |
{ | |
"metadata": { | |
"id": "88e082b7-d289-4c59-bde4-4c61e0280428", | |
"publisherId": "ms-mssql.data-workspace-vscode", | |
"publisherDisplayName": "ms-mssql" | |
}, | |
"name": "data-workspace-vscode", | |
"publisher": "ms-mssql", | |
"version": "0.4.0" | |
}, | |
{ | |
"metadata": { | |
"id": "d1e030a6-f502-48bb-92d6-7eb9f74d5bcf", | |
"publisherId": "nopjmp.fairyfloss", | |
"publisherDisplayName": "nopjmp" | |
}, | |
"name": "fairyfloss", | |
"publisher": "nopjmp", | |
"version": "0.2.2" | |
}, | |
{ | |
"metadata": { | |
"id": "f6c3ec04-6057-4d9c-b997-69cba07a6158", | |
"publisherId": "Dart-Code.flutter", | |
"publisherDisplayName": "Dart-Code" | |
}, | |
"name": "flutter", | |
"publisher": "Dart-Code", | |
"version": "3.64.0" | |
}, | |
{ | |
"metadata": { | |
"id": "5960f38e-0bbe-4644-8f9c-9c8824e82511", | |
"publisherId": "donjayamanne.githistory", | |
"publisherDisplayName": "donjayamanne" | |
}, | |
"name": "githistory", | |
"publisher": "donjayamanne", | |
"version": "0.6.20" | |
}, | |
{ | |
"metadata": { | |
"id": "4de763bd-505d-4978-9575-2b7696ecf94e", | |
"publisherId": "eamodio.gitlens", | |
"publisherDisplayName": "eamodio" | |
}, | |
"name": "gitlens", | |
"publisher": "eamodio", | |
"version": "13.6.0" | |
}, | |
{ | |
"metadata": { | |
"id": "6fdfb72c-12e3-4a3d-99c7-39840e4f83c2", | |
"publisherId": "gitpod.gitpod-desktop", | |
"publisherDisplayName": "gitpod" | |
}, | |
"name": "gitpod-desktop", | |
"publisher": "gitpod", | |
"version": "0.0.107" | |
}, | |
{ | |
"metadata": { | |
"id": "13fbce29-2b71-4689-8d18-df247ae6c5f8", | |
"publisherId": "trixnz.go-to-method", | |
"publisherDisplayName": "trixnz" | |
}, | |
"name": "go-to-method", | |
"publisher": "trixnz", | |
"version": "0.2.0" | |
}, | |
{ | |
"metadata": { | |
"id": "38ad8277-d23f-4cfc-becf-c77e41c3f2ee", | |
"publisherId": "spywhere.guides", | |
"publisherDisplayName": "spywhere" | |
}, | |
"name": "guides", | |
"publisher": "spywhere", | |
"version": "0.9.3" | |
}, | |
{ | |
"metadata": { | |
"id": "52a9b6d2-38d8-44b5-8d11-1ced151c24e1", | |
"publisherId": "josephtbradley.hive-sql", | |
"publisherDisplayName": "josephtbradley" | |
}, | |
"name": "hive-sql", | |
"publisher": "josephtbradley", | |
"version": "0.0.4" | |
}, | |
{ | |
"metadata": { | |
"id": "18b0ddc7-5d9c-4604-a7fa-10e66a2cb10d", | |
"publisherId": "george-alisson.html-preview-vscode", | |
"publisherDisplayName": "george-alisson" | |
}, | |
"name": "html-preview-vscode", | |
"publisher": "george-alisson", | |
"version": "0.2.5" | |
}, | |
{ | |
"metadata": { | |
"id": "4ad0ce32-ff3f-49f0-83b5-93e5dc00cfff", | |
"publisherId": "ms-python.isort", | |
"publisherDisplayName": "ms-python" | |
}, | |
"name": "isort", | |
"publisher": "ms-python", | |
"version": "2022.8.0" | |
}, | |
{ | |
"metadata": { | |
"id": "236ff452-49f5-47a4-8928-ab18f5b9c7bf", | |
"publisherId": "eriklynd.json-tools", | |
"publisherDisplayName": "eriklynd" | |
}, | |
"name": "json-tools", | |
"publisher": "eriklynd", | |
"version": "1.0.2" | |
}, | |
{ | |
"metadata": { | |
"id": "6c2f1801-1e7f-45b2-9b5c-7782f1e076e8", | |
"publisherId": "ms-toolsai.jupyter", | |
"publisherDisplayName": "ms-toolsai" | |
}, | |
"name": "jupyter", | |
"publisher": "ms-toolsai", | |
"version": "2023.4.1011241018" | |
}, | |
{ | |
"metadata": { | |
"id": "9f6dc8db-620c-4844-b8c5-e74914f1be27", | |
"publisherId": "ms-toolsai.jupyter-keymap", | |
"publisherDisplayName": "ms-toolsai" | |
}, | |
"name": "jupyter-keymap", | |
"publisher": "ms-toolsai", | |
"version": "1.1.0" | |
}, | |
{ | |
"metadata": { | |
"id": "b15c72f8-d5fe-421a-a4f7-27ed9f6addbf", | |
"publisherId": "ms-toolsai.jupyter-renderers", | |
"publisherDisplayName": "ms-toolsai" | |
}, | |
"name": "jupyter-renderers", | |
"publisher": "ms-toolsai", | |
"version": "1.0.15" | |
}, | |
{ | |
"metadata": { | |
"id": "b63c44fd-0457-4696-99e9-dbfdf70d77de", | |
"publisherId": "ritwickdey.LiveServer", | |
"publisherDisplayName": "ritwickdey" | |
}, | |
"name": "LiveServer", | |
"publisher": "ritwickdey", | |
"version": "5.7.9" | |
}, | |
{ | |
"metadata": { | |
"id": "e8b488af-fccf-4adf-b60c-fc7455bea107", | |
"publisherId": "emilast.LogFileHighlighter", | |
"publisherDisplayName": "emilast" | |
}, | |
"name": "LogFileHighlighter", | |
"publisher": "emilast", | |
"version": "2.16.0" | |
}, | |
{ | |
"metadata": { | |
"id": "98790d67-10fa-497c-9113-f6c7489207b2", | |
"publisherId": "yzhang.markdown-all-in-one", | |
"publisherDisplayName": "yzhang" | |
}, | |
"name": "markdown-all-in-one", | |
"publisher": "yzhang", | |
"version": "3.5.1" | |
}, | |
{ | |
"metadata": { | |
"id": "f015bc3c-a098-4245-8765-615e002e09ab", | |
"publisherId": "yzane.markdown-pdf", | |
"publisherDisplayName": "yzane" | |
}, | |
"name": "markdown-pdf", | |
"publisher": "yzane", | |
"version": "1.4.4" | |
}, | |
{ | |
"metadata": { | |
"id": "3b1db1fc-c7f7-4bd6-9fa4-b499dfa99a8a", | |
"publisherId": "shd101wyy.markdown-preview-enhanced", | |
"publisherDisplayName": "shd101wyy" | |
}, | |
"name": "markdown-preview-enhanced", | |
"publisher": "shd101wyy", | |
"version": "0.6.8" | |
}, | |
{ | |
"metadata": { | |
"id": "4bf45e86-a448-4531-8c01-ef33f4536306", | |
"publisherId": "ms-mssql.mssql", | |
"publisherDisplayName": "ms-mssql" | |
}, | |
"name": "mssql", | |
"publisher": "ms-mssql", | |
"version": "1.18.0" | |
}, | |
{ | |
"metadata": { | |
"id": "1f3d8d31-8ff8-4429-8565-7313f9c67971", | |
"publisherId": "kosz78.nim", | |
"publisherDisplayName": "kosz78" | |
}, | |
"name": "nim", | |
"publisher": "kosz78", | |
"version": "0.6.6" | |
}, | |
{ | |
"metadata": { | |
"id": "8567d26a-2dcc-4c34-846c-d56fb6bdf985", | |
"publisherId": "danijel-malik.nimble", | |
"publisherDisplayName": "danijel-malik" | |
}, | |
"name": "nimble", | |
"publisher": "danijel-malik", | |
"version": "0.3.1" | |
}, | |
{ | |
"metadata": { | |
"id": "113b22c8-8125-42ec-8c6b-80c3f5d5fa5f", | |
"publisherId": "IBM.output-colorizer", | |
"publisherDisplayName": "IBM" | |
}, | |
"name": "output-colorizer", | |
"publisher": "IBM", | |
"version": "0.1.2" | |
}, | |
{ | |
"metadata": { | |
"id": "79afa437-682e-4fa2-a4fd-87844832a1dc", | |
"publisherId": "ryu1kn.partial-diff", | |
"publisherDisplayName": "ryu1kn" | |
}, | |
"name": "partial-diff", | |
"publisher": "ryu1kn", | |
"version": "1.4.3" | |
}, | |
{ | |
"metadata": { | |
"id": "0d1241e3-fa60-4f24-8f2a-6d7085677c48", | |
"publisherId": "ionutvmi.path-autocomplete", | |
"publisherDisplayName": "ionutvmi" | |
}, | |
"name": "path-autocomplete", | |
"publisher": "ionutvmi", | |
"version": "1.23.1" | |
}, | |
{ | |
"metadata": { | |
"id": "d95cb424-7a5a-4e08-9698-107d6fd590cf", | |
"publisherId": "jebbs.plantuml", | |
"publisherDisplayName": "jebbs" | |
}, | |
"name": "plantuml", | |
"publisher": "jebbs", | |
"version": "2.17.5" | |
}, | |
{ | |
"metadata": { | |
"id": "ea52326c-68a8-4587-a2f0-abb0a91e455a", | |
"publisherId": "xyz.plsql-language", | |
"publisherDisplayName": "xyz" | |
}, | |
"name": "plsql-language", | |
"publisher": "xyz", | |
"version": "1.8.2" | |
}, | |
{ | |
"metadata": { | |
"id": "96fa4707-6983-4489-b7c5-d5ffdfdcce90", | |
"publisherId": "esbenp.prettier-vscode", | |
"publisherDisplayName": "esbenp" | |
}, | |
"name": "prettier-vscode", | |
"publisher": "esbenp", | |
"version": "9.12.0" | |
}, | |
{ | |
"metadata": { | |
"id": "67e66172-30c7-4478-8f5d-6eac4ae755dc", | |
"publisherId": "mohsen1.prettify-json", | |
"publisherDisplayName": "mohsen1" | |
}, | |
"name": "prettify-json", | |
"publisher": "mohsen1", | |
"version": "0.0.3" | |
}, | |
{ | |
"metadata": { | |
"id": "f1f59ae4-9318-4f3c-a9b5-81b2eaa5f8a5", | |
"publisherId": "ms-python.python", | |
"publisherDisplayName": "ms-python" | |
}, | |
"name": "python", | |
"publisher": "ms-python", | |
"version": "2023.8.0" | |
}, | |
{ | |
"metadata": { | |
"id": "3792588c-3d35-442d-91ea-fe6a755e8155", | |
"publisherId": "mechatroner.rainbow-csv", | |
"publisherDisplayName": "mechatroner" | |
}, | |
"name": "rainbow-csv", | |
"publisher": "mechatroner", | |
"version": "3.7.0" | |
}, | |
{ | |
"metadata": { | |
"id": "7ed7bccd-f358-4c6f-88c0-1296185abaa1", | |
"publisherId": "chrmarti.regex", | |
"publisherDisplayName": "chrmarti" | |
}, | |
"name": "regex", | |
"publisher": "chrmarti", | |
"version": "0.4.0" | |
}, | |
{ | |
"metadata": { | |
"id": "93ce222b-5f6f-49b7-9ab1-a0463c6238df", | |
"publisherId": "ms-vscode-remote.remote-containers", | |
"publisherD |
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)