Add source caret and block indentation keyboard editing

This commit is contained in:
2026-09-22 11:50:45 -07:00
parent 136ed6e586
commit 3733a657bb
9 changed files with 435 additions and 6 deletions
+11 -2
View File
@@ -18,6 +18,8 @@ mod hosted;
mod reference_authoring;
#[cfg(test)]
mod review_navigation_tests;
#[cfg(test)]
mod source_indentation_tests;
pub(crate) mod source_rename;
mod source_symbols;
pub(crate) mod text_workspace;
@@ -427,6 +429,7 @@ pub enum Message {
Pan(iced::Vector),
Fit,
SourceEdit(text_editor::Action),
SourceIndent(crate::source_navigation::SymbolContext, bool),
ApplySource,
RevertSource,
SourceUndo,
@@ -3314,10 +3317,16 @@ impl App {
self.pan += delta;
}
Message::Fit => self.fit(),
Message::SourceEdit(action) => {
Message::SourceEdit(_) | Message::SourceIndent(..) => {
self.source_jump = None;
let before = self.source_editor.text();
self.source_editor.perform(action);
match message {
Message::SourceEdit(action) => self.source_editor.perform(action),
Message::SourceIndent(_, outdent) => {
crate::source_indentation::apply(&mut self.source_editor, outdent);
}
_ => unreachable!(),
}
let after = self.source_editor.text();
if after != before {
self.source_navigation.refresh(&after);