A simple CPU rendered GUI IDE experience.
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/src/main.rs b/src/main.rs index 7d3fd22..74b066e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -587,29 +587,29 @@ text_document_position_params: TextDocumentPositionParams { text_document: TextD }}, work_done_progress_params:default() }).unwrap(); cl.runtime.spawn(async move { - let x = rx.await?.load::<Hover>()?; + let Some(x) = rx.await? else {return Ok(())}; let (w, cells) = spawn_blocking(move || { let x = match &x.contents { - lsp_types::HoverContents::Scalar(marked_string) => { - match marked_string{ - MarkedString::LanguageString(x) =>Cow::Borrowed(&*x.value), - MarkedString::String(x) => Cow::Borrowed(&**x), - } - }, - lsp_types::HoverContents::Array(marked_strings) => { - Cow::Owned(marked_strings.iter().map(|x| match x{ - MarkedString::LanguageString(x) => &*x.value, - MarkedString::String(x) => &*x, - }).collect::<String>()) - }, - lsp_types::HoverContents::Markup(markup_content) => { - Cow::Borrowed(&*markup_content.value) - }, - }; - let x = hov::p(&x).unwrap(); - let m = hov::l(&x).into_iter().max().map(_+2).unwrap_or(usize::MAX).min(c-10); - (m, hov::markdown2(m, &x)) -}).await.unwrap(); + lsp_types::HoverContents::Scalar(marked_string) => { + match marked_string{ + MarkedString::LanguageString(x) =>Cow::Borrowed(&*x.value), + MarkedString::String(x) => Cow::Borrowed(&**x), + } + }, + lsp_types::HoverContents::Array(marked_strings) => { + Cow::Owned(marked_strings.iter().map(|x| match x{ + MarkedString::LanguageString(x) => &*x.value, + MarkedString::String(x) => &*x, + }).collect::<String>()) + }, + lsp_types::HoverContents::Markup(markup_content) => { + Cow::Borrowed(&*markup_content.value) + }, + }; + let x = hov::p(&x).unwrap(); + let m = hov::l(&x).into_iter().max().map(_+2).unwrap_or(usize::MAX).min(c-10); + (m, hov::markdown2(m, &x)) + }).await.unwrap(); RUNNING.remove(&hover,&RUNNING.guard()); let span = x.range.and_then(|x| { Some(text.l_position(x.start).ok()?..text.l_position(x.end).ok()?) @@ -745,6 +745,7 @@ RUNNING.remove(&hover,&RUNNING.guard()); if hist.record(&text) { change!(); } +lsp!().map(|x|x.0.request_complete(x.1, text.cursor()));; } Some(Do::Undo) => { hist.test_push(&text); |