ide crate provides "ide-centric" APIs for the rust-analyzer. That is, it generally operates with files and text ranges, and returns results as Strings, suitable for displaying to the human.
What powers this API are the RootDatabase
struct, which defines a salsa
database, and the hir
crate, where majority of the analysis happens.
However, IDE specific bits of the analysis (most notably completion) happen
in this crate.