mirror of
https://github.com/nushell/nushell.git
synced 2025-08-09 22:47:43 +02:00
Highlight matching brackets / parentheses (#6655)
* [4325] - wip * [4325] - hightlight only matched symbol * [4325] - cleanup * [4325] - match bracket while typing * [4325] - fix clippy * [4325] - add bracket highlight configuration * [4325] - fix working with non-ascii
This commit is contained in:
@ -1,7 +1,9 @@
|
||||
mod color_config;
|
||||
mod matching_brackets_style;
|
||||
mod nu_style;
|
||||
mod shape_color;
|
||||
|
||||
pub use color_config::*;
|
||||
pub use matching_brackets_style::*;
|
||||
pub use nu_style::*;
|
||||
pub use shape_color::*;
|
||||
|
30
crates/nu-color-config/src/matching_brackets_style.rs
Normal file
30
crates/nu-color-config/src/matching_brackets_style.rs
Normal file
@ -0,0 +1,30 @@
|
||||
use crate::color_config::lookup_ansi_color_style;
|
||||
use nu_ansi_term::Style;
|
||||
use nu_protocol::Config;
|
||||
|
||||
pub fn get_matching_brackets_style(default_style: Style, conf: &Config) -> Style {
|
||||
const MATCHING_BRACKETS_CONFIG_KEY: &str = "shape_matching_brackets";
|
||||
|
||||
match conf.color_config.get(MATCHING_BRACKETS_CONFIG_KEY) {
|
||||
Some(int_color) => match int_color.as_string() {
|
||||
Ok(int_color) => merge_styles(default_style, lookup_ansi_color_style(&int_color)),
|
||||
Err(_) => default_style,
|
||||
},
|
||||
None => default_style,
|
||||
}
|
||||
}
|
||||
|
||||
fn merge_styles(base: Style, extra: Style) -> Style {
|
||||
Style {
|
||||
foreground: extra.foreground.or(base.foreground),
|
||||
background: extra.background.or(base.background),
|
||||
is_bold: extra.is_bold || base.is_bold,
|
||||
is_dimmed: extra.is_dimmed || base.is_dimmed,
|
||||
is_italic: extra.is_italic || base.is_italic,
|
||||
is_underline: extra.is_underline || base.is_underline,
|
||||
is_blink: extra.is_blink || base.is_blink,
|
||||
is_reverse: extra.is_reverse || base.is_reverse,
|
||||
is_hidden: extra.is_hidden || base.is_hidden,
|
||||
is_strikethrough: extra.is_strikethrough || base.is_strikethrough,
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user