diff --git a/i18n/ja/cosmic_term.ftl b/i18n/ja/cosmic_term.ftl index f10f2ab..683721c 100644 --- a/i18n/ja/cosmic_term.ftl +++ b/i18n/ja/cosmic_term.ftl @@ -6,20 +6,20 @@ settings = 設定 ### Appearance appearance = 外観 theme = テーマ -match-desktop = デスクトップに合わす -dark = 暗い -light = 明かり -syntax-dark = 暗いシンタックス -syntax-light = 明かりシンタックス +match-desktop = システム設定に従う +dark = ダーク +light = ライト +syntax-dark = ダークテーマのシンタックス +syntax-light = ライトテーマのシンタックス advanced-font-settings = 詳細なフォント設定 -default-font = デフォルトフォント +default-font = デフォルトのフォント default-font-stretch = デフォルトのフォント幅 default-font-weight = デフォルトのフォントの太さ default-dim-font-weight = デフォルトの暗いフォントの太さ default-bold-font-weight = デフォルトの太字の太さ use-bright-bold = 太字を明るい色で表示する default-font-size = デフォルトのフォントサイズ -default-zoom-step =ズームの間隔 +default-zoom-step = ズームの間隔 # Find find-placeholder = 検索... @@ -47,4 +47,4 @@ view = 表示 menu-settings = 設定... # Context menu -show-headerbar = ヘッダーバーを表す +show-headerbar = ヘッダーバーを表示 diff --git a/justfile b/justfile index 3518f18..23d5ad8 100644 --- a/justfile +++ b/justfile @@ -46,9 +46,13 @@ check *args: # Runs a clippy check with JSON message format check-json: (check '--message-format=json') +dev *args: + cargo fmt + just run {{args}} + # Run with debug logs run *args: - env RUST_LOG=debug RUST_BACKTRACE=full cargo run --release {{args}} + env RUST_LOG=cosmic_term=debug RUST_BACKTRACE=full cargo run --release {{args}} # Installs files install: diff --git a/src/terminal.rs b/src/terminal.rs index ca4c7fd..273e67f 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -9,7 +9,7 @@ use alacritty_terminal::{ cell::Flags, color::{self, Colors}, search::RegexSearch, - viewport_to_point, Config, TermMode, + viewport_to_point, Config, TermDamage, TermMode, }, tty::{self, Options}, vte::ansi::{Color, NamedColor, Rgb}, @@ -631,7 +631,14 @@ impl Terminal { let mut text = String::from(LRI); let mut attrs_list = AttrsList::new(self.default_attrs); { - let term = self.term.lock(); + let mut term = self.term.lock(); + //TODO: use damage? + match term.damage() { + TermDamage::Full => {} + TermDamage::Partial(_damage_lines) => {} + } + term.reset_damage(); + let grid = term.grid(); for indexed in grid.display_iter() { if indexed.point.line != last_point.unwrap_or(indexed.point).line { @@ -644,10 +651,7 @@ impl Terminal { buffer.set_redraw(true); } - // Tab skip/stop is handled by alacritty_terminal - if buffer.lines[line_i] - .set_text(text.replace('\t', " "), attrs_list.clone()) - { + if buffer.lines[line_i].set_text(text.clone(), attrs_list.clone()) { buffer.set_redraw(true); } line_i += 1; @@ -665,7 +669,11 @@ impl Terminal { } let start = text.len(); - text.push(indexed.cell.c); + // Tab skip/stop is handled by alacritty_terminal + text.push(match indexed.cell.c { + '\t' => ' ', + c => c, + }); if let Some(zerowidth) = indexed.cell.zerowidth() { for &c in zerowidth { text.push(c);