remove single directory option

pull/13344/head
mageowl 2025-04-15 07:59:21 -07:00
parent 0df1ec27ce
commit c65f660977
2 changed files with 76 additions and 94 deletions

View File

@ -25,7 +25,7 @@ use helix_core::{
use helix_view::{ use helix_view::{
annotations::diagnostics::DiagnosticFilter, annotations::diagnostics::DiagnosticFilter,
document::{Mode, SCRATCH_BUFFER_NAME}, document::{Mode, SCRATCH_BUFFER_NAME},
editor::{BufferLineDirectories, CompleteAction, CursorShapeConfig}, editor::{CompleteAction, CursorShapeConfig},
graphics::{Color, CursorKind, Modifier, Rect, Style}, graphics::{Color, CursorKind, Modifier, Rect, Style},
input::{KeyEvent, MouseButton, MouseEvent, MouseEventKind}, input::{KeyEvent, MouseButton, MouseEvent, MouseEventKind},
keyboard::{KeyCode, KeyModifiers}, keyboard::{KeyCode, KeyModifiers},
@ -633,8 +633,7 @@ impl EditorView {
let current_doc = view!(editor).doc; let current_doc = view!(editor).doc;
let mut documents: HashMap<_, _>; let mut documents: HashMap<_, _>;
let fnames: HashMap<_, _> = match &editor.config().bufferline_directories { let fnames: HashMap<_, _> = if editor.config().bufferline_show_directories {
BufferLineDirectories::Smart => {
documents = editor documents = editor
.documents() .documents()
.map(|doc| { .map(|doc| {
@ -698,25 +697,21 @@ impl EditorView {
) )
}) })
.collect() .collect()
} } else {
bufferline_directories => editor editor
.documents() .documents()
.map(|doc| { .map(|doc| {
( (
doc.id(), doc.id(),
if *bufferline_directories == BufferLineDirectories::Never {
doc.path() doc.path()
.unwrap_or(&scratch) .unwrap_or(&scratch)
.file_name() .file_name()
.unwrap_or_default() .unwrap_or_default()
.to_str() .to_str()
.unwrap_or_default() .unwrap_or_default(),
} else {
doc.path().unwrap_or(&scratch).to_str().unwrap_or_default()
},
) )
}) })
.collect(), .collect()
}; };
for doc in editor.documents() { for doc in editor.documents() {

View File

@ -333,7 +333,7 @@ pub struct Config {
/// Persistently display open buffers along the top /// Persistently display open buffers along the top
pub bufferline: BufferLine, pub bufferline: BufferLine,
/// Show the parent directory of files in the bufferline. /// Show the parent directory of files in the bufferline.
pub bufferline_directories: BufferLineDirectories, pub bufferline_show_directories: bool,
/// Vertical indent width guides. /// Vertical indent width guides.
pub indent_guides: IndentGuidesConfig, pub indent_guides: IndentGuidesConfig,
/// Whether to color modes with different colors. Defaults to `false`. /// Whether to color modes with different colors. Defaults to `false`.
@ -683,19 +683,6 @@ pub enum BufferLine {
Multiple, Multiple,
} }
/// bufferline directory render modes
#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum BufferLineDirectories {
/// Only render filenames
#[default]
Never,
/// Always render one parent directory
One,
/// Only render directories for files with the same name
Smart,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] #[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")] #[serde(rename_all = "kebab-case")]
pub enum LineNumber { pub enum LineNumber {
@ -1014,7 +1001,7 @@ impl Default for Config {
rulers: Vec::new(), rulers: Vec::new(),
whitespace: WhitespaceConfig::default(), whitespace: WhitespaceConfig::default(),
bufferline: BufferLine::default(), bufferline: BufferLine::default(),
bufferline_directories: BufferLineDirectories::default(), bufferline_show_directories: false,
indent_guides: IndentGuidesConfig::default(), indent_guides: IndentGuidesConfig::default(),
color_modes: false, color_modes: false,
soft_wrap: SoftWrap { soft_wrap: SoftWrap {