-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathpackage.json
More file actions
421 lines (421 loc) · 19.5 KB
/
package.json
File metadata and controls
421 lines (421 loc) · 19.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
{
"name": "jetls-client",
"displayName": "JETLS Client",
"description": "A new language server for Julia",
"author": "Shuhei Kadowaki",
"license": "MIT",
"version": "0.3.5",
"repository": {
"type": "git",
"url": "https://github.com/aviatesk/JETLS.jl",
"directory": "jetls-client"
},
"homepage": "https://github.com/aviatesk/JETLS.jl/blob/master/jetls-client/README.md",
"bugs": {
"url": "https://github.com/aviatesk/JETLS.jl/issues"
},
"publisher": "aviatesk",
"extensionKind": [
"workspace"
],
"categories": [
"Programming Languages",
"Linters",
"Formatters",
"Testing"
],
"keywords": [
"Julia",
"JETLS",
"JET",
"language server"
],
"engines": {
"vscode": "^1.96.0"
},
"activationEvents": [
"onLanguage:julia",
"workspaceContains:Project.toml"
],
"main": "./out/jetls-client",
"contributes": {
"commands": [
{
"command": "jetls-client.restartLanguageServer",
"title": "JETLS Client: Restart JETLS Language Server"
},
{
"command": "jetls.showReferences",
"title": "JETLS: Show References"
}
],
"configuration": {
"type": "object",
"title": "JETLS configurations",
"properties": {
"jetls-client.executable": {
"scope": "resource",
"oneOf": [
{
"type": "object",
"markdownDescription": "Standard configuration (recommended for most users).",
"properties": {
"path": {
"type": "string",
"default": "jetls",
"markdownDescription": "Path to the `jetls` executable. Default is `'jetls'` which expects the executable to be in your `PATH`."
},
"threads": {
"type": "string",
"default": "auto",
"markdownDescription": "Number of Julia threads to use (used as `--threads=` option). Default is `'auto'`."
}
},
"additionalProperties": false
},
{
"type": "array",
"markdownDescription": "Advanced: Full command to launch JETLS from a local checkout.",
"items": {
"type": "string"
}
}
],
"default": {
"path": "jetls",
"threads": "auto"
},
"markdownDescription": "JETLS executable configuration. Most users do not need to change this.\n\nUse object form `{path, threads}` to customize the installed JETLS executable path or thread setting.\n\nUse array form `[\"julia\", \"--startup-file=no\", \"--history-file=no\", \"--project=/path/to/JETLS\", \"-m\", \"JETLS\"]` to use a local JETLS checkout instead of globally installed executable.",
"order": 1
},
"jetls-client.communicationChannel": {
"scope": "resource",
"type": "string",
"enum": [
"auto",
"pipe",
"stdio",
"socket"
],
"default": "auto",
"markdownDescription": "Communication channel for the language server:\n- `'auto'` (default) selects the best option based on environment\n- `'pipe'` for local development with stdout isolation\n- `'socket'` for network communication\n- `'stdio'` for maximum compatibility (but risk of stdout pollution).\n\nSee [Communication channels](https://aviatesk.github.io/JETLS.jl/release/launching/#Communication-channels) documentation for more details.",
"order": 2
},
"jetls-client.socketPort": {
"scope": "resource",
"type": "number",
"default": 0,
"markdownDescription": "Port number for socket communication (`0` = auto-assign). Only used when `'socket'` communication channel is used.",
"order": 3
},
"jetls-client.initializationOptions": {
"scope": "resource",
"type": "object",
"default": {},
"markdownDescription": "Static initialization options sent to JETLS during startup. These settings require a server restart to take effect.",
"properties": {
"additionalProperties": false,
"markdownDescription": "Static initialization options that are set once at server startup and require a server restart to take effect. See [Initialization options](https://aviatesk.github.io/JETLS.jl/release/launching/#init-options).",
"properties": {
"analysis_overrides": {
"default": [],
"items": {
"additionalProperties": false,
"properties": {
"module_name": {
"markdownDescription": "Optional module name to associate with the matched files. When specified, analysis is performed within the context of this module.",
"type": "string"
},
"path": {
"markdownDescription": "Glob pattern to match files for which analysis should be overridden (e.g., `src/**/*.jl`, `test/**/*.jl`). Patterns are matched against file paths relative to the workspace root. Supports globstar (`**`) for matching directories recursively.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"markdownDescription": "Override full analysis behavior for specific file patterns. Primarily used as a temporary workaround to disable analysis for files affected by memory leak issues. Each override specifies a glob pattern and optionally a module name. Note: This is an experimental feature that may be removed or changed in future versions.",
"type": "array"
},
"n_analysis_workers": {
"default": 1,
"markdownDescription": "Number of concurrent analysis worker tasks for running full analysis (experimental). Default is 1. See [documentation](https://aviatesk.github.io/JETLS.jl/release/launching/#init-options/n_analysis_workers) for details and current limitations.",
"maximum": 9223372036854775807,
"minimum": -9223372036854775808,
"type": "integer"
}
},
"required": [],
"type": "object"
},
"order": 4
},
"jetls-client.settings": {
"scope": "resource",
"type": "object",
"default": {},
"markdownDescription": "JETLS server configuration settings. See [Configuration documentation](https://aviatesk.github.io/JETLS.jl/release/configuration/) for detailed information.",
"properties": {
"code_lens": {
"additionalProperties": false,
"markdownDescription": "Code lens configuration. See [Code lens configuration](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/code_lens).",
"properties": {
"references": {
"default": false,
"markdownDescription": "Show reference counts above top-level symbols (functions, structs, constants, etc.). Click to open references panel.",
"type": "boolean"
},
"testrunner": {
"default": true,
"markdownDescription": "Show `Run`/`Debug` code lenses above `@testset` blocks. Some editors (e.g., Zed) show these as code actions, causing duplication; zed-julia defaults to false.",
"type": "boolean"
}
},
"required": [],
"type": "object"
},
"completion": {
"additionalProperties": false,
"markdownDescription": "Completion configuration. See [Completion configuration](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/completion).",
"properties": {
"latex_emoji": {
"additionalProperties": false,
"markdownDescription": "LaTeX and emoji completion configuration. See [documentation](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/completion-latex_emoji-strip_prefix).",
"properties": {
"strip_prefix": {
"markdownDescription": "Controls whether to strip `\\` or `:` prefix from LaTeX/emoji completion labels. Some editors (e.g., Zed) have sorting issues with backslash in `sortText`. Auto-detected by default; set explicitly if completions appear in wrong order.",
"type": "boolean"
}
},
"required": [],
"type": "object"
},
"method_signature": {
"additionalProperties": false,
"markdownDescription": "Method signature completion configuration. See [documentation](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/completion-method_signature-prepend_inference_result).",
"properties": {
"prepend_inference_result": {
"markdownDescription": "When true, prepends inferred return type to completion documentation, ensuring visibility in editors where `CompletionItem.detail` may be cut off (e.g., Zed). Auto-detected by default based on client name; set explicitly if return types are not visible.",
"type": "boolean"
}
},
"required": [],
"type": "object"
}
},
"required": [],
"type": "object"
},
"diagnostic": {
"additionalProperties": false,
"markdownDescription": "Diagnostic configuration. See [Diagnostic configuration](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/diagnostic).",
"properties": {
"all_files": {
"default": true,
"markdownDescription": "Report diagnostics for all workspace files (true) or only open files (false). Disable to reduce noise from many warnings.",
"type": "boolean"
},
"allow_unused_underscore": {
"default": true,
"markdownDescription": "Suppress unused variable diagnostics for `_`-prefixed names, following the common convention for intentionally unused variables.",
"type": "boolean"
},
"enabled": {
"default": true,
"markdownDescription": "Enable or disable all JETLS diagnostics. When set to false, no diagnostic messages will be shown.",
"type": "boolean"
},
"patterns": {
"default": [],
"items": {
"additionalProperties": false,
"properties": {
"match_by": {
"enum": [
"code",
"message"
],
"markdownDescription": "What to match against: `code` matches against diagnostic codes (e.g., `lowering/unused-argument`), `message` matches against diagnostic message text.",
"type": "string"
},
"match_type": {
"enum": [
"literal",
"regex"
],
"markdownDescription": "How to interpret the pattern: `literal` for exact string match, `regex` for regular expression match.",
"type": "string"
},
"path": {
"markdownDescription": "Optional glob pattern to restrict this configuration to specific files (e.g., `test/**/*.jl`). Patterns are matched against file paths relative to the workspace root. Supports globstar (`**`) for matching directories recursively. If omitted, the pattern applies to all files.",
"type": "string"
},
"pattern": {
"anyOf": [
{
"format": "regex",
"type": "string"
},
{
"type": "string"
}
],
"markdownDescription": "The pattern to match. For code matching, use diagnostic codes like `lowering/unused-argument`. For message matching, use text patterns like `Macro name .* not found`. This value is also used as the key when merging configurations from different sources."
},
"severity": {
"markdownDescription": "Severity level to apply. String values are case-insensitive: `error`/1 for critical issues, `warning`/`warn`/2 for potential problems, `information`/`info`/3 for informational messages, `hint`/4 for suggestions, `off`/0 to disable the diagnostic.",
"oneOf": [
{
"maximum": 4,
"minimum": 0,
"type": "integer"
},
{
"enum": [
"off",
"error",
"warning",
"warn",
"information",
"info",
"hint"
],
"type": "string"
}
]
}
},
"required": [
"pattern",
"match_by",
"match_type",
"severity"
],
"type": "object"
},
"markdownDescription": "Fine-grained control over diagnostics through pattern matching. See [Pattern-based diagnostic configuration](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/diagnostic-patterns).",
"type": "array"
}
},
"required": [],
"type": "object"
},
"formatter": {
"default": "Runic",
"markdownDescription": "Formatter configuration. Can be a preset name (`Runic` or `JuliaFormatter`) or a custom formatter object. See [Formatter configuration](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/formatter).",
"oneOf": [
{
"enum": [
"Runic",
"JuliaFormatter"
],
"type": "string"
},
{
"additionalProperties": false,
"properties": {
"custom": {
"additionalProperties": false,
"properties": {
"executable": {
"markdownDescription": "Path to custom formatter executable for document formatting. The formatter should read Julia code from stdin and output formatted code to stdout.",
"type": "string"
},
"executable_range": {
"markdownDescription": "Path to custom formatter executable for range formatting. Should accept a `--lines=START:END` argument to format only the specified line range.",
"type": "string"
}
},
"required": [
"executable"
],
"type": "object"
}
},
"required": [
"custom"
],
"type": "object"
}
]
},
"full_analysis": {
"additionalProperties": false,
"markdownDescription": "Configuration for full JET analysis. See [Full analysis configuration](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/full_analysis).",
"properties": {
"auto_instantiate": {
"default": true,
"markdownDescription": "Automatically run `Pkg.resolve()` and `Pkg.instantiate()` for uninstantiated packages (e.g., freshly cloned repos). Creates versioned manifest if needed.",
"type": "boolean"
},
"debounce": {
"default": 1.0,
"markdownDescription": "Debounce time in seconds before triggering full analysis after a file save. Higher values reduce analysis frequency but may delay diagnostic updates.",
"type": "number"
}
},
"required": [],
"type": "object"
},
"inlay_hint": {
"additionalProperties": false,
"markdownDescription": "Inlay hint configuration. See [Inlay hint configuration](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/inlay_hint).",
"properties": {
"block_end_min_lines": {
"default": 25,
"markdownDescription": "Minimum lines for a block to display an inlay hint at `end` (e.g., `end # module Foo`). Supports: `module`, `function`, `macro`, `struct`, `if`, `let`, `for`, `while`, `@testset`.",
"maximum": 9223372036854775807,
"minimum": -9223372036854775808,
"type": "integer"
}
},
"required": [],
"type": "object"
},
"testrunner": {
"additionalProperties": false,
"markdownDescription": "TestRunner integration configuration. See [TestRunner integration](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/testrunner).",
"properties": {
"executable": {
"default": "testrunner",
"markdownDescription": "Path to the TestRunner.jl executable. Defaults to `testrunner` (or `testrunner.bat` on Windows).",
"type": "string"
}
},
"required": [],
"type": "object"
}
},
"order": 0
}
}
}
},
"scripts": {
"build": "node esbuild.js --production",
"build:watch": "node esbuild.js --watch",
"check": "npm run check:tsc && npm run check:lint",
"check:tsc": "tsc --noEmit",
"check:lint": "eslint",
"clean": "rm -rf out *.vsix",
"vscode:prepublish": "npm run check && npm run build"
},
"dependencies": {
"glob": "^11.0.0",
"vscode-languageclient": "^10.0.0-next.18"
},
"devDependencies": {
"@eslint/js": "^9.13.0",
"@stylistic/eslint-plugin": "^2.9.0",
"@types/node": "^20",
"@types/vscode": "^1.75.1",
"esbuild": "^0.25.10",
"eslint": "^9.13.0",
"fs": "^0.0.1-security",
"typescript": "^5.7.3",
"typescript-eslint": "^8.16.0"
},
"private": true
}