blob: 2cd751463bdb8b72f0250dd0f53f72227553b7e7 [file] [log] [blame]
use hir::{EditionedFileId, Semantics, db::DefDatabase};
use ide_db::{FileId, RootDatabase};
// Feature: Debug ItemTree
//
// Displays the ItemTree of the currently open file, for debugging.
//
// | Editor | Action Name |
// |---------|-------------|
// | VS Code | **rust-analyzer: Debug ItemTree** |
pub(crate) fn view_item_tree(db: &RootDatabase, file_id: FileId) -> String {
let sema = Semantics::new(db);
let file_id = sema
.attach_first_edition(file_id)
.unwrap_or_else(|| EditionedFileId::current_edition(db, file_id));
db.file_item_tree(file_id.into()).pretty_print(db, file_id.edition(db))
}