mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-04 19:12:50 +00:00
move node at offset to aglo already
This commit is contained in:
parent
1b82084a5f
commit
702bdacb03
@ -5,8 +5,8 @@ use ra_syntax::{
|
||||
AstNode, SyntaxNode, TextUnit, TextRange,
|
||||
SyntaxKind::FN_DEF,
|
||||
ast::{self, ArgListOwner, DocCommentsOwner},
|
||||
algo::find_node_at_offset,
|
||||
};
|
||||
use ra_editor::find_node_at_offset;
|
||||
|
||||
use crate::{FilePosition, CallInfo, db::RootDatabase};
|
||||
|
||||
|
@ -1,9 +1,8 @@
|
||||
use ra_editor::find_node_at_offset;
|
||||
use ra_text_edit::AtomTextEdit;
|
||||
use ra_syntax::{
|
||||
AstNode, SyntaxNode, SourceFile, TextUnit, TextRange,
|
||||
ast,
|
||||
algo::{find_leaf_at_offset, find_covering_node},
|
||||
algo::{find_leaf_at_offset, find_covering_node, find_node_at_offset},
|
||||
SyntaxKind::*,
|
||||
};
|
||||
use hir::source_binder;
|
||||
|
@ -1,7 +1,8 @@
|
||||
use ra_db::{FileId, Cancelable, SyntaxDatabase};
|
||||
use ra_syntax::{TextRange, AstNode, ast, SyntaxKind::{NAME, MODULE}};
|
||||
|
||||
use ra_editor::find_node_at_offset;
|
||||
use ra_syntax::{
|
||||
TextRange, AstNode, ast, SyntaxKind::{NAME, MODULE},
|
||||
algo::find_node_at_offset,
|
||||
};
|
||||
|
||||
use crate::{FilePosition, NavigationTarget, db::RootDatabase};
|
||||
|
||||
|
@ -1,9 +1,8 @@
|
||||
use ra_db::{Cancelable, SyntaxDatabase};
|
||||
use ra_editor::find_node_at_offset;
|
||||
use ra_syntax::{
|
||||
AstNode, SyntaxNode, TreePtr,
|
||||
ast::{self, NameOwner},
|
||||
algo::{find_covering_node, find_leaf_at_offset, visit::{visitor, Visitor}},
|
||||
algo::{find_covering_node, find_node_at_offset, find_leaf_at_offset, visit::{visitor, Visitor}},
|
||||
};
|
||||
|
||||
use crate::{db::RootDatabase, RangeInfo, FilePosition, FileRange, NavigationTarget};
|
||||
|
@ -6,10 +6,11 @@ use hir::{
|
||||
self, Problem, source_binder,
|
||||
};
|
||||
use ra_db::{FilesDatabase, SourceRoot, SourceRootId, SyntaxDatabase};
|
||||
use ra_editor::{self, find_node_at_offset, assists, LocalEdit, Severity};
|
||||
use ra_editor::{self, assists, LocalEdit, Severity};
|
||||
use ra_syntax::{
|
||||
TextRange, AstNode, SourceFile,
|
||||
ast::{self, NameOwner},
|
||||
algo::find_node_at_offset,
|
||||
SyntaxKind::*,
|
||||
};
|
||||
|
||||
|
@ -14,13 +14,11 @@ mod replace_if_let_with_match;
|
||||
use ra_text_edit::{TextEdit, TextEditBuilder};
|
||||
use ra_syntax::{
|
||||
Direction, SyntaxNode, TextUnit, TextRange, SourceFile, AstNode,
|
||||
algo::{find_leaf_at_offset, find_covering_node, LeafAtOffset},
|
||||
algo::{find_leaf_at_offset, find_node_at_offset, find_covering_node, LeafAtOffset},
|
||||
ast::{self, AstToken},
|
||||
};
|
||||
use itertools::Itertools;
|
||||
|
||||
use crate::find_node_at_offset;
|
||||
|
||||
pub use self::{
|
||||
flip_comma::flip_comma,
|
||||
add_derive::add_derive,
|
||||
|
@ -120,10 +120,6 @@ pub fn syntax_tree(file: &SourceFile) -> String {
|
||||
::ra_syntax::utils::dump_tree(file.syntax())
|
||||
}
|
||||
|
||||
pub fn find_node_at_offset<N: AstNode>(syntax: &SyntaxNode, offset: TextUnit) -> Option<&N> {
|
||||
find_leaf_at_offset(syntax, offset).find_map(|leaf| leaf.ancestors().find_map(N::cast))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use ra_syntax::AstNode;
|
||||
|
@ -2,7 +2,7 @@ use std::mem;
|
||||
|
||||
use itertools::Itertools;
|
||||
use ra_syntax::{
|
||||
algo::{find_covering_node, find_leaf_at_offset, LeafAtOffset},
|
||||
algo::{find_node_at_offset, find_covering_node, find_leaf_at_offset, LeafAtOffset},
|
||||
ast,
|
||||
text_utils::intersect,
|
||||
AstNode, Direction, SourceFile, SyntaxKind,
|
||||
@ -11,7 +11,7 @@ use ra_syntax::{
|
||||
};
|
||||
use ra_text_edit::text_utils::contains_offset_nonstrict;
|
||||
|
||||
use crate::{find_node_at_offset, LocalEdit, TextEditBuilder};
|
||||
use crate::{LocalEdit, TextEditBuilder};
|
||||
|
||||
pub fn join_lines(file: &SourceFile, range: TextRange) -> LocalEdit {
|
||||
let range = if range.is_empty() {
|
||||
|
@ -308,8 +308,7 @@ pub struct ReferenceDescriptor {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use ra_editor::find_node_at_offset;
|
||||
use ra_syntax::SourceFile;
|
||||
use ra_syntax::{SourceFile, algo::find_node_at_offset};
|
||||
use test_utils::{extract_offset, assert_eq_text};
|
||||
|
||||
use crate::expr;
|
||||
|
@ -6,10 +6,10 @@
|
||||
/// So, this modules should not be used during hir construction, it exists
|
||||
/// purely for "IDE needs".
|
||||
use ra_db::{FileId, FilePosition, Cancelable};
|
||||
use ra_editor::find_node_at_offset;
|
||||
use ra_syntax::{
|
||||
SmolStr, TextRange, SyntaxNode,
|
||||
ast::{self, AstNode, NameOwner},
|
||||
algo::find_node_at_offset,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
|
@ -2,7 +2,7 @@ pub mod visit;
|
||||
|
||||
use rowan::TransparentNewType;
|
||||
|
||||
use crate::{SyntaxNode, TextRange, TextUnit};
|
||||
use crate::{SyntaxNode, TextRange, TextUnit, AstNode};
|
||||
|
||||
pub use rowan::LeafAtOffset;
|
||||
|
||||
@ -16,6 +16,10 @@ pub fn find_leaf_at_offset(node: &SyntaxNode, offset: TextUnit) -> LeafAtOffset<
|
||||
}
|
||||
}
|
||||
|
||||
pub fn find_node_at_offset<N: AstNode>(syntax: &SyntaxNode, offset: TextUnit) -> Option<&N> {
|
||||
find_leaf_at_offset(syntax, offset).find_map(|leaf| leaf.ancestors().find_map(N::cast))
|
||||
}
|
||||
|
||||
pub fn find_covering_node(root: &SyntaxNode, range: TextRange) -> &SyntaxNode {
|
||||
SyntaxNode::from_repr(root.0.covering_node(range))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user