mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 04:44:57 +00:00
Use FilePosition everywhere
This commit is contained in:
parent
1e1c188cbf
commit
0192c116f7
7 changed files with 124 additions and 157 deletions
|
@ -2,7 +2,7 @@ use languageserver_types::{
|
|||
Location, Position, Range, SymbolKind, TextDocumentEdit, TextDocumentIdentifier,
|
||||
TextDocumentItem, TextDocumentPositionParams, TextEdit, Url, VersionedTextDocumentIdentifier,
|
||||
};
|
||||
use ra_analysis::{FileId, FileSystemEdit, SourceChange, SourceFileEdit};
|
||||
use ra_analysis::{FileId, FileSystemEdit, SourceChange, SourceFileEdit, FilePosition};
|
||||
use ra_editor::{AtomEdit, Edit, LineCol, LineIndex};
|
||||
use ra_syntax::{SyntaxKind, TextRange, TextUnit};
|
||||
|
||||
|
@ -165,6 +165,17 @@ impl<'a> TryConvWith for &'a TextDocumentIdentifier {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'a> TryConvWith for &'a TextDocumentPositionParams {
|
||||
type Ctx = ServerWorld;
|
||||
type Output = FilePosition;
|
||||
fn try_conv_with(self, world: &ServerWorld) -> Result<FilePosition> {
|
||||
let file_id = self.text_document.try_conv_with(world)?;
|
||||
let line_index = world.analysis().file_line_index(file_id);
|
||||
let offset = self.position.conv_with(&line_index);
|
||||
Ok(FilePosition { file_id, offset })
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: TryConvWith> TryConvWith for Vec<T> {
|
||||
type Ctx = <T as TryConvWith>::Ctx;
|
||||
type Output = Vec<<T as TryConvWith>::Output>;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue