@oh-my-pi/pi-coding-agent 13.19.0 → 14.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.
Files changed (202) hide show
  1. package/CHANGELOG.md +266 -1
  2. package/package.json +86 -20
  3. package/scripts/format-prompts.ts +2 -2
  4. package/src/autoresearch/apply-contract-to-state.ts +24 -0
  5. package/src/autoresearch/contract.ts +0 -44
  6. package/src/autoresearch/dashboard.ts +1 -2
  7. package/src/autoresearch/git.ts +91 -0
  8. package/src/autoresearch/helpers.ts +49 -0
  9. package/src/autoresearch/index.ts +28 -187
  10. package/src/autoresearch/prompt.md +26 -9
  11. package/src/autoresearch/state.ts +0 -6
  12. package/src/autoresearch/tools/init-experiment.ts +202 -117
  13. package/src/autoresearch/tools/log-experiment.ts +83 -125
  14. package/src/autoresearch/tools/run-experiment.ts +48 -10
  15. package/src/autoresearch/types.ts +2 -2
  16. package/src/capability/index.ts +4 -2
  17. package/src/cli/file-processor.ts +3 -3
  18. package/src/cli/grep-cli.ts +8 -8
  19. package/src/cli/grievances-cli.ts +78 -0
  20. package/src/cli/read-cli.ts +67 -0
  21. package/src/cli/setup-cli.ts +4 -4
  22. package/src/cli/update-cli.ts +3 -3
  23. package/src/cli.ts +2 -0
  24. package/src/commands/grep.ts +6 -1
  25. package/src/commands/grievances.ts +20 -0
  26. package/src/commands/read.ts +33 -0
  27. package/src/commit/agentic/agent.ts +5 -5
  28. package/src/commit/agentic/index.ts +3 -4
  29. package/src/commit/agentic/tools/analyze-file.ts +3 -3
  30. package/src/commit/agentic/validation.ts +1 -1
  31. package/src/commit/analysis/conventional.ts +4 -4
  32. package/src/commit/analysis/summary.ts +3 -3
  33. package/src/commit/changelog/generate.ts +4 -4
  34. package/src/commit/map-reduce/map-phase.ts +4 -4
  35. package/src/commit/map-reduce/reduce-phase.ts +4 -4
  36. package/src/commit/pipeline.ts +3 -4
  37. package/src/config/prompt-templates.ts +44 -226
  38. package/src/config/resolve-config-value.ts +4 -2
  39. package/src/config/settings-schema.ts +54 -2
  40. package/src/config/settings.ts +25 -26
  41. package/src/dap/client.ts +674 -0
  42. package/src/dap/config.ts +150 -0
  43. package/src/dap/defaults.json +211 -0
  44. package/src/dap/index.ts +4 -0
  45. package/src/dap/session.ts +1255 -0
  46. package/src/dap/types.ts +600 -0
  47. package/src/debug/log-viewer.ts +3 -2
  48. package/src/discovery/builtin.ts +1 -2
  49. package/src/discovery/codex.ts +2 -2
  50. package/src/discovery/github.ts +2 -1
  51. package/src/discovery/helpers.ts +2 -2
  52. package/src/discovery/opencode.ts +2 -2
  53. package/src/edit/diff.ts +818 -0
  54. package/src/edit/index.ts +309 -0
  55. package/src/edit/line-hash.ts +67 -0
  56. package/src/edit/modes/chunk.ts +454 -0
  57. package/src/{patch → edit/modes}/hashline.ts +741 -361
  58. package/src/{patch/applicator.ts → edit/modes/patch.ts} +420 -117
  59. package/src/{patch/fuzzy.ts → edit/modes/replace.ts} +519 -197
  60. package/src/{patch → edit}/normalize.ts +97 -76
  61. package/src/{patch/shared.ts → edit/renderer.ts} +181 -108
  62. package/src/exec/bash-executor.ts +4 -2
  63. package/src/exec/idle-timeout-watchdog.ts +126 -0
  64. package/src/exec/non-interactive-env.ts +5 -0
  65. package/src/extensibility/custom-commands/bundled/ci-green/index.ts +2 -2
  66. package/src/extensibility/custom-commands/bundled/review/index.ts +2 -2
  67. package/src/extensibility/custom-commands/loader.ts +1 -2
  68. package/src/extensibility/custom-tools/loader.ts +34 -11
  69. package/src/extensibility/extensions/loader.ts +9 -4
  70. package/src/extensibility/extensions/runner.ts +24 -1
  71. package/src/extensibility/extensions/types.ts +1 -1
  72. package/src/extensibility/hooks/loader.ts +5 -6
  73. package/src/extensibility/hooks/types.ts +1 -1
  74. package/src/extensibility/plugins/doctor.ts +2 -1
  75. package/src/extensibility/slash-commands.ts +3 -7
  76. package/src/index.ts +2 -1
  77. package/src/internal-urls/docs-index.generated.ts +11 -11
  78. package/src/ipy/executor.ts +58 -17
  79. package/src/ipy/gateway-coordinator.ts +6 -4
  80. package/src/ipy/kernel.ts +45 -22
  81. package/src/ipy/runtime.ts +2 -2
  82. package/src/lsp/client.ts +7 -4
  83. package/src/lsp/clients/lsp-linter-client.ts +4 -4
  84. package/src/lsp/config.ts +2 -2
  85. package/src/lsp/defaults.json +688 -154
  86. package/src/lsp/index.ts +234 -45
  87. package/src/lsp/lspmux.ts +2 -2
  88. package/src/lsp/startup-events.ts +13 -0
  89. package/src/lsp/types.ts +12 -1
  90. package/src/lsp/utils.ts +8 -1
  91. package/src/main.ts +102 -46
  92. package/src/memories/index.ts +4 -5
  93. package/src/modes/acp/acp-agent.ts +563 -163
  94. package/src/modes/acp/acp-event-mapper.ts +9 -1
  95. package/src/modes/acp/acp-mode.ts +4 -2
  96. package/src/modes/components/agent-dashboard.ts +3 -4
  97. package/src/modes/components/diff.ts +6 -7
  98. package/src/modes/components/read-tool-group.ts +6 -12
  99. package/src/modes/components/settings-defs.ts +5 -0
  100. package/src/modes/components/tool-execution.ts +1 -1
  101. package/src/modes/components/welcome.ts +1 -1
  102. package/src/modes/controllers/btw-controller.ts +2 -2
  103. package/src/modes/controllers/command-controller.ts +3 -2
  104. package/src/modes/controllers/input-controller.ts +12 -8
  105. package/src/modes/index.ts +20 -2
  106. package/src/modes/interactive-mode.ts +94 -37
  107. package/src/modes/rpc/host-tools.ts +186 -0
  108. package/src/modes/rpc/rpc-client.ts +178 -13
  109. package/src/modes/rpc/rpc-mode.ts +73 -3
  110. package/src/modes/rpc/rpc-types.ts +53 -1
  111. package/src/modes/theme/theme.ts +80 -8
  112. package/src/modes/types.ts +2 -2
  113. package/src/prompts/system/system-prompt.md +2 -1
  114. package/src/prompts/tools/chunk-edit.md +219 -0
  115. package/src/prompts/tools/debug.md +43 -0
  116. package/src/prompts/tools/grep.md +3 -0
  117. package/src/prompts/tools/lsp.md +5 -5
  118. package/src/prompts/tools/read-chunk.md +17 -0
  119. package/src/prompts/tools/read.md +19 -5
  120. package/src/sdk.ts +190 -154
  121. package/src/secrets/obfuscator.ts +1 -1
  122. package/src/session/agent-session.ts +306 -256
  123. package/src/session/agent-storage.ts +12 -12
  124. package/src/session/compaction/branch-summarization.ts +3 -3
  125. package/src/session/compaction/compaction.ts +5 -6
  126. package/src/session/compaction/utils.ts +3 -3
  127. package/src/session/history-storage.ts +62 -19
  128. package/src/session/messages.ts +3 -3
  129. package/src/session/session-dump-format.ts +203 -0
  130. package/src/session/session-storage.ts +4 -2
  131. package/src/session/streaming-output.ts +1 -1
  132. package/src/session/tool-choice-queue.ts +213 -0
  133. package/src/slash-commands/builtin-registry.ts +56 -8
  134. package/src/ssh/connection-manager.ts +2 -2
  135. package/src/ssh/sshfs-mount.ts +5 -5
  136. package/src/stt/downloader.ts +4 -4
  137. package/src/stt/recorder.ts +4 -4
  138. package/src/stt/transcriber.ts +2 -2
  139. package/src/system-prompt.ts +21 -13
  140. package/src/task/agents.ts +5 -6
  141. package/src/task/commands.ts +2 -5
  142. package/src/task/executor.ts +4 -4
  143. package/src/task/index.ts +3 -4
  144. package/src/task/template.ts +2 -2
  145. package/src/task/worktree.ts +4 -4
  146. package/src/tools/ask.ts +2 -3
  147. package/src/tools/ast-edit.ts +7 -7
  148. package/src/tools/ast-grep.ts +7 -7
  149. package/src/tools/auto-generated-guard.ts +36 -41
  150. package/src/tools/await-tool.ts +2 -2
  151. package/src/tools/bash.ts +5 -23
  152. package/src/tools/browser.ts +4 -5
  153. package/src/tools/calculator.ts +2 -3
  154. package/src/tools/cancel-job.ts +2 -2
  155. package/src/tools/checkpoint.ts +3 -3
  156. package/src/tools/debug.ts +1007 -0
  157. package/src/tools/exit-plan-mode.ts +2 -3
  158. package/src/tools/fetch.ts +67 -3
  159. package/src/tools/find.ts +4 -5
  160. package/src/tools/fs-cache-invalidation.ts +5 -0
  161. package/src/tools/gemini-image.ts +13 -5
  162. package/src/tools/gh.ts +10 -11
  163. package/src/tools/grep.ts +57 -9
  164. package/src/tools/index.ts +44 -22
  165. package/src/tools/inspect-image.ts +4 -4
  166. package/src/tools/output-meta.ts +1 -1
  167. package/src/tools/python.ts +19 -6
  168. package/src/tools/read.ts +198 -67
  169. package/src/tools/render-mermaid.ts +2 -3
  170. package/src/tools/render-utils.ts +20 -6
  171. package/src/tools/renderers.ts +3 -1
  172. package/src/tools/report-tool-issue.ts +80 -0
  173. package/src/tools/resolve.ts +70 -39
  174. package/src/tools/search-tool-bm25.ts +2 -2
  175. package/src/tools/ssh.ts +2 -2
  176. package/src/tools/todo-write.ts +2 -2
  177. package/src/tools/tool-timeouts.ts +1 -0
  178. package/src/tools/write.ts +5 -6
  179. package/src/tui/tree-list.ts +3 -1
  180. package/src/utils/clipboard.ts +80 -0
  181. package/src/utils/commit-message-generator.ts +2 -3
  182. package/src/utils/edit-mode.ts +49 -0
  183. package/src/utils/file-display-mode.ts +6 -5
  184. package/src/utils/file-mentions.ts +8 -7
  185. package/src/utils/git.ts +4 -4
  186. package/src/utils/image-loading.ts +98 -0
  187. package/src/utils/title-generator.ts +2 -3
  188. package/src/utils/tools-manager.ts +6 -6
  189. package/src/web/scrapers/choosealicense.ts +1 -1
  190. package/src/web/search/index.ts +3 -3
  191. package/src/autoresearch/command-initialize.md +0 -34
  192. package/src/patch/diff.ts +0 -433
  193. package/src/patch/index.ts +0 -888
  194. package/src/patch/parser.ts +0 -532
  195. package/src/patch/types.ts +0 -292
  196. package/src/prompts/agents/oracle.md +0 -77
  197. package/src/tools/pending-action.ts +0 -49
  198. package/src/utils/child-process.ts +0 -88
  199. package/src/utils/frontmatter.ts +0 -117
  200. package/src/utils/image-input.ts +0 -274
  201. package/src/utils/mime.ts +0 -53
  202. package/src/utils/prompt-format.ts +0 -170
@@ -2,8 +2,13 @@
2
2
  "rust-analyzer": {
3
3
  "command": "rust-analyzer",
4
4
  "args": [],
5
- "fileTypes": [".rs"],
6
- "rootMarkers": ["Cargo.toml", "rust-analyzer.toml"],
5
+ "fileTypes": [
6
+ ".rs"
7
+ ],
8
+ "rootMarkers": [
9
+ "Cargo.toml",
10
+ "rust-analyzer.toml"
11
+ ],
7
12
  "initOptions": {},
8
13
  "settings": {},
9
14
  "capabilities": {
@@ -14,26 +19,78 @@
14
19
  "relatedTests": true
15
20
  }
16
21
  },
22
+ "tlaplus": {
23
+ "command": "tlapm_lsp",
24
+ "args": [
25
+ "--stdio"
26
+ ],
27
+ "fileTypes": [
28
+ ".tla",
29
+ ".tlaplus"
30
+ ],
31
+ "rootMarkers": [
32
+ "*.tla"
33
+ ]
34
+ },
17
35
  "clangd": {
18
36
  "command": "clangd",
19
- "args": ["--background-index", "--clang-tidy", "--header-insertion=iwyu"],
20
- "fileTypes": [".c", ".cpp", ".cc", ".cxx", ".h", ".hpp", ".hxx", ".m", ".mm"],
21
- "rootMarkers": ["compile_commands.json", "CMakeLists.txt", ".clangd", ".clang-format", "Makefile"]
37
+ "args": [
38
+ "--background-index",
39
+ "--clang-tidy",
40
+ "--header-insertion=iwyu"
41
+ ],
42
+ "fileTypes": [
43
+ ".c",
44
+ ".cpp",
45
+ ".cc",
46
+ ".cxx",
47
+ ".h",
48
+ ".hpp",
49
+ ".hxx",
50
+ ".m",
51
+ ".mm"
52
+ ],
53
+ "rootMarkers": [
54
+ "compile_commands.json",
55
+ "CMakeLists.txt",
56
+ ".clangd",
57
+ ".clang-format",
58
+ "Makefile"
59
+ ]
22
60
  },
23
61
  "zls": {
24
62
  "command": "zls",
25
63
  "args": [],
26
- "fileTypes": [".zig"],
27
- "rootMarkers": ["build.zig", "build.zig.zon", "zls.json"]
64
+ "fileTypes": [
65
+ ".zig"
66
+ ],
67
+ "rootMarkers": [
68
+ "build.zig",
69
+ "build.zig.zon",
70
+ "zls.json"
71
+ ]
28
72
  },
29
73
  "gopls": {
30
74
  "command": "gopls",
31
- "args": ["serve"],
32
- "fileTypes": [".go", ".mod", ".sum"],
33
- "rootMarkers": ["go.mod", "go.work", "go.sum"],
75
+ "args": [
76
+ "serve"
77
+ ],
78
+ "fileTypes": [
79
+ ".go",
80
+ ".mod",
81
+ ".sum"
82
+ ],
83
+ "rootMarkers": [
84
+ "go.mod",
85
+ "go.work",
86
+ "go.sum"
87
+ ],
34
88
  "settings": {
35
89
  "gopls": {
36
- "analyses": { "unusedparams": true, "shadow": true },
90
+ "analyses": {
91
+ "unusedparams": true,
92
+ "shadow": true
93
+ },
37
94
  "staticcheck": true,
38
95
  "gofumpt": true
39
96
  }
@@ -41,9 +98,22 @@
41
98
  },
42
99
  "typescript-language-server": {
43
100
  "command": "typescript-language-server",
44
- "args": ["--stdio"],
45
- "fileTypes": [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"],
46
- "rootMarkers": ["package.json", "tsconfig.json", "jsconfig.json"],
101
+ "args": [
102
+ "--stdio"
103
+ ],
104
+ "fileTypes": [
105
+ ".ts",
106
+ ".tsx",
107
+ ".js",
108
+ ".jsx",
109
+ ".mjs",
110
+ ".cjs"
111
+ ],
112
+ "rootMarkers": [
113
+ "package.json",
114
+ "tsconfig.json",
115
+ "jsconfig.json"
116
+ ],
47
117
  "initOptions": {
48
118
  "hostInfo": "omp-coding-agent",
49
119
  "preferences": {
@@ -55,15 +125,40 @@
55
125
  },
56
126
  "biome": {
57
127
  "command": "biome",
58
- "args": ["lsp-proxy"],
59
- "fileTypes": [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".json", ".jsonc"],
60
- "rootMarkers": ["biome.json", "biome.jsonc"],
128
+ "args": [
129
+ "lsp-proxy"
130
+ ],
131
+ "fileTypes": [
132
+ ".ts",
133
+ ".tsx",
134
+ ".js",
135
+ ".jsx",
136
+ ".mjs",
137
+ ".cjs",
138
+ ".json",
139
+ ".jsonc"
140
+ ],
141
+ "rootMarkers": [
142
+ "biome.json",
143
+ "biome.jsonc"
144
+ ],
61
145
  "isLinter": true
62
146
  },
63
147
  "eslint": {
64
148
  "command": "vscode-eslint-language-server",
65
- "args": ["--stdio"],
66
- "fileTypes": [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".vue", ".svelte"],
149
+ "args": [
150
+ "--stdio"
151
+ ],
152
+ "fileTypes": [
153
+ ".ts",
154
+ ".tsx",
155
+ ".js",
156
+ ".jsx",
157
+ ".mjs",
158
+ ".cjs",
159
+ ".vue",
160
+ ".svelte"
161
+ ],
67
162
  "rootMarkers": [
68
163
  ".eslintrc",
69
164
  ".eslintrc.js",
@@ -80,9 +175,20 @@
80
175
  },
81
176
  "denols": {
82
177
  "command": "deno",
83
- "args": ["lsp"],
84
- "fileTypes": [".ts", ".tsx", ".js", ".jsx"],
85
- "rootMarkers": ["deno.json", "deno.jsonc", "deno.lock"],
178
+ "args": [
179
+ "lsp"
180
+ ],
181
+ "fileTypes": [
182
+ ".ts",
183
+ ".tsx",
184
+ ".js",
185
+ ".jsx"
186
+ ],
187
+ "rootMarkers": [
188
+ "deno.json",
189
+ "deno.jsonc",
190
+ "deno.lock"
191
+ ],
86
192
  "initOptions": {
87
193
  "enable": true,
88
194
  "lint": true,
@@ -91,60 +197,140 @@
91
197
  },
92
198
  "vscode-html-language-server": {
93
199
  "command": "vscode-html-language-server",
94
- "args": ["--stdio"],
95
- "fileTypes": [".html", ".htm"],
96
- "rootMarkers": ["package.json", ".git"],
200
+ "args": [
201
+ "--stdio"
202
+ ],
203
+ "fileTypes": [
204
+ ".html",
205
+ ".htm"
206
+ ],
207
+ "rootMarkers": [
208
+ "package.json",
209
+ ".git"
210
+ ],
97
211
  "initOptions": {
98
212
  "provideFormatter": true
99
213
  }
100
214
  },
101
215
  "vscode-css-language-server": {
102
216
  "command": "vscode-css-language-server",
103
- "args": ["--stdio"],
104
- "fileTypes": [".css", ".scss", ".sass", ".less"],
105
- "rootMarkers": ["package.json", ".git"],
217
+ "args": [
218
+ "--stdio"
219
+ ],
220
+ "fileTypes": [
221
+ ".css",
222
+ ".scss",
223
+ ".sass",
224
+ ".less"
225
+ ],
226
+ "rootMarkers": [
227
+ "package.json",
228
+ ".git"
229
+ ],
106
230
  "initOptions": {
107
231
  "provideFormatter": true
108
232
  }
109
233
  },
110
234
  "vscode-json-language-server": {
111
235
  "command": "vscode-json-language-server",
112
- "args": ["--stdio"],
113
- "fileTypes": [".json", ".jsonc"],
114
- "rootMarkers": ["package.json", ".git"],
236
+ "args": [
237
+ "--stdio"
238
+ ],
239
+ "fileTypes": [
240
+ ".json",
241
+ ".jsonc"
242
+ ],
243
+ "rootMarkers": [
244
+ "package.json",
245
+ ".git"
246
+ ],
115
247
  "initOptions": {
116
248
  "provideFormatter": true
117
249
  }
118
250
  },
119
251
  "tailwindcss": {
120
252
  "command": "tailwindcss-language-server",
121
- "args": ["--stdio"],
122
- "fileTypes": [".html", ".css", ".scss", ".js", ".jsx", ".ts", ".tsx", ".vue", ".svelte"],
123
- "rootMarkers": ["tailwind.config.js", "tailwind.config.ts", "tailwind.config.mjs", "tailwind.config.cjs"]
253
+ "args": [
254
+ "--stdio"
255
+ ],
256
+ "fileTypes": [
257
+ ".html",
258
+ ".css",
259
+ ".scss",
260
+ ".js",
261
+ ".jsx",
262
+ ".ts",
263
+ ".tsx",
264
+ ".vue",
265
+ ".svelte"
266
+ ],
267
+ "rootMarkers": [
268
+ "tailwind.config.js",
269
+ "tailwind.config.ts",
270
+ "tailwind.config.mjs",
271
+ "tailwind.config.cjs"
272
+ ]
124
273
  },
125
274
  "svelte": {
126
275
  "command": "svelteserver",
127
- "args": ["--stdio"],
128
- "fileTypes": [".svelte"],
129
- "rootMarkers": ["svelte.config.js", "svelte.config.mjs", "package.json"]
276
+ "args": [
277
+ "--stdio"
278
+ ],
279
+ "fileTypes": [
280
+ ".svelte"
281
+ ],
282
+ "rootMarkers": [
283
+ "svelte.config.js",
284
+ "svelte.config.mjs",
285
+ "package.json"
286
+ ]
130
287
  },
131
288
  "vue-language-server": {
132
289
  "command": "vue-language-server",
133
- "args": ["--stdio"],
134
- "fileTypes": [".vue"],
135
- "rootMarkers": ["vue.config.js", "nuxt.config.js", "nuxt.config.ts", "package.json"]
290
+ "args": [
291
+ "--stdio"
292
+ ],
293
+ "fileTypes": [
294
+ ".vue"
295
+ ],
296
+ "rootMarkers": [
297
+ "vue.config.js",
298
+ "nuxt.config.js",
299
+ "nuxt.config.ts",
300
+ "package.json"
301
+ ]
136
302
  },
137
303
  "astro": {
138
304
  "command": "astro-ls",
139
- "args": ["--stdio"],
140
- "fileTypes": [".astro"],
141
- "rootMarkers": ["astro.config.mjs", "astro.config.js", "astro.config.ts"]
305
+ "args": [
306
+ "--stdio"
307
+ ],
308
+ "fileTypes": [
309
+ ".astro"
310
+ ],
311
+ "rootMarkers": [
312
+ "astro.config.mjs",
313
+ "astro.config.js",
314
+ "astro.config.ts"
315
+ ]
142
316
  },
143
317
  "pyright": {
144
318
  "command": "pyright-langserver",
145
- "args": ["--stdio"],
146
- "fileTypes": [".py", ".pyi"],
147
- "rootMarkers": ["pyproject.toml", "pyrightconfig.json", "setup.py", "setup.cfg", "requirements.txt", "Pipfile"],
319
+ "args": [
320
+ "--stdio"
321
+ ],
322
+ "fileTypes": [
323
+ ".py",
324
+ ".pyi"
325
+ ],
326
+ "rootMarkers": [
327
+ "pyproject.toml",
328
+ "pyrightconfig.json",
329
+ "setup.py",
330
+ "setup.cfg",
331
+ "requirements.txt",
332
+ "Pipfile"
333
+ ],
148
334
  "settings": {
149
335
  "python": {
150
336
  "analysis": {
@@ -157,9 +343,19 @@
157
343
  },
158
344
  "basedpyright": {
159
345
  "command": "basedpyright-langserver",
160
- "args": ["--stdio"],
161
- "fileTypes": [".py", ".pyi"],
162
- "rootMarkers": ["pyproject.toml", "pyrightconfig.json", "setup.py", "requirements.txt"],
346
+ "args": [
347
+ "--stdio"
348
+ ],
349
+ "fileTypes": [
350
+ ".py",
351
+ ".pyi"
352
+ ],
353
+ "rootMarkers": [
354
+ "pyproject.toml",
355
+ "pyrightconfig.json",
356
+ "setup.py",
357
+ "requirements.txt"
358
+ ],
163
359
  "settings": {
164
360
  "basedpyright": {
165
361
  "analysis": {
@@ -173,33 +369,78 @@
173
369
  "pylsp": {
174
370
  "command": "pylsp",
175
371
  "args": [],
176
- "fileTypes": [".py"],
177
- "rootMarkers": ["pyproject.toml", "setup.py", "setup.cfg", "requirements.txt", "Pipfile"]
372
+ "fileTypes": [
373
+ ".py"
374
+ ],
375
+ "rootMarkers": [
376
+ "pyproject.toml",
377
+ "setup.py",
378
+ "setup.cfg",
379
+ "requirements.txt",
380
+ "Pipfile"
381
+ ]
178
382
  },
179
383
  "ruff": {
180
384
  "command": "ruff",
181
- "args": ["server"],
182
- "fileTypes": [".py", ".pyi"],
183
- "rootMarkers": ["pyproject.toml", "ruff.toml", ".ruff.toml"],
385
+ "args": [
386
+ "server"
387
+ ],
388
+ "fileTypes": [
389
+ ".py",
390
+ ".pyi"
391
+ ],
392
+ "rootMarkers": [
393
+ "pyproject.toml",
394
+ "ruff.toml",
395
+ ".ruff.toml"
396
+ ],
184
397
  "isLinter": true
185
398
  },
186
399
  "jdtls": {
187
400
  "command": "jdtls",
188
401
  "args": [],
189
- "fileTypes": [".java"],
190
- "rootMarkers": ["pom.xml", "build.gradle", "build.gradle.kts", "settings.gradle", ".project"]
402
+ "fileTypes": [
403
+ ".java"
404
+ ],
405
+ "rootMarkers": [
406
+ "pom.xml",
407
+ "build.gradle",
408
+ "build.gradle.kts",
409
+ "settings.gradle",
410
+ ".project"
411
+ ]
191
412
  },
192
413
  "kotlin-lsp": {
193
414
  "command": "kotlin-lsp",
194
- "args": ["--stdio"],
195
- "fileTypes": [".kt", ".kts"],
196
- "rootMarkers": ["build.gradle", "build.gradle.kts", "pom.xml", "settings.gradle", "settings.gradle.kts"]
415
+ "args": [
416
+ "--stdio"
417
+ ],
418
+ "fileTypes": [
419
+ ".kt",
420
+ ".kts"
421
+ ],
422
+ "rootMarkers": [
423
+ "build.gradle",
424
+ "build.gradle.kts",
425
+ "pom.xml",
426
+ "settings.gradle",
427
+ "settings.gradle.kts"
428
+ ]
197
429
  },
198
430
  "metals": {
199
431
  "command": "metals",
200
432
  "args": [],
201
- "fileTypes": [".scala", ".sbt", ".sc"],
202
- "rootMarkers": ["build.sbt", "build.sc", "build.gradle", "pom.xml"],
433
+ "fileTypes": [
434
+ ".scala",
435
+ ".sbt",
436
+ ".sc"
437
+ ],
438
+ "rootMarkers": [
439
+ "build.sbt",
440
+ "build.sc",
441
+ "build.gradle",
442
+ "pom.xml"
443
+ ],
203
444
  "initOptions": {
204
445
  "statusBarProvider": "show-message",
205
446
  "isHttpEnabled": true
@@ -207,9 +448,20 @@
207
448
  },
208
449
  "hls": {
209
450
  "command": "haskell-language-server-wrapper",
210
- "args": ["--lsp"],
211
- "fileTypes": [".hs", ".lhs"],
212
- "rootMarkers": ["stack.yaml", "cabal.project", "hie.yaml", "package.yaml", "*.cabal"],
451
+ "args": [
452
+ "--lsp"
453
+ ],
454
+ "fileTypes": [
455
+ ".hs",
456
+ ".lhs"
457
+ ],
458
+ "rootMarkers": [
459
+ "stack.yaml",
460
+ "cabal.project",
461
+ "hie.yaml",
462
+ "package.yaml",
463
+ "*.cabal"
464
+ ],
213
465
  "settings": {
214
466
  "haskell": {
215
467
  "formattingProvider": "ormolu",
@@ -220,14 +472,32 @@
220
472
  "ocamllsp": {
221
473
  "command": "ocamllsp",
222
474
  "args": [],
223
- "fileTypes": [".ml", ".mli", ".mll", ".mly"],
224
- "rootMarkers": ["dune-project", "dune-workspace", "*.opam", ".ocamlformat"]
475
+ "fileTypes": [
476
+ ".ml",
477
+ ".mli",
478
+ ".mll",
479
+ ".mly"
480
+ ],
481
+ "rootMarkers": [
482
+ "dune-project",
483
+ "dune-workspace",
484
+ "*.opam",
485
+ ".ocamlformat"
486
+ ]
225
487
  },
226
488
  "elixirls": {
227
489
  "command": "elixir-ls",
228
490
  "args": [],
229
- "fileTypes": [".ex", ".exs", ".heex", ".eex"],
230
- "rootMarkers": ["mix.exs", "mix.lock"],
491
+ "fileTypes": [
492
+ ".ex",
493
+ ".exs",
494
+ ".heex",
495
+ ".eex"
496
+ ],
497
+ "rootMarkers": [
498
+ "mix.exs",
499
+ "mix.lock"
500
+ ],
231
501
  "settings": {
232
502
  "elixirLS": {
233
503
  "dialyzerEnabled": true,
@@ -238,20 +508,43 @@
238
508
  "erlangls": {
239
509
  "command": "erlang_ls",
240
510
  "args": [],
241
- "fileTypes": [".erl", ".hrl"],
242
- "rootMarkers": ["rebar.config", "erlang.mk", "rebar.lock"]
511
+ "fileTypes": [
512
+ ".erl",
513
+ ".hrl"
514
+ ],
515
+ "rootMarkers": [
516
+ "rebar.config",
517
+ "erlang.mk",
518
+ "rebar.lock"
519
+ ]
243
520
  },
244
521
  "gleam": {
245
522
  "command": "gleam",
246
- "args": ["lsp"],
247
- "fileTypes": [".gleam"],
248
- "rootMarkers": ["gleam.toml"]
523
+ "args": [
524
+ "lsp"
525
+ ],
526
+ "fileTypes": [
527
+ ".gleam"
528
+ ],
529
+ "rootMarkers": [
530
+ "gleam.toml"
531
+ ]
249
532
  },
250
533
  "solargraph": {
251
534
  "command": "solargraph",
252
- "args": ["stdio"],
253
- "fileTypes": [".rb", ".rake", ".gemspec"],
254
- "rootMarkers": ["Gemfile", ".solargraph.yml", "Rakefile"],
535
+ "args": [
536
+ "stdio"
537
+ ],
538
+ "fileTypes": [
539
+ ".rb",
540
+ ".rake",
541
+ ".gemspec"
542
+ ],
543
+ "rootMarkers": [
544
+ "Gemfile",
545
+ ".solargraph.yml",
546
+ "Rakefile"
547
+ ],
255
548
  "initOptions": {
256
549
  "formatting": true
257
550
  },
@@ -270,24 +563,49 @@
270
563
  "ruby-lsp": {
271
564
  "command": "ruby-lsp",
272
565
  "args": [],
273
- "fileTypes": [".rb", ".rake", ".gemspec", ".erb"],
274
- "rootMarkers": ["Gemfile", ".ruby-version", ".ruby-gemset"],
566
+ "fileTypes": [
567
+ ".rb",
568
+ ".rake",
569
+ ".gemspec",
570
+ ".erb"
571
+ ],
572
+ "rootMarkers": [
573
+ "Gemfile",
574
+ ".ruby-version",
575
+ ".ruby-gemset"
576
+ ],
275
577
  "initOptions": {
276
578
  "formatter": "auto"
277
579
  }
278
580
  },
279
581
  "rubocop": {
280
582
  "command": "rubocop",
281
- "args": ["--lsp"],
282
- "fileTypes": [".rb", ".rake"],
283
- "rootMarkers": [".rubocop.yml", "Gemfile"],
583
+ "args": [
584
+ "--lsp"
585
+ ],
586
+ "fileTypes": [
587
+ ".rb",
588
+ ".rake"
589
+ ],
590
+ "rootMarkers": [
591
+ ".rubocop.yml",
592
+ "Gemfile"
593
+ ],
284
594
  "isLinter": true
285
595
  },
286
596
  "bashls": {
287
597
  "command": "bash-language-server",
288
- "args": ["start"],
289
- "fileTypes": [".sh", ".bash", ".zsh"],
290
- "rootMarkers": [".git"],
598
+ "args": [
599
+ "start"
600
+ ],
601
+ "fileTypes": [
602
+ ".sh",
603
+ ".bash",
604
+ ".zsh"
605
+ ],
606
+ "rootMarkers": [
607
+ ".git"
608
+ ],
291
609
  "settings": {
292
610
  "bashIde": {
293
611
  "globPattern": "*@(.sh|.inc|.bash|.command)"
@@ -297,101 +615,230 @@
297
615
  "lua-language-server": {
298
616
  "command": "lua-language-server",
299
617
  "args": [],
300
- "fileTypes": [".lua"],
301
- "rootMarkers": [".luarc.json", ".luarc.jsonc", ".luacheckrc", ".stylua.toml", "stylua.toml"],
618
+ "fileTypes": [
619
+ ".lua"
620
+ ],
621
+ "rootMarkers": [
622
+ ".luarc.json",
623
+ ".luarc.jsonc",
624
+ ".luacheckrc",
625
+ ".stylua.toml",
626
+ "stylua.toml"
627
+ ],
302
628
  "settings": {
303
629
  "Lua": {
304
- "runtime": { "version": "LuaJIT" },
305
- "diagnostics": { "globals": ["vim"] },
306
- "workspace": { "checkThirdParty": false },
307
- "telemetry": { "enable": false }
630
+ "runtime": {
631
+ "version": "LuaJIT"
632
+ },
633
+ "diagnostics": {
634
+ "globals": [
635
+ "vim"
636
+ ]
637
+ },
638
+ "workspace": {
639
+ "checkThirdParty": false
640
+ },
641
+ "telemetry": {
642
+ "enable": false
643
+ }
308
644
  }
309
645
  }
310
646
  },
311
647
  "intelephense": {
312
648
  "command": "intelephense",
313
- "args": ["--stdio"],
314
- "fileTypes": [".php", ".phtml"],
315
- "rootMarkers": ["composer.json", "composer.lock", ".git"]
649
+ "args": [
650
+ "--stdio"
651
+ ],
652
+ "fileTypes": [
653
+ ".php",
654
+ ".phtml"
655
+ ],
656
+ "rootMarkers": [
657
+ "composer.json",
658
+ "composer.lock",
659
+ ".git"
660
+ ]
316
661
  },
317
662
  "phpactor": {
318
663
  "command": "phpactor",
319
- "args": ["language-server"],
320
- "fileTypes": [".php"],
321
- "rootMarkers": ["composer.json", ".phpactor.json", ".phpactor.yml"]
664
+ "args": [
665
+ "language-server"
666
+ ],
667
+ "fileTypes": [
668
+ ".php"
669
+ ],
670
+ "rootMarkers": [
671
+ "composer.json",
672
+ ".phpactor.json",
673
+ ".phpactor.yml"
674
+ ]
322
675
  },
323
676
  "omnisharp": {
324
677
  "command": "omnisharp",
325
- "args": ["-z", "--hostPID", "$PID", "--encoding", "utf-8", "--languageserver"],
326
- "fileTypes": [".cs", ".csx"],
327
- "rootMarkers": ["*.sln", "*.csproj", "omnisharp.json", ".git"],
678
+ "args": [
679
+ "-z",
680
+ "--hostPID",
681
+ "$PID",
682
+ "--encoding",
683
+ "utf-8",
684
+ "--languageserver"
685
+ ],
686
+ "fileTypes": [
687
+ ".cs",
688
+ ".csx"
689
+ ],
690
+ "rootMarkers": [
691
+ "*.sln",
692
+ "*.csproj",
693
+ "omnisharp.json",
694
+ ".git"
695
+ ],
328
696
  "settings": {
329
- "FormattingOptions": { "EnableEditorConfigSupport": true },
330
- "RoslynExtensionsOptions": { "EnableAnalyzersSupport": true }
697
+ "FormattingOptions": {
698
+ "EnableEditorConfigSupport": true
699
+ },
700
+ "RoslynExtensionsOptions": {
701
+ "EnableAnalyzersSupport": true
702
+ }
331
703
  }
332
704
  },
333
705
  "yamlls": {
334
706
  "command": "yaml-language-server",
335
- "args": ["--stdio"],
336
- "fileTypes": [".yaml", ".yml"],
337
- "rootMarkers": [".git"],
707
+ "args": [
708
+ "--stdio"
709
+ ],
710
+ "fileTypes": [
711
+ ".yaml",
712
+ ".yml"
713
+ ],
714
+ "rootMarkers": [
715
+ ".git"
716
+ ],
338
717
  "settings": {
339
718
  "yaml": {
340
719
  "validate": true,
341
- "format": { "enable": true },
720
+ "format": {
721
+ "enable": true
722
+ },
342
723
  "hover": true,
343
724
  "completion": true
344
725
  },
345
- "redhat": { "telemetry": { "enabled": false } }
726
+ "redhat": {
727
+ "telemetry": {
728
+ "enabled": false
729
+ }
730
+ }
346
731
  }
347
732
  },
348
733
  "taplo": {
349
734
  "command": "taplo",
350
- "args": ["lsp", "stdio"],
351
- "fileTypes": [".toml"],
352
- "rootMarkers": [".taplo.toml", "taplo.toml", ".git"]
735
+ "args": [
736
+ "lsp",
737
+ "stdio"
738
+ ],
739
+ "fileTypes": [
740
+ ".toml"
741
+ ],
742
+ "rootMarkers": [
743
+ ".taplo.toml",
744
+ "taplo.toml",
745
+ ".git"
746
+ ]
353
747
  },
354
748
  "terraformls": {
355
749
  "command": "terraform-ls",
356
- "args": ["serve"],
357
- "fileTypes": [".tf", ".tfvars"],
358
- "rootMarkers": [".terraform", "terraform.tfstate", "*.tf"]
750
+ "args": [
751
+ "serve"
752
+ ],
753
+ "fileTypes": [
754
+ ".tf",
755
+ ".tfvars"
756
+ ],
757
+ "rootMarkers": [
758
+ ".terraform",
759
+ "terraform.tfstate",
760
+ "*.tf"
761
+ ]
359
762
  },
360
763
  "dockerls": {
361
764
  "command": "docker-langserver",
362
- "args": ["--stdio"],
363
- "fileTypes": [".dockerfile", "Dockerfile"],
364
- "rootMarkers": ["Dockerfile", "docker-compose.yml", "docker-compose.yaml", ".dockerignore"]
765
+ "args": [
766
+ "--stdio"
767
+ ],
768
+ "fileTypes": [
769
+ ".dockerfile",
770
+ "Dockerfile"
771
+ ],
772
+ "rootMarkers": [
773
+ "Dockerfile",
774
+ "docker-compose.yml",
775
+ "docker-compose.yaml",
776
+ ".dockerignore"
777
+ ]
365
778
  },
366
779
  "helm-ls": {
367
780
  "command": "helm_ls",
368
- "args": ["serve"],
369
- "fileTypes": [".yaml", ".yml", ".tpl"],
370
- "rootMarkers": ["Chart.yaml", "Chart.yml"]
781
+ "args": [
782
+ "serve"
783
+ ],
784
+ "fileTypes": [
785
+ ".yaml",
786
+ ".yml",
787
+ ".tpl"
788
+ ],
789
+ "rootMarkers": [
790
+ "Chart.yaml",
791
+ "Chart.yml"
792
+ ]
371
793
  },
372
794
  "nixd": {
373
795
  "command": "nixd",
374
796
  "args": [],
375
- "fileTypes": [".nix"],
376
- "rootMarkers": ["flake.nix", "default.nix", "shell.nix"]
797
+ "fileTypes": [
798
+ ".nix"
799
+ ],
800
+ "rootMarkers": [
801
+ "flake.nix",
802
+ "default.nix",
803
+ "shell.nix"
804
+ ]
377
805
  },
378
806
  "nil": {
379
807
  "command": "nil",
380
808
  "args": [],
381
- "fileTypes": [".nix"],
382
- "rootMarkers": ["flake.nix", "default.nix", "shell.nix"]
809
+ "fileTypes": [
810
+ ".nix"
811
+ ],
812
+ "rootMarkers": [
813
+ "flake.nix",
814
+ "default.nix",
815
+ "shell.nix"
816
+ ]
383
817
  },
384
818
  "ols": {
385
819
  "command": "ols",
386
820
  "args": [],
387
- "fileTypes": [".odin"],
388
- "rootMarkers": ["ols.json", ".git"]
821
+ "fileTypes": [
822
+ ".odin"
823
+ ],
824
+ "rootMarkers": [
825
+ "ols.json",
826
+ ".git"
827
+ ]
389
828
  },
390
829
  "dartls": {
391
830
  "command": "dart",
392
- "args": ["language-server", "--protocol=lsp"],
393
- "fileTypes": [".dart"],
394
- "rootMarkers": ["pubspec.yaml", "pubspec.lock"],
831
+ "args": [
832
+ "language-server",
833
+ "--protocol=lsp"
834
+ ],
835
+ "fileTypes": [
836
+ ".dart"
837
+ ],
838
+ "rootMarkers": [
839
+ "pubspec.yaml",
840
+ "pubspec.lock"
841
+ ],
395
842
  "initOptions": {
396
843
  "closingLabels": true,
397
844
  "flutterOutline": true,
@@ -400,65 +847,152 @@
400
847
  },
401
848
  "marksman": {
402
849
  "command": "marksman",
403
- "args": ["server"],
404
- "fileTypes": [".md", ".markdown"],
405
- "rootMarkers": [".marksman.toml", ".git"]
850
+ "args": [
851
+ "server"
852
+ ],
853
+ "fileTypes": [
854
+ ".md",
855
+ ".markdown"
856
+ ],
857
+ "rootMarkers": [
858
+ ".marksman.toml",
859
+ ".git"
860
+ ]
406
861
  },
407
862
  "texlab": {
408
863
  "command": "texlab",
409
864
  "args": [],
410
- "fileTypes": [".tex", ".bib", ".sty", ".cls"],
411
- "rootMarkers": [".latexmkrc", "latexmkrc", ".texlabroot", "texlabroot", "Tectonic.toml"],
865
+ "fileTypes": [
866
+ ".tex",
867
+ ".bib",
868
+ ".sty",
869
+ ".cls"
870
+ ],
871
+ "rootMarkers": [
872
+ ".latexmkrc",
873
+ "latexmkrc",
874
+ ".texlabroot",
875
+ "texlabroot",
876
+ "Tectonic.toml"
877
+ ],
412
878
  "settings": {
413
879
  "texlab": {
414
880
  "build": {
415
881
  "executable": "latexmk",
416
- "args": ["-pdf", "-interaction=nonstopmode", "-synctex=1", "%f"]
882
+ "args": [
883
+ "-pdf",
884
+ "-interaction=nonstopmode",
885
+ "-synctex=1",
886
+ "%f"
887
+ ]
417
888
  },
418
- "chktex": { "onOpenAndSave": true }
889
+ "chktex": {
890
+ "onOpenAndSave": true
891
+ }
419
892
  }
420
893
  }
421
894
  },
422
895
  "graphql": {
423
896
  "command": "graphql-lsp",
424
- "args": ["server", "-m", "stream"],
425
- "fileTypes": [".graphql", ".gql"],
426
- "rootMarkers": [".graphqlrc", ".graphqlrc.json", ".graphqlrc.yml", ".graphqlrc.yaml", "graphql.config.js"]
897
+ "args": [
898
+ "server",
899
+ "-m",
900
+ "stream"
901
+ ],
902
+ "fileTypes": [
903
+ ".graphql",
904
+ ".gql"
905
+ ],
906
+ "rootMarkers": [
907
+ ".graphqlrc",
908
+ ".graphqlrc.json",
909
+ ".graphqlrc.yml",
910
+ ".graphqlrc.yaml",
911
+ "graphql.config.js"
912
+ ]
427
913
  },
428
914
  "prismals": {
429
915
  "command": "prisma-language-server",
430
- "args": ["--stdio"],
431
- "fileTypes": [".prisma"],
432
- "rootMarkers": ["schema.prisma", "prisma/schema.prisma"]
916
+ "args": [
917
+ "--stdio"
918
+ ],
919
+ "fileTypes": [
920
+ ".prisma"
921
+ ],
922
+ "rootMarkers": [
923
+ "schema.prisma",
924
+ "prisma/schema.prisma"
925
+ ]
433
926
  },
434
927
  "vimls": {
435
928
  "command": "vim-language-server",
436
- "args": ["--stdio"],
437
- "fileTypes": [".vim", ".vimrc"],
438
- "rootMarkers": [".git"],
929
+ "args": [
930
+ "--stdio"
931
+ ],
932
+ "fileTypes": [
933
+ ".vim",
934
+ ".vimrc"
935
+ ],
936
+ "rootMarkers": [
937
+ ".git"
938
+ ],
439
939
  "initOptions": {
440
940
  "isNeovim": true,
441
- "diagnostic": { "enable": true }
941
+ "diagnostic": {
942
+ "enable": true
943
+ }
442
944
  }
443
945
  },
444
946
  "emmet-language-server": {
445
947
  "command": "emmet-language-server",
446
- "args": ["--stdio"],
447
- "fileTypes": [".html", ".css", ".scss", ".less", ".jsx", ".tsx", ".vue", ".svelte"],
448
- "rootMarkers": [".git"]
449
- }
450
- ,
948
+ "args": [
949
+ "--stdio"
950
+ ],
951
+ "fileTypes": [
952
+ ".html",
953
+ ".css",
954
+ ".scss",
955
+ ".less",
956
+ ".jsx",
957
+ ".tsx",
958
+ ".vue",
959
+ ".svelte"
960
+ ],
961
+ "rootMarkers": [
962
+ ".git"
963
+ ]
964
+ },
451
965
  "sourcekit-lsp": {
452
966
  "command": "sourcekit-lsp",
453
967
  "args": [],
454
- "fileTypes": [".swift"],
455
- "rootMarkers": ["Package.swift", "*.xcodeproj", "*.xcworkspace", "project.yml", ".swiftpm"]
968
+ "fileTypes": [
969
+ ".swift"
970
+ ],
971
+ "rootMarkers": [
972
+ "Package.swift",
973
+ "*.xcodeproj",
974
+ "*.xcworkspace",
975
+ "project.yml",
976
+ ".swiftpm"
977
+ ]
456
978
  },
457
979
  "swiftlint": {
458
980
  "command": "swiftlint",
459
- "args": ["lint", "--quiet", "--reporter", "json"],
460
- "fileTypes": [".swift"],
461
- "rootMarkers": [".swiftlint.yml", ".swiftlint.yaml", "Package.swift", "*.xcodeproj"],
981
+ "args": [
982
+ "lint",
983
+ "--quiet",
984
+ "--reporter",
985
+ "json"
986
+ ],
987
+ "fileTypes": [
988
+ ".swift"
989
+ ],
990
+ "rootMarkers": [
991
+ ".swiftlint.yml",
992
+ ".swiftlint.yaml",
993
+ "Package.swift",
994
+ "*.xcodeproj"
995
+ ],
462
996
  "isLinter": true
463
997
  }
464
998
  }