mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-29 12:38:02 +00:00
81aac492bd
This PR adds support for the deno LSP. Should be reviewable now. Release Notes: - Added support for the Deno LSP ([#5361](https://github.com/zed-industries/zed/issues/5361)).
507 lines
18 KiB
JSON
507 lines
18 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,
|
|
// Set the buffer'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)
|
|
// "line_height": "standard",
|
|
// 3. Use a custom line height
|
|
// "line_height": {
|
|
// "custom": 2
|
|
// },
|
|
"buffer_line_height": "comfortable",
|
|
// The name of a font to use for rendering text in the UI
|
|
"ui_font_family": "Zed Sans",
|
|
// The OpenType features to enable for text in the UI
|
|
"ui_font_features": {
|
|
// Disable ligatures:
|
|
"calt": false
|
|
},
|
|
// The default font size for text in the UI
|
|
"ui_font_size": 16,
|
|
// 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 display inline and alongside documentation for items in the
|
|
// completions menu
|
|
"show_completion_documentation": true,
|
|
// Whether to show wrap guides in the editor. Setting this to true will
|
|
// show a guide at the 'preferred_line_length' value if softwrap is set to
|
|
// 'preferred_line_length', and will show any additional guides as specified
|
|
// by the 'wrap_guides' setting.
|
|
"show_wrap_guides": true,
|
|
// Character counts at which to show wrap guides in the editor.
|
|
"wrap_guides": [],
|
|
// 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,
|
|
// Whether to automatically type closing characters for you. For example,
|
|
// when you type (, Zed will automatically add a closing ) at the correct position.
|
|
"use_autoclose": 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 three 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",
|
|
// Settings related to calls in Zed
|
|
"calls": {
|
|
// Join calls with the microphone muted by default
|
|
"mute_on_join": false
|
|
},
|
|
// 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,
|
|
// Whether to show selections in the scrollbar.
|
|
"selections": true
|
|
},
|
|
"relative_line_numbers": false,
|
|
// When to populate a new search's query based on the text under the cursor.
|
|
// This setting can take the following three values:
|
|
//
|
|
// 1. Always populate the search query with the word under the cursor (default).
|
|
// "always"
|
|
// 2. Only populate the search query when there is text selected
|
|
// "selection"
|
|
// 3. Never populate the search query
|
|
// "never"
|
|
"seed_search_query_from_cursor": "always",
|
|
// Inlay hint related settings
|
|
"inlay_hints": {
|
|
// Global switch to toggle hints on and off, switched off by default.
|
|
"enabled": false,
|
|
// Toggle certain types of hints on and off, all switched on by default.
|
|
"show_type_hints": true,
|
|
"show_parameter_hints": true,
|
|
// Corresponds to null/None LSP hint type value.
|
|
"show_other_hints": true
|
|
},
|
|
"project_panel": {
|
|
// Default width of the project panel.
|
|
"default_width": 240,
|
|
// Where to dock project panel. Can be 'left' or 'right'.
|
|
"dock": "left",
|
|
// Whether to show file icons in the project panel.
|
|
"file_icons": true,
|
|
// Whether to show folder icons or chevrons for directories in the project panel.
|
|
"folder_icons": true,
|
|
// Whether to show the git status in the project panel.
|
|
"git_status": true,
|
|
// Amount of indentation for nested items.
|
|
"indent_size": 20,
|
|
// Whether to reveal it in the project panel automatically,
|
|
// when a corresponding project entry becomes active.
|
|
// Gitignored entries are never auto revealed.
|
|
"auto_reveal_entries": true
|
|
},
|
|
"collaboration_panel": {
|
|
// Whether to show the collaboration panel button in the status bar.
|
|
"button": true,
|
|
// Where to dock channels panel. Can be 'left' or 'right'.
|
|
"dock": "left",
|
|
// Default width of the channels panel.
|
|
"default_width": 240
|
|
},
|
|
"chat_panel": {
|
|
// Whether to show the collaboration panel button in the status bar.
|
|
"button": true,
|
|
// Where to dock channels panel. Can be 'left' or 'right'.
|
|
"dock": "right",
|
|
// Default width of the channels panel.
|
|
"default_width": 240
|
|
},
|
|
"notification_panel": {
|
|
// Whether to show the collaboration panel button in the status bar.
|
|
"button": true,
|
|
// Where to dock channels panel. Can be 'left' or 'right'.
|
|
"dock": "right",
|
|
// Default width of the channels panel.
|
|
"default_width": 380
|
|
},
|
|
"assistant": {
|
|
// Whether to show the assistant panel button in the status bar.
|
|
"button": true,
|
|
// Where to dock the assistant. Can be 'left', 'right' or 'bottom'.
|
|
"dock": "right",
|
|
// Default width when the assistant is docked to the left or right.
|
|
"default_width": 640,
|
|
// Default height when the assistant is docked to the bottom.
|
|
"default_height": 320,
|
|
// The default OpenAI model to use when starting new conversations. This
|
|
// setting can take three values:
|
|
//
|
|
// 1. "gpt-3.5-turbo-0613""
|
|
// 2. "gpt-4-0613""
|
|
// 3. "gpt-4-1106-preview"
|
|
"default_open_ai_model": "gpt-4-1106-preview"
|
|
},
|
|
// 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",
|
|
// Settings related to the editor's tabs
|
|
"tabs": {
|
|
// Show git status colors in the editor tabs.
|
|
"git_status": false,
|
|
// Position of the close button on the editor tabs.
|
|
"close_position": "right"
|
|
},
|
|
// Whether or not to remove any trailing whitespace from lines of a buffer
|
|
// before saving it.
|
|
"remove_trailing_whitespace_on_save": true,
|
|
// Whether to start a new line with a comment when a previous line is a comment as well.
|
|
"extend_comment_on_newline": 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 4 values:
|
|
//
|
|
// 1. Format code using the current language server:
|
|
// "formatter": "language_server"
|
|
// 2. Format code using an external command:
|
|
// "formatter": {
|
|
// "external": {
|
|
// "command": "prettier",
|
|
// "arguments": ["--stdin-filepath", "{buffer_path}"]
|
|
// }
|
|
// }
|
|
// 3. Format code using Zed's Prettier integration:
|
|
// "formatter": "prettier"
|
|
// 4. Default. Format files using Zed's Prettier integration (if applicable),
|
|
// or falling back to formatting via language server:
|
|
// "formatter": "auto"
|
|
"formatter": "auto",
|
|
// 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,
|
|
// Diagnostics configuration.
|
|
"diagnostics": {
|
|
// Whether to show warnings or not by default.
|
|
"include_warnings": true
|
|
},
|
|
// Add files or globs of files that will be excluded by Zed entirely:
|
|
// they will be skipped during FS scan(s), file tree and file search
|
|
// will lack the corresponding file entries.
|
|
"file_scan_exclusions": [
|
|
"**/.git",
|
|
"**/.svn",
|
|
"**/.hg",
|
|
"**/CVS",
|
|
"**/.DS_Store",
|
|
"**/Thumbs.db",
|
|
"**/.classpath",
|
|
"**/.settings"
|
|
],
|
|
// 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 3 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
|
|
// environment. Use `:` to separate 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",
|
|
// Activate the python virtual environment, if one is found, in the
|
|
// terminal's working directory (as resolved by the working_directory
|
|
// setting). Set this to "off" to disable this behavior.
|
|
"detect_venv": {
|
|
"on": {
|
|
// Default directories to search for virtual environments, relative
|
|
// to the current working directory. We recommend overriding this
|
|
// in your project's settings, rather than globally.
|
|
"directories": [".env", "env", ".venv", "venv"],
|
|
// Can also be 'csh', 'fish', and `nushell`
|
|
"activate_script": "default"
|
|
}
|
|
}
|
|
// 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",
|
|
// ---
|
|
},
|
|
// Difference settings for semantic_index
|
|
"semantic_index": {
|
|
"enabled": true
|
|
},
|
|
// Settings specific to our elixir integration
|
|
"elixir": {
|
|
// Change the LSP zed uses for elixir.
|
|
// Note that changing this setting requires a restart of Zed
|
|
// to take effect.
|
|
//
|
|
// May take 3 values:
|
|
// 1. Use the standard ElixirLS, this is the default
|
|
// "lsp": "elixir_ls"
|
|
// 2. Use the experimental NextLs
|
|
// "lsp": "next_ls",
|
|
// 3. Use a language server installed locally on your machine:
|
|
// "lsp": {
|
|
// "local": {
|
|
// "path": "~/next-ls/bin/start",
|
|
// "arguments": ["--stdio"]
|
|
// }
|
|
// },
|
|
//
|
|
"lsp": "elixir_ls"
|
|
},
|
|
// Settings specific to our deno integration
|
|
"deno": {
|
|
"enable": false
|
|
},
|
|
// 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
|
|
}
|
|
},
|
|
// Zed's Prettier integration settings.
|
|
// If Prettier is enabled, Zed will use this its Prettier instance for any applicable file, if
|
|
// project has no other Prettier installed.
|
|
"prettier": {
|
|
// Use regular Prettier json configuration:
|
|
// "trailingComma": "es5",
|
|
// "tabWidth": 4,
|
|
// "semi": false,
|
|
// "singleQuote": true
|
|
},
|
|
// LSP Specific settings.
|
|
"lsp": {
|
|
// Specify the LSP name as a key here.
|
|
// "rust-analyzer": {
|
|
// //These initialization options are merged into Zed's defaults
|
|
// "initialization_options": {
|
|
// "checkOnSave": {
|
|
// "command": "clippy"
|
|
// }
|
|
// }
|
|
// }
|
|
}
|
|
}
|