@involvex/fresh-editor 0.1.76 → 0.1.78
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/bin/CHANGELOG.md +1017 -0
- package/bin/LICENSE +117 -0
- package/bin/README.md +248 -0
- package/bin/fresh.exe +0 -0
- package/bin/plugins/README.md +71 -0
- package/bin/plugins/audit_mode.i18n.json +821 -0
- package/bin/plugins/audit_mode.ts +1810 -0
- package/bin/plugins/buffer_modified.i18n.json +67 -0
- package/bin/plugins/buffer_modified.ts +281 -0
- package/bin/plugins/calculator.i18n.json +93 -0
- package/bin/plugins/calculator.ts +770 -0
- package/bin/plugins/clangd-lsp.ts +168 -0
- package/bin/plugins/clangd_support.i18n.json +223 -0
- package/bin/plugins/clangd_support.md +20 -0
- package/bin/plugins/clangd_support.ts +325 -0
- package/bin/plugins/color_highlighter.i18n.json +145 -0
- package/bin/plugins/color_highlighter.ts +304 -0
- package/bin/plugins/config-schema.json +768 -0
- package/bin/plugins/csharp-lsp.ts +147 -0
- package/bin/plugins/csharp_support.i18n.json +80 -0
- package/bin/plugins/csharp_support.ts +170 -0
- package/bin/plugins/css-lsp.ts +143 -0
- package/bin/plugins/diagnostics_panel.i18n.json +236 -0
- package/bin/plugins/diagnostics_panel.ts +642 -0
- package/bin/plugins/examples/README.md +85 -0
- package/bin/plugins/examples/async_demo.ts +165 -0
- package/bin/plugins/examples/bookmarks.ts +329 -0
- package/bin/plugins/examples/buffer_query_demo.ts +110 -0
- package/bin/plugins/examples/git_grep.ts +262 -0
- package/bin/plugins/examples/hello_world.ts +93 -0
- package/bin/plugins/examples/virtual_buffer_demo.ts +116 -0
- package/bin/plugins/find_references.i18n.json +275 -0
- package/bin/plugins/find_references.ts +359 -0
- package/bin/plugins/git_blame.i18n.json +496 -0
- package/bin/plugins/git_blame.ts +707 -0
- package/bin/plugins/git_find_file.i18n.json +314 -0
- package/bin/plugins/git_find_file.ts +300 -0
- package/bin/plugins/git_grep.i18n.json +171 -0
- package/bin/plugins/git_grep.ts +191 -0
- package/bin/plugins/git_gutter.i18n.json +93 -0
- package/bin/plugins/git_gutter.ts +477 -0
- package/bin/plugins/git_log.i18n.json +481 -0
- package/bin/plugins/git_log.ts +1285 -0
- package/bin/plugins/go-lsp.ts +143 -0
- package/bin/plugins/html-lsp.ts +145 -0
- package/bin/plugins/json-lsp.ts +145 -0
- package/bin/plugins/lib/fresh.d.ts +1321 -0
- package/bin/plugins/lib/index.ts +24 -0
- package/bin/plugins/lib/navigation-controller.ts +214 -0
- package/bin/plugins/lib/panel-manager.ts +220 -0
- package/bin/plugins/lib/types.ts +72 -0
- package/bin/plugins/lib/virtual-buffer-factory.ts +130 -0
- package/bin/plugins/live_grep.i18n.json +171 -0
- package/bin/plugins/live_grep.ts +422 -0
- package/bin/plugins/markdown_compose.i18n.json +223 -0
- package/bin/plugins/markdown_compose.ts +630 -0
- package/bin/plugins/merge_conflict.i18n.json +821 -0
- package/bin/plugins/merge_conflict.ts +1810 -0
- package/bin/plugins/path_complete.i18n.json +80 -0
- package/bin/plugins/path_complete.ts +165 -0
- package/bin/plugins/python-lsp.ts +162 -0
- package/bin/plugins/rust-lsp.ts +166 -0
- package/bin/plugins/search_replace.i18n.json +405 -0
- package/bin/plugins/search_replace.ts +484 -0
- package/bin/plugins/test_i18n.i18n.json +67 -0
- package/bin/plugins/test_i18n.ts +18 -0
- package/bin/plugins/theme_editor.i18n.json +3746 -0
- package/bin/plugins/theme_editor.ts +2063 -0
- package/bin/plugins/todo_highlighter.i18n.json +184 -0
- package/bin/plugins/todo_highlighter.ts +206 -0
- package/bin/plugins/typescript-lsp.ts +167 -0
- package/bin/plugins/vi_mode.i18n.json +1549 -0
- package/bin/plugins/vi_mode.ts +2747 -0
- package/bin/plugins/welcome.i18n.json +236 -0
- package/bin/plugins/welcome.ts +76 -0
- package/bin/themes/dark.json +102 -0
- package/bin/themes/dracula.json +62 -0
- package/bin/themes/high-contrast.json +102 -0
- package/bin/themes/light.json +102 -0
- package/bin/themes/nord.json +62 -0
- package/bin/themes/nostalgia.json +102 -0
- package/bin/themes/solarized-dark.json +62 -0
- package/binary-install.js +1 -1
- package/dist/bin/fresh.js +9 -0
- package/dist/binary-install.js +149 -0
- package/dist/binary.js +30 -0
- package/dist/fresh-6yhknp07.exe +0 -0
- package/dist/install.js +158 -0
- package/dist/run-fresh.js +43 -0
- package/package.json +7 -2
|
@@ -0,0 +1,768 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "Config",
|
|
4
|
+
"description": "Main configuration structure",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"version": {
|
|
8
|
+
"description": "Configuration version (for migration support)\nConfigs without this field are treated as version 0",
|
|
9
|
+
"type": "integer",
|
|
10
|
+
"format": "uint32",
|
|
11
|
+
"minimum": 0,
|
|
12
|
+
"default": 0
|
|
13
|
+
},
|
|
14
|
+
"theme": {
|
|
15
|
+
"description": "Color theme name",
|
|
16
|
+
"$ref": "#/$defs/ThemeOptions",
|
|
17
|
+
"default": "high-contrast"
|
|
18
|
+
},
|
|
19
|
+
"locale": {
|
|
20
|
+
"description": "UI locale (language) for translations\nIf not set, auto-detected from environment (LC_ALL, LC_MESSAGES, LANG)",
|
|
21
|
+
"$ref": "#/$defs/LocaleOptions",
|
|
22
|
+
"default": null
|
|
23
|
+
},
|
|
24
|
+
"check_for_updates": {
|
|
25
|
+
"description": "Check for new versions on quit (default: true)",
|
|
26
|
+
"type": "boolean",
|
|
27
|
+
"default": true
|
|
28
|
+
},
|
|
29
|
+
"editor": {
|
|
30
|
+
"description": "Editor behavior settings (indentation, line numbers, wrapping, etc.)",
|
|
31
|
+
"$ref": "#/$defs/EditorConfig",
|
|
32
|
+
"default": {
|
|
33
|
+
"tab_size": 4,
|
|
34
|
+
"auto_indent": true,
|
|
35
|
+
"line_numbers": true,
|
|
36
|
+
"relative_line_numbers": false,
|
|
37
|
+
"scroll_offset": 3,
|
|
38
|
+
"syntax_highlighting": true,
|
|
39
|
+
"line_wrap": true,
|
|
40
|
+
"highlight_timeout_ms": 5,
|
|
41
|
+
"snapshot_interval": 100,
|
|
42
|
+
"large_file_threshold_bytes": 1048576,
|
|
43
|
+
"estimated_line_length": 80,
|
|
44
|
+
"enable_inlay_hints": true,
|
|
45
|
+
"recovery_enabled": true,
|
|
46
|
+
"auto_save_interval_secs": 2,
|
|
47
|
+
"highlight_context_bytes": 10000,
|
|
48
|
+
"mouse_hover_enabled": true,
|
|
49
|
+
"mouse_hover_delay_ms": 500,
|
|
50
|
+
"double_click_time_ms": 500,
|
|
51
|
+
"auto_revert_poll_interval_ms": 2000,
|
|
52
|
+
"file_tree_poll_interval_ms": 3000,
|
|
53
|
+
"default_line_ending": "lf",
|
|
54
|
+
"cursor_style": "default",
|
|
55
|
+
"quick_suggestions": true
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"file_explorer": {
|
|
59
|
+
"description": "File explorer panel settings",
|
|
60
|
+
"$ref": "#/$defs/FileExplorerConfig",
|
|
61
|
+
"default": {
|
|
62
|
+
"respect_gitignore": true,
|
|
63
|
+
"show_hidden": false,
|
|
64
|
+
"show_gitignored": false,
|
|
65
|
+
"custom_ignore_patterns": [],
|
|
66
|
+
"width": 0.30000001192092896
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"file_browser": {
|
|
70
|
+
"description": "File browser settings (Open File dialog)",
|
|
71
|
+
"$ref": "#/$defs/FileBrowserConfig",
|
|
72
|
+
"default": {
|
|
73
|
+
"show_hidden": false
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"terminal": {
|
|
77
|
+
"description": "Terminal settings",
|
|
78
|
+
"$ref": "#/$defs/TerminalConfig",
|
|
79
|
+
"default": {
|
|
80
|
+
"jump_to_end_on_output": true
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"keybindings": {
|
|
84
|
+
"description": "Custom keybindings (overrides for the active map)",
|
|
85
|
+
"type": "array",
|
|
86
|
+
"items": {
|
|
87
|
+
"$ref": "#/$defs/Keybinding"
|
|
88
|
+
},
|
|
89
|
+
"default": []
|
|
90
|
+
},
|
|
91
|
+
"keybinding_maps": {
|
|
92
|
+
"description": "Named keybinding maps (user can define custom maps here)\nEach map can optionally inherit from another map",
|
|
93
|
+
"type": "object",
|
|
94
|
+
"additionalProperties": {
|
|
95
|
+
"$ref": "#/$defs/KeymapConfig"
|
|
96
|
+
},
|
|
97
|
+
"default": {}
|
|
98
|
+
},
|
|
99
|
+
"active_keybinding_map": {
|
|
100
|
+
"description": "Active keybinding map name",
|
|
101
|
+
"$ref": "#/$defs/KeybindingMapOptions",
|
|
102
|
+
"default": "default"
|
|
103
|
+
},
|
|
104
|
+
"languages": {
|
|
105
|
+
"description": "Per-language configuration overrides (tab size, formatters, etc.)",
|
|
106
|
+
"type": "object",
|
|
107
|
+
"additionalProperties": {
|
|
108
|
+
"$ref": "#/$defs/LanguageConfig"
|
|
109
|
+
},
|
|
110
|
+
"default": {}
|
|
111
|
+
},
|
|
112
|
+
"lsp": {
|
|
113
|
+
"description": "LSP server configurations by language",
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": {
|
|
116
|
+
"$ref": "#/$defs/LspServerConfig"
|
|
117
|
+
},
|
|
118
|
+
"default": {}
|
|
119
|
+
},
|
|
120
|
+
"warnings": {
|
|
121
|
+
"description": "Warning notification settings",
|
|
122
|
+
"$ref": "#/$defs/WarningsConfig",
|
|
123
|
+
"default": {
|
|
124
|
+
"show_status_indicator": true
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"$defs": {
|
|
129
|
+
"ThemeOptions": {
|
|
130
|
+
"description": "Available color themes",
|
|
131
|
+
"type": "string",
|
|
132
|
+
"enum": [
|
|
133
|
+
"dark",
|
|
134
|
+
"light",
|
|
135
|
+
"high-contrast",
|
|
136
|
+
"nostalgia"
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
"LocaleOptions": {
|
|
140
|
+
"description": "UI locale (language). Use null for auto-detection from environment.",
|
|
141
|
+
"enum": [
|
|
142
|
+
null,
|
|
143
|
+
"cs",
|
|
144
|
+
"de",
|
|
145
|
+
"en",
|
|
146
|
+
"es",
|
|
147
|
+
"fr",
|
|
148
|
+
"it",
|
|
149
|
+
"ja",
|
|
150
|
+
"ko",
|
|
151
|
+
"pt-BR",
|
|
152
|
+
"ru",
|
|
153
|
+
"th",
|
|
154
|
+
"uk",
|
|
155
|
+
"zh-CN"
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
"EditorConfig": {
|
|
159
|
+
"description": "Editor behavior configuration",
|
|
160
|
+
"type": "object",
|
|
161
|
+
"properties": {
|
|
162
|
+
"tab_size": {
|
|
163
|
+
"description": "Number of spaces per tab character",
|
|
164
|
+
"type": "integer",
|
|
165
|
+
"format": "uint",
|
|
166
|
+
"minimum": 0,
|
|
167
|
+
"default": 4
|
|
168
|
+
},
|
|
169
|
+
"auto_indent": {
|
|
170
|
+
"description": "Automatically indent new lines based on the previous line",
|
|
171
|
+
"type": "boolean",
|
|
172
|
+
"default": true
|
|
173
|
+
},
|
|
174
|
+
"line_numbers": {
|
|
175
|
+
"description": "Show line numbers in the gutter (default for new buffers)",
|
|
176
|
+
"type": "boolean",
|
|
177
|
+
"default": true
|
|
178
|
+
},
|
|
179
|
+
"relative_line_numbers": {
|
|
180
|
+
"description": "Show line numbers relative to cursor position",
|
|
181
|
+
"type": "boolean",
|
|
182
|
+
"default": false
|
|
183
|
+
},
|
|
184
|
+
"scroll_offset": {
|
|
185
|
+
"description": "Minimum lines to keep visible above/below cursor when scrolling",
|
|
186
|
+
"type": "integer",
|
|
187
|
+
"format": "uint",
|
|
188
|
+
"minimum": 0,
|
|
189
|
+
"default": 3
|
|
190
|
+
},
|
|
191
|
+
"syntax_highlighting": {
|
|
192
|
+
"description": "Enable syntax highlighting for code files",
|
|
193
|
+
"type": "boolean",
|
|
194
|
+
"default": true
|
|
195
|
+
},
|
|
196
|
+
"line_wrap": {
|
|
197
|
+
"description": "Wrap long lines to fit the window width (default for new views)",
|
|
198
|
+
"type": "boolean",
|
|
199
|
+
"default": true
|
|
200
|
+
},
|
|
201
|
+
"highlight_timeout_ms": {
|
|
202
|
+
"description": "Maximum time in milliseconds for syntax highlighting per frame",
|
|
203
|
+
"type": "integer",
|
|
204
|
+
"format": "uint64",
|
|
205
|
+
"minimum": 0,
|
|
206
|
+
"default": 5
|
|
207
|
+
},
|
|
208
|
+
"snapshot_interval": {
|
|
209
|
+
"description": "Undo history snapshot interval (number of edits between snapshots)",
|
|
210
|
+
"type": "integer",
|
|
211
|
+
"format": "uint",
|
|
212
|
+
"minimum": 0,
|
|
213
|
+
"default": 100
|
|
214
|
+
},
|
|
215
|
+
"large_file_threshold_bytes": {
|
|
216
|
+
"description": "File size threshold in bytes for \"large file\" behavior\nFiles larger than this will:\n- Skip LSP features\n- Use constant-size scrollbar thumb (1 char)\nFiles smaller will count actual lines for accurate scrollbar rendering",
|
|
217
|
+
"type": "integer",
|
|
218
|
+
"format": "uint64",
|
|
219
|
+
"minimum": 0,
|
|
220
|
+
"default": 1048576
|
|
221
|
+
},
|
|
222
|
+
"estimated_line_length": {
|
|
223
|
+
"description": "Estimated average line length in bytes (used for large file line estimation)\nThis is used by LineIterator to estimate line positions in large files\nwithout line metadata. Typical values: 80-120 bytes.",
|
|
224
|
+
"type": "integer",
|
|
225
|
+
"format": "uint",
|
|
226
|
+
"minimum": 0,
|
|
227
|
+
"default": 80
|
|
228
|
+
},
|
|
229
|
+
"enable_inlay_hints": {
|
|
230
|
+
"description": "Whether to enable LSP inlay hints (type hints, parameter hints, etc.)",
|
|
231
|
+
"type": "boolean",
|
|
232
|
+
"default": true
|
|
233
|
+
},
|
|
234
|
+
"recovery_enabled": {
|
|
235
|
+
"description": "Whether to enable file recovery (Emacs-style auto-save)\nWhen enabled, buffers are periodically saved to recovery files\nso they can be recovered if the editor crashes.",
|
|
236
|
+
"type": "boolean",
|
|
237
|
+
"default": true
|
|
238
|
+
},
|
|
239
|
+
"auto_save_interval_secs": {
|
|
240
|
+
"description": "Auto-save interval in seconds for file recovery\nModified buffers are saved to recovery files at this interval.\nDefault: 2 seconds for fast recovery with minimal data loss.\nSet to 0 to disable periodic auto-save (manual recovery only).",
|
|
241
|
+
"type": "integer",
|
|
242
|
+
"format": "uint32",
|
|
243
|
+
"minimum": 0,
|
|
244
|
+
"default": 2
|
|
245
|
+
},
|
|
246
|
+
"highlight_context_bytes": {
|
|
247
|
+
"description": "Number of bytes to look back/forward from the viewport for syntax highlighting context.\nLarger values improve accuracy for multi-line constructs (strings, comments, nested blocks)\nbut may slow down highlighting for very large files.\nDefault: 10KB (10000 bytes)",
|
|
248
|
+
"type": "integer",
|
|
249
|
+
"format": "uint",
|
|
250
|
+
"minimum": 0,
|
|
251
|
+
"default": 10000
|
|
252
|
+
},
|
|
253
|
+
"mouse_hover_enabled": {
|
|
254
|
+
"description": "Whether mouse hover triggers LSP hover requests.\nWhen enabled, hovering over code with the mouse will show documentation.\nDefault: true",
|
|
255
|
+
"type": "boolean",
|
|
256
|
+
"default": true
|
|
257
|
+
},
|
|
258
|
+
"mouse_hover_delay_ms": {
|
|
259
|
+
"description": "Delay in milliseconds before a mouse hover triggers an LSP hover request.\nLower values show hover info faster but may cause more LSP server load.\nDefault: 500ms",
|
|
260
|
+
"type": "integer",
|
|
261
|
+
"format": "uint64",
|
|
262
|
+
"minimum": 0,
|
|
263
|
+
"default": 500
|
|
264
|
+
},
|
|
265
|
+
"double_click_time_ms": {
|
|
266
|
+
"description": "Time window in milliseconds for detecting double-clicks.\nTwo clicks within this time are treated as a double-click (word selection).\nDefault: 500ms",
|
|
267
|
+
"type": "integer",
|
|
268
|
+
"format": "uint64",
|
|
269
|
+
"minimum": 0,
|
|
270
|
+
"default": 500
|
|
271
|
+
},
|
|
272
|
+
"auto_revert_poll_interval_ms": {
|
|
273
|
+
"description": "Poll interval in milliseconds for auto-reverting open buffers.\nWhen auto-revert is enabled, file modification times are checked at this interval.\nLower values detect external changes faster but use more CPU.\nDefault: 2000ms (2 seconds)",
|
|
274
|
+
"type": "integer",
|
|
275
|
+
"format": "uint64",
|
|
276
|
+
"minimum": 0,
|
|
277
|
+
"default": 2000
|
|
278
|
+
},
|
|
279
|
+
"file_tree_poll_interval_ms": {
|
|
280
|
+
"description": "Poll interval in milliseconds for refreshing expanded directories in the file explorer.\nDirectory modification times are checked at this interval to detect new/deleted files.\nLower values detect changes faster but use more CPU.\nDefault: 3000ms (3 seconds)",
|
|
281
|
+
"type": "integer",
|
|
282
|
+
"format": "uint64",
|
|
283
|
+
"minimum": 0,
|
|
284
|
+
"default": 3000
|
|
285
|
+
},
|
|
286
|
+
"default_line_ending": {
|
|
287
|
+
"description": "Default line ending format for new files.\nFiles loaded from disk will use their detected line ending format.\nOptions: \"lf\" (Unix/Linux/macOS), \"crlf\" (Windows), \"cr\" (Classic Mac)\nDefault: \"lf\"",
|
|
288
|
+
"$ref": "#/$defs/LineEndingOption",
|
|
289
|
+
"default": "lf"
|
|
290
|
+
},
|
|
291
|
+
"cursor_style": {
|
|
292
|
+
"description": "Cursor style for the terminal cursor.\nOptions: blinking_block, steady_block, blinking_bar, steady_bar, blinking_underline, steady_underline\nDefault: blinking_block",
|
|
293
|
+
"$ref": "#/$defs/CursorStyle",
|
|
294
|
+
"default": "default"
|
|
295
|
+
},
|
|
296
|
+
"quick_suggestions": {
|
|
297
|
+
"description": "Enable quick suggestions (VS Code-like behavior).\nWhen enabled, completion suggestions appear automatically while typing,\nnot just on trigger characters (like `.` or `::`).\nDefault: true",
|
|
298
|
+
"type": "boolean",
|
|
299
|
+
"default": true
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"LineEndingOption": {
|
|
304
|
+
"description": "Default line ending format for new files",
|
|
305
|
+
"type": "string",
|
|
306
|
+
"enum": [
|
|
307
|
+
"lf",
|
|
308
|
+
"crlf",
|
|
309
|
+
"cr"
|
|
310
|
+
],
|
|
311
|
+
"default": "lf"
|
|
312
|
+
},
|
|
313
|
+
"CursorStyle": {
|
|
314
|
+
"description": "Terminal cursor style",
|
|
315
|
+
"type": "string",
|
|
316
|
+
"enum": [
|
|
317
|
+
"default",
|
|
318
|
+
"blinking_block",
|
|
319
|
+
"steady_block",
|
|
320
|
+
"blinking_bar",
|
|
321
|
+
"steady_bar",
|
|
322
|
+
"blinking_underline",
|
|
323
|
+
"steady_underline"
|
|
324
|
+
]
|
|
325
|
+
},
|
|
326
|
+
"FileExplorerConfig": {
|
|
327
|
+
"description": "File explorer configuration",
|
|
328
|
+
"type": "object",
|
|
329
|
+
"properties": {
|
|
330
|
+
"respect_gitignore": {
|
|
331
|
+
"description": "Whether to respect .gitignore files",
|
|
332
|
+
"type": "boolean",
|
|
333
|
+
"default": true
|
|
334
|
+
},
|
|
335
|
+
"show_hidden": {
|
|
336
|
+
"description": "Whether to show hidden files (starting with .) by default",
|
|
337
|
+
"type": "boolean",
|
|
338
|
+
"default": false
|
|
339
|
+
},
|
|
340
|
+
"show_gitignored": {
|
|
341
|
+
"description": "Whether to show gitignored files by default",
|
|
342
|
+
"type": "boolean",
|
|
343
|
+
"default": false
|
|
344
|
+
},
|
|
345
|
+
"custom_ignore_patterns": {
|
|
346
|
+
"description": "Custom patterns to ignore (in addition to .gitignore)",
|
|
347
|
+
"type": "array",
|
|
348
|
+
"items": {
|
|
349
|
+
"type": "string"
|
|
350
|
+
},
|
|
351
|
+
"default": []
|
|
352
|
+
},
|
|
353
|
+
"width": {
|
|
354
|
+
"description": "Width of file explorer as percentage (0.0 to 1.0)",
|
|
355
|
+
"type": "number",
|
|
356
|
+
"format": "float",
|
|
357
|
+
"default": 0.30000001192092896
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
"FileBrowserConfig": {
|
|
362
|
+
"description": "File browser configuration (for Open File dialog)",
|
|
363
|
+
"type": "object",
|
|
364
|
+
"properties": {
|
|
365
|
+
"show_hidden": {
|
|
366
|
+
"description": "Whether to show hidden files (starting with .) by default in Open File dialog",
|
|
367
|
+
"type": "boolean",
|
|
368
|
+
"default": false
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
"TerminalConfig": {
|
|
373
|
+
"description": "Terminal configuration",
|
|
374
|
+
"type": "object",
|
|
375
|
+
"properties": {
|
|
376
|
+
"jump_to_end_on_output": {
|
|
377
|
+
"description": "When viewing terminal scrollback and new output arrives,\nautomatically jump back to terminal mode (default: true)",
|
|
378
|
+
"type": "boolean",
|
|
379
|
+
"default": true
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
"Keybinding": {
|
|
384
|
+
"description": "Keybinding definition",
|
|
385
|
+
"type": "object",
|
|
386
|
+
"properties": {
|
|
387
|
+
"key": {
|
|
388
|
+
"description": "Key name (e.g., \"a\", \"Enter\", \"F1\") - for single-key bindings",
|
|
389
|
+
"type": "string"
|
|
390
|
+
},
|
|
391
|
+
"modifiers": {
|
|
392
|
+
"description": "Modifiers (e.g., [\"ctrl\"], [\"ctrl\", \"shift\"]) - for single-key bindings",
|
|
393
|
+
"type": "array",
|
|
394
|
+
"items": {
|
|
395
|
+
"type": "string"
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
"keys": {
|
|
399
|
+
"description": "Key sequence for chord bindings (e.g., [{\"key\": \"x\", \"modifiers\": [\"ctrl\"]}, {\"key\": \"s\", \"modifiers\": [\"ctrl\"]}])\nIf present, takes precedence over key + modifiers",
|
|
400
|
+
"type": "array",
|
|
401
|
+
"items": {
|
|
402
|
+
"$ref": "#/$defs/KeyPress"
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
"action": {
|
|
406
|
+
"description": "Action to perform (e.g., \"insert_char\", \"move_left\")",
|
|
407
|
+
"type": "string"
|
|
408
|
+
},
|
|
409
|
+
"args": {
|
|
410
|
+
"description": "Optional arguments for the action",
|
|
411
|
+
"type": "object",
|
|
412
|
+
"additionalProperties": true,
|
|
413
|
+
"default": {}
|
|
414
|
+
},
|
|
415
|
+
"when": {
|
|
416
|
+
"description": "Optional condition (e.g., \"mode == insert\")",
|
|
417
|
+
"type": [
|
|
418
|
+
"string",
|
|
419
|
+
"null"
|
|
420
|
+
],
|
|
421
|
+
"default": null
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
"required": [
|
|
425
|
+
"action"
|
|
426
|
+
],
|
|
427
|
+
"x-display-field": "/action"
|
|
428
|
+
},
|
|
429
|
+
"KeyPress": {
|
|
430
|
+
"description": "A single key in a sequence",
|
|
431
|
+
"type": "object",
|
|
432
|
+
"properties": {
|
|
433
|
+
"key": {
|
|
434
|
+
"description": "Key name (e.g., \"a\", \"Enter\", \"F1\")",
|
|
435
|
+
"type": "string"
|
|
436
|
+
},
|
|
437
|
+
"modifiers": {
|
|
438
|
+
"description": "Modifiers (e.g., [\"ctrl\"], [\"ctrl\", \"shift\"])",
|
|
439
|
+
"type": "array",
|
|
440
|
+
"items": {
|
|
441
|
+
"type": "string"
|
|
442
|
+
},
|
|
443
|
+
"default": []
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
"required": [
|
|
447
|
+
"key"
|
|
448
|
+
]
|
|
449
|
+
},
|
|
450
|
+
"KeymapConfig": {
|
|
451
|
+
"description": "Keymap configuration (for built-in and user-defined keymaps)",
|
|
452
|
+
"type": "object",
|
|
453
|
+
"properties": {
|
|
454
|
+
"inherits": {
|
|
455
|
+
"description": "Optional parent keymap to inherit from",
|
|
456
|
+
"type": [
|
|
457
|
+
"string",
|
|
458
|
+
"null"
|
|
459
|
+
]
|
|
460
|
+
},
|
|
461
|
+
"bindings": {
|
|
462
|
+
"description": "Keybindings defined in this keymap",
|
|
463
|
+
"type": "array",
|
|
464
|
+
"items": {
|
|
465
|
+
"$ref": "#/$defs/Keybinding"
|
|
466
|
+
},
|
|
467
|
+
"default": []
|
|
468
|
+
}
|
|
469
|
+
},
|
|
470
|
+
"x-display-field": "/inherits"
|
|
471
|
+
},
|
|
472
|
+
"KeybindingMapOptions": {
|
|
473
|
+
"description": "Available keybinding maps",
|
|
474
|
+
"type": "string",
|
|
475
|
+
"enum": [
|
|
476
|
+
"default",
|
|
477
|
+
"emacs",
|
|
478
|
+
"vscode",
|
|
479
|
+
"macos"
|
|
480
|
+
]
|
|
481
|
+
},
|
|
482
|
+
"LanguageConfig": {
|
|
483
|
+
"description": "Language-specific configuration",
|
|
484
|
+
"type": "object",
|
|
485
|
+
"properties": {
|
|
486
|
+
"extensions": {
|
|
487
|
+
"description": "File extensions for this language (e.g., [\"rs\"] for Rust)",
|
|
488
|
+
"type": "array",
|
|
489
|
+
"items": {
|
|
490
|
+
"type": "string"
|
|
491
|
+
},
|
|
492
|
+
"default": []
|
|
493
|
+
},
|
|
494
|
+
"filenames": {
|
|
495
|
+
"description": "Exact filenames for this language (e.g., [\"Makefile\", \"GNUmakefile\"])",
|
|
496
|
+
"type": "array",
|
|
497
|
+
"items": {
|
|
498
|
+
"type": "string"
|
|
499
|
+
},
|
|
500
|
+
"default": []
|
|
501
|
+
},
|
|
502
|
+
"grammar": {
|
|
503
|
+
"description": "Tree-sitter grammar name",
|
|
504
|
+
"type": "string",
|
|
505
|
+
"default": ""
|
|
506
|
+
},
|
|
507
|
+
"comment_prefix": {
|
|
508
|
+
"description": "Comment prefix",
|
|
509
|
+
"type": [
|
|
510
|
+
"string",
|
|
511
|
+
"null"
|
|
512
|
+
],
|
|
513
|
+
"default": null
|
|
514
|
+
},
|
|
515
|
+
"auto_indent": {
|
|
516
|
+
"description": "Whether to auto-indent",
|
|
517
|
+
"type": "boolean",
|
|
518
|
+
"default": true
|
|
519
|
+
},
|
|
520
|
+
"highlighter": {
|
|
521
|
+
"description": "Preferred highlighter backend (auto, tree-sitter, or textmate)",
|
|
522
|
+
"$ref": "#/$defs/HighlighterPreference",
|
|
523
|
+
"default": "auto"
|
|
524
|
+
},
|
|
525
|
+
"textmate_grammar": {
|
|
526
|
+
"description": "Path to custom TextMate grammar file (optional)\nIf specified, this grammar will be used when highlighter is \"textmate\"",
|
|
527
|
+
"type": [
|
|
528
|
+
"string",
|
|
529
|
+
"null"
|
|
530
|
+
],
|
|
531
|
+
"default": null
|
|
532
|
+
},
|
|
533
|
+
"show_whitespace_tabs": {
|
|
534
|
+
"description": "Whether to show whitespace tab indicators (→) for this language\nDefaults to true. Set to false for languages like Go that use tabs for indentation.",
|
|
535
|
+
"type": "boolean",
|
|
536
|
+
"default": true
|
|
537
|
+
},
|
|
538
|
+
"use_tabs": {
|
|
539
|
+
"description": "Whether pressing Tab should insert a tab character instead of spaces.\nDefaults to false (insert spaces based on tab_size).\nSet to true for languages like Go and Makefile that require tabs.",
|
|
540
|
+
"type": "boolean",
|
|
541
|
+
"default": false
|
|
542
|
+
},
|
|
543
|
+
"tab_size": {
|
|
544
|
+
"description": "Tab size (number of spaces per tab) for this language.\nIf not specified, falls back to the global editor.tab_size setting.",
|
|
545
|
+
"type": [
|
|
546
|
+
"integer",
|
|
547
|
+
"null"
|
|
548
|
+
],
|
|
549
|
+
"format": "uint",
|
|
550
|
+
"minimum": 0,
|
|
551
|
+
"default": null
|
|
552
|
+
},
|
|
553
|
+
"formatter": {
|
|
554
|
+
"description": "The formatter for this language (used by format_buffer command)",
|
|
555
|
+
"anyOf": [
|
|
556
|
+
{
|
|
557
|
+
"$ref": "#/$defs/FormatterConfig"
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"type": "null"
|
|
561
|
+
}
|
|
562
|
+
],
|
|
563
|
+
"default": null
|
|
564
|
+
},
|
|
565
|
+
"format_on_save": {
|
|
566
|
+
"description": "Whether to automatically format on save (uses the formatter above)",
|
|
567
|
+
"type": "boolean",
|
|
568
|
+
"default": false
|
|
569
|
+
},
|
|
570
|
+
"on_save": {
|
|
571
|
+
"description": "Actions to run when a file of this language is saved (linters, etc.)\nActions are run in order; if any fails (non-zero exit), subsequent actions don't run\nNote: Use `formatter` + `format_on_save` for formatting, not on_save",
|
|
572
|
+
"type": "array",
|
|
573
|
+
"items": {
|
|
574
|
+
"$ref": "#/$defs/OnSaveAction"
|
|
575
|
+
},
|
|
576
|
+
"default": []
|
|
577
|
+
}
|
|
578
|
+
},
|
|
579
|
+
"x-display-field": "/grammar"
|
|
580
|
+
},
|
|
581
|
+
"HighlighterPreference": {
|
|
582
|
+
"description": "Preference for which syntax highlighting backend to use",
|
|
583
|
+
"oneOf": [
|
|
584
|
+
{
|
|
585
|
+
"description": "Use tree-sitter if available, fall back to TextMate",
|
|
586
|
+
"type": "string",
|
|
587
|
+
"const": "auto"
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"description": "Force tree-sitter only (no highlighting if unavailable)",
|
|
591
|
+
"type": "string",
|
|
592
|
+
"const": "tree-sitter"
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"description": "Force TextMate grammar (skip tree-sitter even if available)",
|
|
596
|
+
"type": "string",
|
|
597
|
+
"const": "textmate"
|
|
598
|
+
}
|
|
599
|
+
]
|
|
600
|
+
},
|
|
601
|
+
"FormatterConfig": {
|
|
602
|
+
"description": "Formatter configuration for a language",
|
|
603
|
+
"type": "object",
|
|
604
|
+
"properties": {
|
|
605
|
+
"command": {
|
|
606
|
+
"description": "The formatter command to run (e.g., \"rustfmt\", \"prettier\")",
|
|
607
|
+
"type": "string"
|
|
608
|
+
},
|
|
609
|
+
"args": {
|
|
610
|
+
"description": "Arguments to pass to the formatter\nUse \"$FILE\" to include the file path",
|
|
611
|
+
"type": "array",
|
|
612
|
+
"items": {
|
|
613
|
+
"type": "string"
|
|
614
|
+
},
|
|
615
|
+
"default": []
|
|
616
|
+
},
|
|
617
|
+
"stdin": {
|
|
618
|
+
"description": "Whether to pass buffer content via stdin (default: true)\nMost formatters read from stdin and write to stdout",
|
|
619
|
+
"type": "boolean",
|
|
620
|
+
"default": true
|
|
621
|
+
},
|
|
622
|
+
"timeout_ms": {
|
|
623
|
+
"description": "Timeout in milliseconds (default: 10000)",
|
|
624
|
+
"type": "integer",
|
|
625
|
+
"format": "uint64",
|
|
626
|
+
"minimum": 0,
|
|
627
|
+
"default": 10000
|
|
628
|
+
}
|
|
629
|
+
},
|
|
630
|
+
"required": [
|
|
631
|
+
"command"
|
|
632
|
+
],
|
|
633
|
+
"x-display-field": "/command"
|
|
634
|
+
},
|
|
635
|
+
"OnSaveAction": {
|
|
636
|
+
"description": "Action to run when a file is saved (for linters, etc.)",
|
|
637
|
+
"type": "object",
|
|
638
|
+
"properties": {
|
|
639
|
+
"command": {
|
|
640
|
+
"description": "The shell command to run\nThe file path is available as $FILE or as an argument",
|
|
641
|
+
"type": "string"
|
|
642
|
+
},
|
|
643
|
+
"args": {
|
|
644
|
+
"description": "Arguments to pass to the command\nUse \"$FILE\" to include the file path",
|
|
645
|
+
"type": "array",
|
|
646
|
+
"items": {
|
|
647
|
+
"type": "string"
|
|
648
|
+
},
|
|
649
|
+
"default": []
|
|
650
|
+
},
|
|
651
|
+
"working_dir": {
|
|
652
|
+
"description": "Working directory for the command (defaults to project root)",
|
|
653
|
+
"type": [
|
|
654
|
+
"string",
|
|
655
|
+
"null"
|
|
656
|
+
],
|
|
657
|
+
"default": null
|
|
658
|
+
},
|
|
659
|
+
"stdin": {
|
|
660
|
+
"description": "Whether to use the buffer content as stdin",
|
|
661
|
+
"type": "boolean",
|
|
662
|
+
"default": false
|
|
663
|
+
},
|
|
664
|
+
"timeout_ms": {
|
|
665
|
+
"description": "Timeout in milliseconds (default: 10000)",
|
|
666
|
+
"type": "integer",
|
|
667
|
+
"format": "uint64",
|
|
668
|
+
"minimum": 0,
|
|
669
|
+
"default": 10000
|
|
670
|
+
},
|
|
671
|
+
"enabled": {
|
|
672
|
+
"description": "Whether this action is enabled (default: true)\nSet to false to disable an action without removing it from config",
|
|
673
|
+
"type": "boolean",
|
|
674
|
+
"default": true
|
|
675
|
+
}
|
|
676
|
+
},
|
|
677
|
+
"required": [
|
|
678
|
+
"command"
|
|
679
|
+
],
|
|
680
|
+
"x-display-field": "/command"
|
|
681
|
+
},
|
|
682
|
+
"LspServerConfig": {
|
|
683
|
+
"description": "LSP server configuration",
|
|
684
|
+
"type": "object",
|
|
685
|
+
"properties": {
|
|
686
|
+
"command": {
|
|
687
|
+
"description": "Command to spawn the server.\nRequired when enabled=true, ignored when enabled=false.",
|
|
688
|
+
"type": "string",
|
|
689
|
+
"default": ""
|
|
690
|
+
},
|
|
691
|
+
"args": {
|
|
692
|
+
"description": "Arguments to pass to the server",
|
|
693
|
+
"type": "array",
|
|
694
|
+
"items": {
|
|
695
|
+
"type": "string"
|
|
696
|
+
},
|
|
697
|
+
"default": []
|
|
698
|
+
},
|
|
699
|
+
"enabled": {
|
|
700
|
+
"description": "Whether the server is enabled",
|
|
701
|
+
"type": "boolean",
|
|
702
|
+
"default": true
|
|
703
|
+
},
|
|
704
|
+
"auto_start": {
|
|
705
|
+
"description": "Whether to auto-start this LSP server when opening matching files\nIf false (default), the server must be started manually via command palette",
|
|
706
|
+
"type": "boolean",
|
|
707
|
+
"default": false
|
|
708
|
+
},
|
|
709
|
+
"process_limits": {
|
|
710
|
+
"description": "Process resource limits (memory and CPU)",
|
|
711
|
+
"$ref": "#/$defs/ProcessLimits",
|
|
712
|
+
"default": {
|
|
713
|
+
"max_memory_percent": 50,
|
|
714
|
+
"max_cpu_percent": 90,
|
|
715
|
+
"enabled": true
|
|
716
|
+
}
|
|
717
|
+
},
|
|
718
|
+
"initialization_options": {
|
|
719
|
+
"description": "Custom initialization options to send to the server\nThese are passed in the `initializationOptions` field of the LSP Initialize request",
|
|
720
|
+
"default": null
|
|
721
|
+
}
|
|
722
|
+
},
|
|
723
|
+
"x-display-field": "/command"
|
|
724
|
+
},
|
|
725
|
+
"ProcessLimits": {
|
|
726
|
+
"description": "Configuration for process resource limits",
|
|
727
|
+
"type": "object",
|
|
728
|
+
"properties": {
|
|
729
|
+
"max_memory_percent": {
|
|
730
|
+
"description": "Maximum memory usage as percentage of total system memory (None = no limit)\nDefault is 50% of total system memory",
|
|
731
|
+
"type": [
|
|
732
|
+
"integer",
|
|
733
|
+
"null"
|
|
734
|
+
],
|
|
735
|
+
"format": "uint32",
|
|
736
|
+
"minimum": 0,
|
|
737
|
+
"default": null
|
|
738
|
+
},
|
|
739
|
+
"max_cpu_percent": {
|
|
740
|
+
"description": "Maximum CPU usage as percentage of total CPU (None = no limit)\nFor multi-core systems, 100% = 1 core, 200% = 2 cores, etc.",
|
|
741
|
+
"type": [
|
|
742
|
+
"integer",
|
|
743
|
+
"null"
|
|
744
|
+
],
|
|
745
|
+
"format": "uint32",
|
|
746
|
+
"minimum": 0,
|
|
747
|
+
"default": null
|
|
748
|
+
},
|
|
749
|
+
"enabled": {
|
|
750
|
+
"description": "Enable resource limiting (can be disabled per-platform)",
|
|
751
|
+
"type": "boolean",
|
|
752
|
+
"default": true
|
|
753
|
+
}
|
|
754
|
+
}
|
|
755
|
+
},
|
|
756
|
+
"WarningsConfig": {
|
|
757
|
+
"description": "Warning notification configuration",
|
|
758
|
+
"type": "object",
|
|
759
|
+
"properties": {
|
|
760
|
+
"show_status_indicator": {
|
|
761
|
+
"description": "Show warning/error indicators in the status bar (default: true)\nWhen enabled, displays a colored indicator for LSP errors and other warnings",
|
|
762
|
+
"type": "boolean",
|
|
763
|
+
"default": true
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
}
|