T17 Editor: CodeEditor with gutter, folds, minimap, rulers, guides, brackets, whitespace, cursors, multi-cursor, sticky scroll, inlay hints, lenses, decorations, ghost text, inline chat and diff (T17a); completions, signatures, hover, code actions, rename, references, outline, go to symbol, call and type hierarchy (T17b); find and replace, search panel and filters (T17c); problems, output, debug console, extensions, settings with JSON, keybindings, theme previews, welcome, recent projects, switcher, task runner (T17d); status items (T17e)

Shared: generic undo History, OverflowMenu icon and tooltip, StatusBarItem leading, six Lucide icons.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-09-26 00:43:41 -04:00
1 parent c229a096ca
commit d05754ac19
59 files changed
+10820 -71

No files matched your search

+59
View File
@@ -0,0 +1,59 @@
mod code;
mod intel;
mod panels;
mod search;
mod settings;
mod start;
mod status;
use gpui::{AnyElement, App, IntoElement, ParentElement, Window, div};
use super::Page;
use crate::script::Step;
pub const PAGE: Page = Page {
number: 17,
slug: "editor",
title: "Editor",
summary: "A code editor with the gutter, folds and cursors it needs, the help a language server gives, search, the panels around it and its status row.",
render,
script: SCRIPT,
};
const SCRIPT: &[Step] = &[
Step::Rest,
Step::DownAt("editor-main", 118.0, 104.0),
Step::UpAt("editor-main", 118.0, 104.0),
Step::Key("cmd-d"),
Step::Key("cmd-d"),
Step::Wait(300),
Step::Shot("cursors"),
Step::Key("escape"),
Step::Key("cmd-/"),
Step::Wait(300),
Step::Shot("commented"),
Step::Key("cmd-z"),
Step::Wait(300),
Step::DownAt("status", 249.0, 11.0),
Step::UpAt("status", 249.0, 11.0),
Step::Wait(300),
Step::Shot("status"),
Step::Rest,
];
fn render(window: &mut Window, cx: &mut App) -> AnyElement {
div()
.child(code::editor(window, cx))
.child(code::looks(window, cx))
.child(code::changes(window, cx))
.child(intel::hints(window, cx))
.child(intel::navigate(window, cx))
.child(search::find(window, cx))
.child(search::panel(window, cx))
.child(panels::problems_and_output(window, cx))
.child(panels::console_and_extensions(window, cx))
.child(settings::settings_and_keys(window, cx))
.child(start::start(window, cx))
.child(status::status(window, cx))
.into_any_element()
}