Refactor verdict handling and editor state management

- Removed the Escalate variant from the Verdict enum and associated parsing logic.
- Cleaned up the EditorState struct by removing unused fields and methods.
- Simplified MCP connection functions by removing unnecessary disconnect and handle dismiss functions.
- Added tick count to MiscState for managing UI updates during processing.
- Updated chat and status views to display a spinner during AI processing using the tick count.
- Created a README.md file to document the project, its features, architecture, usage, key bindings, agent modes, security measures, installation instructions, and configuration details.
This commit is contained in:
asepharyana
2026-07-12 03:19:25 +07:00
parent 36573e7e3b
commit df5775a272
9 changed files with 193 additions and 1468 deletions
-37
View File
@@ -8,16 +8,6 @@ pub struct EditorState {
pub undo_stack: Vec<Vec<String>>,
pub cursor_line: usize,
pub cursor_col: usize,
pub scroll_offset: usize,
pub active: bool,
pub mode: EditorMode,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum EditorMode {
Normal,
Insert,
Visual,
}
impl Default for EditorState {
@@ -28,9 +18,6 @@ impl Default for EditorState {
undo_stack: Vec::new(),
cursor_line: 0,
cursor_col: 0,
scroll_offset: 0,
active: false,
mode: EditorMode::Normal,
}
}
}
@@ -41,7 +28,6 @@ impl EditorState {
EditorState {
path,
content,
active: true,
..Default::default()
}
}
@@ -160,29 +146,6 @@ impl EditorState {
pub fn as_string(&self) -> String {
self.content.join("\n")
}
pub fn close(&mut self) {
self.active = false;
}
pub fn toggle_mode(&mut self) {
self.mode = match self.mode {
EditorMode::Normal => EditorMode::Insert,
EditorMode::Insert => EditorMode::Normal,
EditorMode::Visual => EditorMode::Normal,
};
}
}
#[derive(Clone)]
pub struct AppEditorState {
pub editor: Option<EditorState>,
}
impl AppEditorState {
pub fn new() -> Self {
AppEditorState { editor: None }
}
}
pub fn handle_editor_input(state: &mut AppStateRest, text: String) {
-11
View File
@@ -1,17 +1,6 @@
use crate::app::state::rest::AppStateRest;
use crate::app::state::types::Overlay;
pub fn connect_mcp(state: &mut AppStateRest, server_name: &str) {
let _ = server_name;
state.dirty = true;
}
pub fn disconnect_mcp(state: &mut AppStateRest, server_name: &str) {
let _ = server_name;
state.dirty = true;
}
pub fn handle_mcp_dismiss(state: &mut AppStateRest) {
state.misc.overlay = Overlay::None;
state.dirty = true;
}