pub struct Analysis { /* private fields */ }
Expand description
Analysis is a snapshot of a world state at a moment in time. It is the main
entry point for asking semantic information about the world. When the world
state is advanced using AnalysisHost::apply_change
method, all existing
Analysis
are canceled (most method return Err(Canceled)
).
Implementations§
source§impl Analysis
impl Analysis
pub fn from_single_file(text: String) -> (Analysis, FileId)
sourcepub fn status(&self, file_id: Option<FileId>) -> Cancellable<String>
pub fn status(&self, file_id: Option<FileId>) -> Cancellable<String>
Debug info about the current state of the analysis.
pub fn parallel_prime_caches<F>( &self, num_worker_threads: u8, cb: F ) -> Cancellable<()>
sourcepub fn file_text(&self, file_id: FileId) -> Cancellable<Arc<str>>
pub fn file_text(&self, file_id: FileId) -> Cancellable<Arc<str>>
Gets the text of the source file.
sourcepub fn parse(&self, file_id: FileId) -> Cancellable<SourceFile>
pub fn parse(&self, file_id: FileId) -> Cancellable<SourceFile>
Gets the syntax tree of the file.
sourcepub fn is_library_file(&self, file_id: FileId) -> Cancellable<bool>
pub fn is_library_file(&self, file_id: FileId) -> Cancellable<bool>
Returns true if this file belongs to an immutable library.
sourcepub fn file_line_index(&self, file_id: FileId) -> Cancellable<Arc<LineIndex>>
pub fn file_line_index(&self, file_id: FileId) -> Cancellable<Arc<LineIndex>>
Gets the file’s LineIndex
: data structure to convert between absolute
offsets and line/column representation.
sourcepub fn extend_selection(&self, frange: FileRange) -> Cancellable<TextRange>
pub fn extend_selection(&self, frange: FileRange) -> Cancellable<TextRange>
Selects the next syntactic nodes encompassing the range.
sourcepub fn matching_brace(
&self,
position: FilePosition
) -> Cancellable<Option<TextSize>>
pub fn matching_brace( &self, position: FilePosition ) -> Cancellable<Option<TextSize>>
Returns position of the matching brace (all types of braces are supported).
sourcepub fn syntax_tree(
&self,
file_id: FileId,
text_range: Option<TextRange>
) -> Cancellable<String>
pub fn syntax_tree( &self, file_id: FileId, text_range: Option<TextRange> ) -> Cancellable<String>
Returns a syntax tree represented as String
, for debug purposes.
pub fn view_hir(&self, position: FilePosition) -> Cancellable<String>
pub fn view_mir(&self, position: FilePosition) -> Cancellable<String>
pub fn interpret_function(&self, position: FilePosition) -> Cancellable<String>
pub fn view_item_tree(&self, file_id: FileId) -> Cancellable<String>
pub fn discover_test_roots(&self) -> Cancellable<Vec<TestItem>>
pub fn discover_tests_in_crate_by_test_id( &self, crate_id: &str ) -> Cancellable<Vec<TestItem>>
pub fn discover_tests_in_crate( &self, crate_id: CrateId ) -> Cancellable<Vec<TestItem>>
sourcepub fn view_crate_graph(
&self,
full: bool
) -> Cancellable<Result<String, String>>
pub fn view_crate_graph( &self, full: bool ) -> Cancellable<Result<String, String>>
Renders the crate graph to GraphViz “dot” syntax.
pub fn fetch_crates(&self) -> Cancellable<FxIndexSet<CrateInfo>>
pub fn expand_macro( &self, position: FilePosition ) -> Cancellable<Option<ExpandedMacro>>
sourcepub fn join_lines(
&self,
config: &JoinLinesConfig,
frange: FileRange
) -> Cancellable<TextEdit>
pub fn join_lines( &self, config: &JoinLinesConfig, frange: FileRange ) -> Cancellable<TextEdit>
Returns an edit to remove all newlines in the range, cleaning up minor stuff like trailing commas.
sourcepub fn on_enter(&self, position: FilePosition) -> Cancellable<Option<TextEdit>>
pub fn on_enter(&self, position: FilePosition) -> Cancellable<Option<TextEdit>>
Returns an edit which should be applied when opening a new line, fixing
up minor stuff like continuing the comment.
The edit will be a snippet (with $0
).
sourcepub fn on_char_typed(
&self,
position: FilePosition,
char_typed: char,
autoclose: bool
) -> Cancellable<Option<SourceChange>>
pub fn on_char_typed( &self, position: FilePosition, char_typed: char, autoclose: bool ) -> Cancellable<Option<SourceChange>>
Returns an edit which should be applied after a character was typed.
This is useful for some on-the-fly fixups, like adding ;
to let =
automatically.
sourcepub fn file_structure(&self, file_id: FileId) -> Cancellable<Vec<StructureNode>>
pub fn file_structure(&self, file_id: FileId) -> Cancellable<Vec<StructureNode>>
Returns a tree representation of symbols in the file. Useful to draw a file outline.
sourcepub fn inlay_hints(
&self,
config: &InlayHintsConfig,
file_id: FileId,
range: Option<TextRange>
) -> Cancellable<Vec<InlayHint>>
pub fn inlay_hints( &self, config: &InlayHintsConfig, file_id: FileId, range: Option<TextRange> ) -> Cancellable<Vec<InlayHint>>
Returns a list of the places in the file where type hints can be displayed.
pub fn inlay_hints_resolve( &self, config: &InlayHintsConfig, file_id: FileId, position: TextSize, hash: u64 ) -> Cancellable<Option<InlayHint>>
sourcepub fn folding_ranges(&self, file_id: FileId) -> Cancellable<Vec<Fold>>
pub fn folding_ranges(&self, file_id: FileId) -> Cancellable<Vec<Fold>>
Returns the set of folding ranges.
sourcepub fn symbol_search(
&self,
query: Query,
limit: usize
) -> Cancellable<Vec<NavigationTarget>>
pub fn symbol_search( &self, query: Query, limit: usize ) -> Cancellable<Vec<NavigationTarget>>
Fuzzy searches for a symbol.
sourcepub fn goto_definition(
&self,
position: FilePosition
) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
pub fn goto_definition( &self, position: FilePosition ) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
Returns the definitions from the symbol at position
.
sourcepub fn goto_declaration(
&self,
position: FilePosition
) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
pub fn goto_declaration( &self, position: FilePosition ) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
Returns the declaration from the symbol at position
.
sourcepub fn goto_implementation(
&self,
position: FilePosition
) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
pub fn goto_implementation( &self, position: FilePosition ) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
Returns the impls from the symbol at position
.
sourcepub fn goto_type_definition(
&self,
position: FilePosition
) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
pub fn goto_type_definition( &self, position: FilePosition ) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
Returns the type definitions for the symbol at position
.
sourcepub fn find_all_refs(
&self,
position: FilePosition,
search_scope: Option<SearchScope>
) -> Cancellable<Option<Vec<ReferenceSearchResult>>>
pub fn find_all_refs( &self, position: FilePosition, search_scope: Option<SearchScope> ) -> Cancellable<Option<Vec<ReferenceSearchResult>>>
Finds all usages of the reference at point.
sourcepub fn hover(
&self,
config: &HoverConfig,
range: FileRange
) -> Cancellable<Option<RangeInfo<HoverResult>>>
pub fn hover( &self, config: &HoverConfig, range: FileRange ) -> Cancellable<Option<RangeInfo<HoverResult>>>
Returns a short text describing element at position.
sourcepub fn moniker(
&self,
position: FilePosition
) -> Cancellable<Option<RangeInfo<Vec<MonikerResult>>>>
pub fn moniker( &self, position: FilePosition ) -> Cancellable<Option<RangeInfo<Vec<MonikerResult>>>>
Returns moniker of symbol at position.
sourcepub fn external_docs(
&self,
position: FilePosition,
target_dir: Option<&str>,
sysroot: Option<&str>
) -> Cancellable<DocumentationLinks>
pub fn external_docs( &self, position: FilePosition, target_dir: Option<&str>, sysroot: Option<&str> ) -> Cancellable<DocumentationLinks>
Returns URL(s) for the documentation of the symbol under the cursor.
§Arguments
position
- Position in the file.target_dir
- Directory where the build output is storeda.
sourcepub fn signature_help(
&self,
position: FilePosition
) -> Cancellable<Option<SignatureHelp>>
pub fn signature_help( &self, position: FilePosition ) -> Cancellable<Option<SignatureHelp>>
Computes parameter information at the given position.
sourcepub fn call_hierarchy(
&self,
position: FilePosition
) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
pub fn call_hierarchy( &self, position: FilePosition ) -> Cancellable<Option<RangeInfo<Vec<NavigationTarget>>>>
Computes call hierarchy candidates for the given file position.
sourcepub fn incoming_calls(
&self,
position: FilePosition
) -> Cancellable<Option<Vec<CallItem>>>
pub fn incoming_calls( &self, position: FilePosition ) -> Cancellable<Option<Vec<CallItem>>>
Computes incoming calls for the given file position.
sourcepub fn outgoing_calls(
&self,
position: FilePosition
) -> Cancellable<Option<Vec<CallItem>>>
pub fn outgoing_calls( &self, position: FilePosition ) -> Cancellable<Option<Vec<CallItem>>>
Computes outgoing calls for the given file position.
sourcepub fn parent_module(
&self,
position: FilePosition
) -> Cancellable<Vec<NavigationTarget>>
pub fn parent_module( &self, position: FilePosition ) -> Cancellable<Vec<NavigationTarget>>
Returns a mod name;
declaration which created the current module.
sourcepub fn crates_for(&self, file_id: FileId) -> Cancellable<Vec<CrateId>>
pub fn crates_for(&self, file_id: FileId) -> Cancellable<Vec<CrateId>>
Returns crates this file belongs too.
sourcepub fn transitive_rev_deps(
&self,
crate_id: CrateId
) -> Cancellable<Vec<CrateId>>
pub fn transitive_rev_deps( &self, crate_id: CrateId ) -> Cancellable<Vec<CrateId>>
Returns crates this file belongs too.
sourcepub fn relevant_crates_for(&self, file_id: FileId) -> Cancellable<Vec<CrateId>>
pub fn relevant_crates_for(&self, file_id: FileId) -> Cancellable<Vec<CrateId>>
Returns crates this file might belong too.
sourcepub fn crate_edition(&self, crate_id: CrateId) -> Cancellable<Edition>
pub fn crate_edition(&self, crate_id: CrateId) -> Cancellable<Edition>
Returns the edition of the given crate.
sourcepub fn is_crate_no_std(&self, crate_id: CrateId) -> Cancellable<bool>
pub fn is_crate_no_std(&self, crate_id: CrateId) -> Cancellable<bool>
Returns true if this crate has no_std
or no_core
specified.
sourcepub fn crate_root(&self, crate_id: CrateId) -> Cancellable<FileId>
pub fn crate_root(&self, crate_id: CrateId) -> Cancellable<FileId>
Returns the root file of the given crate.
sourcepub fn runnables(&self, file_id: FileId) -> Cancellable<Vec<Runnable>>
pub fn runnables(&self, file_id: FileId) -> Cancellable<Vec<Runnable>>
Returns the set of possible targets to run for the current file.
Returns the set of tests for the given file position.
sourcepub fn highlight(
&self,
highlight_config: HighlightConfig,
file_id: FileId
) -> Cancellable<Vec<HlRange>>
pub fn highlight( &self, highlight_config: HighlightConfig, file_id: FileId ) -> Cancellable<Vec<HlRange>>
Computes syntax highlighting for the given file
Computes all ranges to highlight for a given item in a file.
sourcepub fn highlight_range(
&self,
highlight_config: HighlightConfig,
frange: FileRange
) -> Cancellable<Vec<HlRange>>
pub fn highlight_range( &self, highlight_config: HighlightConfig, frange: FileRange ) -> Cancellable<Vec<HlRange>>
Computes syntax highlighting for the given file range.
sourcepub fn highlight_as_html(
&self,
file_id: FileId,
rainbow: bool
) -> Cancellable<String>
pub fn highlight_as_html( &self, file_id: FileId, rainbow: bool ) -> Cancellable<String>
Computes syntax highlighting for the given file.
sourcepub fn completions(
&self,
config: &CompletionConfig,
position: FilePosition,
trigger_character: Option<char>
) -> Cancellable<Option<Vec<CompletionItem>>>
pub fn completions( &self, config: &CompletionConfig, position: FilePosition, trigger_character: Option<char> ) -> Cancellable<Option<Vec<CompletionItem>>>
Computes completions at the given position.
sourcepub fn resolve_completion_edits(
&self,
config: &CompletionConfig,
position: FilePosition,
imports: impl IntoIterator<Item = (String, String)> + UnwindSafe
) -> Cancellable<Vec<TextEdit>>
pub fn resolve_completion_edits( &self, config: &CompletionConfig, position: FilePosition, imports: impl IntoIterator<Item = (String, String)> + UnwindSafe ) -> Cancellable<Vec<TextEdit>>
Resolves additional completion data at the position given.
sourcepub fn diagnostics(
&self,
config: &DiagnosticsConfig,
resolve: AssistResolveStrategy,
file_id: FileId
) -> Cancellable<Vec<Diagnostic>>
pub fn diagnostics( &self, config: &DiagnosticsConfig, resolve: AssistResolveStrategy, file_id: FileId ) -> Cancellable<Vec<Diagnostic>>
Computes the set of diagnostics for the given file.
sourcepub fn assists_with_fixes(
&self,
assist_config: &AssistConfig,
diagnostics_config: &DiagnosticsConfig,
resolve: AssistResolveStrategy,
frange: FileRange
) -> Cancellable<Vec<Assist>>
pub fn assists_with_fixes( &self, assist_config: &AssistConfig, diagnostics_config: &DiagnosticsConfig, resolve: AssistResolveStrategy, frange: FileRange ) -> Cancellable<Vec<Assist>>
Convenience function to return assists + quick fixes for diagnostics
sourcepub fn rename(
&self,
position: FilePosition,
new_name: &str
) -> Cancellable<Result<SourceChange, RenameError>>
pub fn rename( &self, position: FilePosition, new_name: &str ) -> Cancellable<Result<SourceChange, RenameError>>
Returns the edit required to rename reference at the position to the new name.