mirror of
https://github.com/zed-industries/zed.git
synced 2024-10-27 08:50:29 +00:00
322 lines
11 KiB
JSON
322 lines
11 KiB
JSON
{
|
|
// The name of the Zed theme to use for the UI
|
|
"theme": "One Dark",
|
|
// The name of a base set of key bindings to use.
|
|
// This setting can take four values, each named after another
|
|
// text editor:
|
|
//
|
|
// 1. "VSCode"
|
|
// 2. "JetBrains"
|
|
// 3. "SublimeText"
|
|
// 4. "Atom"
|
|
"base_keymap": "VSCode",
|
|
// Features that can be globally enabled or disabled
|
|
"features": {
|
|
// Show Copilot icon in status bar
|
|
"copilot": true
|
|
},
|
|
// The name of a font to use for rendering text in the editor
|
|
"buffer_font_family": "Zed Mono",
|
|
// The OpenType features to enable for text in the editor.
|
|
"buffer_font_features": {
|
|
// Disable ligatures:
|
|
// "calt": false
|
|
},
|
|
// The default font size for text in the editor
|
|
"buffer_font_size": 15,
|
|
// The factor to grow the active pane by. Defaults to 1.0
|
|
// which gives the same size as all other panes.
|
|
"active_pane_magnification": 1.0,
|
|
// Whether to enable vim modes and key bindings
|
|
"vim_mode": false,
|
|
// Whether to show the informational hover box when moving the mouse
|
|
// over symbols in the editor.
|
|
"hover_popover_enabled": true,
|
|
// Whether to confirm before quitting Zed.
|
|
"confirm_quit": false,
|
|
// Whether the cursor blinks in the editor.
|
|
"cursor_blink": true,
|
|
// Whether to pop the completions menu while typing in an editor without
|
|
// explicitly requesting it.
|
|
"show_completions_on_input": true,
|
|
// Whether to use additional LSP queries to format (and amend) the code after
|
|
// every "trigger" symbol input, defined by LSP server capabilities.
|
|
"use_on_type_format": true,
|
|
// Controls whether copilot provides suggestion immediately
|
|
// or waits for a `copilot::Toggle`
|
|
"show_copilot_suggestions": true,
|
|
// Whether to show tabs and spaces in the editor.
|
|
// This setting can take two values:
|
|
//
|
|
// 1. Draw tabs and spaces only for the selected text (default):
|
|
// "selection"
|
|
// 2. Do not draw any tabs or spaces:
|
|
// "none"
|
|
// 3. Draw all invisible symbols:
|
|
// "all"
|
|
"show_whitespaces": "selection",
|
|
// Scrollbar related settings
|
|
"scrollbar": {
|
|
// When to show the scrollbar in the editor.
|
|
// This setting can take four values:
|
|
//
|
|
// 1. Show the scrollbar if there's important information or
|
|
// follow the system's configured behavior (default):
|
|
// "auto"
|
|
// 2. Match the system's configured behavior:
|
|
// "system"
|
|
// 3. Always show the scrollbar:
|
|
// "always"
|
|
// 4. Never show the scrollbar:
|
|
// "never"
|
|
"show": "auto",
|
|
// Whether to show git diff indicators in the scrollbar.
|
|
"git_diff": true
|
|
},
|
|
"project_panel": {
|
|
// Whether to show the git status in the project panel.
|
|
"git_status": true,
|
|
// Where to dock project panel. Can be 'left' or 'right'.
|
|
"dock": "left",
|
|
// Default width of the project panel.
|
|
"default_width": 240
|
|
},
|
|
// Whether the screen sharing icon is shown in the os status bar.
|
|
"show_call_status_icon": true,
|
|
// Whether to use language servers to provide code intelligence.
|
|
"enable_language_server": true,
|
|
// When to automatically save edited buffers. This setting can
|
|
// take four values.
|
|
//
|
|
// 1. Never automatically save:
|
|
// "autosave": "off",
|
|
// 2. Save when changing focus away from the Zed window:
|
|
// "autosave": "on_window_change",
|
|
// 3. Save when changing focus away from a specific buffer:
|
|
// "autosave": "on_focus_change",
|
|
// 4. Save when idle for a certain amount of time:
|
|
// "autosave": { "after_delay": {"milliseconds": 500} },
|
|
"autosave": "off",
|
|
// Whether or not to remove any trailing whitespace from lines of a buffer
|
|
// before saving it.
|
|
"remove_trailing_whitespace_on_save": true,
|
|
// Whether or not to ensure there's a single newline at the end of a buffer
|
|
// when saving it.
|
|
"ensure_final_newline_on_save": true,
|
|
// Whether or not to perform a buffer format before saving
|
|
"format_on_save": "on",
|
|
// How to perform a buffer format. This setting can take two values:
|
|
//
|
|
// 1. Format code using the current language server:
|
|
// "format_on_save": "language_server"
|
|
// 2. Format code using an external command:
|
|
// "format_on_save": {
|
|
// "external": {
|
|
// "command": "prettier",
|
|
// "arguments": ["--stdin-filepath", "{buffer_path}"]
|
|
// }
|
|
// }
|
|
"formatter": "language_server",
|
|
// How to soft-wrap long lines of text. This setting can take
|
|
// three values:
|
|
//
|
|
// 1. Do not soft wrap.
|
|
// "soft_wrap": "none",
|
|
// 2. Soft wrap lines that overflow the editor:
|
|
// "soft_wrap": "editor_width",
|
|
// 3. Soft wrap lines at the preferred line length
|
|
// "soft_wrap": "preferred_line_length",
|
|
"soft_wrap": "none",
|
|
// The column at which to soft-wrap lines, for buffers where soft-wrap
|
|
// is enabled.
|
|
"preferred_line_length": 80,
|
|
// Whether to indent lines using tab characters, as opposed to multiple
|
|
// spaces.
|
|
"hard_tabs": false,
|
|
// How many columns a tab should occupy.
|
|
"tab_size": 4,
|
|
// Control what info is collected by Zed.
|
|
"telemetry": {
|
|
// Send debug info like crash reports.
|
|
"diagnostics": true,
|
|
// Send anonymized usage data like what languages you're using Zed with.
|
|
"metrics": true
|
|
},
|
|
// Automatically update Zed
|
|
"auto_update": true,
|
|
// Git gutter behavior configuration.
|
|
"git": {
|
|
// Control whether the git gutter is shown. May take 2 values:
|
|
// 1. Show the gutter
|
|
// "git_gutter": "tracked_files"
|
|
// 2. Hide the gutter
|
|
// "git_gutter": "hide"
|
|
"git_gutter": "tracked_files"
|
|
},
|
|
"copilot": {
|
|
// The set of glob patterns for which copilot should be disabled
|
|
// in any matching file.
|
|
"disabled_globs": [
|
|
".env"
|
|
]
|
|
},
|
|
// Settings specific to journaling
|
|
"journal": {
|
|
// The path of the directory where journal entries are stored
|
|
"path": "~",
|
|
// What format to display the hours in
|
|
// May take 2 values:
|
|
// 1. hour12
|
|
// 2. hour24
|
|
"hour_format": "hour12"
|
|
},
|
|
// Settings specific to the terminal
|
|
"terminal": {
|
|
// What shell to use when opening a terminal. May take 3 values:
|
|
// 1. Use the system's default terminal configuration in /etc/passwd
|
|
// "shell": "system"
|
|
// 2. A program:
|
|
// "shell": {
|
|
// "program": "sh"
|
|
// }
|
|
// 3. A program with arguments:
|
|
// "shell": {
|
|
// "with_arguments": {
|
|
// "program": "/bin/bash",
|
|
// "arguments": ["--login"]
|
|
// }
|
|
// }
|
|
"shell": "system",
|
|
// Where to dock terminals panel. Can be 'left', 'right', 'bottom'.
|
|
"dock": "bottom",
|
|
// Default width when the terminal is docked to the left or right.
|
|
"default_width": 640,
|
|
// Default height when the terminal is docked to the bottom.
|
|
"default_height": 320,
|
|
// What working directory to use when launching the terminal.
|
|
// May take 4 values:
|
|
// 1. Use the current file's project directory. Will Fallback to the
|
|
// first project directory strategy if unsuccessful
|
|
// "working_directory": "current_project_directory"
|
|
// 2. Use the first project in this workspace's directory
|
|
// "working_directory": "first_project_directory"
|
|
// 3. Always use this platform's home directory (if we can find it)
|
|
// "working_directory": "always_home"
|
|
// 4. Always use a specific directory. This value will be shell expanded.
|
|
// If this path is not a valid directory the terminal will default to
|
|
// this platform's home directory (if we can find it)
|
|
// "working_directory": {
|
|
// "always": {
|
|
// "directory": "~/zed/projects/"
|
|
// }
|
|
// }
|
|
//
|
|
//
|
|
"working_directory": "current_project_directory",
|
|
// Set the cursor blinking behavior in the terminal.
|
|
// May take 4 values:
|
|
// 1. Never blink the cursor, ignoring the terminal mode
|
|
// "blinking": "off",
|
|
// 2. Default the cursor blink to off, but allow the terminal to
|
|
// set blinking
|
|
// "blinking": "terminal_controlled",
|
|
// 3. Always blink the cursor, ignoring the terminal mode
|
|
// "blinking": "on",
|
|
"blinking": "terminal_controlled",
|
|
// Set whether Alternate Scroll mode (code: ?1007) is active by default.
|
|
// Alternate Scroll mode converts mouse scroll events into up / down key
|
|
// presses when in the alternate screen (e.g. when running applications
|
|
// like vim or less). The terminal can still set and unset this mode.
|
|
// May take 2 values:
|
|
// 1. Default alternate scroll mode to on
|
|
// "alternate_scroll": "on",
|
|
// 2. Default alternate scroll mode to off
|
|
// "alternate_scroll": "off",
|
|
"alternate_scroll": "off",
|
|
// Set whether the option key behaves as the meta key.
|
|
// May take 2 values:
|
|
// 1. Rely on default platform handling of option key, on macOS
|
|
// this means generating certain unicode characters
|
|
// "option_to_meta": false,
|
|
// 2. Make the option keys behave as a 'meta' key, e.g. for emacs
|
|
// "option_to_meta": true,
|
|
"option_as_meta": false,
|
|
// Whether or not selecting text in the terminal will automatically
|
|
// copy to the system clipboard.
|
|
"copy_on_select": false,
|
|
// Any key-value pairs added to this list will be added to the terminal's
|
|
// enviroment. Use `:` to seperate multiple values.
|
|
"env": {
|
|
// "KEY": "value1:value2"
|
|
},
|
|
// Set the terminal's line height.
|
|
// May take 3 values:
|
|
// 1. Use a line height that's comfortable for reading, 1.618
|
|
// "line_height": "comfortable"
|
|
// 2. Use a standard line height, 1.3. This option is useful for TUIs,
|
|
// particularly if they use box characters
|
|
// "line_height": "standard",
|
|
// 3. Use a custom line height.
|
|
// "line_height": {
|
|
// "custom": 2
|
|
// },
|
|
//
|
|
"line_height": "comfortable"
|
|
// Set the terminal's font size. If this option is not included,
|
|
// the terminal will default to matching the buffer's font size.
|
|
// "font_size": "15"
|
|
// Set the terminal's font family. If this option is not included,
|
|
// the terminal will default to matching the buffer's font family.
|
|
// "font_family": "Zed Mono"
|
|
},
|
|
// Different settings for specific languages.
|
|
"languages": {
|
|
"Plain Text": {
|
|
"soft_wrap": "preferred_line_length"
|
|
},
|
|
"Elixir": {
|
|
"tab_size": 2
|
|
},
|
|
"Go": {
|
|
"tab_size": 4,
|
|
"hard_tabs": true
|
|
},
|
|
"Markdown": {
|
|
"soft_wrap": "preferred_line_length"
|
|
},
|
|
"JavaScript": {
|
|
"tab_size": 2
|
|
},
|
|
"TypeScript": {
|
|
"tab_size": 2
|
|
},
|
|
"TSX": {
|
|
"tab_size": 2
|
|
},
|
|
"YAML": {
|
|
"tab_size": 2
|
|
},
|
|
"JSON": {
|
|
"tab_size": 2
|
|
}
|
|
},
|
|
// LSP Specific settings.
|
|
"lsp": {
|
|
// Specify the LSP name as a key here.
|
|
// As of 8/10/22, supported LSPs are:
|
|
// pyright
|
|
// gopls
|
|
// rust-analyzer
|
|
// typescript-language-server
|
|
// vscode-json-languageserver
|
|
// "rust-analyzer": {
|
|
// //These initialization options are merged into Zed's defaults
|
|
// "initialization_options": {
|
|
// "checkOnSave": {
|
|
// "command": "clippy"
|
|
// }
|
|
// }
|
|
// }
|
|
}
|
|
}
|