Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'src/rnd.rs')
| -rw-r--r-- | src/rnd.rs | 103 |
1 files changed, 67 insertions, 36 deletions
@@ -102,7 +102,27 @@ pub fn render( ), _ => None, }; - + let sym_sel = + if let State::Symbols(Rq { result: Some(menu), .. }) = + &ed.state + && let Some(Ok(UsedSI { + at: GoTo { at: At::R(x), .. }, + .. + })) = menu.sel(None) + { + Some(x) + } else { + None + }; + let gen_sel = if let State::GoToL(menu) = &ed.state + && let Some(Ok((GoTo { at: At::R(r), path }, _))) = + menu.sel(None) + && Some(&*path) == ed.origin.as_deref() + { + Some(r) + } else { + None + }; text.line_numbers( (c, r - 1), [67, 76, 87], @@ -110,22 +130,12 @@ pub fn render( (cells, (c, r)), (1, 0), |_text, mut f, y| { - if let State::GoToL(menu) = &ed.state - && let Some(Ok((GoTo { at: At::R(r), path }, _))) = - menu.sel(None) - && Some(&*path) == ed.origin.as_deref() - { + if let Some(r) = gen_sel { if (r.start.line..=r.end.line).contains(&(y as _)) { f.style.fg = col!("#FFCC66"); } } - if let State::Symbols(Rq { result: Some(menu), .. }) = - &ed.state - && let Some(Ok(UsedSI { - at: GoTo { at: At::R(x), .. }, - .. - })) = menu.sel(None) - { + if let Some(x) = sym_sel { if (x.start.line..=x.end.line).contains(&(y as _)) { f.style.fg = col!("#FFCC66"); } @@ -252,14 +262,23 @@ pub fn render( .flat_map(|diag| { let sev = diag .severity - .unwrap_or(DiagnosticSeverity::ERROR); + .unwrap_or(DiagnosticSeverity::Error); let sev_ = match sev { - DiagnosticSeverity::ERROR => EType::Error, - DiagnosticSeverity::WARNING => EType::Warning, - DiagnosticSeverity::HINT => EType::Hint, + DiagnosticSeverity::Error => EType::Error, + DiagnosticSeverity::Warning => EType::Warning, + DiagnosticSeverity::Hint => EType::Hint, _ => EType::Info, }; - once((diag.range, &*diag.message, sev_)).chain( + once(( + diag.range, + match &diag.message { + Message::String(x) => &**x, + Message::MarkupContent(x) => + unimplemented!(), + }, + sev_, + )) + .chain( diag.related_information .iter() .flatten() @@ -275,7 +294,7 @@ pub fn render( }) .for_each(|(mut r, m, sev)| { if let EType::Related(x) = sev - && x != DiagnosticSeverity::ERROR + && x != DiagnosticSeverity::Error { return; } @@ -291,7 +310,7 @@ pub fn render( | EType::Hint | EType::Info => col!("#9469242c"), EType::Related( - DiagnosticSeverity::ERROR, + DiagnosticSeverity::Error, ) => col!("#dfbfff26"), EType::Related(_) => col!("#ffad6625"), }); @@ -332,7 +351,7 @@ pub fn render( col!("#ff942f1b", "#f26462") } EType::Related( - DiagnosticSeverity::WARNING, + DiagnosticSeverity::Warning, ) => { col!("#dfbfff26", "#DFBFFF") } @@ -373,7 +392,7 @@ pub fn render( z, wt, ed.origin.as_deref(), - lsp!(ed).and_then(|x| x.legend()), + lsp!(&ed).and_then(|x| x.legend()), ed.language, ); @@ -385,7 +404,7 @@ pub fn render( ed.origin .as_ref() .map(|x| { - ed.workspace + ed.git_dir .as_ref() .and_then(|w| x.strip_prefix(w).ok()) .unwrap_or(&x) @@ -571,13 +590,13 @@ pub fn render( continue; } - let r = if let Some(r) = e.sticky_range { - let r = text.l_range(r).unwrap(); - text.char_to_line(r.start)..=text.char_to_line(r.end) - } else { - let x = text.char_to_line(p); - x..=x - }; + // let r = if let Some(r) = e.sticky_range { + // let r = text.l_range(r).unwrap(); + // text.char_to_line(r.start)..=text.char_to_line(r.end) + // } else { + let x = text.char_to_line(p); + let r = x..=x; + // }; let d = Cell { style: Style { @@ -592,7 +611,7 @@ pub fn render( // chain([Cell::default()], x.to_string().chars().map(Cell::basic)).chain([Cell::default()]).collect(); for (x, rel, mut cell) in text - .colored_lines(r, lsp!(ed).and_then(|x| x.legend())) + .colored_lines(r, lsp!(&ed).and_then(|x| x.legend())) { if rel == 0 { let rem = cells.len() % c; @@ -847,22 +866,28 @@ pub fn render( ); } State::Command(x) if x.should_render() => { - let ws = ed.workspace.as_deref().unwrap(); + let ws = ed.git_dir.as_deref().unwrap(); let c = x.cells(50, ws, None); drawb(&c, 50); } State::Symbols(Rq { result: Some(x), .. }) => { - let ws = ed.workspace.as_deref().unwrap(); + let ws = ed.git_dir.as_deref().unwrap(); let c = x.cells(50, ws, Some(freq)); drawb(&c, 50); } + #[cfg(target_family = "unix")] State::Runnables(Rq { result: Some(x), .. }) => { - let ws = ed.workspace.as_deref().unwrap(); + let ws = ed.git_dir.as_deref().unwrap(); let c = x.cells(50, ws, None); drawb(&c, 50); } State::GoToL(y) => { - let ws = ed.workspace.as_deref().unwrap(); + let ws = ed.git_dir.as_deref().unwrap(); + let c = y.cells(50, ws, None); + drawb(&c, 50); + } + State::KillRing(y) => { + let ws = ed.git_dir.as_deref().unwrap(); let c = y.cells(50, ws, None); drawb(&c, 50); } @@ -1088,7 +1113,13 @@ pub fn simplify_path(x: &str) -> String { static RUST_SRC: LazyLock<Regex> = LazyLock::new(|| { Regex::new(r".rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library").unwrap() }); - let x = x.replace(env!("HOME"), " "); + let x = x.replace( + #[cfg(target_family = "unix")] + env!("HOME"), + #[cfg(target_family = "windows")] + env!("HOMEPATH"), + " ", + ); [(&*RUST_SRC, " "), (&*DEP, " /$name"), (&*DEP2, " /$name")] .into_iter() .fold(x, |acc, (r, repl)| r.replace(&acc, repl).into_owned()) |