Rename get_outer_macro
to macro_call_for_string_token
This commit is contained in:
parent
3c39668ca4
commit
a807cc3afb
@ -1,11 +1,10 @@
|
|||||||
//! Completes environment variables defined by Cargo (https://doc.rust-lang.org/cargo/reference/environment-variables.html)
|
//! Completes environment variables defined by Cargo (https://doc.rust-lang.org/cargo/reference/environment-variables.html)
|
||||||
use hir::Semantics;
|
use hir::Semantics;
|
||||||
use ide_db::{syntax_helpers::node_ext::get_outer_macro, RootDatabase};
|
use ide_db::{syntax_helpers::node_ext::macro_call_for_string_token, RootDatabase};
|
||||||
use syntax::ast::{self, IsString};
|
use syntax::ast::{self, IsString};
|
||||||
|
|
||||||
use crate::{context::CompletionContext, CompletionItem, CompletionItemKind};
|
use crate::{context::CompletionContext, CompletionItem, CompletionItemKind, completions::Completions};
|
||||||
|
|
||||||
use super::Completions;
|
|
||||||
const CARGO_DEFINED_VARS: &[(&str, &str)] = &[
|
const CARGO_DEFINED_VARS: &[(&str, &str)] = &[
|
||||||
("CARGO","Path to the cargo binary performing the build"),
|
("CARGO","Path to the cargo binary performing the build"),
|
||||||
("CARGO_MANIFEST_DIR","The directory containing the manifest of your package"),
|
("CARGO_MANIFEST_DIR","The directory containing the manifest of your package"),
|
||||||
@ -50,7 +49,7 @@ fn guard_env_macro(
|
|||||||
string: &ast::String,
|
string: &ast::String,
|
||||||
semantics: &Semantics<'_, RootDatabase>,
|
semantics: &Semantics<'_, RootDatabase>,
|
||||||
) -> Option<()> {
|
) -> Option<()> {
|
||||||
let call = get_outer_macro(string)?;
|
let call = macro_call_for_string_token(string)?;
|
||||||
let name = call.path()?.segment()?.name_ref()?;
|
let name = call.path()?.segment()?.name_ref()?;
|
||||||
let makro = semantics.resolve_macro_call(&call)?;
|
let makro = semantics.resolve_macro_call(&call)?;
|
||||||
let db = semantics.db;
|
let db = semantics.db;
|
||||||
|
@ -3,8 +3,7 @@ use syntax::{
|
|||||||
ast::{self, IsString},
|
ast::{self, IsString},
|
||||||
TextRange, TextSize,
|
TextRange, TextSize,
|
||||||
};
|
};
|
||||||
|
use crate::syntax_helpers::node_ext::macro_call_for_string_token;
|
||||||
use super::node_ext::get_outer_macro;
|
|
||||||
|
|
||||||
pub fn is_format_string(string: &ast::String) -> bool {
|
pub fn is_format_string(string: &ast::String) -> bool {
|
||||||
// Check if `string` is a format string argument of a macro invocation.
|
// Check if `string` is a format string argument of a macro invocation.
|
||||||
@ -16,7 +15,7 @@ pub fn is_format_string(string: &ast::String) -> bool {
|
|||||||
// This setup lets us correctly highlight the components of `concat!("{}", "bla")` format
|
// This setup lets us correctly highlight the components of `concat!("{}", "bla")` format
|
||||||
// strings. It still fails for `concat!("{", "}")`, but that is rare.
|
// strings. It still fails for `concat!("{", "}")`, but that is rare.
|
||||||
(|| {
|
(|| {
|
||||||
let name = get_outer_macro(string)?.path()?.segment()?.name_ref()?;
|
let name = macro_call_for_string_token(string)?.path()?.segment()?.name_ref()?;
|
||||||
|
|
||||||
if !matches!(
|
if !matches!(
|
||||||
name.text().as_str(),
|
name.text().as_str(),
|
||||||
|
@ -458,7 +458,7 @@ pub fn parse_tt_as_comma_sep_paths(input: ast::TokenTree) -> Option<Vec<ast::Pat
|
|||||||
Some(paths)
|
Some(paths)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_outer_macro(string: &ast::String) -> Option<MacroCall> {
|
pub fn macro_call_for_string_token(string: &ast::String) -> Option<MacroCall> {
|
||||||
let macro_call = string.syntax().parent_ancestors().find_map(ast::MacroCall::cast)?;
|
let macro_call = string.syntax().parent_ancestors().find_map(ast::MacroCall::cast)?;
|
||||||
Some(macro_call)
|
Some(macro_call)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user