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 default font size for text in the editor
7 "buffer_font_size": 15,
8 // Whether to enable vim modes and key bindings
9 "vim_mode": false,
10 // Whether to show the informational hover box when moving the mouse
11 // over symbols in the editor.
12 "hover_popover_enabled": true,
13 // Whether to pop the completions menu while typing in an editor without
14 // explicitly requesting it.
15 "show_completions_on_input": true,
16 // Whether new projects should start out 'online'. Online projects
17 // appear in the contacts panel under your name, so that your contacts
18 // can see which projects you are working on. Regardless of this
19 // setting, projects keep their last online status when you reopen them.
20 "projects_online_by_default": true,
21 // Whether to use language servers to provide code intelligence.
22 "enable_language_server": true,
23 // When to automatically save edited buffers. This setting can
24 // take four values.
25 //
26 // 1. Never automatically save:
27 // "autosave": "off",
28 // 2. Save when changing focus away from the Zed window:
29 // "autosave": "on_window_change",
30 // 3. Save when changing focus away from a specific buffer:
31 // "autosave": "on_focus_change",
32 // 4. Save when idle for a certain amount of time:
33 // "autosave": { "after_delay": {"milliseconds": 500} },
34 "autosave": "off",
35 // How to auto-format modified buffers when saving them. This
36 // setting can take three values:
37 //
38 // 1. Don't format code
39 // "format_on_save": "off"
40 // 2. Format code using the current language server:
41 // "format_on_save": "language_server"
42 // 3. Format code using an external command:
43 // "format_on_save": {
44 // "external": {
45 // "command": "prettier",
46 // "arguments": ["--stdin-filepath", "{buffer_path}"]
47 // }
48 // }
49 "format_on_save": "language_server",
50 // How to soft-wrap long lines of text. This setting can take
51 // three values:
52 //
53 // 1. Do not soft wrap.
54 // "soft_wrap": "none",
55 // 2. Soft wrap lines that overflow the editor:
56 // "soft_wrap": "editor_width",
57 // 3. Soft wrap lines at the preferred line length
58 // "soft_wrap": "preferred_line_length",
59 "soft_wrap": "none",
60 // The column at which to soft-wrap lines, for buffers where soft-wrap
61 // is enabled.
62 "preferred_line_length": 80,
63 // Whether to indent lines using tab characters, as opposed to multiple
64 // spaces.
65 "hard_tabs": false,
66 // How many columns a tab should occupy.
67 "tab_size": 4,
68 // Settings specific to the terminal
69 "terminal": {
70 // What shell to use when opening a terminal. May take 3 values:
71 // 1. Use the system's default terminal configuration (e.g. $TERM).
72 // "shell": "system"
73 // 2. A program:
74 // "shell": {
75 // "program": "sh"
76 // }
77 // 3. A program with arguments:
78 // "shell": {
79 // "with_arguments": {
80 // "program": "/bin/bash",
81 // "arguments": ["--login"]
82 // }
83 // }
84 "shell": "system",
85 // What working directory to use when launching the terminal.
86 // May take 4 values:
87 // 1. Use the current file's project directory. Will Fallback to the
88 // first project directory strategy if unsuccessful
89 // "working_directory": "current_project_directory"
90 // 2. Use the first project in this workspace's directory
91 // "working_directory": "first_project_directory"
92 // 3. Always use this platform's home directory (if we can find it)
93 // "working_directory": "always_home"
94 // 4. Always use a specific directory. This value will be shell expanded.
95 // If this path is not a valid directory the terminal will default to
96 // this platform's home directory (if we can find it)
97 // "working_directory": {
98 // "always": {
99 // "directory": "~/zed/projects/"
100 // }
101 // }
102 //
103 //
104 "working_directory": "current_project_directory",
105 //Any key-value pairs added to this list will be added to the terminal's
106 //enviroment. Use `:` to seperate multiple values.
107 "env": {
108 //"KEY": "value1:value2"
109 }
110 //Set the terminal's font size. If this option is not included,
111 //the terminal will default to matching the buffer's font size.
112 //"font_size": "15"
113 //Set the terminal's font family. If this option is not included,
114 //the terminal will default to matching the buffer's font family.
115 //"font_family": "Zed Mono"
116 },
117 // Different settings for specific languages.
118 "languages": {
119 "Plain Text": {
120 "soft_wrap": "preferred_line_length"
121 },
122 "C": {
123 "tab_size": 2
124 },
125 "C++": {
126 "tab_size": 2
127 },
128 "Go": {
129 "tab_size": 4,
130 "hard_tabs": true
131 },
132 "Markdown": {
133 "soft_wrap": "preferred_line_length"
134 },
135 "Rust": {
136 "tab_size": 4
137 },
138 "JavaScript": {
139 "tab_size": 2
140 },
141 "TypeScript": {
142 "tab_size": 2
143 },
144 "TSX": {
145 "tab_size": 2
146 }
147 },
148 //LSP Specific settings.
149 "lsp": {
150 //Specify the LSP name as a key here.
151 //As of 8/10/22, supported LSPs are:
152 //pyright
153 //gopls
154 //rust-analyzer
155 //typescript-language-server
156 //vscode-json-languageserver
157 // "rust_analyzer": {
158 // //These initialization options are merged into Zed's defaults
159 // "initialization_options": {
160 // "checkOnSave": {
161 // "command": "clippy"
162 // }
163 // }
164 // }
165 }
166}