1{
2 // The name of the Zed theme to use for the UI
3 "theme": "One Dark",
4 // The name of a font to use for rendering text in the editor
5 "buffer_font_family": "Zed Mono",
6 // The OpenType features to enable for text in the editor.
7 "buffer_font_features": {
8 "calt": true
9 },
10 // The default font size for text in the editor
11 "buffer_font_size": 15,
12 // The factor to grow the active pane by. Defaults to 1.0
13 // which gives the same size as all other panes.
14 "active_pane_magnification": 1.0,
15 // Whether to enable vim modes and key bindings
16 "vim_mode": false,
17 // Whether to show the informational hover box when moving the mouse
18 // over symbols in the editor.
19 "hover_popover_enabled": true,
20 // Whether to confirm before quitting Zed.
21 "confirm_quit": false,
22 // Whether the cursor blinks in the editor.
23 "cursor_blink": true,
24 // Whether to pop the completions menu while typing in an editor without
25 // explicitly requesting it.
26 "show_completions_on_input": true,
27 // Whether the screen sharing icon is showed in the os status bar.
28 "show_call_status_icon": true,
29 // Whether to use language servers to provide code intelligence.
30 "enable_language_server": true,
31 // When to automatically save edited buffers. This setting can
32 // take four values.
33 //
34 // 1. Never automatically save:
35 // "autosave": "off",
36 // 2. Save when changing focus away from the Zed window:
37 // "autosave": "on_window_change",
38 // 3. Save when changing focus away from a specific buffer:
39 // "autosave": "on_focus_change",
40 // 4. Save when idle for a certain amount of time:
41 // "autosave": { "after_delay": {"milliseconds": 500} },
42 "autosave": "off",
43 // Where to place the dock by default. This setting can take three
44 // values:
45 //
46 // 1. Position the dock attached to the bottom of the workspace
47 // "default_dock_anchor": "bottom"
48 // 2. Position the dock to the right of the workspace like a side panel
49 // "default_dock_anchor": "right"
50 // 3. Position the dock full screen over the entire workspace"
51 // "default_dock_anchor": "expanded"
52 "default_dock_anchor": "bottom",
53 // Whether or not to remove any trailing whitespace from lines of a buffer
54 // before saving it.
55 "remove_trailing_whitespace_on_save": true,
56 // Whether or not to ensure there's a single newline at the end of a buffer
57 // when saving it.
58 "ensure_final_newline_on_save": true,
59 // Whether or not to perform a buffer format before saving
60 "format_on_save": "on",
61 // How to perform a buffer format. This setting can take two values:
62 //
63 // 1. Format code using the current language server:
64 // "format_on_save": "language_server"
65 // 2. Format code using an external command:
66 // "format_on_save": {
67 // "external": {
68 // "command": "prettier",
69 // "arguments": ["--stdin-filepath", "{buffer_path}"]
70 // }
71 // }
72 "formatter": "language_server",
73 // How to soft-wrap long lines of text. This setting can take
74 // three values:
75 //
76 // 1. Do not soft wrap.
77 // "soft_wrap": "none",
78 // 2. Soft wrap lines that overflow the editor:
79 // "soft_wrap": "editor_width",
80 // 3. Soft wrap lines at the preferred line length
81 // "soft_wrap": "preferred_line_length",
82 "soft_wrap": "none",
83 // The column at which to soft-wrap lines, for buffers where soft-wrap
84 // is enabled.
85 "preferred_line_length": 80,
86 // Whether to indent lines using tab characters, as opposed to multiple
87 // spaces.
88 "hard_tabs": false,
89 // How many columns a tab should occupy.
90 "tab_size": 4,
91 // Control what info is collected by Zed.
92 "telemetry": {
93 // Send debug info like crash reports.
94 "diagnostics": true,
95 // Send anonymized usage data like what languages you're using Zed with.
96 "metrics": true
97 },
98 // Automatically update Zed
99 "auto_update": true,
100 // Git gutter behavior configuration.
101 "git": {
102 // Control whether the git gutter is shown. May take 2 values:
103 // 1. Show the gutter
104 // "git_gutter": "tracked_files"
105 // 2. Hide the gutter
106 // "git_gutter": "hide"
107 "git_gutter": "tracked_files"
108 },
109 // Settings specific to journaling
110 "journal": {
111 // The path of the directory where journal entries are stored
112 "path": "~",
113 // What format to display the hours in
114 // May take 2 values:
115 // 1. hour12
116 // 2. hour24
117 "hour_format": "hour12"
118 },
119 // Settings specific to the terminal
120 "terminal": {
121 // What shell to use when opening a terminal. May take 3 values:
122 // 1. Use the system's default terminal configuration (e.g. $TERM).
123 // "shell": "system"
124 // 2. A program:
125 // "shell": {
126 // "program": "sh"
127 // }
128 // 3. A program with arguments:
129 // "shell": {
130 // "with_arguments": {
131 // "program": "/bin/bash",
132 // "arguments": ["--login"]
133 // }
134 // }
135 "shell": "system",
136 // What working directory to use when launching the terminal.
137 // May take 4 values:
138 // 1. Use the current file's project directory. Will Fallback to the
139 // first project directory strategy if unsuccessful
140 // "working_directory": "current_project_directory"
141 // 2. Use the first project in this workspace's directory
142 // "working_directory": "first_project_directory"
143 // 3. Always use this platform's home directory (if we can find it)
144 // "working_directory": "always_home"
145 // 4. Always use a specific directory. This value will be shell expanded.
146 // If this path is not a valid directory the terminal will default to
147 // this platform's home directory (if we can find it)
148 // "working_directory": {
149 // "always": {
150 // "directory": "~/zed/projects/"
151 // }
152 // }
153 //
154 //
155 "working_directory": "current_project_directory",
156 // Set the cursor blinking behavior in the terminal.
157 // May take 4 values:
158 // 1. Never blink the cursor, ignoring the terminal mode
159 // "blinking": "off",
160 // 2. Default the cursor blink to off, but allow the terminal to
161 // set blinking
162 // "blinking": "terminal_controlled",
163 // 3. Always blink the cursor, ignoring the terminal mode
164 // "blinking": "on",
165 "blinking": "terminal_controlled",
166 // Set whether Alternate Scroll mode (code: ?1007) is active by default.
167 // Alternate Scroll mode converts mouse scroll events into up / down key
168 // presses when in the alternate screen (e.g. when running applications
169 // like vim or less). The terminal can still set and unset this mode.
170 // May take 2 values:
171 // 1. Default alternate scroll mode to on
172 // "alternate_scroll": "on",
173 // 2. Default alternate scroll mode to off
174 // "alternate_scroll": "off",
175 "alternate_scroll": "off",
176 // Set whether the option key behaves as the meta key.
177 // May take 2 values:
178 // 1. Rely on default platform handling of option key, on macOS
179 // this means generating certain unicode characters
180 // "option_to_meta": false,
181 // 2. Make the option keys behave as a 'meta' key, e.g. for emacs
182 // "option_to_meta": true,
183 "option_as_meta": false,
184 // Whether or not selecting text in the terminal will automatically
185 // copy to the system clipboard.
186 "copy_on_select": false,
187 // Any key-value pairs added to this list will be added to the terminal's
188 // enviroment. Use `:` to seperate multiple values.
189 "env": {
190 // "KEY": "value1:value2"
191 }
192 // Set the terminal's font size. If this option is not included,
193 // the terminal will default to matching the buffer's font size.
194 // "font_size": "15"
195 // Set the terminal's font family. If this option is not included,
196 // the terminal will default to matching the buffer's font family.
197 // "font_family": "Zed Mono"
198 },
199 // Different settings for specific languages.
200 "languages": {
201 "Plain Text": {
202 "soft_wrap": "preferred_line_length"
203 },
204 "Elixir": {
205 "tab_size": 2
206 },
207 "Go": {
208 "tab_size": 4,
209 "hard_tabs": true
210 },
211 "Markdown": {
212 "soft_wrap": "preferred_line_length"
213 },
214 "JavaScript": {
215 "tab_size": 2
216 },
217 "TypeScript": {
218 "tab_size": 2
219 },
220 "TSX": {
221 "tab_size": 2
222 },
223 "YAML": {
224 "tab_size": 2
225 }
226 },
227 // LSP Specific settings.
228 "lsp": {
229 // Specify the LSP name as a key here.
230 // As of 8/10/22, supported LSPs are:
231 // pyright
232 // gopls
233 // rust-analyzer
234 // typescript-language-server
235 // vscode-json-languageserver
236 // "rust-analyzer": {
237 // //These initialization options are merged into Zed's defaults
238 // "initialization_options": {
239 // "checkOnSave": {
240 // "command": "clippy"
241 // }
242 // }
243 // }
244 }
245}