1{
2 // The name of the Zed theme to use for the UI
3 "theme": "cave-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 terminal configuration (e.g. $TERM). Note this is not
72 // A substitution, only an exact text match
73 // "shell": "system"
74 // 2. A program:
75 // "shell": {
76 // "program": "sh"
77 // }
78 // 3. A program with arguments:
79 // "shell": {
80 // "with_arguments": {
81 // "program": "/bin/bash",
82 // "arguments": ["--login"]
83 // }
84 // }
85 "shell": "system",
86 // What working directory to use when launching the terminal.
87 // May take 4 values:
88 // 1. Use the current file's project directory.
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, not multiple list items
107 "env": [
108 //["KEY", "value1:value2"]
109 ]
110 //Set the terminal's font size. If this option is not listed,
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 listed,
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}