feat: edit working-checkout comparisons with normal editor actions

This commit is contained in:
2026-10-11 02:13:16 +02:00
parent 704dce2539
commit 9a34669c08
16 changed files with 2277 additions and 647 deletions
+14
View File
@@ -933,8 +933,19 @@ end
config.bind "V", config.core.buffer_previous
config.bind "D", config.core.buffer_delete
config.bind "Z", config.core.buffer_force_delete
config.bind "R", config.core.diff
config.bind "T", config.core.diff.close
raise "mutable diff actions" unless config.core.frozen? && config.core.diff.frozen? &&
config.core.diff.close.frozen? && config.core.diff.name.frozen? &&
config.core.diff.close.name.frozen?
end"#,
);
let mut review = EditorSession::open(None, vec!["text".into()], Some(&config)).unwrap();
review.handle(Input::Char('R'));
review.handle(Input::Escape);
assert!(review.editor().diff().is_some());
review.handle(Input::Char('T'));
assert!(review.editor().diff().is_none());
for (key, dirty, quit, saved) in [
('Q', false, true, false),
('Q', true, false, false),
@@ -1047,6 +1058,9 @@ end
"config.core.lsp",
"config.core.lsp.hover.tap { |action| action.name = 'core.delete' }",
"config.core.lsp.tap { |namespace| namespace.define_singleton_method(:bogus) { namespace.hover } }.bogus",
"config.core.diff.tap { |action| action.name = 'core.delete' }",
"config.core.diff.tap { |action| action.define_singleton_method(:bogus) { action.close } }.bogus",
"config.core.diff.close.tap { |action| action.name = 'core.delete' }",
] {
let invalid = fixture.file(
"invalid_action.rb",