[tui] Open application with no editor tab.

The explorer can be used to open the first tab.
This commit is contained in:
Shaun Reed 2026-01-25 15:20:06 -05:00
parent ae9f787c81
commit 802cf8e9d3
3 changed files with 19 additions and 19 deletions

View File

@ -1,4 +1,3 @@
use log::trace;
use ratatui::buffer::Buffer;
use ratatui::layout::{Constraint, Direction, Layout, Rect};
use ratatui::style::{Modifier, Style};

View File

@ -48,7 +48,7 @@ impl<'a> App<'a> {
pub fn new(root_path: PathBuf) -> Result<Self> {
trace!(target:Self::id(), "Building {}", Self::id());
let app = Self {
editor_tabs: EditorTab::new(&root_path.join("src/tui/app.rs")),
editor_tabs: EditorTab::new(None),
explorer: Explorer::new(&root_path)?,
logger: Logger::new(),
menu_bar: MenuBar::new(),
@ -61,17 +61,6 @@ impl<'a> App<'a> {
/// Logic that should be executed once on application startup.
pub fn start(&mut self) -> Result<()> {
trace!(target:Self::id(), "Starting App");
let root_path = self.explorer.root_path.clone();
let editor = self
.editor_tabs
.current_editor_mut()
.context("Failed to get current editor in App::start")?;
editor
.set_contents(&root_path.join("src/tui/app.rs"))
.context(format!(
"Failed to initialize editor contents to path: {root_path:?}"
))?;
editor.component_state.set_focus(Focus::Active);
Ok(())
}

View File

@ -23,13 +23,25 @@ impl EditorTab {
"EditorTab"
}
pub fn new(path: &std::path::PathBuf) -> Self {
pub fn new(path: Option<&std::path::PathBuf>) -> Self {
trace!(target:Self::id(), "Building EditorTab with path {path:?}");
let tab_order = vec![path.to_string_lossy().to_string()];
Self {
editors: HashMap::from([(tab_order.first().unwrap().to_owned(), Editor::new(path))]),
tab_order,
current_editor: 0,
match path {
None => Self {
editors: HashMap::new(),
tab_order: Vec::new(),
current_editor: 0,
},
Some(path) => {
let tab_order = vec![path.to_string_lossy().to_string()];
Self {
editors: HashMap::from([(
tab_order.first().unwrap().to_owned(),
Editor::new(path),
)]),
tab_order,
current_editor: 0,
}
}
}
}