1{
2 "$schema": "zed://schemas/settings",
3 /// The displayed name of this project. If not set or null, the root directory name
4 /// will be displayed.
5 "project_name": null,
6 // The name of the Zed theme to use for the UI.
7 //
8 // `mode` is one of:
9 // - "system": Use the theme that corresponds to the system's appearance
10 // - "light": Use the theme indicated by the "light" field
11 // - "dark": Use the theme indicated by the "dark" field
12 "theme": {
13 "mode": "system",
14 "light": "One Light",
15 "dark": "One Dark"
16 },
17 "icon_theme": "Zed (Default)",
18 // The name of a base set of key bindings to use.
19 // This setting can take six values, each named after another
20 // text editor:
21 //
22 // 1. "VSCode"
23 // 2. "Atom"
24 // 3. "JetBrains"
25 // 4. "None"
26 // 5. "SublimeText"
27 // 6. "TextMate"
28 "base_keymap": "VSCode",
29 // Features that can be globally enabled or disabled
30 "features": {
31 // Which edit prediction provider to use.
32 "edit_prediction_provider": "zed"
33 },
34 // The name of a font to use for rendering text in the editor
35 // ".ZedMono" currently aliases to Lilex
36 // but this may change in the future.
37 "buffer_font_family": ".ZedMono",
38 // Set the buffer text's font fallbacks, this will be merged with
39 // the platform's default fallbacks.
40 "buffer_font_fallbacks": null,
41 // The OpenType features to enable for text in the editor.
42 "buffer_font_features": {
43 // Disable ligatures:
44 // "calt": false
45 },
46 // The default font size for text in the editor
47 "buffer_font_size": 15,
48 // The weight of the editor font in standard CSS units from 100 to 900.
49 "buffer_font_weight": 400,
50 // Set the buffer's line height.
51 // May take 3 values:
52 // 1. Use a line height that's comfortable for reading (1.618)
53 // "buffer_line_height": "comfortable"
54 // 2. Use a standard line height, (1.3)
55 // "buffer_line_height": "standard",
56 // 3. Use a custom line height
57 // "buffer_line_height": {
58 // "custom": 2
59 // },
60 "buffer_line_height": "comfortable",
61 // The name of a font to use for rendering text in the UI
62 // You can set this to ".SystemUIFont" to use the system font
63 // ".ZedSans" currently aliases to "IBM Plex Sans", but this may
64 // change in the future
65 "ui_font_family": ".ZedSans",
66 // Set the UI's font fallbacks, this will be merged with the platform's
67 // default font fallbacks.
68 "ui_font_fallbacks": null,
69 // The OpenType features to enable for text in the UI
70 "ui_font_features": {
71 // Disable ligatures:
72 "calt": false
73 },
74 // The weight of the UI font in standard CSS units from 100 to 900.
75 "ui_font_weight": 400,
76 // The default font size for text in the UI
77 "ui_font_size": 16,
78 // The default font size for agent responses in the agent panel. Falls back to the UI font size if unset.
79 "agent_ui_font_size": null,
80 // The default font size for user messages in the agent panel.
81 "agent_buffer_font_size": 12,
82 // How much to fade out unused code.
83 "unnecessary_code_fade": 0.3,
84 // Active pane styling settings.
85 "active_pane_modifiers": {
86 // Inset border size of the active pane, in pixels.
87 "border_size": 0.0,
88 // Opacity of the inactive panes. 0 means transparent, 1 means opaque.
89 // Values are clamped to the [0.0, 1.0] range.
90 "inactive_opacity": 1.0
91 },
92 // Layout mode of the bottom dock. Defaults to "contained"
93 // choices: contained, full, left_aligned, right_aligned
94 "bottom_dock_layout": "contained",
95 // The direction that you want to split panes horizontally. Defaults to "down"
96 "pane_split_direction_horizontal": "down",
97 // The direction that you want to split panes vertically. Defaults to "right"
98 "pane_split_direction_vertical": "right",
99 // Centered layout related settings.
100 "centered_layout": {
101 // The relative width of the left padding of the central pane from the
102 // workspace when the centered layout is used.
103 "left_padding": 0.2,
104 // The relative width of the right padding of the central pane from the
105 // workspace when the centered layout is used.
106 "right_padding": 0.2
107 },
108 // Image viewer settings
109 "image_viewer": {
110 // The unit for image file sizes: "binary" (KiB, MiB) or decimal (KB, MB)
111 "unit": "binary"
112 },
113 // Determines the modifier to be used to add multiple cursors with the mouse. The open hover link mouse gestures will adapt such that it do not conflict with the multicursor modifier.
114 //
115 // 1. Maps to `Alt` on Linux and Windows and to `Option` on MacOS:
116 // "alt"
117 // 2. Maps `Control` on Linux and Windows and to `Command` on MacOS:
118 // "cmd_or_ctrl" (alias: "cmd", "ctrl")
119 "multi_cursor_modifier": "alt",
120 // Whether to enable vim modes and key bindings.
121 "vim_mode": false,
122 // Whether to enable helix mode and key bindings.
123 // Enabling this mode will automatically enable vim mode.
124 "helix_mode": false,
125 // Whether to show the informational hover box when moving the mouse
126 // over symbols in the editor.
127 "hover_popover_enabled": true,
128 // Time to wait in milliseconds before showing the informational hover box.
129 "hover_popover_delay": 300,
130 // Whether to confirm before quitting Zed.
131 "confirm_quit": false,
132 // Whether to restore last closed project when fresh Zed instance is opened
133 // May take 3 values:
134 // 1. All workspaces open during last session
135 // "restore_on_startup": "last_session"
136 // 2. The workspace opened
137 // "restore_on_startup": "last_workspace",
138 // 3. Do not restore previous workspaces
139 // "restore_on_startup": "none",
140 "restore_on_startup": "last_session",
141 // Whether to attempt to restore previous file's state when opening it again.
142 // The state is stored per pane.
143 // When disabled, defaults are applied instead of the state restoration.
144 //
145 // E.g. for editors, selections, folds and scroll positions are restored, if the same file is closed and, later, opened again in the same pane.
146 // When disabled, a single selection in the very beginning of the file, zero scroll position and no folds state is used as a default.
147 //
148 // Default: true
149 "restore_on_file_reopen": true,
150 // Whether to automatically close files that have been deleted on disk.
151 "close_on_file_delete": false,
152 // Relative size of the drop target in the editor that will open dropped file as a split pane (0-0.5)
153 // E.g. 0.25 == If you drop onto the top/bottom quarter of the pane a new vertical split will be used
154 // If you drop onto the left/right quarter of the pane a new horizontal split will be used
155 "drop_target_size": 0.2,
156 // Whether the window should be closed when using 'close active item' on a window with no tabs.
157 // May take 3 values:
158 // 1. Use the current platform's convention
159 // "when_closing_with_no_tabs": "platform_default"
160 // 2. Always close the window:
161 // "when_closing_with_no_tabs": "close_window",
162 // 3. Never close the window
163 // "when_closing_with_no_tabs": "keep_window_open",
164 "when_closing_with_no_tabs": "platform_default",
165 // What to do when the last window is closed.
166 // May take 2 values:
167 // 1. Use the current platform's convention
168 // "on_last_window_closed": "platform_default"
169 // 2. Always quit the application
170 // "on_last_window_closed": "quit_app",
171 "on_last_window_closed": "platform_default",
172 // Whether to show padding for zoomed panels.
173 // When enabled, zoomed center panels (e.g. code editor) will have padding all around,
174 // while zoomed bottom/left/right panels will have padding to the top/right/left (respectively).
175 //
176 // Default: true
177 "zoomed_padding": true,
178 // Whether to use the system provided dialogs for Open and Save As.
179 // When set to false, Zed will use the built-in keyboard-first pickers.
180 "use_system_path_prompts": true,
181 // Whether to use the system provided dialogs for prompts, such as confirmation
182 // prompts.
183 // When set to false, Zed will use its built-in prompts. Note that on Linux,
184 // this option is ignored and Zed will always use the built-in prompts.
185 "use_system_prompts": true,
186 // Whether the cursor blinks in the editor.
187 "cursor_blink": true,
188 // Cursor shape for the default editor.
189 // 1. A vertical bar
190 // "bar"
191 // 2. A block that surrounds the following character
192 // "block"
193 // 3. An underline / underscore that runs along the following character
194 // "underline"
195 // 4. A box drawn around the following character
196 // "hollow"
197 //
198 // Default: "bar"
199 "cursor_shape": "bar",
200 // Determines when the mouse cursor should be hidden in an editor or input box.
201 //
202 // 1. Never hide the mouse cursor:
203 // "never"
204 // 2. Hide only when typing:
205 // "on_typing"
206 // 3. Hide on both typing and cursor movement:
207 // "on_typing_and_movement"
208 "hide_mouse": "on_typing_and_movement",
209 // Determines how snippets are sorted relative to other completion items.
210 //
211 // 1. Place snippets at the top of the completion list:
212 // "top"
213 // 2. Place snippets normally without any preference:
214 // "inline"
215 // 3. Place snippets at the bottom of the completion list:
216 // "bottom"
217 // 4. Do not show snippets in the completion list:
218 // "none"
219 "snippet_sort_order": "inline",
220 // How to highlight the current line in the editor.
221 //
222 // 1. Don't highlight the current line:
223 // "none"
224 // 2. Highlight the gutter area:
225 // "gutter"
226 // 3. Highlight the editor area:
227 // "line"
228 // 4. Highlight the full line (default):
229 // "all"
230 "current_line_highlight": "all",
231 // Whether to highlight all occurrences of the selected text in an editor.
232 "selection_highlight": true,
233 // Whether the text selection should have rounded corners.
234 "rounded_selection": true,
235 // The debounce delay before querying highlights from the language
236 // server based on the current cursor location.
237 "lsp_highlight_debounce": 75,
238 // The minimum APCA perceptual contrast between foreground and background colors.
239 // APCA (Accessible Perceptual Contrast Algorithm) is more accurate than WCAG 2.x,
240 // especially for dark mode. Values range from 0 to 106.
241 //
242 // Based on APCA Readability Criterion (ARC) Bronze Simple Mode:
243 // https://readtech.org/ARC/tests/bronze-simple-mode/
244 // - 0: No contrast adjustment
245 // - 45: Minimum for large fluent text (36px+)
246 // - 60: Minimum for other content text
247 // - 75: Minimum for body text
248 // - 90: Preferred for body text
249 //
250 // This only affects text drawn over highlight backgrounds in the editor.
251 "minimum_contrast_for_highlights": 45,
252 // Whether to pop the completions menu while typing in an editor without
253 // explicitly requesting it.
254 "show_completions_on_input": true,
255 // Whether to display inline and alongside documentation for items in the
256 // completions menu
257 "show_completion_documentation": true,
258 // When to show the scrollbar in the completion menu.
259 // This setting can take four values:
260 //
261 // 1. Show the scrollbar if there's important information or
262 // follow the system's configured behavior
263 // "auto"
264 // 2. Match the system's configured behavior:
265 // "system"
266 // 3. Always show the scrollbar:
267 // "always"
268 // 4. Never show the scrollbar:
269 // "never" (default)
270 "completion_menu_scrollbar": "never",
271 // Show method signatures in the editor, when inside parentheses.
272 "auto_signature_help": false,
273 // Whether to show the signature help after completion or a bracket pair inserted.
274 // If `auto_signature_help` is enabled, this setting will be treated as enabled also.
275 "show_signature_help_after_edits": false,
276 // Whether to show code action button at start of buffer line.
277 "inline_code_actions": true,
278 // Whether to allow drag and drop text selection in buffer.
279 "drag_and_drop_selection": {
280 // When true, enables drag and drop text selection in buffer.
281 "enabled": true,
282 // The delay in milliseconds that must elapse before drag and drop is allowed. Otherwise, a new text selection is created.
283 "delay": 300
284 },
285 // What to do when go to definition yields no results.
286 //
287 // 1. Do nothing: `none`
288 // 2. Find references for the same symbol: `find_all_references` (default)
289 "go_to_definition_fallback": "find_all_references",
290 // Which level to use to filter out diagnostics displayed in the editor.
291 //
292 // Affects the editor rendering only, and does not interrupt
293 // the functionality of diagnostics fetching and project diagnostics editor.
294 // Which files containing diagnostic errors/warnings to mark in the tabs.
295 // Diagnostics are only shown when file icons are also active.
296 // This setting only works when can take the following three values:
297 //
298 // Which diagnostic indicators to show in the scrollbar, their level should be more or equal to the specified severity level.
299 // Possible values:
300 // - "off" — no diagnostics are allowed
301 // - "error"
302 // - "warning"
303 // - "info"
304 // - "hint"
305 // - "all" — allow all diagnostics (default)
306 "diagnostics_max_severity": "all",
307 // Whether to show wrap guides (vertical rulers) in the editor.
308 // Setting this to true will show a guide at the 'preferred_line_length' value
309 // if 'soft_wrap' is set to 'preferred_line_length', and will show any
310 // additional guides as specified by the 'wrap_guides' setting.
311 "show_wrap_guides": true,
312 // Character counts at which to show wrap guides in the editor.
313 "wrap_guides": [],
314 // Hide the values of in variables from visual display in private files
315 "redact_private_values": false,
316 // The default number of lines to expand excerpts in the multibuffer by.
317 "expand_excerpt_lines": 5,
318 // The default number of context lines shown in multibuffer excerpts.
319 "excerpt_context_lines": 2,
320 // Globs to match against file paths to determine if a file is private.
321 "private_files": ["**/.env*", "**/*.pem", "**/*.key", "**/*.cert", "**/*.crt", "**/secrets.yml"],
322 // Whether to use additional LSP queries to format (and amend) the code after
323 // every "trigger" symbol input, defined by LSP server capabilities.
324 "use_on_type_format": true,
325 // Whether to automatically add matching closing characters when typing
326 // opening parenthesis, bracket, brace, single or double quote characters.
327 // For example, when you type '(', Zed will add a closing ) at the correct position.
328 "use_autoclose": true,
329 // Whether to automatically surround selected text when typing opening parenthesis,
330 // bracket, brace, single or double quote characters.
331 // For example, when you select text and type '(', Zed will surround the text with ().
332 "use_auto_surround": true,
333 // Whether indentation should be adjusted based on the context whilst typing.
334 "auto_indent": true,
335 // Whether indentation of pasted content should be adjusted based on the context.
336 "auto_indent_on_paste": true,
337 // Controls how the editor handles the autoclosed characters.
338 // When set to `false`(default), skipping over and auto-removing of the closing characters
339 // happen only for auto-inserted characters.
340 // Otherwise(when `true`), the closing characters are always skipped over and auto-removed
341 // no matter how they were inserted.
342 "always_treat_brackets_as_autoclosed": false,
343 // Controls where the `editor::Rewrap` action is allowed in the current language scope.
344 //
345 // This setting can take three values:
346 //
347 // 1. Only allow rewrapping in comments:
348 // "in_comments"
349 // 2. Only allow rewrapping in the current selection(s):
350 // "in_selections"
351 // 3. Allow rewrapping anywhere:
352 // "anywhere"
353 //
354 // When using values other than `in_comments`, it is possible for the rewrapping to produce code
355 // that is syntactically invalid. Keep this in mind when selecting which behavior you would like
356 // to use.
357 //
358 // Note: This setting has no effect in Vim mode, as rewrap is already allowed everywhere.
359 "allow_rewrap": "in_comments",
360 // Controls whether edit predictions are shown immediately (true)
361 // or manually by triggering `editor::ShowEditPrediction` (false).
362 "show_edit_predictions": true,
363 // Controls whether edit predictions are shown in a given language scope.
364 // Example: ["string", "comment"]
365 "edit_predictions_disabled_in": [],
366 // Whether to show tabs and spaces in the editor.
367 // This setting can take four values:
368 //
369 // 1. Draw tabs and spaces only for the selected text (default):
370 // "selection"
371 // 2. Do not draw any tabs or spaces:
372 // "none"
373 // 3. Draw all invisible symbols:
374 // "all"
375 // 4. Draw whitespaces at boundaries only:
376 // "boundary"
377 // 5. Draw whitespaces only after non-whitespace characters:
378 // "trailing"
379 // For a whitespace to be on a boundary, any of the following conditions need to be met:
380 // - It is a tab
381 // - It is adjacent to an edge (start or end)
382 // - It is adjacent to a whitespace (left or right)
383 "show_whitespaces": "selection",
384 // Visible characters used to render whitespace when show_whitespaces is enabled.
385 "whitespace_map": {
386 "space": "•",
387 "tab": "→"
388 },
389 // Settings related to calls in Zed
390 "calls": {
391 // Join calls with the microphone live by default
392 "mute_on_join": false,
393 // Share your project when you are the first to join a channel
394 "share_on_join": false
395 },
396 // Toolbar related settings
397 "toolbar": {
398 // Whether to show breadcrumbs.
399 "breadcrumbs": true,
400 // Whether to show quick action buttons.
401 "quick_actions": true,
402 // Whether to show the Selections menu in the editor toolbar.
403 "selections_menu": true,
404 // Whether to show agent review buttons in the editor toolbar.
405 "agent_review": true,
406 // Whether to show code action buttons in the editor toolbar.
407 "code_actions": false
408 },
409 // Whether to allow windows to tab together based on the user’s tabbing preference (macOS only).
410 "use_system_window_tabs": false,
411 // Titlebar related settings
412 "title_bar": {
413 // Whether to show the branch icon beside branch switcher in the titlebar.
414 "show_branch_icon": false,
415 // Whether to show the branch name button in the titlebar.
416 "show_branch_name": true,
417 // Whether to show the project host and name in the titlebar.
418 "show_project_items": true,
419 // Whether to show onboarding banners in the titlebar.
420 "show_onboarding_banner": true,
421 // Whether to show user picture in the titlebar.
422 "show_user_picture": true,
423 // Whether to show the sign in button in the titlebar.
424 "show_sign_in": true,
425 // Whether to show the menus in the titlebar.
426 "show_menus": false
427 },
428 "audio": {
429 // Opt into the new audio system.
430 "experimental.rodio_audio": false,
431 // Requires 'rodio_audio: true'
432 //
433 // Automatically increase or decrease you microphone's volume. This affects how
434 // loud you sound to others.
435 //
436 // Recommended: off (default)
437 // Microphones are too quite in zed, until everyone is on experimental
438 // audio and has auto speaker volume on this will make you very loud
439 // compared to other speakers.
440 "experimental.auto_microphone_volume": false,
441 // Requires 'rodio_audio: true'
442 //
443 // Automatically increate or decrease the volume of other call members.
444 // This only affects how things sound for you.
445 "experimental.auto_speaker_volume": true,
446 // Requires 'rodio_audio: true'
447 //
448 // Remove background noises. Works great for typing, cars, dogs, AC. Does
449 // not work well on music.
450 "experimental.denoise": true,
451 // Requires 'rodio_audio: true'
452 //
453 // Use audio parameters compatible with the previous versions of
454 // experimental audio and non-experimental audio. When this is false you
455 // will sound strange to anyone not on the latest experimental audio. In
456 // the future we will migrate by setting this to false
457 //
458 // You need to rejoin a call for this setting to apply
459 "experimental.legacy_audio_compatible": true
460 },
461 // Scrollbar related settings
462 "scrollbar": {
463 // When to show the scrollbar in the editor.
464 // This setting can take four values:
465 //
466 // 1. Show the scrollbar if there's important information or
467 // follow the system's configured behavior (default):
468 // "auto"
469 // 2. Match the system's configured behavior:
470 // "system"
471 // 3. Always show the scrollbar:
472 // "always"
473 // 4. Never show the scrollbar:
474 // "never"
475 "show": "auto",
476 // Whether to show cursor positions in the scrollbar.
477 "cursors": true,
478 // Whether to show git diff indicators in the scrollbar.
479 "git_diff": true,
480 // Whether to show buffer search results in the scrollbar.
481 "search_results": true,
482 // Whether to show selected text occurrences in the scrollbar.
483 "selected_text": true,
484 // Whether to show selected symbol occurrences in the scrollbar.
485 "selected_symbol": true,
486 // Which diagnostic indicators to show in the scrollbar:
487 // - "none" or false: do not show diagnostics
488 // - "error": show only errors
489 // - "warning": show only errors and warnings
490 // - "information": show only errors, warnings, and information
491 // - "all" or true: show all diagnostics
492 "diagnostics": "all",
493 // Forcefully enable or disable the scrollbar for each axis
494 "axes": {
495 // When false, forcefully disables the horizontal scrollbar. Otherwise, obey other settings.
496 "horizontal": true,
497 // When false, forcefully disables the vertical scrollbar. Otherwise, obey other settings.
498 "vertical": true
499 }
500 },
501 // Minimap related settings
502 "minimap": {
503 // When to show the minimap in the editor.
504 // This setting can take three values:
505 // 1. Show the minimap if the editor's scrollbar is visible:
506 // "auto"
507 // 2. Always show the minimap:
508 // "always"
509 // 3. Never show the minimap:
510 // "never" (default)
511 "show": "never",
512 // Where to show the minimap in the editor.
513 // This setting can take two values:
514 // 1. Show the minimap on the focused editor only:
515 // "active_editor" (default)
516 // 2. Show the minimap on all open editors:
517 // "all_editors"
518 "display_in": "active_editor",
519 // When to show the minimap thumb.
520 // This setting can take two values:
521 // 1. Show the minimap thumb if the mouse is over the minimap:
522 // "hover"
523 // 2. Always show the minimap thumb:
524 // "always" (default)
525 "thumb": "always",
526 // How the minimap thumb border should look.
527 // This setting can take five values:
528 // 1. Display a border on all sides of the thumb:
529 // "thumb_border": "full"
530 // 2. Display a border on all sides except the left side of the thumb:
531 // "thumb_border": "left_open" (default)
532 // 3. Display a border on all sides except the right side of the thumb:
533 // "thumb_border": "right_open"
534 // 4. Display a border only on the left side of the thumb:
535 // "thumb_border": "left_only"
536 // 5. Display the thumb without any border:
537 // "thumb_border": "none"
538 "thumb_border": "left_open",
539 // How to highlight the current line in the minimap.
540 // This setting can take the following values:
541 //
542 // 1. `null` to inherit the editor `current_line_highlight` setting (default)
543 // 2. "line" or "all" to highlight the current line in the minimap.
544 // 3. "gutter" or "none" to not highlight the current line in the minimap.
545 "current_line_highlight": null,
546 // Maximum number of columns to display in the minimap.
547 "max_width_columns": 80
548 },
549 // Enable middle-click paste on Linux.
550 "middle_click_paste": true,
551 // What to do when multibuffer is double clicked in some of its excerpts
552 // (parts of singleton buffers).
553 // May take 2 values:
554 // 1. Behave as a regular buffer and select the whole word (default).
555 // "double_click_in_multibuffer": "select"
556 // 2. Open the excerpt clicked as a new buffer in the new tab.
557 // "double_click_in_multibuffer": "open",
558 // For the case of "open", regular selection behavior can be achieved by holding `alt` when double clicking.
559 "double_click_in_multibuffer": "select",
560 "gutter": {
561 // Whether to show line numbers in the gutter.
562 "line_numbers": true,
563 // Whether to show runnables buttons in the gutter.
564 "runnables": true,
565 // Whether to show breakpoints in the gutter.
566 "breakpoints": true,
567 // Whether to show fold buttons in the gutter.
568 "folds": true,
569 // Minimum number of characters to reserve space for in the gutter.
570 "min_line_number_digits": 4
571 },
572 "indent_guides": {
573 // Whether to show indent guides in the editor.
574 "enabled": true,
575 // The width of the indent guides in pixels, between 1 and 10.
576 "line_width": 1,
577 // The width of the active indent guide in pixels, between 1 and 10.
578 "active_line_width": 1,
579 // Determines how indent guides are colored.
580 // This setting can take the following three values:
581 //
582 // 1. "disabled"
583 // 2. "fixed"
584 // 3. "indent_aware"
585 "coloring": "fixed",
586 // Determines how indent guide backgrounds are colored.
587 // This setting can take the following two values:
588 //
589 // 1. "disabled"
590 // 2. "indent_aware"
591 "background_coloring": "disabled"
592 },
593 // Whether the editor will scroll beyond the last line.
594 "scroll_beyond_last_line": "one_page",
595 // The number of lines to keep above/below the cursor when scrolling with the keyboard
596 "vertical_scroll_margin": 3,
597 // Whether to scroll when clicking near the edge of the visible text area.
598 "autoscroll_on_clicks": false,
599 // The number of characters to keep on either side when scrolling with the mouse
600 "horizontal_scroll_margin": 5,
601 // Scroll sensitivity multiplier. This multiplier is applied
602 // to both the horizontal and vertical delta values while scrolling.
603 "scroll_sensitivity": 1.0,
604 // Scroll sensitivity multiplier for fast scrolling. This multiplier is applied
605 // to both the horizontal and vertical delta values while scrolling. Fast scrolling
606 // happens when a user holds the alt or option key while scrolling.
607 "fast_scroll_sensitivity": 4.0,
608 "relative_line_numbers": false,
609 // If 'search_wrap' is disabled, search result do not wrap around the end of the file.
610 "search_wrap": true,
611 // Search options to enable by default when opening new project and buffer searches.
612 "search": {
613 // Whether to show the project search button in the status bar.
614 "button": true,
615 "whole_word": false,
616 "case_sensitive": false,
617 "include_ignored": false,
618 "regex": false,
619 // Whether to center the cursor on each search match when navigating.
620 "center_on_match": false
621 },
622 // When to populate a new search's query based on the text under the cursor.
623 // This setting can take the following three values:
624 //
625 // 1. Always populate the search query with the word under the cursor (default).
626 // "always"
627 // 2. Only populate the search query when there is text selected
628 // "selection"
629 // 3. Never populate the search query
630 // "never"
631 "seed_search_query_from_cursor": "always",
632 // When enabled, automatically adjusts search case sensitivity based on your query.
633 // If your search query contains any uppercase letters, the search becomes case-sensitive;
634 // if it contains only lowercase letters, the search becomes case-insensitive.
635 "use_smartcase_search": false,
636 // Inlay hint related settings
637 "inlay_hints": {
638 // Global switch to toggle hints on and off, switched off by default.
639 "enabled": false,
640 // Toggle certain types of hints on and off, all switched on by default.
641 "show_type_hints": true,
642 "show_parameter_hints": true,
643 "show_value_hints": true,
644 // Corresponds to null/None LSP hint type value.
645 "show_other_hints": true,
646 // Whether to show a background for inlay hints.
647 //
648 // If set to `true`, the background will use the `hint.background` color from the current theme.
649 "show_background": false,
650 // Time to wait after editing the buffer, before requesting the hints,
651 // set to 0 to disable debouncing.
652 "edit_debounce_ms": 700,
653 // Time to wait after scrolling the buffer, before requesting the hints,
654 // set to 0 to disable debouncing.
655 "scroll_debounce_ms": 50,
656 // A set of modifiers which, when pressed, will toggle the visibility of inlay hints.
657 // If the set if empty or not all the modifiers specified are pressed, inlay hints will not be toggled.
658 "toggle_on_modifiers_press": {
659 "control": false,
660 "shift": false,
661 "alt": false,
662 "platform": false,
663 "function": false
664 }
665 },
666 // Whether to resize all the panels in a dock when resizing the dock.
667 // Can be a combination of "left", "right" and "bottom".
668 "resize_all_panels_in_dock": ["left"],
669 "project_panel": {
670 // Whether to show the project panel button in the status bar
671 "button": true,
672 // Whether to hide the gitignore entries in the project panel.
673 "hide_gitignore": false,
674 // Default width of the project panel.
675 "default_width": 240,
676 // Where to dock the project panel. Can be 'left' or 'right'.
677 "dock": "left",
678 // Spacing between worktree entries in the project panel. Can be 'comfortable' or 'standard'.
679 "entry_spacing": "comfortable",
680 // Whether to show file icons in the project panel.
681 "file_icons": true,
682 // Whether to show folder icons or chevrons for directories in the project panel.
683 "folder_icons": true,
684 // Whether to show the git status in the project panel.
685 "git_status": true,
686 // Amount of indentation for nested items.
687 "indent_size": 20,
688 // Whether to reveal it in the project panel automatically,
689 // when a corresponding project entry becomes active.
690 // Gitignored entries are never auto revealed.
691 "auto_reveal_entries": true,
692 // Whether the project panel should open on startup.
693 "starts_open": true,
694 // Whether to fold directories automatically and show compact folders
695 // (e.g. "a/b/c" ) when a directory has only one subdirectory inside.
696 "auto_fold_dirs": true,
697 // Scrollbar-related settings
698 "scrollbar": {
699 // When to show the scrollbar in the project panel.
700 // This setting can take five values:
701 //
702 // 1. null (default): Inherit editor settings
703 // 2. Show the scrollbar if there's important information or
704 // follow the system's configured behavior (default):
705 // "auto"
706 // 3. Match the system's configured behavior:
707 // "system"
708 // 4. Always show the scrollbar:
709 // "always"
710 // 5. Never show the scrollbar:
711 // "never"
712 "show": null
713 },
714 // Which files containing diagnostic errors/warnings to mark in the project panel.
715 // This setting can take the following three values:
716 //
717 // 1. Do not mark any files:
718 // "off"
719 // 2. Only mark files with errors:
720 // "errors"
721 // 3. Mark files with errors and warnings:
722 // "all"
723 "show_diagnostics": "all",
724 // Whether to stick parent directories at top of the project panel.
725 "sticky_scroll": true,
726 // Settings related to indent guides in the project panel.
727 "indent_guides": {
728 // When to show indent guides in the project panel.
729 // This setting can take two values:
730 //
731 // 1. Always show indent guides:
732 // "always"
733 // 2. Never show indent guides:
734 // "never"
735 "show": "always"
736 },
737 // Whether to enable drag-and-drop operations in the project panel.
738 "drag_and_drop": true,
739 // Whether to hide the root entry when only one folder is open in the window.
740 "hide_root": false,
741 // Whether to hide the hidden entries in the project panel.
742 "hide_hidden": false,
743 // Whether to automatically open files when pasting them in the project panel.
744 "open_file_on_paste": true
745 },
746 "outline_panel": {
747 // Whether to show the outline panel button in the status bar
748 "button": true,
749 // Default width of the outline panel.
750 "default_width": 300,
751 // Where to dock the outline panel. Can be 'left' or 'right'.
752 "dock": "left",
753 // Whether to show file icons in the outline panel.
754 "file_icons": true,
755 // Whether to show folder icons or chevrons for directories in the outline panel.
756 "folder_icons": true,
757 // Whether to show the git status in the outline panel.
758 "git_status": true,
759 // Amount of indentation for nested items.
760 "indent_size": 20,
761 // Whether to reveal it in the outline panel automatically,
762 // when a corresponding outline entry becomes active.
763 // Gitignored entries are never auto revealed.
764 "auto_reveal_entries": true,
765 // Whether to fold directories automatically
766 // when a directory has only one directory inside.
767 "auto_fold_dirs": true,
768 // Settings related to indent guides in the outline panel.
769 "indent_guides": {
770 // When to show indent guides in the outline panel.
771 // This setting can take two values:
772 //
773 // 1. Always show indent guides:
774 // "always"
775 // 2. Never show indent guides:
776 // "never"
777 "show": "always"
778 },
779 // Scrollbar-related settings
780 "scrollbar": {
781 // When to show the scrollbar in the project panel.
782 // This setting can take five values:
783 //
784 // 1. null (default): Inherit editor settings
785 // 2. Show the scrollbar if there's important information or
786 // follow the system's configured behavior (default):
787 // "auto"
788 // 3. Match the system's configured behavior:
789 // "system"
790 // 4. Always show the scrollbar:
791 // "always"
792 // 5. Never show the scrollbar:
793 // "never"
794 "show": null
795 },
796 // Default depth to expand outline items in the current file.
797 // Set to 0 to collapse all items that have children, 1 or higher to collapse items at that depth or deeper.
798 "expand_outlines_with_depth": 100
799 },
800 "collaboration_panel": {
801 // Whether to show the collaboration panel button in the status bar.
802 "button": true,
803 // Where to dock the collaboration panel. Can be 'left' or 'right'.
804 "dock": "left",
805 // Default width of the collaboration panel.
806 "default_width": 240
807 },
808 "git_panel": {
809 // Whether to show the git panel button in the status bar.
810 "button": true,
811 // Where to dock the git panel. Can be 'left' or 'right'.
812 "dock": "left",
813 // Default width of the git panel.
814 "default_width": 360,
815 // Style of the git status indicator in the panel.
816 //
817 // Choices: label_color, icon
818 // Default: icon
819 "status_style": "icon",
820 // What branch name to use if `init.defaultBranch` is not set
821 //
822 // Default: main
823 "fallback_branch_name": "main",
824 // Whether to sort entries in the panel by path or by status (the default).
825 //
826 // Default: false
827 "sort_by_path": false,
828 // Whether to collapse untracked files in the diff panel.
829 //
830 // Default: false
831 "collapse_untracked_diff": false,
832 "scrollbar": {
833 // When to show the scrollbar in the git panel.
834 //
835 // Choices: always, auto, never, system
836 // Default: inherits editor scrollbar settings
837 // "show": null
838 }
839 },
840 "message_editor": {
841 // Whether to automatically replace emoji shortcodes with emoji characters.
842 // For example: typing `:wave:` gets replaced with `👋`.
843 "auto_replace_emoji_shortcode": true
844 },
845 "notification_panel": {
846 // Whether to show the notification panel button in the status bar.
847 "button": true,
848 // Where to dock the notification panel. Can be 'left' or 'right'.
849 "dock": "right",
850 // Default width of the notification panel.
851 "default_width": 380
852 },
853 "agent": {
854 // Whether the agent is enabled.
855 "enabled": true,
856 // What completion mode to start new threads in, if available. Can be 'normal' or 'burn'.
857 "preferred_completion_mode": "normal",
858 // Whether to show the agent panel button in the status bar.
859 "button": true,
860 // Where to dock the agent panel. Can be 'left', 'right' or 'bottom'.
861 "dock": "right",
862 // Default width when the agent panel is docked to the left or right.
863 "default_width": 640,
864 // Default height when the agent panel is docked to the bottom.
865 "default_height": 320,
866 // The view to use by default (thread, or text_thread)
867 "default_view": "thread",
868 // The default model to use when creating new threads.
869 "default_model": {
870 // The provider to use.
871 "provider": "zed.dev",
872 // The model to use.
873 "model": "claude-sonnet-4"
874 },
875 // Additional parameters for language model requests. When making a request to a model, parameters will be taken
876 // from the last entry in this list that matches the model's provider and name. In each entry, both provider
877 // and model are optional, so that you can specify parameters for either one.
878 "model_parameters": [
879 // To set parameters for all requests to OpenAI models:
880 // {
881 // "provider": "openai",
882 // "temperature": 0.5
883 // }
884 //
885 // To set parameters for all requests in general:
886 // {
887 // "temperature": 0
888 // }
889 //
890 // To set parameters for a specific provider and model:
891 // {
892 // "provider": "zed.dev",
893 // "model": "claude-sonnet-4",
894 // "temperature": 1.0
895 // }
896 ],
897 // When enabled, the agent can run potentially destructive actions without asking for your confirmation.
898 //
899 // Note: This setting has no effect on external agents that support permission modes, such as Claude Code.
900 // You can set `agent_servers.claude.default_mode` to `bypassPermissions` to skip all permission requests.
901 "always_allow_tool_actions": false,
902 // When enabled, agent edits will be displayed in single-file editors for review
903 "single_file_review": true,
904 // When enabled, show voting thumbs for feedback on agent edits.
905 "enable_feedback": true,
906 "default_profile": "write",
907 "profiles": {
908 "write": {
909 "name": "Write",
910 "enable_all_context_servers": true,
911 "tools": {
912 "copy_path": true,
913 "create_directory": true,
914 "delete_path": true,
915 "diagnostics": true,
916 "edit_file": true,
917 "fetch": true,
918 "list_directory": true,
919 "project_notifications": false,
920 "move_path": true,
921 "now": true,
922 "find_path": true,
923 "read_file": true,
924 "open": true,
925 "grep": true,
926 "terminal": true,
927 "thinking": true,
928 "web_search": true
929 }
930 },
931 "ask": {
932 "name": "Ask",
933 // We don't know which of the context server tools are safe for the "Ask" profile, so we don't enable them by default.
934 // "enable_all_context_servers": true,
935 "tools": {
936 "diagnostics": true,
937 "fetch": true,
938 "list_directory": true,
939 "project_notifications": false,
940 "now": true,
941 "find_path": true,
942 "read_file": true,
943 "open": true,
944 "grep": true,
945 "thinking": true,
946 "web_search": true
947 }
948 },
949 "minimal": {
950 "name": "Minimal",
951 "enable_all_context_servers": false,
952 "tools": {}
953 }
954 },
955 // Where to show notifications when the agent has either completed
956 // its response, or else needs confirmation before it can run a
957 // tool action.
958 // "primary_screen" - Show the notification only on your primary screen (default)
959 // "all_screens" - Show these notifications on all screens
960 // "never" - Never show these notifications
961 "notify_when_agent_waiting": "primary_screen",
962 // Whether to play a sound when the agent has either completed
963 // its response, or needs user input.
964
965 // Default: false
966 "play_sound_when_agent_done": false,
967 // Whether to have edit cards in the agent panel expanded, showing a preview of the full diff.
968 //
969 // Default: true
970 "expand_edit_card": true,
971 // Whether to have terminal cards in the agent panel expanded, showing the whole command output.
972 //
973 // Default: true
974 "expand_terminal_card": true,
975 // Whether to always use cmd-enter (or ctrl-enter on Linux or Windows) to send messages in the agent panel.
976 //
977 // Default: false
978 "use_modifier_to_send": false,
979 // Minimum number of lines to display in the agent message editor.
980 //
981 // Default: 4
982 "message_editor_min_lines": 4
983 },
984 // Whether the screen sharing icon is shown in the os status bar.
985 "show_call_status_icon": true,
986 // Whether to use language servers to provide code intelligence.
987 "enable_language_server": true,
988 // Whether to perform linked edits of associated ranges, if the language server supports it.
989 // For example, when editing opening <html> tag, the contents of the closing </html> tag will be edited as well.
990 "linked_edits": true,
991 // The list of language servers to use (or disable) for all languages.
992 //
993 // This is typically customized on a per-language basis.
994 "language_servers": ["..."],
995
996 // When to automatically save edited buffers. This setting can
997 // take four values.
998 //
999 // 1. Never automatically save:
1000 // "autosave": "off",
1001 // 2. Save when changing focus away from the Zed window:
1002 // "autosave": "on_window_change",
1003 // 3. Save when changing focus away from a specific buffer:
1004 // "autosave": "on_focus_change",
1005 // 4. Save when idle for a certain amount of time:
1006 // "autosave": { "after_delay": {"milliseconds": 500} },
1007 "autosave": "off",
1008 // Maximum number of tabs per pane. Unset for unlimited.
1009 "max_tabs": null,
1010 // Settings related to the editor's tab bar.
1011 "tab_bar": {
1012 // Whether or not to show the tab bar in the editor
1013 "show": true,
1014 // Whether or not to show the navigation history buttons.
1015 "show_nav_history_buttons": true,
1016 // Whether or not to show the tab bar buttons.
1017 "show_tab_bar_buttons": true
1018 },
1019 // Settings related to the editor's tabs
1020 "tabs": {
1021 // Show git status colors in the editor tabs.
1022 "git_status": false,
1023 // Position of the close button on the editor tabs.
1024 // One of: ["right", "left"]
1025 "close_position": "right",
1026 // Whether to show the file icon for a tab.
1027 "file_icons": false,
1028 // Controls the appearance behavior of the tab's close button.
1029 //
1030 // 1. Show it just upon hovering the tab. (default)
1031 // "hover"
1032 // 2. Show it persistently.
1033 // "always"
1034 // 3. Never show it, even if hovering it.
1035 // "hidden"
1036 "show_close_button": "hover",
1037 // What to do after closing the current tab.
1038 //
1039 // 1. Activate the tab that was open previously (default)
1040 // "history"
1041 // 2. Activate the right neighbour tab if present
1042 // "neighbour"
1043 // 3. Activate the left neighbour tab if present
1044 // "left_neighbour"
1045 "activate_on_close": "history",
1046 // Which files containing diagnostic errors/warnings to mark in the tabs.
1047 // Diagnostics are only shown when file icons are also active.
1048 // This setting only works when can take the following three values:
1049 //
1050 // 1. Do not mark any files:
1051 // "off"
1052 // 2. Only mark files with errors:
1053 // "errors"
1054 // 3. Mark files with errors and warnings:
1055 // "all"
1056 "show_diagnostics": "off"
1057 },
1058 // Settings related to preview tabs.
1059 "preview_tabs": {
1060 // Whether preview tabs should be enabled.
1061 // Preview tabs allow you to open files in preview mode, where they close automatically
1062 // when you switch to another file unless you explicitly pin them.
1063 // This is useful for quickly viewing files without cluttering your workspace.
1064 "enabled": true,
1065 // Whether to open tabs in preview mode when selected from the file finder.
1066 "enable_preview_from_file_finder": false,
1067 // Whether a preview tab gets replaced when code navigation is used to navigate away from the tab.
1068 "enable_preview_from_code_navigation": false
1069 },
1070 // Settings related to the file finder.
1071 "file_finder": {
1072 // Whether to show file icons in the file finder.
1073 "file_icons": true,
1074 // Determines how much space the file finder can take up in relation to the available window width.
1075 // There are 5 possible width values:
1076 //
1077 // 1. Small: This value is essentially a fixed width.
1078 // "modal_max_width": "small"
1079 // 2. Medium:
1080 // "modal_max_width": "medium"
1081 // 3. Large:
1082 // "modal_max_width": "large"
1083 // 4. Extra Large:
1084 // "modal_max_width": "xlarge"
1085 // 5. Fullscreen: This value removes any horizontal padding, as it consumes the whole viewport width.
1086 // "modal_max_width": "full"
1087 //
1088 // Default: small
1089 "modal_max_width": "small",
1090 // Determines whether the file finder should skip focus for the active file in search results.
1091 // There are 2 possible values:
1092 //
1093 // 1. true: When searching for files, if the currently active file appears as the first result,
1094 // auto-focus will skip it and focus the second result instead.
1095 // "skip_focus_for_active_in_search": true
1096 //
1097 // 2. false: When searching for files, the first result will always receive focus,
1098 // even if it's the currently active file.
1099 // "skip_focus_for_active_in_search": false
1100 //
1101 // Default: true
1102 "skip_focus_for_active_in_search": true,
1103 // Whether to show the git status in the file finder.
1104 "git_status": true,
1105 // Whether to use gitignored files when searching.
1106 // Only the file Zed had indexed will be used, not necessary all the gitignored files.
1107 //
1108 // Can accept 3 values:
1109 // * "all": Use all gitignored files
1110 // * "indexed": Use only the files Zed had indexed
1111 // * "smart": Be smart and search for ignored when called from a gitignored worktree
1112 "include_ignored": "smart"
1113 },
1114 // Whether or not to remove any trailing whitespace from lines of a buffer
1115 // before saving it.
1116 "remove_trailing_whitespace_on_save": true,
1117 // Whether to start a new line with a comment when a previous line is a comment as well.
1118 "extend_comment_on_newline": true,
1119 // Removes any lines containing only whitespace at the end of the file and
1120 // ensures just one newline at the end.
1121 "ensure_final_newline_on_save": true,
1122 // Whether or not to perform a buffer format before saving: [on, off]
1123 // Keep in mind, if the autosave with delay is enabled, format_on_save will be ignored
1124 "format_on_save": "on",
1125 // How to perform a buffer format. This setting can take multiple values:
1126 //
1127 // 1. Default. Format files using Zed's Prettier integration (if applicable),
1128 // or falling back to formatting via language server:
1129 // "formatter": "auto"
1130 // 2. Format code using the current language server:
1131 // "formatter": "language_server"
1132 // 3. Format code using a specific language server:
1133 // "formatter": {"language_server": {"name": "ruff"}}
1134 // 4. Format code using an external command:
1135 // "formatter": {
1136 // "external": {
1137 // "command": "prettier",
1138 // "arguments": ["--stdin-filepath", "{buffer_path}"]
1139 // }
1140 // }
1141 // 5. Format code using Zed's Prettier integration:
1142 // "formatter": "prettier"
1143 // 6. Format code using a code action
1144 // "formatter": {"code_action": "source.fixAll.eslint"}
1145 // 7. An array of any format step specified above to apply in order
1146 // "formatter": [{"code_action": "source.fixAll.eslint"}, "prettier"]
1147 "formatter": "auto",
1148 // How to soft-wrap long lines of text.
1149 // Possible values:
1150 //
1151 // 1. Prefer a single line generally, unless an overly long line is encountered.
1152 // "soft_wrap": "none",
1153 // "soft_wrap": "prefer_line", // (deprecated, same as "none")
1154 // 2. Soft wrap lines that overflow the editor.
1155 // "soft_wrap": "editor_width",
1156 // 3. Soft wrap lines at the preferred line length.
1157 // "soft_wrap": "preferred_line_length",
1158 // 4. Soft wrap lines at the preferred line length or the editor width (whichever is smaller).
1159 // "soft_wrap": "bounded",
1160 "soft_wrap": "none",
1161 // The column at which to soft-wrap lines, for buffers where soft-wrap
1162 // is enabled.
1163 "preferred_line_length": 80,
1164 // Whether to indent lines using tab characters, as opposed to multiple
1165 // spaces.
1166 "hard_tabs": false,
1167 // How many columns a tab should occupy.
1168 "tab_size": 4,
1169 // What debuggers are preferred by default for all languages.
1170 "debuggers": [],
1171 // Control what info is collected by Zed.
1172 "telemetry": {
1173 // Send debug info like crash reports.
1174 "diagnostics": true,
1175 // Send anonymized usage data like what languages you're using Zed with.
1176 "metrics": true
1177 },
1178 // Whether to disable all AI features in Zed.
1179 //
1180 // Default: false
1181 "disable_ai": false,
1182 // Automatically update Zed. This setting may be ignored on Linux if
1183 // installed through a package manager.
1184 "auto_update": true,
1185 // How to render LSP `textDocument/documentColor` colors in the editor.
1186 //
1187 // Possible values:
1188 //
1189 // 1. Do not query and render document colors.
1190 // "lsp_document_colors": "none",
1191 // 2. Render document colors as inlay hints near the color text (default).
1192 // "lsp_document_colors": "inlay",
1193 // 3. Draw a border around the color text.
1194 // "lsp_document_colors": "border",
1195 // 4. Draw a background behind the color text..
1196 // "lsp_document_colors": "background",
1197 "lsp_document_colors": "inlay",
1198 // Diagnostics configuration.
1199 "diagnostics": {
1200 // Whether to show the project diagnostics button in the status bar.
1201 "button": true,
1202 // Whether to show warnings or not by default.
1203 "include_warnings": true,
1204 // Settings for using LSP pull diagnostics mechanism in Zed.
1205 "lsp_pull_diagnostics": {
1206 // Whether to pull for diagnostics or not.
1207 "enabled": true,
1208 // Minimum time to wait before pulling diagnostics from the language server(s).
1209 // 0 turns the debounce off.
1210 "debounce_ms": 50
1211 },
1212 // Settings for inline diagnostics
1213 "inline": {
1214 // Whether to show diagnostics inline or not
1215 "enabled": false,
1216 // The delay in milliseconds to show inline diagnostics after the
1217 // last diagnostic update.
1218 "update_debounce_ms": 150,
1219 // The amount of padding between the end of the source line and the start
1220 // of the inline diagnostic in units of em widths.
1221 "padding": 4,
1222 // The minimum column to display inline diagnostics. This setting can be
1223 // used to horizontally align inline diagnostics at some column. Lines
1224 // longer than this value will still push diagnostics further to the right.
1225 "min_column": 0,
1226 // The minimum severity of the diagnostics to show inline.
1227 // Inherits editor's diagnostics' max severity settings when `null`.
1228 "max_severity": null
1229 }
1230 },
1231 // Files or globs of files that will be excluded by Zed entirely. They will be skipped during file
1232 // scans, file searches, and not be displayed in the project file tree. Takes precedence over `file_scan_inclusions`.
1233 "file_scan_exclusions": [
1234 "**/.git",
1235 "**/.svn",
1236 "**/.hg",
1237 "**/.jj",
1238 "**/.repo",
1239 "**/CVS",
1240 "**/.DS_Store",
1241 "**/Thumbs.db",
1242 "**/.classpath",
1243 "**/.settings"
1244 ],
1245 // Files or globs of files that will be included by Zed, even when ignored by git. This is useful
1246 // for files that are not tracked by git, but are still important to your project. Note that globs
1247 // that are overly broad can slow down Zed's file scanning. `file_scan_exclusions` takes
1248 // precedence over these inclusions.
1249 "file_scan_inclusions": [".env*"],
1250 // Git gutter behavior configuration.
1251 "git": {
1252 // Control whether the git gutter is shown. May take 2 values:
1253 // 1. Show the gutter
1254 // "git_gutter": "tracked_files"
1255 // 2. Hide the gutter
1256 // "git_gutter": "hide"
1257 "git_gutter": "tracked_files",
1258 /// Sets the debounce threshold (in milliseconds) after which changes are reflected in the git gutter.
1259 ///
1260 /// Default: 0
1261 "gutter_debounce": 0,
1262 // Control whether the git blame information is shown inline,
1263 // in the currently focused line.
1264 "inline_blame": {
1265 "enabled": true,
1266 // Sets a delay after which the inline blame information is shown.
1267 // Delay is restarted with every cursor movement.
1268 "delay_ms": 0,
1269 // The amount of padding between the end of the source line and the start
1270 // of the inline blame in units of em widths.
1271 "padding": 7,
1272 // Whether or not to display the git commit summary on the same line.
1273 "show_commit_summary": false,
1274 // The minimum column number to show the inline blame information at
1275 "min_column": 0
1276 },
1277 "blame": {
1278 "show_avatar": true
1279 },
1280 // Control which information is shown in the branch picker.
1281 "branch_picker": {
1282 "show_author_name": true
1283 },
1284 // How git hunks are displayed visually in the editor.
1285 // This setting can take two values:
1286 //
1287 // 1. Show unstaged hunks filled and staged hunks hollow:
1288 // "hunk_style": "staged_hollow"
1289 // 2. Show unstaged hunks hollow and staged hunks filled:
1290 // "hunk_style": "unstaged_hollow"
1291 "hunk_style": "staged_hollow"
1292 },
1293 // The list of custom Git hosting providers.
1294 "git_hosting_providers": [
1295 // {
1296 // "provider": "github",
1297 // "name": "BigCorp GitHub",
1298 // "base_url": "https://code.big-corp.com"
1299 // }
1300 ],
1301 // Configuration for how direnv configuration should be loaded. May take 2 values:
1302 // 1. Load direnv configuration using `direnv export json` directly.
1303 // "load_direnv": "direct"
1304 // 2. Load direnv configuration through the shell hook, works for POSIX shells and fish.
1305 // "load_direnv": "shell_hook"
1306 "load_direnv": "direct",
1307 "edit_predictions": {
1308 // A list of globs representing files that edit predictions should be disabled for.
1309 // There's a sensible default list of globs already included.
1310 // Any addition to this list will be merged with the default list.
1311 // Globs are matched relative to the worktree root,
1312 // except when starting with a slash (/) or equivalent in Windows.
1313 "disabled_globs": [
1314 "**/.env*",
1315 "**/*.pem",
1316 "**/*.key",
1317 "**/*.cert",
1318 "**/*.crt",
1319 "**/.dev.vars",
1320 "**/secrets.yml",
1321 "**/.zed/settings.json", // zed project settings
1322 "/**/zed/settings.json", // zed user settings
1323 "/**/zed/keymap.json"
1324 ],
1325 // When to show edit predictions previews in buffer.
1326 // This setting takes two possible values:
1327 // 1. Display predictions inline when there are no language server completions available.
1328 // "mode": "eager"
1329 // 2. Display predictions inline only when holding a modifier key (alt by default).
1330 // "mode": "subtle"
1331 "mode": "eager",
1332 // Copilot-specific settings
1333 // "copilot": {
1334 // "enterprise_uri": "",
1335 // "proxy": "",
1336 // "proxy_no_verify": false
1337 // },
1338 "copilot": {
1339 "enterprise_uri": null,
1340 "proxy": null,
1341 "proxy_no_verify": null
1342 },
1343 "codestral": {
1344 "model": null,
1345 "max_tokens": null
1346 },
1347 // Whether edit predictions are enabled when editing text threads in the agent panel.
1348 // This setting has no effect if globally disabled.
1349 "enabled_in_text_threads": true
1350 },
1351 // Settings specific to journaling
1352 "journal": {
1353 // The path of the directory where journal entries are stored
1354 "path": "~",
1355 // What format to display the hours in
1356 // May take 2 values:
1357 // 1. hour12
1358 // 2. hour24
1359 "hour_format": "hour12"
1360 },
1361 // Status bar-related settings.
1362 "status_bar": {
1363 // Whether to show the status bar.
1364 "experimental.show": true,
1365 // Whether to show the active language button in the status bar.
1366 "active_language_button": true,
1367 // Whether to show the cursor position button in the status bar.
1368 "cursor_position_button": true,
1369 // Whether to show active line endings button in the status bar.
1370 "line_endings_button": false
1371 },
1372 // Settings specific to the terminal
1373 "terminal": {
1374 // What shell to use when opening a terminal. May take 3 values:
1375 // 1. Use the system's default terminal configuration in /etc/passwd
1376 // "shell": "system"
1377 // 2. A program:
1378 // "shell": {
1379 // "program": "sh"
1380 // }
1381 // 3. A program with arguments:
1382 // "shell": {
1383 // "with_arguments": {
1384 // "program": "/bin/bash",
1385 // "args": ["--login"]
1386 // }
1387 // }
1388 "shell": "system",
1389 // Where to dock terminals panel. Can be `left`, `right`, `bottom`.
1390 "dock": "bottom",
1391 // Default width when the terminal is docked to the left or right.
1392 "default_width": 640,
1393 // Default height when the terminal is docked to the bottom.
1394 "default_height": 320,
1395 // What working directory to use when launching the terminal.
1396 // May take 4 values:
1397 // 1. Use the current file's project directory. Will Fallback to the
1398 // first project directory strategy if unsuccessful
1399 // "working_directory": "current_project_directory"
1400 // 2. Use the first project in this workspace's directory
1401 // "working_directory": "first_project_directory"
1402 // 3. Always use this platform's home directory (if we can find it)
1403 // "working_directory": "always_home"
1404 // 4. Always use a specific directory. This value will be shell expanded.
1405 // If this path is not a valid directory the terminal will default to
1406 // this platform's home directory (if we can find it)
1407 // "working_directory": {
1408 // "always": {
1409 // "directory": "~/zed/projects/"
1410 // }
1411 // }
1412 "working_directory": "current_project_directory",
1413 // Set the cursor blinking behavior in the terminal.
1414 // May take 3 values:
1415 // 1. Never blink the cursor, ignoring the terminal mode
1416 // "blinking": "off",
1417 // 2. Default the cursor blink to off, but allow the terminal to
1418 // set blinking
1419 // "blinking": "terminal_controlled",
1420 // 3. Always blink the cursor, ignoring the terminal mode
1421 // "blinking": "on",
1422 "blinking": "terminal_controlled",
1423 // Default cursor shape for the terminal.
1424 // 1. A block that surrounds the following character
1425 // "block"
1426 // 2. A vertical bar
1427 // "bar"
1428 // 3. An underline / underscore that runs along the following character
1429 // "underline"
1430 // 4. A box drawn around the following character
1431 // "hollow"
1432 //
1433 // Default: "block"
1434 "cursor_shape": "block",
1435 // Set whether Alternate Scroll mode (code: ?1007) is active by default.
1436 // Alternate Scroll mode converts mouse scroll events into up / down key
1437 // presses when in the alternate screen (e.g. when running applications
1438 // like vim or less). The terminal can still set and unset this mode.
1439 // May take 2 values:
1440 // 1. Default alternate scroll mode to on
1441 // "alternate_scroll": "on",
1442 // 2. Default alternate scroll mode to off
1443 // "alternate_scroll": "off",
1444 "alternate_scroll": "on",
1445 // Set whether the option key behaves as the meta key.
1446 // May take 2 values:
1447 // 1. Rely on default platform handling of option key, on macOS
1448 // this means generating certain unicode characters
1449 // "option_as_meta": false,
1450 // 2. Make the option keys behave as a 'meta' key, e.g. for emacs
1451 // "option_as_meta": true,
1452 "option_as_meta": false,
1453 // Whether or not selecting text in the terminal will automatically
1454 // copy to the system clipboard.
1455 "copy_on_select": false,
1456 // Whether to keep the text selection after copying it to the clipboard.
1457 "keep_selection_on_copy": true,
1458 // Whether to show the terminal button in the status bar
1459 "button": true,
1460 // Any key-value pairs added to this list will be added to the terminal's
1461 // environment. Use `:` to separate multiple values.
1462 "env": {
1463 // "KEY": "value1:value2"
1464 },
1465 // Set the terminal's line height.
1466 // May take 3 values:
1467 // 1. Use a line height that's comfortable for reading, 1.618
1468 // "line_height": "comfortable"
1469 // 2. Use a standard line height, 1.3. This option is useful for TUIs,
1470 // particularly if they use box characters
1471 // "line_height": "standard",
1472 // 3. Use a custom line height.
1473 // "line_height": {
1474 // "custom": 2
1475 // },
1476 "line_height": "standard",
1477 // Activate the python virtual environment, if one is found, in the
1478 // terminal's working directory (as resolved by the working_directory
1479 // setting). Set this to "off" to disable this behavior.
1480 "detect_venv": {
1481 "on": {
1482 // Default directories to search for virtual environments, relative
1483 // to the current working directory. We recommend overriding this
1484 // in your project's settings, rather than globally.
1485 "directories": [".env", "env", ".venv", "venv"],
1486 // Can also be `csh`, `fish`, `nushell` and `power_shell`
1487 "activate_script": "default"
1488 }
1489 },
1490 "toolbar": {
1491 // Whether to display the terminal title in its toolbar's breadcrumbs.
1492 // Only shown if the terminal title is not empty.
1493 //
1494 // The shell running in the terminal needs to be configured to emit the title.
1495 // Example: `echo -e "\e]2;New Title\007";`
1496 "breadcrumbs": false
1497 },
1498 // Scrollbar-related settings
1499 "scrollbar": {
1500 // When to show the scrollbar in the terminal.
1501 // This setting can take five values:
1502 //
1503 // 1. null (default): Inherit editor settings
1504 // 2. Show the scrollbar if there's important information or
1505 // follow the system's configured behavior (default):
1506 // "auto"
1507 // 3. Match the system's configured behavior:
1508 // "system"
1509 // 4. Always show the scrollbar:
1510 // "always"
1511 // 5. Never show the scrollbar:
1512 // "never"
1513 "show": null
1514 },
1515 // Set the terminal's font size. If this option is not included,
1516 // the terminal will default to matching the buffer's font size.
1517 // "font_size": 15,
1518 // Set the terminal's font family. If this option is not included,
1519 // the terminal will default to matching the buffer's font family.
1520 // "font_family": ".ZedMono",
1521 // Set the terminal's font fallbacks. If this option is not included,
1522 // the terminal will default to matching the buffer's font fallbacks.
1523 // This will be merged with the platform's default font fallbacks
1524 // "font_fallbacks": ["FiraCode Nerd Fonts"],
1525 // The weight of the editor font in standard CSS units from 100 to 900.
1526 "font_weight": 400,
1527 // Sets the maximum number of lines in the terminal's scrollback buffer.
1528 // Default: 10_000, maximum: 100_000 (all bigger values set will be treated as 100_000), 0 disables the scrolling.
1529 // Existing terminals will not pick up this change until they are recreated.
1530 "max_scroll_history_lines": 10000,
1531 // The minimum APCA perceptual contrast between foreground and background colors.
1532 // APCA (Accessible Perceptual Contrast Algorithm) is more accurate than WCAG 2.x,
1533 // especially for dark mode. Values range from 0 to 106.
1534 //
1535 // Based on APCA Readability Criterion (ARC) Bronze Simple Mode:
1536 // https://readtech.org/ARC/tests/bronze-simple-mode/
1537 // - 0: No contrast adjustment
1538 // - 45: Minimum for large fluent text (36px+)
1539 // - 60: Minimum for other content text
1540 // - 75: Minimum for body text
1541 // - 90: Preferred for body text
1542 //
1543 // Most terminal themes have APCA values of 40-70.
1544 // A value of 45 preserves colorful themes while ensuring legibility.
1545 "minimum_contrast": 45
1546 },
1547 "code_actions_on_format": {},
1548 // Settings related to running tasks.
1549 "tasks": {
1550 "variables": {},
1551 "enabled": true,
1552 // Use LSP tasks over Zed language extension ones.
1553 // If no LSP tasks are returned due to error/timeout or regular execution,
1554 // Zed language extension tasks will be used instead.
1555 //
1556 // Other Zed tasks will still be shown:
1557 // * Zed task from either of the task config file
1558 // * Zed task from history (e.g. one-off task was spawned before)
1559 //
1560 // Default: true
1561 "prefer_lsp": true
1562 },
1563 // An object whose keys are language names, and whose values
1564 // are arrays of filenames or extensions of files that should
1565 // use those languages.
1566 //
1567 // For example, to treat files like `foo.notjs` as JavaScript,
1568 // and `Embargo.lock` as TOML:
1569 //
1570 // {
1571 // "JavaScript": ["notjs"],
1572 // "TOML": ["Embargo.lock"]
1573 // }
1574 //
1575 "file_types": {
1576 "JSONC": ["**/.zed/**/*.json", "**/zed/**/*.json", "**/Zed/**/*.json", "**/.vscode/**/*.json", "tsconfig*.json"],
1577 "Markdown": [".rules", ".cursorrules", ".windsurfrules", ".clinerules"],
1578 "Shell Script": [".env.*"]
1579 },
1580 // Settings for which version of Node.js and NPM to use when installing
1581 // language servers and Copilot.
1582 //
1583 // Note: changing this setting currently requires restarting Zed.
1584 "node": {
1585 // By default, Zed will look for `node` and `npm` on your `$PATH`, and use the
1586 // existing executables if their version is recent enough. Set this to `true`
1587 // to prevent this, and force Zed to always download and install its own
1588 // version of Node.
1589 "ignore_system_version": false,
1590 // You can also specify alternative paths to Node and NPM. If you specify
1591 // `path`, but not `npm_path`, Zed will assume that `npm` is located at
1592 // `${path}/../npm`.
1593 "path": null,
1594 "npm_path": null
1595 },
1596 // The extensions that Zed should automatically install on startup.
1597 //
1598 // If you don't want any of these extensions, add this field to your settings
1599 // and change the value to `false`.
1600 "auto_install_extensions": {
1601 "html": true
1602 },
1603 // The capabilities granted to extensions.
1604 //
1605 // This list can be customized to restrict what extensions are able to do.
1606 "granted_extension_capabilities": [
1607 { "kind": "process:exec", "command": "*", "args": ["**"] },
1608 { "kind": "download_file", "host": "*", "path": ["**"] },
1609 { "kind": "npm:install", "package": "*" }
1610 ],
1611 // Controls how completions are processed for this language.
1612 "completions": {
1613 // Controls how words are completed.
1614 // For large documents, not all words may be fetched for completion.
1615 //
1616 // May take 3 values:
1617 // 1. "enabled"
1618 // Always fetch document's words for completions along with LSP completions.
1619 // 2. "fallback"
1620 // Only if LSP response errors or times out, use document's words to show completions.
1621 // 3. "disabled"
1622 // Never fetch or complete document's words for completions.
1623 // (Word-based completions can still be queried via a separate action)
1624 //
1625 // Default: fallback
1626 "words": "fallback",
1627 // Minimum number of characters required to automatically trigger word-based completions.
1628 // Before that value, it's still possible to trigger the words-based completion manually with the corresponding editor command.
1629 //
1630 // Default: 3
1631 "words_min_length": 3,
1632 // Whether to fetch LSP completions or not.
1633 //
1634 // Default: true
1635 "lsp": true,
1636 // When fetching LSP completions, determines how long to wait for a response of a particular server.
1637 // When set to 0, waits indefinitely.
1638 //
1639 // Default: 0
1640 "lsp_fetch_timeout_ms": 0,
1641 // Controls what range to replace when accepting LSP completions.
1642 //
1643 // When LSP servers give an `InsertReplaceEdit` completion, they provides two ranges: `insert` and `replace`. Usually, `insert`
1644 // contains the word prefix before your cursor and `replace` contains the whole word.
1645 //
1646 // Effectively, this setting just changes whether Zed will use the received range for `insert` or `replace`, so the results may
1647 // differ depending on the underlying LSP server.
1648 //
1649 // Possible values:
1650 // 1. "insert"
1651 // Replaces text before the cursor, using the `insert` range described in the LSP specification.
1652 // 2. "replace"
1653 // Replaces text before and after the cursor, using the `replace` range described in the LSP specification.
1654 // 3. "replace_subsequence"
1655 // Behaves like `"replace"` if the text that would be replaced is a subsequence of the completion text,
1656 // and like `"insert"` otherwise.
1657 // 4. "replace_suffix"
1658 // Behaves like `"replace"` if the text after the cursor is a suffix of the completion, and like
1659 // `"insert"` otherwise.
1660 "lsp_insert_mode": "replace_suffix"
1661 },
1662 // Different settings for specific languages.
1663 "languages": {
1664 "Astro": {
1665 "language_servers": ["astro-language-server", "..."],
1666 "prettier": {
1667 "allowed": true,
1668 "plugins": ["prettier-plugin-astro"]
1669 }
1670 },
1671 "Blade": {
1672 "prettier": {
1673 "allowed": true
1674 }
1675 },
1676 "C": {
1677 "format_on_save": "off",
1678 "use_on_type_format": false,
1679 "prettier": {
1680 "allowed": false
1681 }
1682 },
1683 "C++": {
1684 "format_on_save": "off",
1685 "use_on_type_format": false,
1686 "prettier": {
1687 "allowed": false
1688 }
1689 },
1690 "CSS": {
1691 "prettier": {
1692 "allowed": true
1693 }
1694 },
1695 "Dart": {
1696 "tab_size": 2
1697 },
1698 "Diff": {
1699 "show_edit_predictions": false,
1700 "remove_trailing_whitespace_on_save": false,
1701 "ensure_final_newline_on_save": false
1702 },
1703 "Elixir": {
1704 "language_servers": ["elixir-ls", "!expert", "!next-ls", "!lexical", "..."]
1705 },
1706 "Elm": {
1707 "tab_size": 4
1708 },
1709 "Erlang": {
1710 "language_servers": ["erlang-ls", "!elp", "..."]
1711 },
1712 "Git Commit": {
1713 "allow_rewrap": "anywhere",
1714 "soft_wrap": "editor_width",
1715 "preferred_line_length": 72
1716 },
1717 "Go": {
1718 "hard_tabs": true,
1719 "code_actions_on_format": {
1720 "source.organizeImports": true
1721 },
1722 "debuggers": ["Delve"]
1723 },
1724 "GraphQL": {
1725 "prettier": {
1726 "allowed": true
1727 }
1728 },
1729 "HEEX": {
1730 "language_servers": ["elixir-ls", "!expert", "!next-ls", "!lexical", "..."]
1731 },
1732 "HTML": {
1733 "prettier": {
1734 "allowed": true
1735 }
1736 },
1737 "HTML+ERB": {
1738 "language_servers": ["herb", "!ruby-lsp", "..."]
1739 },
1740 "Java": {
1741 "prettier": {
1742 "allowed": true,
1743 "plugins": ["prettier-plugin-java"]
1744 }
1745 },
1746 "JavaScript": {
1747 "language_servers": ["!typescript-language-server", "vtsls", "..."],
1748 "prettier": {
1749 "allowed": true
1750 }
1751 },
1752 "JSON": {
1753 "prettier": {
1754 "allowed": true
1755 }
1756 },
1757 "JSONC": {
1758 "prettier": {
1759 "allowed": true
1760 }
1761 },
1762 "JS+ERB": {
1763 "language_servers": ["!ruby-lsp", "..."]
1764 },
1765 "Kotlin": {
1766 "language_servers": ["!kotlin-language-server", "kotlin-lsp", "..."]
1767 },
1768 "LaTeX": {
1769 "formatter": "language_server",
1770 "language_servers": ["texlab", "..."],
1771 "prettier": {
1772 "allowed": true,
1773 "plugins": ["prettier-plugin-latex"]
1774 }
1775 },
1776 "Markdown": {
1777 "format_on_save": "off",
1778 "use_on_type_format": false,
1779 "remove_trailing_whitespace_on_save": false,
1780 "allow_rewrap": "anywhere",
1781 "soft_wrap": "editor_width",
1782 "prettier": {
1783 "allowed": true
1784 }
1785 },
1786 "PHP": {
1787 "language_servers": ["phpactor", "!intelephense", "..."],
1788 "prettier": {
1789 "allowed": true,
1790 "plugins": ["@prettier/plugin-php"],
1791 "parser": "php"
1792 }
1793 },
1794 "Plain Text": {
1795 "allow_rewrap": "anywhere",
1796 "soft_wrap": "editor_width"
1797 },
1798 "Python": {
1799 "code_actions_on_format": {
1800 "source.organizeImports.ruff": true
1801 },
1802 "formatter": {
1803 "language_server": {
1804 "name": "ruff"
1805 }
1806 },
1807 "debuggers": ["Debugpy"],
1808 "language_servers": ["basedpyright", "ruff", "!ty", "!pyrefly", "!pyright", "!pylsp", "..."]
1809 },
1810 "Ruby": {
1811 "language_servers": ["solargraph", "!ruby-lsp", "!rubocop", "!sorbet", "!steep", "..."]
1812 },
1813 "Rust": {
1814 "debuggers": ["CodeLLDB"]
1815 },
1816 "SCSS": {
1817 "prettier": {
1818 "allowed": true
1819 }
1820 },
1821 "Starlark": {
1822 "language_servers": ["starpls", "!buck2-lsp", "..."]
1823 },
1824 "Svelte": {
1825 "language_servers": ["svelte-language-server", "..."],
1826 "prettier": {
1827 "allowed": true,
1828 "plugins": ["prettier-plugin-svelte"]
1829 }
1830 },
1831 "TSX": {
1832 "language_servers": ["!typescript-language-server", "vtsls", "..."],
1833 "prettier": {
1834 "allowed": true
1835 }
1836 },
1837 "Twig": {
1838 "prettier": {
1839 "allowed": true
1840 }
1841 },
1842 "TypeScript": {
1843 "language_servers": ["!typescript-language-server", "vtsls", "..."],
1844 "prettier": {
1845 "allowed": true
1846 }
1847 },
1848 "SystemVerilog": {
1849 "format_on_save": "off",
1850 "language_servers": ["!slang", "..."],
1851 "use_on_type_format": false
1852 },
1853 "Vue.js": {
1854 "language_servers": ["vue-language-server", "vtsls", "..."],
1855 "prettier": {
1856 "allowed": true
1857 }
1858 },
1859 "XML": {
1860 "prettier": {
1861 "allowed": true,
1862 "plugins": ["@prettier/plugin-xml"]
1863 }
1864 },
1865 "YAML": {
1866 "prettier": {
1867 "allowed": true
1868 }
1869 },
1870 "YAML+ERB": {
1871 "language_servers": ["!ruby-lsp", "..."]
1872 },
1873 "Zig": {
1874 "language_servers": ["zls", "..."]
1875 }
1876 },
1877 // Different settings for specific language models.
1878 "language_models": {
1879 "anthropic": {
1880 "api_url": "https://api.anthropic.com"
1881 },
1882 "bedrock": {},
1883 "google": {
1884 "api_url": "https://generativelanguage.googleapis.com"
1885 },
1886 "ollama": {
1887 "api_url": "http://localhost:11434"
1888 },
1889 "openai": {
1890 "api_url": "https://api.openai.com/v1"
1891 },
1892 "openai_compatible": {},
1893 "open_router": {
1894 "api_url": "https://openrouter.ai/api/v1"
1895 },
1896 "lmstudio": {
1897 "api_url": "http://localhost:1234/api/v0"
1898 },
1899 "deepseek": {
1900 "api_url": "https://api.deepseek.com/v1"
1901 },
1902 "mistral": {
1903 "api_url": "https://api.mistral.ai/v1"
1904 },
1905 "vercel": {
1906 "api_url": "https://api.v0.dev/v1"
1907 },
1908 "x_ai": {
1909 "api_url": "https://api.x.ai/v1"
1910 },
1911 "zed.dev": {}
1912 },
1913 "session": {
1914 // Whether or not to restore unsaved buffers on restart.
1915 //
1916 // If this is true, user won't be prompted whether to save/discard
1917 // dirty files when closing the application.
1918 //
1919 // Default: true
1920 "restore_unsaved_buffers": true
1921 },
1922 // Zed's Prettier integration settings.
1923 // Allows to enable/disable formatting with Prettier
1924 // and configure default Prettier, used when no project-level Prettier installation is found.
1925 "prettier": {
1926 // Enables or disables formatting with Prettier for any given language.
1927 "allowed": false,
1928 // Forces Prettier integration to use a specific parser name when formatting files with the language.
1929 "plugins": [],
1930 // Default Prettier options, in the format as in package.json section for Prettier.
1931 // If project installs Prettier via its package.json, these options will be ignored.
1932 // "trailingComma": "es5",
1933 // "tabWidth": 4,
1934 // "semi": false,
1935 // "singleQuote": true
1936 // Forces Prettier integration to use a specific parser name when formatting files with the language
1937 // when set to a non-empty string.
1938 "parser": ""
1939 },
1940 // Settings for auto-closing of JSX tags.
1941 "jsx_tag_auto_close": {
1942 "enabled": true
1943 },
1944 // LSP Specific settings.
1945 "lsp": {
1946 // Specify the LSP name as a key here.
1947 // "rust-analyzer": {
1948 // // A special flag for rust-analyzer integration, to use server-provided tasks
1949 // enable_lsp_tasks": true,
1950 // // These initialization options are merged into Zed's defaults
1951 // "initialization_options": {
1952 // "check": {
1953 // "command": "clippy" // rust-analyzer.check.command (default: "check")
1954 // }
1955 // }
1956 // }
1957 },
1958 // DAP Specific settings.
1959 "dap": {
1960 // Specify the DAP name as a key here.
1961 "CodeLLDB": {
1962 "env": {
1963 "RUST_LOG": "info"
1964 }
1965 }
1966 },
1967 // Common language server settings.
1968 "global_lsp_settings": {
1969 // Whether to show the LSP servers button in the status bar.
1970 "button": true
1971 },
1972 // Jupyter settings
1973 "jupyter": {
1974 "enabled": true,
1975 "kernel_selections": {}
1976 // Specify the language name as the key and the kernel name as the value.
1977 // "kernel_selections": {
1978 // "python": "conda-base"
1979 // "typescript": "deno"
1980 // }
1981 },
1982 // REPL settings.
1983 "repl": {
1984 // Maximum number of columns to keep in REPL's scrollback buffer.
1985 // Clamped with [20, 512] range.
1986 "max_columns": 128,
1987 // Maximum number of lines to keep in REPL's scrollback buffer.
1988 // Clamped with [4, 256] range.
1989 "max_lines": 32
1990 },
1991 // Vim settings
1992 "vim": {
1993 "default_mode": "normal",
1994 "toggle_relative_line_numbers": false,
1995 "use_system_clipboard": "always",
1996 "use_smartcase_find": false,
1997 "highlight_on_yank_duration": 200,
1998 "custom_digraphs": {},
1999 // Cursor shape for the each mode.
2000 // Specify the mode as the key and the shape as the value.
2001 // The mode can be one of the following: "normal", "replace", "insert", "visual".
2002 // The shape can be one of the following: "block", "bar", "underline", "hollow".
2003 "cursor_shape": {}
2004 },
2005 // The server to connect to. If the environment variable
2006 // ZED_SERVER_URL is set, it will override this setting.
2007 "server_url": "https://zed.dev",
2008 // Settings overrides to use when using Zed Preview.
2009 // Mostly useful for developers who are managing multiple instances of Zed.
2010 "preview": {
2011 // "theme": "Andromeda"
2012 },
2013 // Settings overrides to use when using Zed Nightly.
2014 // Mostly useful for developers who are managing multiple instances of Zed.
2015 "nightly": {
2016 // "theme": "Andromeda"
2017 },
2018 // Settings overrides to use when using Zed Stable.
2019 // Mostly useful for developers who are managing multiple instances of Zed.
2020 "stable": {
2021 // "theme": "Andromeda"
2022 },
2023 // Settings overrides to use when using Zed Dev.
2024 // Mostly useful for developers who are managing multiple instances of Zed.
2025 "dev": {
2026 // "theme": "Andromeda"
2027 },
2028 // Whether to show full labels in line indicator or short ones
2029 //
2030 // Values:
2031 // - `short`: "2 s, 15 l, 32 c"
2032 // - `long`: "2 selections, 15 lines, 32 characters"
2033 // Default: long
2034 "line_indicator_format": "long",
2035 // Set a proxy to use. The proxy protocol is specified by the URI scheme.
2036 //
2037 // Supported URI scheme: `http`, `https`, `socks4`, `socks4a`, `socks5`,
2038 // `socks5h`. `http` will be used when no scheme is specified.
2039 //
2040 // By default no proxy will be used, or Zed will try get proxy settings from
2041 // environment variables. If certain hosts should not be proxied,
2042 // set the `no_proxy` environment variable and provide a comma-separated list.
2043 //
2044 // Examples:
2045 // - "proxy": "socks5h://localhost:10808"
2046 // - "proxy": "http://127.0.0.1:10809"
2047 "proxy": null,
2048 // Set to configure aliases for the command palette.
2049 // When typing a query which is a key of this object, the value will be used instead.
2050 //
2051 // Examples:
2052 // {
2053 // "W": "workspace::Save"
2054 // }
2055 "command_aliases": {},
2056 // ssh_connections is an array of ssh connections.
2057 // You can configure these from `project: Open Remote` in the command palette.
2058 // Zed's ssh support will pull configuration from your ~/.ssh too.
2059 // Examples:
2060 // [
2061 // {
2062 // "host": "example-box",
2063 // // "port": 22, "username": "test", "args": ["-i", "/home/user/.ssh/id_rsa"]
2064 // "projects": [
2065 // {
2066 // "paths": ["/home/user/code/zed"]
2067 // }
2068 // ]
2069 // }
2070 // ]
2071 "ssh_connections": [],
2072 // Whether to read ~/.ssh/config for ssh connection sources.
2073 "read_ssh_config": true,
2074 // Configures context servers for use by the agent.
2075 "context_servers": {},
2076 // Configures agent servers available in the agent panel.
2077 "agent_servers": {},
2078 "debugger": {
2079 "stepping_granularity": "line",
2080 "save_breakpoints": true,
2081 "timeout": 2000,
2082 "dock": "bottom",
2083 "log_dap_communications": true,
2084 "format_dap_log_messages": true,
2085 "button": true
2086 },
2087 // Configures any number of settings profiles that are temporarily applied on
2088 // top of your existing user settings when selected from
2089 // `settings profile selector: toggle`.
2090 // Examples:
2091 // "profiles": {
2092 // "Presenting": {
2093 // "agent_ui_font_size": 20.0,
2094 // "buffer_font_size": 20.0,
2095 // "theme": "One Light",
2096 // "ui_font_size": 20.0
2097 // },
2098 // "Python (ty)": {
2099 // "languages": {
2100 // "Python": {
2101 // "language_servers": ["ty"]
2102 // }
2103 // }
2104 // }
2105 // }
2106 "profiles": {},
2107
2108 // A map of log scopes to the desired log level.
2109 // Useful for filtering out noisy logs or enabling more verbose logging.
2110 //
2111 // Example: {"log": {"client": "warn"}}
2112 "log": {}
2113}