@willbooster/tree-sitter-kotlin 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@willbooster/tree-sitter-kotlin",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Kotlin grammar for tree-sitter",
5
5
  "keywords": [
6
6
  "incremental",
@@ -14,58 +14,52 @@
14
14
  },
15
15
  "license": "MIT",
16
16
  "author": "WillBooster Inc.",
17
- "main": "bindings/node",
18
- "types": "bindings/node",
19
17
  "files": [
20
18
  "grammar.js",
21
19
  "tree-sitter.json",
22
- "binding.gyp",
23
- "prebuilds/**",
24
- "bindings/node/*",
25
- "queries/*",
26
- "src/**",
20
+ "src/node-types.json",
27
21
  "*.wasm"
28
22
  ],
29
23
  "scripts": {
30
- "build-prebuilds": "prebuildify --napi --strip --name tree-sitter-kotlin",
31
24
  "build-wasm": "tree-sitter build --wasm",
32
- "build/ci": "tree-sitter generate && node-gyp rebuild",
25
+ "build/ci": "tree-sitter generate && tree-sitter build --wasm",
33
26
  "cleanup": "bun wb lint --fix --format",
34
27
  "format": "bun wb lint --format",
35
- "install": "node-gyp-build",
36
28
  "lint": "bun wb lint",
37
29
  "lint-fix": "bun wb lint --fix",
38
30
  "prepare": "(bun lefthook install || true) && (test ! -f .lefthook/normalize-bun-lockfile.sh || bash .lefthook/normalize-bun-lockfile.sh)",
39
31
  "release": "wb release",
40
- "release-test": "node node_modules/semantic-release/bin/semantic-release.js --dry-run --plugins @semantic-release/commit-analyzer @semantic-release/release-notes-generator",
41
32
  "prestart": "bun run build-wasm",
42
33
  "start": "tree-sitter playground",
43
34
  "test": "bun wb test",
44
35
  "test/ci": "bun wb test-on-ci",
36
+ "typecheck": "bun wb typecheck",
45
37
  "verify": "bun wb verify",
46
38
  "verify-full": "bun wb verify --full"
47
39
  },
48
- "dependencies": {
49
- "node-addon-api": "^8.3.0",
50
- "node-gyp-build": "^4.8.4"
51
- },
52
40
  "devDependencies": {
53
41
  "@semantic-release/exec": "7.1.0",
42
+ "@tsconfig/bun": "1.0.11",
43
+ "@types/bun": "1.4.2",
44
+ "@willbooster/oxfmt-config": "1.2.2",
45
+ "@willbooster/oxlint-config": "1.4.8",
54
46
  "@willbooster/wb": "22.8.0",
55
47
  "conventional-changelog-conventionalcommits": "10.4.0",
56
48
  "lefthook": "2.1.14",
57
- "node-gyp": "13.0.2",
58
- "prebuildify": "^6.0.1",
49
+ "oxfmt": "0.68.0",
50
+ "oxlint": "1.83.0",
51
+ "oxlint-tsgolint": "7.0.2002",
59
52
  "semantic-release": "25.0.9",
60
53
  "sort-package-json": "4.0.0",
61
- "tree-sitter": "^0.25.0",
62
- "tree-sitter-cli": "^0.27.0"
54
+ "tree-sitter-cli": "0.27.0",
55
+ "typescript": "7.0.2",
56
+ "web-tree-sitter": "0.27.0"
63
57
  },
64
58
  "peerDependencies": {
65
- "tree-sitter": "^0.25.0"
59
+ "web-tree-sitter": "^0.27.0"
66
60
  },
67
61
  "peerDependenciesMeta": {
68
- "tree-sitter": {
62
+ "web-tree-sitter": {
69
63
  "optional": true
70
64
  }
71
65
  },
@@ -51,6 +51,14 @@
51
51
  "type": "expression",
52
52
  "named": true,
53
53
  "subtypes": [
54
+ {
55
+ "type": "break_expression",
56
+ "named": true
57
+ },
58
+ {
59
+ "type": "continue_expression",
60
+ "named": true
61
+ },
54
62
  {
55
63
  "type": "index_expression",
56
64
  "named": true
@@ -551,6 +559,22 @@
551
559
  ]
552
560
  }
553
561
  },
562
+ {
563
+ "type": "break_expression",
564
+ "named": true,
565
+ "fields": {
566
+ "label": {
567
+ "multiple": false,
568
+ "required": false,
569
+ "types": [
570
+ {
571
+ "type": "identifier",
572
+ "named": true
573
+ }
574
+ ]
575
+ }
576
+ }
577
+ },
554
578
  {
555
579
  "type": "call_expression",
556
580
  "named": true,
@@ -846,6 +870,22 @@
846
870
  ]
847
871
  }
848
872
  },
873
+ {
874
+ "type": "continue_expression",
875
+ "named": true,
876
+ "fields": {
877
+ "label": {
878
+ "multiple": false,
879
+ "required": false,
880
+ "types": [
881
+ {
882
+ "type": "identifier",
883
+ "named": true
884
+ }
885
+ ]
886
+ }
887
+ }
888
+ },
849
889
  {
850
890
  "type": "delegation_specifier",
851
891
  "named": true,
@@ -892,6 +932,20 @@
892
932
  "type": "do_while_statement",
893
933
  "named": true,
894
934
  "fields": {
935
+ "body": {
936
+ "multiple": false,
937
+ "required": false,
938
+ "types": [
939
+ {
940
+ "type": "block",
941
+ "named": true
942
+ },
943
+ {
944
+ "type": "statement",
945
+ "named": true
946
+ }
947
+ ]
948
+ },
895
949
  "condition": {
896
950
  "multiple": false,
897
951
  "required": true,
@@ -904,20 +958,12 @@
904
958
  }
905
959
  },
906
960
  "children": {
907
- "multiple": true,
961
+ "multiple": false,
908
962
  "required": false,
909
963
  "types": [
910
- {
911
- "type": "block",
912
- "named": true
913
- },
914
964
  {
915
965
  "type": "label",
916
966
  "named": true
917
- },
918
- {
919
- "type": "statement",
920
- "named": true
921
967
  }
922
968
  ]
923
969
  }
@@ -1024,7 +1070,22 @@
1024
1070
  {
1025
1071
  "type": "for_statement",
1026
1072
  "named": true,
1027
- "fields": {},
1073
+ "fields": {
1074
+ "body": {
1075
+ "multiple": false,
1076
+ "required": false,
1077
+ "types": [
1078
+ {
1079
+ "type": "block",
1080
+ "named": true
1081
+ },
1082
+ {
1083
+ "type": "statement",
1084
+ "named": true
1085
+ }
1086
+ ]
1087
+ }
1088
+ },
1028
1089
  "children": {
1029
1090
  "multiple": true,
1030
1091
  "required": true,
@@ -1034,7 +1095,7 @@
1034
1095
  "named": true
1035
1096
  },
1036
1097
  {
1037
- "type": "block",
1098
+ "type": "expression",
1038
1099
  "named": true
1039
1100
  },
1040
1101
  {
@@ -1045,10 +1106,6 @@
1045
1106
  "type": "multi_variable_declaration",
1046
1107
  "named": true
1047
1108
  },
1048
- {
1049
- "type": "statement",
1050
- "named": true
1051
- },
1052
1109
  {
1053
1110
  "type": "variable_declaration",
1054
1111
  "named": true
@@ -1222,6 +1279,24 @@
1222
1279
  "type": "if_expression",
1223
1280
  "named": true,
1224
1281
  "fields": {
1282
+ "alternative": {
1283
+ "multiple": false,
1284
+ "required": false,
1285
+ "types": [
1286
+ {
1287
+ "type": "assignment",
1288
+ "named": true
1289
+ },
1290
+ {
1291
+ "type": "block",
1292
+ "named": true
1293
+ },
1294
+ {
1295
+ "type": "expression",
1296
+ "named": true
1297
+ }
1298
+ ]
1299
+ },
1225
1300
  "condition": {
1226
1301
  "multiple": false,
1227
1302
  "required": true,
@@ -1231,25 +1306,25 @@
1231
1306
  "named": true
1232
1307
  }
1233
1308
  ]
1309
+ },
1310
+ "consequence": {
1311
+ "multiple": false,
1312
+ "required": false,
1313
+ "types": [
1314
+ {
1315
+ "type": "assignment",
1316
+ "named": true
1317
+ },
1318
+ {
1319
+ "type": "block",
1320
+ "named": true
1321
+ },
1322
+ {
1323
+ "type": "expression",
1324
+ "named": true
1325
+ }
1326
+ ]
1234
1327
  }
1235
- },
1236
- "children": {
1237
- "multiple": true,
1238
- "required": false,
1239
- "types": [
1240
- {
1241
- "type": "assignment",
1242
- "named": true
1243
- },
1244
- {
1245
- "type": "block",
1246
- "named": true
1247
- },
1248
- {
1249
- "type": "expression",
1250
- "named": true
1251
- }
1252
- ]
1253
1328
  }
1254
1329
  },
1255
1330
  {
@@ -2442,6 +2517,20 @@
2442
2517
  "type": "when_entry",
2443
2518
  "named": true,
2444
2519
  "fields": {
2520
+ "body": {
2521
+ "multiple": false,
2522
+ "required": true,
2523
+ "types": [
2524
+ {
2525
+ "type": "block",
2526
+ "named": true
2527
+ },
2528
+ {
2529
+ "type": "statement",
2530
+ "named": true
2531
+ }
2532
+ ]
2533
+ },
2445
2534
  "condition": {
2446
2535
  "multiple": true,
2447
2536
  "required": false,
@@ -2460,20 +2549,6 @@
2460
2549
  }
2461
2550
  ]
2462
2551
  }
2463
- },
2464
- "children": {
2465
- "multiple": false,
2466
- "required": true,
2467
- "types": [
2468
- {
2469
- "type": "block",
2470
- "named": true
2471
- },
2472
- {
2473
- "type": "statement",
2474
- "named": true
2475
- }
2476
- ]
2477
2552
  }
2478
2553
  },
2479
2554
  {
@@ -2522,6 +2597,20 @@
2522
2597
  "type": "while_statement",
2523
2598
  "named": true,
2524
2599
  "fields": {
2600
+ "body": {
2601
+ "multiple": false,
2602
+ "required": false,
2603
+ "types": [
2604
+ {
2605
+ "type": "block",
2606
+ "named": true
2607
+ },
2608
+ {
2609
+ "type": "statement",
2610
+ "named": true
2611
+ }
2612
+ ]
2613
+ },
2525
2614
  "condition": {
2526
2615
  "multiple": false,
2527
2616
  "required": true,
@@ -2534,20 +2623,12 @@
2534
2623
  }
2535
2624
  },
2536
2625
  "children": {
2537
- "multiple": true,
2626
+ "multiple": false,
2538
2627
  "required": false,
2539
2628
  "types": [
2540
- {
2541
- "type": "block",
2542
- "named": true
2543
- },
2544
2629
  {
2545
2630
  "type": "label",
2546
2631
  "named": true
2547
- },
2548
- {
2549
- "type": "statement",
2550
- "named": true
2551
2632
  }
2552
2633
  ]
2553
2634
  }
@@ -2773,6 +2854,14 @@
2773
2854
  "named": true,
2774
2855
  "extra": true
2775
2856
  },
2857
+ {
2858
+ "type": "break",
2859
+ "named": false
2860
+ },
2861
+ {
2862
+ "type": "break@",
2863
+ "named": false
2864
+ },
2776
2865
  {
2777
2866
  "type": "by",
2778
2867
  "named": false
@@ -2797,6 +2886,14 @@
2797
2886
  "type": "constructor",
2798
2887
  "named": false
2799
2888
  },
2889
+ {
2890
+ "type": "continue",
2891
+ "named": false
2892
+ },
2893
+ {
2894
+ "type": "continue@",
2895
+ "named": false
2896
+ },
2800
2897
  {
2801
2898
  "type": "crossinline",
2802
2899
  "named": false
Binary file
package/tree-sitter.json CHANGED
@@ -13,7 +13,7 @@
13
13
  }
14
14
  ],
15
15
  "metadata": {
16
- "version": "1.0.0",
16
+ "version": "1.2.0",
17
17
  "license": "MIT",
18
18
  "description": "Kotlin grammar for tree-sitter",
19
19
  "authors": [
@@ -26,11 +26,13 @@
26
26
  }
27
27
  },
28
28
  "bindings": {
29
- "c": true,
30
- "go": true,
31
- "node": true,
32
- "python": true,
33
- "rust": false,
34
- "swift": true
29
+ "c": false,
30
+ "go": false,
31
+ "java": false,
32
+ "node": false,
33
+ "python": false,
34
+ "rust": true,
35
+ "swift": false,
36
+ "zig": false
35
37
  }
36
38
  }
package/binding.gyp DELETED
@@ -1,30 +0,0 @@
1
- {
2
- "targets": [
3
- {
4
- "target_name": "tree_sitter_kotlin_binding",
5
- "dependencies": [
6
- "<!(node -p \"require('node-addon-api').targets\"):node_addon_api_except",
7
- ],
8
- "include_dirs": [
9
- "src",
10
- ],
11
- "sources": [
12
- "bindings/node/binding.cc",
13
- "src/parser.c",
14
- "src/scanner.c",
15
- ],
16
- "conditions": [
17
- ["OS!='win'", {
18
- "cflags_c": [
19
- "-std=c11",
20
- ],
21
- }, { # OS == "win"
22
- "cflags_c": [
23
- "/std:c11",
24
- "/utf-8",
25
- ],
26
- }],
27
- ],
28
- }
29
- ]
30
- }
@@ -1,20 +0,0 @@
1
- #include <napi.h>
2
-
3
- typedef struct TSLanguage TSLanguage;
4
-
5
- extern "C" TSLanguage *tree_sitter_kotlin();
6
-
7
- // "tree-sitter", "language" hashed with BLAKE2
8
- const napi_type_tag LANGUAGE_TYPE_TAG = {
9
- 0x8AF2E5212AD58ABF, 0xD5006CAD83ABBA16
10
- };
11
-
12
- Napi::Object Init(Napi::Env env, Napi::Object exports) {
13
- exports["name"] = Napi::String::New(env, "kotlin");
14
- auto language = Napi::External<TSLanguage>::New(env, tree_sitter_kotlin());
15
- language.TypeTag(&LANGUAGE_TYPE_TAG);
16
- exports["language"] = language;
17
- return exports;
18
- }
19
-
20
- NODE_API_MODULE(tree_sitter_kotlin_binding, Init)
@@ -1,9 +0,0 @@
1
- const assert = require("node:assert");
2
- const { test } = require("node:test");
3
-
4
- const Parser = require("tree-sitter");
5
-
6
- test("can load grammar", () => {
7
- const parser = new Parser();
8
- assert.doesNotThrow(() => parser.setLanguage(require(".")));
9
- });
@@ -1,28 +0,0 @@
1
- type BaseNode = {
2
- type: string;
3
- named: boolean;
4
- };
5
-
6
- type ChildNode = {
7
- multiple: boolean;
8
- required: boolean;
9
- types: BaseNode[];
10
- };
11
-
12
- type NodeInfo =
13
- | (BaseNode & {
14
- subtypes: BaseNode[];
15
- })
16
- | (BaseNode & {
17
- fields: { [name: string]: ChildNode };
18
- children: ChildNode[];
19
- });
20
-
21
- type Language = {
22
- name: string;
23
- language: unknown;
24
- nodeTypeInfo: NodeInfo[];
25
- };
26
-
27
- declare const language: Language;
28
- export = language;
@@ -1,11 +0,0 @@
1
- const root = require("path").join(__dirname, "..", "..");
2
-
3
- module.exports =
4
- typeof process.versions.bun === "string"
5
- // Support `bun build --compile` by being statically analyzable enough to find the .node file at build-time
6
- ? require(`../../prebuilds/${process.platform}-${process.arch}/tree-sitter-kotlin.node`)
7
- : require("node-gyp-build")(root);
8
-
9
- try {
10
- module.exports.nodeTypeInfo = require("../../src/node-types.json");
11
- } catch (_) {}