A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/bar.rs')
| -rw-r--r-- | src/bar.rs | 26 |
1 files changed, 24 insertions, 2 deletions
@@ -1,10 +1,11 @@ -use std::iter::repeat; +use std::iter::{chain, repeat}; use dsb::Cell; use dsb::cell::Style; use lsp_types::WorkDoneProgress; -use crate::lsp::Client; +use crate::lsp::{Client, Rq}; +use crate::sym::Symbols; use crate::text::TextArea; pub struct Bar { @@ -94,6 +95,27 @@ impl Bar { } }); } + State::Symbols(Rq { + result: Some(Symbols { tedit, .. }), + request, + }) => { + chain( + [match request { + Some(_) => '…', + None => '_', + }], + "filter: ".chars(), + ) + .zip(repeat(Style::BOLD | Style::ITALIC)) + .chain(s(&tedit.rope.to_string())) + .zip(row) + .for_each(|((x, z), y)| { + *y = Cell { + letter: Some(x), + style: Style { flags: z, ..y.style }, + } + }); + } State::RequestBoolean(x) => { x.prompt() .chars() |