mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-02 15:32:06 +00:00
Simplify
This commit is contained in:
parent
822d9b55b7
commit
26fef97d59
@ -326,6 +326,7 @@ impl<'a> CompletionContext<'a> {
|
|||||||
matches!(self.completion_location, Some(ImmediateLocation::ItemList))
|
matches!(self.completion_location, Some(ImmediateLocation::ItemList))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: This shouldn't exist
|
||||||
pub(crate) fn expects_generic_arg(&self) -> bool {
|
pub(crate) fn expects_generic_arg(&self) -> bool {
|
||||||
matches!(self.completion_location, Some(ImmediateLocation::GenericArgList(_)))
|
matches!(self.completion_location, Some(ImmediateLocation::GenericArgList(_)))
|
||||||
}
|
}
|
||||||
@ -395,10 +396,6 @@ impl<'a> CompletionContext<'a> {
|
|||||||
matches!(self.path_context(), Some(PathCompletionCtx { kind: PathKind::Type, .. }))
|
matches!(self.path_context(), Some(PathCompletionCtx { kind: PathKind::Type, .. }))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn path_is_call(&self) -> bool {
|
|
||||||
self.path_context().map_or(false, |it| it.has_call_parens)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(crate) fn is_non_trivial_path(&self) -> bool {
|
pub(crate) fn is_non_trivial_path(&self) -> bool {
|
||||||
matches!(
|
matches!(
|
||||||
self.path_context(),
|
self.path_context(),
|
||||||
@ -417,10 +414,6 @@ impl<'a> CompletionContext<'a> {
|
|||||||
self.path_context().map(|it| it.kind)
|
self.path_context().map(|it| it.kind)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn is_immediately_after_macro_bang(&self) -> bool {
|
|
||||||
self.token.kind() == BANG && self.token.parent().map_or(false, |it| it.kind() == MACRO_CALL)
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Checks if an item is visible and not `doc(hidden)` at the completion site.
|
/// Checks if an item is visible and not `doc(hidden)` at the completion site.
|
||||||
pub(crate) fn is_visible<I>(&self, item: &I) -> Visible
|
pub(crate) fn is_visible<I>(&self, item: &I) -> Visible
|
||||||
where
|
where
|
||||||
|
@ -65,6 +65,19 @@ impl<'a> RenderContext<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_immediately_after_macro_bang(&self) -> bool {
|
||||||
|
self.completion.token.kind() == SyntaxKind::BANG
|
||||||
|
&& self
|
||||||
|
.completion
|
||||||
|
.token
|
||||||
|
.parent()
|
||||||
|
.map_or(false, |it| it.kind() == SyntaxKind::MACRO_CALL)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub(crate) fn path_is_call(&self) -> bool {
|
||||||
|
self.completion.path_context().map_or(false, |it| it.has_call_parens)
|
||||||
|
}
|
||||||
|
|
||||||
fn is_deprecated(&self, def: impl HasAttrs) -> bool {
|
fn is_deprecated(&self, def: impl HasAttrs) -> bool {
|
||||||
let attrs = def.attrs(self.db());
|
let attrs = def.attrs(self.db());
|
||||||
attrs.by_key("deprecated").exists() || attrs.by_key("rustc_deprecated").exists()
|
attrs.by_key("deprecated").exists() || attrs.by_key("rustc_deprecated").exists()
|
||||||
|
@ -20,7 +20,7 @@ fn render(
|
|||||||
name: hir::Name,
|
name: hir::Name,
|
||||||
macro_: hir::Macro,
|
macro_: hir::Macro,
|
||||||
) -> Builder {
|
) -> Builder {
|
||||||
let source_range = if completion.is_immediately_after_macro_bang() {
|
let source_range = if ctx.is_immediately_after_macro_bang() {
|
||||||
cov_mark::hit!(completes_macro_call_if_cursor_at_bang_token);
|
cov_mark::hit!(completes_macro_call_if_cursor_at_bang_token);
|
||||||
completion.token.parent().map_or_else(|| ctx.source_range(), |it| it.text_range())
|
completion.token.parent().map_or_else(|| ctx.source_range(), |it| it.text_range())
|
||||||
} else {
|
} else {
|
||||||
@ -52,7 +52,7 @@ fn render(
|
|||||||
|
|
||||||
let name = &*name;
|
let name = &*name;
|
||||||
match ctx.snippet_cap() {
|
match ctx.snippet_cap() {
|
||||||
Some(cap) if needs_bang && !completion.path_is_call() => {
|
Some(cap) if needs_bang && !ctx.path_is_call() => {
|
||||||
let snippet = format!("{}!{}$0{}", name, bra, ket);
|
let snippet = format!("{}!{}$0{}", name, bra, ket);
|
||||||
let lookup = banged_name(name);
|
let lookup = banged_name(name);
|
||||||
item.insert_snippet(cap, snippet).lookup_by(lookup);
|
item.insert_snippet(cap, snippet).lookup_by(lookup);
|
||||||
|
Loading…
Reference in New Issue
Block a user