introduce CallInfo
This commit is contained in:
@@ -7,10 +7,21 @@ use ra_syntax::{
|
||||
use ra_editor::find_node_at_offset;
|
||||
use hir::FnSignatureInfo;
|
||||
|
||||
use crate::{FilePosition, db::RootDatabase};
|
||||
use crate::{FilePosition, CallInfo, db::RootDatabase};
|
||||
|
||||
pub(crate) fn call_info(db: &RootDatabase, position: FilePosition) -> Cancelable<Option<CallInfo>> {
|
||||
let (sig_info, active_parameter) = ctry!(call_info_(db, position)?);
|
||||
let res = CallInfo {
|
||||
label: sig_info.label,
|
||||
doc: sig_info.doc,
|
||||
parameters: sig_info.params,
|
||||
active_parameter,
|
||||
};
|
||||
Ok(Some(res))
|
||||
}
|
||||
|
||||
/// Computes parameter information for the given call expression.
|
||||
pub(crate) fn call_info(
|
||||
fn call_info_(
|
||||
db: &RootDatabase,
|
||||
position: FilePosition,
|
||||
) -> Cancelable<Option<(FnSignatureInfo, Option<usize>)>> {
|
||||
|
||||
@@ -273,6 +273,14 @@ impl<T> RangeInfo<T> {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct CallInfo {
|
||||
pub label: String,
|
||||
pub doc: Option<String>,
|
||||
pub parameters: Vec<String>,
|
||||
pub active_parameter: Option<usize>,
|
||||
}
|
||||
|
||||
/// `AnalysisHost` stores the current state of the world.
|
||||
#[derive(Debug, Default)]
|
||||
pub struct AnalysisHost {
|
||||
@@ -393,10 +401,7 @@ impl Analysis {
|
||||
hover::hover(&*self.db, position)
|
||||
}
|
||||
/// Computes parameter information for the given call expression.
|
||||
pub fn call_info(
|
||||
&self,
|
||||
position: FilePosition,
|
||||
) -> Cancelable<Option<(FnSignatureInfo, Option<usize>)>> {
|
||||
pub fn call_info(&self, position: FilePosition) -> Cancelable<Option<CallInfo>> {
|
||||
call_info::call_info(&*self.db, position)
|
||||
}
|
||||
/// Returns a `mod name;` declaration which created the current module.
|
||||
|
||||
Reference in New Issue
Block a user