@zyntax/extension-sdk 1.0.1 → 1.0.2

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.
@@ -0,0 +1,1033 @@
1
+ {
2
+ "formatVersion": 1,
3
+ "hostVersion": "0.9.0",
4
+ "baseManifest": {
5
+ "manifestVersion": 1,
6
+ "id": "zyntax.contract-fixture",
7
+ "name": "Contract Fixture",
8
+ "version": "1.0.0",
9
+ "publisher": "zyntax",
10
+ "engines": {
11
+ "zyntax": ">0.8.0"
12
+ },
13
+ "activationEvents": [],
14
+ "permissions": [],
15
+ "dependencies": [],
16
+ "toolRequirements": [],
17
+ "contributes": {
18
+ "languages": [
19
+ {
20
+ "id": "contract",
21
+ "extensions": [
22
+ ".contract"
23
+ ]
24
+ }
25
+ ]
26
+ }
27
+ },
28
+ "storeTools": [
29
+ {
30
+ "id": "zyntax.contract-tool",
31
+ "name": "Contract Language Server",
32
+ "kind": "languageServer",
33
+ "version": "1.0.0",
34
+ "platform": {
35
+ "os": "android",
36
+ "architecture": "arm64-v8a"
37
+ },
38
+ "capabilities": [
39
+ "formatter.document",
40
+ "language-server.lsp-stdio",
41
+ "service.persistent"
42
+ ],
43
+ "dependencies": [],
44
+ "runtimeRoot": "payload/bin",
45
+ "source": {
46
+ "kind": "store"
47
+ },
48
+ "size": 128,
49
+ "sha256": "0000000000000000000000000000000000000000000000000000000000000000",
50
+ "contentSize": 1024,
51
+ "scratchSize": 0,
52
+ "license": "MIT",
53
+ "entrypoints": [
54
+ {
55
+ "id": "lsp",
56
+ "path": "payload/bin/contract-language-server"
57
+ }
58
+ ],
59
+ "resources": [
60
+ {
61
+ "id": "contract-module",
62
+ "path": "payload/lib/node_modules/contract-peer"
63
+ }
64
+ ],
65
+ "probes": [
66
+ {
67
+ "capability": "formatter.document",
68
+ "entrypoint": "lsp",
69
+ "args": [
70
+ "--version"
71
+ ],
72
+ "timeoutMs": 1000,
73
+ "maxOutputBytes": 4096,
74
+ "expectedStdout": "1.0.0\n"
75
+ },
76
+ {
77
+ "capability": "language-server.lsp-stdio",
78
+ "entrypoint": "lsp",
79
+ "args": [
80
+ "--version"
81
+ ],
82
+ "timeoutMs": 1000,
83
+ "maxOutputBytes": 4096,
84
+ "expectedStdout": "1.0.0\n"
85
+ },
86
+ {
87
+ "capability": "service.persistent",
88
+ "entrypoint": "lsp",
89
+ "args": [
90
+ "--version"
91
+ ],
92
+ "timeoutMs": 1000,
93
+ "maxOutputBytes": 4096,
94
+ "expectedStdout": "1.0.0\n"
95
+ }
96
+ ]
97
+ }
98
+ ],
99
+ "cases": [
100
+ {
101
+ "id": "permission-valid",
102
+ "area": "permission",
103
+ "valid": true,
104
+ "patch": {
105
+ "permissions": [
106
+ "network",
107
+ "workspace.read"
108
+ ]
109
+ }
110
+ },
111
+ {
112
+ "id": "permission-invalid",
113
+ "area": "permission",
114
+ "valid": false,
115
+ "patch": {
116
+ "permissions": [
117
+ "filesystem"
118
+ ]
119
+ }
120
+ },
121
+ {
122
+ "id": "activation-valid",
123
+ "area": "activation",
124
+ "valid": true,
125
+ "patch": {
126
+ "activationEvents": [
127
+ {
128
+ "kind": "document",
129
+ "language": "contract"
130
+ }
131
+ ]
132
+ }
133
+ },
134
+ {
135
+ "id": "language-multi-part-extension-valid",
136
+ "area": "language",
137
+ "valid": true,
138
+ "patch": {
139
+ "contributes": {
140
+ "languages": [
141
+ {
142
+ "id": "blade",
143
+ "extensions": [
144
+ ".blade.php"
145
+ ]
146
+ }
147
+ ]
148
+ }
149
+ }
150
+ },
151
+ {
152
+ "id": "activation-invalid",
153
+ "area": "activation",
154
+ "valid": false,
155
+ "patch": {
156
+ "activationEvents": [
157
+ {
158
+ "kind": "document",
159
+ "language": "contract"
160
+ },
161
+ {
162
+ "kind": "document",
163
+ "language": "contract"
164
+ }
165
+ ]
166
+ }
167
+ },
168
+ {
169
+ "id": "provider-valid",
170
+ "area": "provider",
171
+ "valid": true,
172
+ "patch": {
173
+ "permissions": [
174
+ "extension.execute"
175
+ ],
176
+ "activationEvents": [
177
+ {
178
+ "kind": "provider",
179
+ "providerKind": "inlineCompletion",
180
+ "provider": "inline"
181
+ }
182
+ ],
183
+ "contributes": {
184
+ "inlineCompletionProviders": [
185
+ {
186
+ "id": "inline",
187
+ "module": "providers/inline.js",
188
+ "export": "createInline",
189
+ "languages": [
190
+ {
191
+ "id": "javascript",
192
+ "schemes": [
193
+ "file"
194
+ ],
195
+ "group": "contract.inline",
196
+ "priority": 100,
197
+ "composition": "exclusive"
198
+ }
199
+ ]
200
+ }
201
+ ]
202
+ }
203
+ }
204
+ },
205
+ {
206
+ "id": "provider-invalid",
207
+ "area": "provider",
208
+ "valid": false,
209
+ "patch": {
210
+ "permissions": [
211
+ "extension.execute"
212
+ ],
213
+ "activationEvents": [
214
+ {
215
+ "kind": "provider",
216
+ "providerKind": "inlineCompletion",
217
+ "provider": "inline"
218
+ }
219
+ ],
220
+ "contributes": {
221
+ "inlineCompletionProviders": [
222
+ {
223
+ "id": "inline",
224
+ "module": "../inline.js",
225
+ "export": "createInline",
226
+ "languages": [
227
+ {
228
+ "id": "javascript",
229
+ "schemes": [
230
+ "file"
231
+ ],
232
+ "group": "contract.inline",
233
+ "priority": 100,
234
+ "composition": "exclusive"
235
+ }
236
+ ]
237
+ }
238
+ ]
239
+ }
240
+ }
241
+ },
242
+ {
243
+ "id": "hover-provider-valid",
244
+ "area": "provider",
245
+ "valid": true,
246
+ "patch": {
247
+ "permissions": [
248
+ "extension.execute"
249
+ ],
250
+ "activationEvents": [
251
+ {
252
+ "kind": "provider",
253
+ "providerKind": "hover",
254
+ "provider": "hover"
255
+ }
256
+ ],
257
+ "contributes": {
258
+ "hoverProviders": [
259
+ {
260
+ "id": "hover",
261
+ "module": "providers/hover.js",
262
+ "export": "createHover",
263
+ "languages": [
264
+ {
265
+ "id": "javascript",
266
+ "schemes": [
267
+ "file"
268
+ ],
269
+ "group": "contract.hover",
270
+ "priority": 100,
271
+ "composition": "additive"
272
+ }
273
+ ]
274
+ }
275
+ ]
276
+ }
277
+ }
278
+ },
279
+ {
280
+ "id": "preview-provider-valid",
281
+ "area": "provider",
282
+ "valid": true,
283
+ "patch": {
284
+ "permissions": [
285
+ "extension.execute"
286
+ ],
287
+ "activationEvents": [
288
+ {
289
+ "kind": "provider",
290
+ "providerKind": "preview",
291
+ "provider": "preview"
292
+ }
293
+ ],
294
+ "contributes": {
295
+ "previewProviders": [
296
+ {
297
+ "id": "preview",
298
+ "module": "providers/preview.js",
299
+ "export": "createPreview",
300
+ "input": "document",
301
+ "placement": "adjacent",
302
+ "encoding": "utf8",
303
+ "paths": [
304
+ {
305
+ "id": "svg",
306
+ "glob": "*.svg",
307
+ "schemes": [
308
+ "file"
309
+ ],
310
+ "group": "contract.preview",
311
+ "priority": 100,
312
+ "composition": "exclusive"
313
+ }
314
+ ]
315
+ }
316
+ ]
317
+ }
318
+ }
319
+ },
320
+ {
321
+ "id": "preview-provider-invalid",
322
+ "area": "provider",
323
+ "valid": false,
324
+ "patch": {
325
+ "permissions": [
326
+ "extension.execute"
327
+ ],
328
+ "activationEvents": [
329
+ {
330
+ "kind": "provider",
331
+ "providerKind": "preview",
332
+ "provider": "preview"
333
+ }
334
+ ],
335
+ "contributes": {
336
+ "previewProviders": [
337
+ {
338
+ "id": "preview",
339
+ "module": "providers/preview.js",
340
+ "export": "createPreview",
341
+ "input": "bytes",
342
+ "placement": "adjacent",
343
+ "encoding": "utf8",
344
+ "paths": [
345
+ {
346
+ "id": "svg",
347
+ "glob": "*.svg",
348
+ "schemes": [
349
+ "file"
350
+ ],
351
+ "group": "contract.preview",
352
+ "priority": 100,
353
+ "composition": "exclusive"
354
+ }
355
+ ]
356
+ }
357
+ ]
358
+ }
359
+ }
360
+ },
361
+ {
362
+ "id": "task-provider-valid",
363
+ "area": "provider",
364
+ "valid": true,
365
+ "patch": {
366
+ "permissions": [
367
+ "extension.execute",
368
+ "tools.execute"
369
+ ],
370
+ "activationEvents": [
371
+ {
372
+ "kind": "provider",
373
+ "providerKind": "task",
374
+ "provider": "project-tasks"
375
+ }
376
+ ],
377
+ "contributes": {
378
+ "taskProviders": [
379
+ {
380
+ "id": "project-tasks",
381
+ "module": "providers/tasks.js",
382
+ "export": "createTasks",
383
+ "schemes": [
384
+ "file"
385
+ ],
386
+ "group": "project.tasks",
387
+ "priority": 100,
388
+ "composition": "additive",
389
+ "taskTypes": [
390
+ "build"
391
+ ]
392
+ }
393
+ ]
394
+ }
395
+ }
396
+ },
397
+ {
398
+ "id": "task-provider-invalid",
399
+ "area": "provider",
400
+ "valid": false,
401
+ "patch": {
402
+ "permissions": [
403
+ "extension.execute"
404
+ ],
405
+ "activationEvents": [
406
+ {
407
+ "kind": "provider",
408
+ "providerKind": "task",
409
+ "provider": "project-tasks"
410
+ }
411
+ ],
412
+ "contributes": {
413
+ "taskProviders": [
414
+ {
415
+ "id": "project-tasks",
416
+ "module": "providers/tasks.js",
417
+ "export": "createTasks",
418
+ "schemes": [
419
+ "file"
420
+ ],
421
+ "group": "project.tasks",
422
+ "priority": 100,
423
+ "composition": "additive",
424
+ "taskTypes": [
425
+ "build"
426
+ ]
427
+ }
428
+ ]
429
+ }
430
+ }
431
+ },
432
+ {
433
+ "id": "language-server-capabilities-valid",
434
+ "area": "managedTool",
435
+ "valid": true,
436
+ "patch": {
437
+ "permissions": [
438
+ "tools.execute"
439
+ ],
440
+ "activationEvents": [
441
+ {
442
+ "kind": "document",
443
+ "language": "contract"
444
+ }
445
+ ],
446
+ "toolRequirements": [
447
+ {
448
+ "id": "zyntax.contract-tool",
449
+ "version": "1.0.0",
450
+ "platforms": [
451
+ {
452
+ "os": "android",
453
+ "architecture": "arm64-v8a"
454
+ }
455
+ ],
456
+ "capabilities": [
457
+ "language-server.lsp-stdio"
458
+ ]
459
+ }
460
+ ],
461
+ "contributes": {
462
+ "languageServers": [
463
+ {
464
+ "id": "contract-server",
465
+ "execution": {
466
+ "tool": "zyntax.contract-tool",
467
+ "entrypoint": "lsp",
468
+ "args": [
469
+ "--stdio"
470
+ ]
471
+ },
472
+ "languages": [
473
+ {
474
+ "id": "contract",
475
+ "languageId": "contract",
476
+ "composition": "exclusive",
477
+ "priority": 100,
478
+ "capabilities": {
479
+ "documentHighlights": [
480
+ {
481
+ "group": "contract",
482
+ "role": "authoritative",
483
+ "composition": "additive",
484
+ "priority": 100,
485
+ "languages": [
486
+ "contract"
487
+ ]
488
+ }
489
+ ],
490
+ "documentSymbols": {
491
+ "group": "contract",
492
+ "role": "authoritative",
493
+ "composition": "additive",
494
+ "priority": 100
495
+ },
496
+ "foldingRanges": {
497
+ "group": "contract",
498
+ "role": "authoritative",
499
+ "composition": "additive",
500
+ "priority": 100
501
+ }
502
+ }
503
+ }
504
+ ],
505
+ "requestTimeoutMs": 10000,
506
+ "memoryLimitBytes": 268435456,
507
+ "maxMessageBytes": 4194304
508
+ }
509
+ ]
510
+ }
511
+ }
512
+ },
513
+ {
514
+ "id": "language-server-highlights-shape-invalid",
515
+ "area": "managedTool",
516
+ "valid": false,
517
+ "patch": {
518
+ "permissions": [
519
+ "tools.execute"
520
+ ],
521
+ "toolRequirements": [
522
+ {
523
+ "id": "zyntax.contract-tool",
524
+ "version": "1.0.0",
525
+ "platforms": [
526
+ {
527
+ "os": "android",
528
+ "architecture": "arm64-v8a"
529
+ }
530
+ ],
531
+ "capabilities": [
532
+ "language-server.lsp-stdio"
533
+ ]
534
+ }
535
+ ],
536
+ "contributes": {
537
+ "languageServers": [
538
+ {
539
+ "id": "contract-server",
540
+ "execution": {
541
+ "tool": "zyntax.contract-tool",
542
+ "entrypoint": "lsp",
543
+ "args": [
544
+ "--stdio"
545
+ ]
546
+ },
547
+ "languages": [
548
+ {
549
+ "id": "contract",
550
+ "languageId": "contract",
551
+ "composition": "exclusive",
552
+ "priority": 100,
553
+ "capabilities": {
554
+ "documentHighlights": {
555
+ "group": "contract",
556
+ "role": "authoritative",
557
+ "composition": "additive",
558
+ "priority": 100,
559
+ "languages": [
560
+ "contract"
561
+ ]
562
+ }
563
+ }
564
+ }
565
+ ],
566
+ "requestTimeoutMs": 10000,
567
+ "memoryLimitBytes": 268435456,
568
+ "maxMessageBytes": 4194304
569
+ }
570
+ ]
571
+ }
572
+ }
573
+ },
574
+ {
575
+ "id": "managed-tool-valid",
576
+ "area": "managedTool",
577
+ "valid": true,
578
+ "patch": {
579
+ "permissions": [
580
+ "tools.execute"
581
+ ],
582
+ "activationEvents": [
583
+ {
584
+ "kind": "document",
585
+ "language": "contract"
586
+ }
587
+ ],
588
+ "toolRequirements": [
589
+ {
590
+ "id": "zyntax.contract-tool",
591
+ "version": "1.0.0",
592
+ "platforms": [
593
+ {
594
+ "os": "android",
595
+ "architecture": "arm64-v8a"
596
+ }
597
+ ],
598
+ "capabilities": [
599
+ "language-server.lsp-stdio"
600
+ ]
601
+ }
602
+ ],
603
+ "contributes": {
604
+ "languageServers": [
605
+ {
606
+ "id": "contract-server",
607
+ "execution": {
608
+ "tool": "zyntax.contract-tool",
609
+ "entrypoint": "lsp",
610
+ "args": [
611
+ "--stdio"
612
+ ]
613
+ },
614
+ "languages": [
615
+ {
616
+ "id": "contract",
617
+ "languageId": "contract",
618
+ "composition": "exclusive",
619
+ "priority": 100,
620
+ "capabilities": {
621
+ "completion": [
622
+ {
623
+ "group": "contract",
624
+ "role": "authoritative",
625
+ "composition": "exclusive",
626
+ "priority": 100,
627
+ "languages": [
628
+ "contract"
629
+ ]
630
+ }
631
+ ]
632
+ }
633
+ }
634
+ ],
635
+ "requestTimeoutMs": 10000,
636
+ "memoryLimitBytes": 268435456,
637
+ "maxMessageBytes": 4194304
638
+ }
639
+ ]
640
+ }
641
+ }
642
+ },
643
+ {
644
+ "id": "managed-tool-invalid",
645
+ "area": "managedTool",
646
+ "valid": false,
647
+ "patch": {
648
+ "permissions": [
649
+ "tools.execute"
650
+ ],
651
+ "activationEvents": [
652
+ {
653
+ "kind": "document",
654
+ "language": "contract"
655
+ }
656
+ ],
657
+ "toolRequirements": [
658
+ {
659
+ "id": "zyntax.contract-tool",
660
+ "version": "1.0.0",
661
+ "platforms": [
662
+ {
663
+ "os": "android",
664
+ "architecture": "arm64-v8a"
665
+ }
666
+ ],
667
+ "capabilities": [
668
+ "runtime.node"
669
+ ]
670
+ }
671
+ ],
672
+ "contributes": {
673
+ "languageServers": [
674
+ {
675
+ "id": "contract-server",
676
+ "execution": {
677
+ "tool": "zyntax.contract-tool",
678
+ "entrypoint": "lsp",
679
+ "args": [
680
+ "--stdio"
681
+ ]
682
+ },
683
+ "languages": [
684
+ {
685
+ "id": "contract",
686
+ "languageId": "contract",
687
+ "composition": "exclusive",
688
+ "priority": 100,
689
+ "capabilities": {
690
+ "completion": [
691
+ {
692
+ "group": "contract",
693
+ "role": "authoritative",
694
+ "composition": "exclusive",
695
+ "priority": 100,
696
+ "languages": [
697
+ "contract"
698
+ ]
699
+ }
700
+ ]
701
+ }
702
+ }
703
+ ],
704
+ "requestTimeoutMs": 10000,
705
+ "memoryLimitBytes": 268435456,
706
+ "maxMessageBytes": 4194304
707
+ }
708
+ ]
709
+ }
710
+ }
711
+ },
712
+ {
713
+ "id": "persistent-service-valid",
714
+ "area": "managedTool",
715
+ "valid": true,
716
+ "patch": {
717
+ "permissions": [
718
+ "services.manage",
719
+ "tools.execute"
720
+ ],
721
+ "toolRequirements": [
722
+ {
723
+ "id": "zyntax.contract-tool",
724
+ "version": "1.0.0",
725
+ "platforms": [
726
+ {
727
+ "os": "android",
728
+ "architecture": "arm64-v8a"
729
+ }
730
+ ],
731
+ "capabilities": [
732
+ "service.persistent"
733
+ ]
734
+ }
735
+ ],
736
+ "contributes": {
737
+ "persistentServices": [
738
+ {
739
+ "id": "contract-service",
740
+ "label": "Contract Service",
741
+ "description": "A host-supervised contract fixture.",
742
+ "execution": {
743
+ "kind": "managedTool",
744
+ "tool": "zyntax.contract-tool",
745
+ "entrypoint": "lsp"
746
+ },
747
+ "lifecycle": {
748
+ "stopSignal": "TERM",
749
+ "stopTimeoutMs": 4000
750
+ },
751
+ "probe": {
752
+ "kind": "process"
753
+ },
754
+ "log": {
755
+ "maxBytes": 65536
756
+ }
757
+ }
758
+ ]
759
+ }
760
+ }
761
+ },
762
+ {
763
+ "id": "persistent-service-permission-invalid",
764
+ "area": "managedTool",
765
+ "valid": false,
766
+ "patch": {
767
+ "permissions": [
768
+ "tools.execute"
769
+ ],
770
+ "toolRequirements": [
771
+ {
772
+ "id": "zyntax.contract-tool",
773
+ "version": "1.0.0",
774
+ "platforms": [
775
+ {
776
+ "os": "android",
777
+ "architecture": "arm64-v8a"
778
+ }
779
+ ],
780
+ "capabilities": [
781
+ "service.persistent"
782
+ ]
783
+ }
784
+ ],
785
+ "contributes": {
786
+ "persistentServices": [
787
+ {
788
+ "id": "contract-service",
789
+ "label": "Contract Service",
790
+ "execution": {
791
+ "kind": "managedTool",
792
+ "tool": "zyntax.contract-tool",
793
+ "entrypoint": "lsp"
794
+ },
795
+ "lifecycle": {
796
+ "stopSignal": "TERM",
797
+ "stopTimeoutMs": 4000
798
+ },
799
+ "probe": {
800
+ "kind": "process"
801
+ },
802
+ "log": {
803
+ "maxBytes": 65536
804
+ }
805
+ }
806
+ ]
807
+ }
808
+ }
809
+ },
810
+ {
811
+ "id": "persistent-service-execution-invalid",
812
+ "area": "managedTool",
813
+ "valid": false,
814
+ "patch": {
815
+ "permissions": [
816
+ "services.manage",
817
+ "tools.execute"
818
+ ],
819
+ "toolRequirements": [
820
+ {
821
+ "id": "zyntax.contract-tool",
822
+ "version": "1.0.0",
823
+ "platforms": [
824
+ {
825
+ "os": "android",
826
+ "architecture": "arm64-v8a"
827
+ }
828
+ ],
829
+ "capabilities": [
830
+ "service.persistent"
831
+ ]
832
+ }
833
+ ],
834
+ "contributes": {
835
+ "persistentServices": [
836
+ {
837
+ "id": "contract-service",
838
+ "label": "Contract Service",
839
+ "execution": {
840
+ "kind": "managedTool",
841
+ "tool": "zyntax.contract-tool",
842
+ "entrypoint": "lsp",
843
+ "args": [
844
+ "--serve"
845
+ ]
846
+ },
847
+ "lifecycle": {
848
+ "stopSignal": "TERM",
849
+ "stopTimeoutMs": 4000
850
+ },
851
+ "probe": {
852
+ "kind": "process"
853
+ },
854
+ "log": {
855
+ "maxBytes": 65536
856
+ }
857
+ }
858
+ ]
859
+ }
860
+ }
861
+ },
862
+ {
863
+ "id": "formatter-protocol-valid",
864
+ "area": "managedTool",
865
+ "valid": true,
866
+ "patch": {
867
+ "permissions": [
868
+ "tools.execute"
869
+ ],
870
+ "activationEvents": [
871
+ {
872
+ "kind": "formatter",
873
+ "formatter": "contract-format"
874
+ }
875
+ ],
876
+ "toolRequirements": [
877
+ {
878
+ "id": "zyntax.contract-tool",
879
+ "version": "1.0.0",
880
+ "platforms": [
881
+ {
882
+ "os": "android",
883
+ "architecture": "arm64-v8a"
884
+ }
885
+ ],
886
+ "capabilities": [
887
+ "formatter.document"
888
+ ]
889
+ }
890
+ ],
891
+ "contributes": {
892
+ "formatters": [
893
+ {
894
+ "id": "contract-format",
895
+ "protocol": "raw-stdio",
896
+ "execution": {
897
+ "tool": "zyntax.contract-tool",
898
+ "entrypoint": "lsp",
899
+ "args": [
900
+ "fmt",
901
+ "--peer",
902
+ {
903
+ "$toolResource": {
904
+ "tool": "zyntax.contract-tool",
905
+ "resource": "contract-module"
906
+ }
907
+ },
908
+ "--stdin-name",
909
+ {
910
+ "$documentPath": "current"
911
+ }
912
+ ],
913
+ "nodeModules": [
914
+ {
915
+ "name": "contract-peer",
916
+ "resource": {
917
+ "$toolResource": {
918
+ "tool": "zyntax.contract-tool",
919
+ "resource": "contract-module"
920
+ }
921
+ }
922
+ }
923
+ ]
924
+ },
925
+ "languages": [
926
+ {
927
+ "id": "contract",
928
+ "priority": 100
929
+ }
930
+ ],
931
+ "requestTimeoutMs": 10000,
932
+ "memoryLimitBytes": 268435456,
933
+ "maxMessageBytes": 4194304
934
+ }
935
+ ]
936
+ }
937
+ }
938
+ },
939
+ {
940
+ "id": "formatter-protocol-invalid",
941
+ "area": "managedTool",
942
+ "valid": false,
943
+ "patch": {
944
+ "permissions": [
945
+ "tools.execute"
946
+ ],
947
+ "activationEvents": [
948
+ {
949
+ "kind": "formatter",
950
+ "formatter": "contract-format"
951
+ }
952
+ ],
953
+ "toolRequirements": [
954
+ {
955
+ "id": "zyntax.contract-tool",
956
+ "version": "1.0.0",
957
+ "platforms": [
958
+ {
959
+ "os": "android",
960
+ "architecture": "arm64-v8a"
961
+ }
962
+ ],
963
+ "capabilities": [
964
+ "formatter.document"
965
+ ]
966
+ }
967
+ ],
968
+ "contributes": {
969
+ "formatters": [
970
+ {
971
+ "id": "contract-format",
972
+ "protocol": "stdio",
973
+ "execution": {
974
+ "tool": "zyntax.contract-tool",
975
+ "entrypoint": "lsp",
976
+ "args": [
977
+ "fmt",
978
+ "--ext=contract",
979
+ "-"
980
+ ]
981
+ },
982
+ "languages": [
983
+ {
984
+ "id": "contract",
985
+ "priority": 100
986
+ }
987
+ ],
988
+ "requestTimeoutMs": 10000,
989
+ "memoryLimitBytes": 268435456,
990
+ "maxMessageBytes": 4194304
991
+ }
992
+ ]
993
+ }
994
+ }
995
+ },
996
+ {
997
+ "id": "workbench-valid",
998
+ "area": "workbench",
999
+ "valid": true,
1000
+ "patch": {
1001
+ "contributes": {
1002
+ "workbench": [
1003
+ {
1004
+ "kind": "status",
1005
+ "id": "contract-status",
1006
+ "placement": "status.left",
1007
+ "text": "Ready",
1008
+ "icon": "check"
1009
+ }
1010
+ ]
1011
+ }
1012
+ }
1013
+ },
1014
+ {
1015
+ "id": "workbench-invalid",
1016
+ "area": "workbench",
1017
+ "valid": false,
1018
+ "patch": {
1019
+ "contributes": {
1020
+ "workbench": [
1021
+ {
1022
+ "kind": "status",
1023
+ "id": "contract-status",
1024
+ "placement": "status.center",
1025
+ "text": "Ready",
1026
+ "icon": "check"
1027
+ }
1028
+ ]
1029
+ }
1030
+ }
1031
+ }
1032
+ ]
1033
+ }