1
1
use itertools:: Itertools ;
2
+ use ra_db:: FileRange ;
2
3
use ra_syntax:: {
3
4
SourceFile , TextRange , TextUnit , AstNode , SyntaxNode ,
4
5
SyntaxKind :: { self , WHITESPACE , COMMA , R_CURLY , R_PAREN , R_BRACK } ,
@@ -9,26 +10,19 @@ use ra_syntax::{
9
10
use ra_fmt:: {
10
11
compute_ws, extract_trivial_expression
11
12
} ;
12
- use ra_text_edit:: TextEditBuilder ;
13
- use ra_ide_api_light:: LocalEdit ;
13
+ use ra_text_edit:: { TextEdit , TextEditBuilder } ;
14
14
15
- pub fn join_lines ( file : & SourceFile , range : TextRange ) -> LocalEdit {
16
- let range = if range. is_empty ( ) {
15
+ pub fn join_lines ( file : & SourceFile , frange : FileRange ) -> TextEdit {
16
+ let range = if frange . range . is_empty ( ) {
17
17
let syntax = file. syntax ( ) ;
18
- let text = syntax. text ( ) . slice ( range. start ( ) ..) ;
18
+ let text = syntax. text ( ) . slice ( frange . range . start ( ) ..) ;
19
19
let pos = match text. find ( '\n' ) {
20
- None => {
21
- return LocalEdit {
22
- label : "join lines" . to_string ( ) ,
23
- edit : TextEditBuilder :: default ( ) . finish ( ) ,
24
- cursor_position : None ,
25
- } ;
26
- }
20
+ None => return TextEditBuilder :: default ( ) . finish ( ) ,
27
21
Some ( pos) => pos,
28
22
} ;
29
- TextRange :: offset_len ( range. start ( ) + pos, TextUnit :: of_char ( '\n' ) )
23
+ TextRange :: offset_len ( frange . range . start ( ) + pos, TextUnit :: of_char ( '\n' ) )
30
24
} else {
31
- range
25
+ frange . range
32
26
} ;
33
27
34
28
let node = find_covering_node ( file. syntax ( ) , range) ;
@@ -51,7 +45,7 @@ pub fn join_lines(file: &SourceFile, range: TextRange) -> LocalEdit {
51
45
}
52
46
}
53
47
54
- LocalEdit { label : "join lines" . to_string ( ) , edit : edit . finish ( ) , cursor_position : None }
48
+ edit. finish ( )
55
49
}
56
50
57
51
fn remove_newline (
0 commit comments