Function scip_document_to_summary

Source
pub fn scip_document_to_summary(
    document_id: DocumentId,
    document: &ScipDocumentIndex,
) -> CodeFileSummary
Expand description

Converts one SCIP document into the local symbol/edge representation.

Symbols receive positional one-based IDs. Ranges, signatures, and docs are copied without clamping; parents are always None and source is SCIP. Relations whose canonical endpoints cannot both be resolved are dropped; remaining edges are sorted and deduplicated.

ยงExamples

use ailloli_ui_editor::{code::scip_document_to_summary, DocumentId, DocumentVersion, EditorLanguage, ScipDocumentIndex, ScipSymbol, SymbolId, SymbolKind, SymbolSource};
let document = ScipDocumentIndex { path: "lib.rs".into(), language: EditorLanguage::Rust, version: DocumentVersion(2), symbols: vec![ScipSymbol { symbol: "foo".into(), name: "foo".into(), kind: SymbolKind::Function, range: 0..3, selection_range: 0..3, signature: None, docs: None }], occurrences: vec![], relations: vec![] };
let summary = scip_document_to_summary(DocumentId(9), &document);
assert_eq!((summary.symbols[0].id, summary.symbols[0].source), (SymbolId(1), SymbolSource::Scip));
assert_eq!(summary.path.unwrap().to_str(), Some("lib.rs"));