Skip to content

Commit 6afdd78

Browse files
committed
feat(cli): add Zed editor support for project creation
1 parent bc3657f commit 6afdd78

1 file changed

Lines changed: 120 additions & 0 deletions

File tree

packages/cli/src/utils/editor.ts

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,118 @@ const VSCODE_EXTENSIONS = {
2121
recommendations: ['VoidZero.vite-plus-extension-pack'],
2222
} as const;
2323

24+
const ZED_SETTINGS = {
25+
lsp: {
26+
oxlint: {
27+
initialization_options: {
28+
settings: {
29+
configPath: './oxlintrc.json',
30+
run: 'onType',
31+
disableNestedConfig: false,
32+
fixKind: 'safe_fix',
33+
typeAware: true,
34+
unusedDisableDirectives: 'deny',
35+
},
36+
},
37+
},
38+
oxfmt: {
39+
initialization_options: {
40+
settings: {
41+
configPath: './oxfmtrc.jsonc',
42+
},
43+
},
44+
},
45+
},
46+
languages: {
47+
CSS: {
48+
format_on_save: 'on',
49+
prettier: { allowed: false },
50+
formatter: [{ language_server: { name: 'oxfmt' } }],
51+
},
52+
GraphQL: {
53+
format_on_save: 'on',
54+
prettier: { allowed: false },
55+
formatter: [{ language_server: { name: 'oxfmt' } }],
56+
},
57+
Handlebars: {
58+
format_on_save: 'on',
59+
prettier: { allowed: false },
60+
formatter: [{ language_server: { name: 'oxfmt' } }],
61+
},
62+
HTML: {
63+
format_on_save: 'on',
64+
prettier: { allowed: false },
65+
formatter: [{ language_server: { name: 'oxfmt' } }],
66+
},
67+
JavaScript: {
68+
format_on_save: 'on',
69+
prettier: { allowed: false },
70+
formatter: [{ language_server: { name: 'oxfmt' } }],
71+
code_action: 'source.fixAll.oxc',
72+
},
73+
JSX: {
74+
format_on_save: 'on',
75+
prettier: { allowed: false },
76+
formatter: [{ language_server: { name: 'oxfmt' } }],
77+
},
78+
JSON: {
79+
format_on_save: 'on',
80+
prettier: { allowed: false },
81+
formatter: [{ language_server: { name: 'oxfmt' } }],
82+
},
83+
JSON5: {
84+
format_on_save: 'on',
85+
prettier: { allowed: false },
86+
formatter: [{ language_server: { name: 'oxfmt' } }],
87+
},
88+
JSONC: {
89+
format_on_save: 'on',
90+
prettier: { allowed: false },
91+
formatter: [{ language_server: { name: 'oxfmt' } }],
92+
},
93+
Less: {
94+
format_on_save: 'on',
95+
prettier: { allowed: false },
96+
formatter: [{ language_server: { name: 'oxfmt' } }],
97+
},
98+
Markdown: {
99+
format_on_save: 'on',
100+
prettier: { allowed: false },
101+
formatter: [{ language_server: { name: 'oxfmt' } }],
102+
},
103+
MDX: {
104+
format_on_save: 'on',
105+
prettier: { allowed: false },
106+
formatter: [{ language_server: { name: 'oxfmt' } }],
107+
},
108+
SCSS: {
109+
format_on_save: 'on',
110+
prettier: { allowed: false },
111+
formatter: [{ language_server: { name: 'oxfmt' } }],
112+
},
113+
TypeScript: {
114+
format_on_save: 'on',
115+
prettier: { allowed: false },
116+
formatter: [{ language_server: { name: 'oxfmt' } }],
117+
},
118+
TSX: {
119+
format_on_save: 'on',
120+
prettier: { allowed: false },
121+
formatter: [{ language_server: { name: 'oxfmt' } }],
122+
},
123+
Vue: {
124+
format_on_save: 'on',
125+
prettier: { allowed: false },
126+
formatter: [{ language_server: { name: 'oxfmt' } }],
127+
},
128+
YAML: {
129+
format_on_save: 'on',
130+
prettier: { allowed: false },
131+
formatter: [{ language_server: { name: 'oxfmt' } }],
132+
},
133+
},
134+
} as const;
135+
24136
export const EDITORS = [
25137
{
26138
id: 'vscode',
@@ -31,6 +143,14 @@ export const EDITORS = [
31143
'extensions.json': VSCODE_EXTENSIONS as Record<string, unknown>,
32144
},
33145
},
146+
{
147+
id: 'zed',
148+
label: 'Zed',
149+
targetDir: '.zed',
150+
files: {
151+
'settings.json': ZED_SETTINGS as Record<string, unknown>,
152+
},
153+
},
34154
] as const;
35155

36156
export type EditorId = (typeof EDITORS)[number]['id'];

0 commit comments

Comments
 (0)