Skip to content

Commit a96a2d8

Browse files
committed
wip: update grammar, add codelens for strings
1 parent cbce4d3 commit a96a2d8

16 files changed

+8982
-3487
lines changed

.yarnrc.yml

Lines changed: 0 additions & 1 deletion
This file was deleted.

client/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"vscode": "^1.63.0"
77
},
88
"dependencies": {
9-
"vscode-languageclient": "^7.0.0"
9+
"vscode-languageclient": "^8.0.2"
1010
},
1111
"devDependencies": {
1212
"@types/node": "^17.0.23",

client/src/extension.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ let client: LanguageClient;
1515

1616

1717
export function activate(context: vscode.ExtensionContext) {
18+
vscode.commands.registerCommand('func.copyToClipboard', (str: string) => {
19+
vscode.env.clipboard.writeText(str);
20+
vscode.window.showInformationMessage(`Copied ${str} to clipboard`);
21+
})
22+
1823
startServer(context)
1924
}
2025

@@ -77,9 +82,7 @@ async function startServer(context: vscode.ExtensionContext): Promise<vscode.Dis
7782
clientOptions
7883
);
7984

80-
disposables.push(client.start());
81-
82-
await client.onReady();
85+
await client.start();
8386

8487
// serve fileRead request
8588
client.onRequest('file/read', async raw => {

client/yarn.lock

Lines changed: 105 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,125 @@
1-
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2-
# yarn lockfile v1
1+
# This file is generated by running "yarn install" inside your project.
2+
# Manual changes might be lost - proceed with caution!
33

4+
__metadata:
5+
version: 6
6+
cacheKey: 8
47

5-
"@types/node@^17.0.23":
6-
version "17.0.45"
7-
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190"
8-
integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==
8+
"@types/node@npm:^17.0.23":
9+
version: 17.0.45
10+
resolution: "@types/node@npm:17.0.45"
11+
checksum: aa04366b9103b7d6cfd6b2ef64182e0eaa7d4462c3f817618486ea0422984c51fc69fd0d436eae6c9e696ddfdbec9ccaa27a917f7c2e8c75c5d57827fe3d95e8
12+
languageName: node
13+
linkType: hard
914

10-
"@types/vscode@^1.63.0":
11-
version "1.70.0"
12-
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.70.0.tgz#9cb14cdaac9f450a7005ae2db49ecee4a084c983"
13-
integrity sha512-3/9Fz0F2eBgwciazc94Ien+9u1elnjFg9YAhvAb3qDy/WeFWD9VrOPU7CIytryOVUdbxus8uzL4VZYONA0gDtA==
15+
"@types/vscode@npm:^1.63.0":
16+
version: 1.70.0
17+
resolution: "@types/vscode@npm:1.70.0"
18+
checksum: fda7b48d93a8c2164abb393224572e201a995518a223c6d1fb130e66baf5878235901a078ee31f8f12f89854935ca431a9b78c335abc78672b4e25e5b9d32584
19+
languageName: node
20+
linkType: hard
1421

15-
balanced-match@^1.0.0:
16-
version "1.0.2"
17-
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
18-
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
22+
"balanced-match@npm:^1.0.0":
23+
version: 1.0.2
24+
resolution: "balanced-match@npm:1.0.2"
25+
checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65
26+
languageName: node
27+
linkType: hard
1928

20-
brace-expansion@^1.1.7:
21-
version "1.1.11"
22-
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
23-
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
29+
"brace-expansion@npm:^1.1.7":
30+
version: 1.1.11
31+
resolution: "brace-expansion@npm:1.1.11"
2432
dependencies:
25-
balanced-match "^1.0.0"
26-
concat-map "0.0.1"
33+
balanced-match: ^1.0.0
34+
concat-map: 0.0.1
35+
checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07
36+
languageName: node
37+
linkType: hard
2738

28-
29-
version "0.0.1"
30-
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
31-
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
39+
"client@workspace:.":
40+
version: 0.0.0-use.local
41+
resolution: "client@workspace:."
42+
dependencies:
43+
"@types/node": ^17.0.23
44+
"@types/vscode": ^1.63.0
45+
vscode-languageclient: ^8.0.2
46+
languageName: unknown
47+
linkType: soft
48+
49+
"concat-map@npm:0.0.1":
50+
version: 0.0.1
51+
resolution: "concat-map@npm:0.0.1"
52+
checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af
53+
languageName: node
54+
linkType: hard
3255

33-
lru-cache@^6.0.0:
34-
version "6.0.0"
35-
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
36-
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
56+
"lru-cache@npm:^6.0.0":
57+
version: 6.0.0
58+
resolution: "lru-cache@npm:6.0.0"
3759
dependencies:
38-
yallist "^4.0.0"
60+
yallist: ^4.0.0
61+
checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297
62+
languageName: node
63+
linkType: hard
3964

40-
minimatch@^3.0.4:
41-
version "3.1.2"
42-
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
43-
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
65+
"minimatch@npm:^3.0.4":
66+
version: 3.1.2
67+
resolution: "minimatch@npm:3.1.2"
4468
dependencies:
45-
brace-expansion "^1.1.7"
69+
brace-expansion: ^1.1.7
70+
checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a
71+
languageName: node
72+
linkType: hard
4673

47-
semver@^7.3.4:
48-
version "7.3.7"
49-
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
50-
integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
74+
"semver@npm:^7.3.5":
75+
version: 7.3.7
76+
resolution: "semver@npm:7.3.7"
5177
dependencies:
52-
lru-cache "^6.0.0"
78+
lru-cache: ^6.0.0
79+
bin:
80+
semver: bin/semver.js
81+
checksum: 2fa3e877568cd6ce769c75c211beaed1f9fce80b28338cadd9d0b6c40f2e2862bafd62c19a6cff42f3d54292b7c623277bcab8816a2b5521cf15210d43e75232
82+
languageName: node
83+
linkType: hard
5384

54-
55-
version "6.0.0"
56-
resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e"
57-
integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==
85+
"vscode-jsonrpc@npm:8.0.2":
86+
version: 8.0.2
87+
resolution: "vscode-jsonrpc@npm:8.0.2"
88+
checksum: 9d055fd4c87ef1093b0eecb5370bfaf3402179b6639149b6d0f7e0bde60cf580091c7e07b0caff868f10f90331b17e7383c087217c077fdd1b5ae7bc23b72f77
89+
languageName: node
90+
linkType: hard
5891

59-
vscode-languageclient@^7.0.0:
60-
version "7.0.0"
61-
resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz#b505c22c21ffcf96e167799757fca07a6bad0fb2"
62-
integrity sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==
92+
"vscode-languageclient@npm:^8.0.2":
93+
version: 8.0.2
94+
resolution: "vscode-languageclient@npm:8.0.2"
6395
dependencies:
64-
minimatch "^3.0.4"
65-
semver "^7.3.4"
66-
vscode-languageserver-protocol "3.16.0"
96+
minimatch: ^3.0.4
97+
semver: ^7.3.5
98+
vscode-languageserver-protocol: 3.17.2
99+
checksum: 3a145605a3cdb2855a2a771d6b8e75e72a1ca5aa32e091933c2f0e6f7b8fc1a45a9ea79b434001ad8af6b8cdb4ef88ff92fbb128b37988ebb21cac1b60cd44c3
100+
languageName: node
101+
linkType: hard
67102

68-
69-
version "3.16.0"
70-
resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821"
71-
integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==
103+
"vscode-languageserver-protocol@npm:3.17.2":
104+
version: 3.17.2
105+
resolution: "vscode-languageserver-protocol@npm:3.17.2"
72106
dependencies:
73-
vscode-jsonrpc "6.0.0"
74-
vscode-languageserver-types "3.16.0"
107+
vscode-jsonrpc: 8.0.2
108+
vscode-languageserver-types: 3.17.2
109+
checksum: f4a05d3a631af315a32a3700953c2117fa4e5c44bc03764154c6605da9cbbcb50a1b01b46f11b2f6948916d01b4948bebf1a84c135fc73b27fa839c58d0847ab
110+
languageName: node
111+
linkType: hard
75112

76-
77-
version "3.16.0"
78-
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
79-
integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
113+
"vscode-languageserver-types@npm:3.17.2":
114+
version: 3.17.2
115+
resolution: "vscode-languageserver-types@npm:3.17.2"
116+
checksum: ef2d862d22f622b64de0f428773d50a5928ec6cdd485960a7564ebe4fd4a3c8bcd956f29eb15bc45a0f353846e62f39f6c764d2ab85ce774b8724411ba84342f
117+
languageName: node
118+
linkType: hard
80119

81-
yallist@^4.0.0:
82-
version "4.0.0"
83-
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
84-
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
120+
"yallist@npm:^4.0.0":
121+
version: 4.0.0
122+
resolution: "yallist@npm:4.0.0"
123+
checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5
124+
languageName: node
125+
linkType: hard

grammar/func/grammar.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ module.exports = grammar({
7575
),
7676

7777
string_literal: $ => /"[^"]*"/,
78-
number_string_literal: $ => /"[^"]*"(H|h|c|u)/,
79-
slice_string_literal: $ => /"[^"]*"(s|a)/,
78+
number_string_literal: $ => /"[^"]*"[Hhcu]/,
79+
slice_string_literal: $ => /"[^"]*"[sa]/,
8080

8181
// actually FunC identifiers are much more flexible
8282
identifier: $ => /(`.*`)|([a-zA-Z_](\w|['?:])+)|([a-zA-Z])/,

grammar/func/src/grammar.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2186,11 +2186,11 @@
21862186
},
21872187
"number_string_literal": {
21882188
"type": "PATTERN",
2189-
"value": "\"[^\"]*\"(H|h|c|u)"
2189+
"value": "\"[^\"]*\"[Hhcu]"
21902190
},
21912191
"slice_string_literal": {
21922192
"type": "PATTERN",
2193-
"value": "\"[^\"]*\"(s|a)"
2193+
"value": "\"[^\"]*\"[sa]"
21942194
},
21952195
"identifier": {
21962196
"type": "PATTERN",

0 commit comments

Comments
 (0)