Windows中构建Zed编辑器

2026年10月3日 0 By Majjcom

代码拉取

使用git拉取部分代码:

git fetch origin [tag] [branchB] --depth=2
# 下面也有可能是 FETCH_HEAD
git checkout [branchB]

可能需要自行创建本地tag

环境配置

使用cmd,激活以下环境:

  • Visual Studio
  • git proxy
  • system proxy
  • proxy env vars
  • rustup mirror

修改代码

修改C代码补全格式

补丁如下:

Subject: [PATCH] change hint text format
---
Index: crates/languages/src/c.rs
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/crates/languages/src/c.rs b/crates/languages/src/c.rs
--- a/crates/languages/src/c.rs (revision df181c6f58d02677b385fa947d6bfde6d3530078)
+++ b/crates/languages/src/c.rs (date 1789228147041)
@@ -210,7 +210,7 @@
         match completion.kind {
             Some(lsp::CompletionItemKind::FIELD) if completion.detail.is_some() => {
                 let detail = completion.detail.as_ref().unwrap();
-                let text = format!("{} {}", detail, label);
+                let text = format!("{}: {}", label, detail);
                 let source = Rope::from(format!("struct S {{ {} }}", text).as_str());
                 let runs = language.highlight_text(&source, 11..11 + text.len());
                 let filter_range = completion
@@ -227,7 +227,7 @@
                 if completion.detail.is_some() =>
             {
                 let detail = completion.detail.as_ref().unwrap();
-                let text = format!("{} {}", detail, label);
+                let text = format!("{}: {}", label, detail);
                 let runs = language.highlight_text(&Rope::from(text.as_str()), 0..text.len());
                 let filter_range = completion
                     .filter_text
@@ -243,7 +243,7 @@
                 if completion.detail.is_some() =>
             {
                 let detail = completion.detail.as_ref().unwrap();
-                let text = format!("{} {}", detail, label);
+                let text = format!("{} -> {}", label, detail);
                 let runs = language.highlight_text(&Rope::from(text.as_str()), 0..text.len());
                 let filter_range = completion
                     .filter_text

构建

配置环境变量

RELEASE_CHANNEL -> stable

构建包

cargo b -r -p zed -j JOBS
cargo b -r -p cli -j JOBS

即可构建编辑器