diff --git a/CHANGELOG.md b/CHANGELOG.md index f3e6ded1..06bc1cc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -63,6 +63,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed - Config option `auto_scroll`, which is now always disabled +- Config option `tabspaces`, which is now fixed at `8` ## 0.4.1 diff --git a/alacritty.yml b/alacritty.yml index b65b4f01..7ed4666b 100644 --- a/alacritty.yml +++ b/alacritty.yml @@ -87,15 +87,6 @@ # scrollback is enabled (history > 0). #multiplier: 3 -# Spaces per Tab (changes require restart) -# -# This setting defines the width of a tab in cells. -# -# Some applications, like Emacs, rely on knowing about the width of a tab. -# To prevent unexpected behavior in these applications, it's also required to -# change the `it` value in terminfo when altering this setting. -#tabspaces: 8 - # Font configuration #font: # Normal (roman) font face diff --git a/alacritty/src/config/mod.rs b/alacritty/src/config/mod.rs index d7b702b9..2a598714 100644 --- a/alacritty/src/config/mod.rs +++ b/alacritty/src/config/mod.rs @@ -209,6 +209,14 @@ fn print_deprecation_warnings(config: &Config) { safely removed from the config" ); } + + if config.tabspaces.is_some() { + warn!( + target: LOG_TARGET_CONFIG, + "Config tabspaces has been removed and is now always 8, it can be safely removed from \ + the config" + ); + } } #[cfg(test)] diff --git a/alacritty_terminal/src/config/mod.rs b/alacritty_terminal/src/config/mod.rs index fd049af0..da95391c 100644 --- a/alacritty_terminal/src/config/mod.rs +++ b/alacritty_terminal/src/config/mod.rs @@ -96,10 +96,6 @@ pub struct Config { #[serde(default, deserialize_with = "failure_default")] live_config_reload: DefaultTrueBool, - /// Number of spaces in one tab - #[serde(default, deserialize_with = "failure_default")] - tabspaces: Tabspaces, - /// How much scrolling history to keep #[serde(default, deserialize_with = "failure_default")] pub scrolling: Scrolling, @@ -133,6 +129,10 @@ pub struct Config { #[serde(skip)] pub hold: bool, + // TODO: REMOVED + #[serde(default, deserialize_with = "failure_default")] + pub tabspaces: Option, + // TODO: DEPRECATED #[serde(default, deserialize_with = "failure_default")] pub render_timer: Option, @@ -143,10 +143,6 @@ pub struct Config { } impl Config { - pub fn tabspaces(&self) -> usize { - self.tabspaces.0 - } - #[inline] pub fn draw_bold_text_with_bright_colors(&self) -> bool { self.draw_bold_text_with_bright_colors @@ -327,15 +323,6 @@ impl<'a> Deserialize<'a> for Alpha { } } -#[derive(Deserialize, Copy, Clone, Debug, PartialEq, Eq)] -struct Tabspaces(usize); - -impl Default for Tabspaces { - fn default() -> Self { - Tabspaces(8) - } -} - #[derive(Deserialize, Copy, Clone, Debug, PartialEq, Eq)] struct DefaultTrueBool(bool); diff --git a/alacritty_terminal/src/term/mod.rs b/alacritty_terminal/src/term/mod.rs index f198c59b..d545d686 100644 --- a/alacritty_terminal/src/term/mod.rs +++ b/alacritty_terminal/src/term/mod.rs @@ -47,6 +47,9 @@ const BRACKET_PAIRS: [(char, char); 4] = [('(', ')'), ('[', ']'), ('{', '}'), (' /// Max size of the window title stack. const TITLE_STACK_MAX_DEPTH: usize = 4096; +/// Default tab interval, corresponding to terminfo `it` value. +const INITIAL_TABSTOPS: usize = 8; + /// A type that can expand a given point to a region /// /// Usually this is implemented for some 2-D array type since @@ -916,8 +919,7 @@ impl Term { let grid = Grid::new(num_lines, num_cols, history_size, Cell::default()); let alt = Grid::new(num_lines, num_cols, 0 /* scroll history */, Cell::default()); - let tabspaces = config.tabspaces(); - let tabs = TabStops::new(grid.num_cols(), tabspaces); + let tabs = TabStops::new(grid.num_cols()); let scroll_region = Line(0)..grid.num_lines(); @@ -2154,16 +2156,14 @@ impl Handler for Term { struct TabStops { tabs: Vec, - tabspaces: usize, } impl TabStops { #[inline] - fn new(num_cols: Column, tabspaces: usize) -> TabStops { + fn new(num_cols: Column) -> TabStops { TabStops { - tabspaces, tabs: IndexRange::from(Column(0)..num_cols) - .map(|i| (*i as usize) % tabspaces == 0) + .map(|i| (*i as usize) % INITIAL_TABSTOPS == 0) .collect::>(), } } @@ -2179,10 +2179,9 @@ impl TabStops { /// Increase tabstop capacity. #[inline] fn resize(&mut self, num_cols: Column) { - let tabspaces = self.tabspaces; let mut index = self.tabs.len(); self.tabs.resize_with(num_cols.0, || { - let is_tabstop = index % tabspaces == 0; + let is_tabstop = index % INITIAL_TABSTOPS == 0; index += 1; is_tabstop });