unsafe-review-cli 0.3.8

CLI adapter for unsafe-review
Documentation
use tower_lsp_server::ls_types::{
    Diagnostic, Hover, HoverContents, MarkupContent, MarkupKind, Position,
};
use unsafe_review_core::{AnalyzeOutput, render_lsp_hover};

use super::diagnostics::find_card_at_position;

pub(super) fn hover_for(
    output: Option<&AnalyzeOutput>,
    diagnostics: &[Diagnostic],
    pos: Position,
) -> Option<Hover> {
    let card = find_card_at_position(output?, diagnostics, pos)?;
    Some(Hover {
        contents: HoverContents::Markup(MarkupContent {
            kind: MarkupKind::Markdown,
            value: render_lsp_hover(card),
        }),
        range: None,
    })
}