@@ -2,9 +2,7 @@ use std::borrow::Cow;
22
33use syntax:: {
44 ast:: { self , HasQuotes , HasStringValue } ,
5- AstToken ,
6- SyntaxKind :: { RAW_STRING , STRING } ,
7- TextRange , TextSize ,
5+ AstToken , TextRange , TextSize ,
86} ;
97use test_utils:: mark;
108
@@ -26,7 +24,10 @@ use crate::{AssistContext, AssistId, AssistKind, Assists};
2624// }
2725// ```
2826pub ( crate ) fn make_raw_string ( acc : & mut Assists , ctx : & AssistContext ) -> Option < ( ) > {
29- let token = ctx. find_token_at_offset ( STRING ) . and_then ( ast:: String :: cast) ?;
27+ let token = ctx. find_token_at_offset :: < ast:: String > ( ) ?;
28+ if token. is_raw ( ) {
29+ return None ;
30+ }
3031 let value = token. value ( ) ?;
3132 let target = token. syntax ( ) . text_range ( ) ;
3233 acc. add (
@@ -65,7 +66,10 @@ pub(crate) fn make_raw_string(acc: &mut Assists, ctx: &AssistContext) -> Option<
6566// }
6667// ```
6768pub ( crate ) fn make_usual_string ( acc : & mut Assists , ctx : & AssistContext ) -> Option < ( ) > {
68- let token = ctx. find_token_at_offset ( RAW_STRING ) . and_then ( ast:: RawString :: cast) ?;
69+ let token = ctx. find_token_at_offset :: < ast:: String > ( ) ?;
70+ if !token. is_raw ( ) {
71+ return None ;
72+ }
6973 let value = token. value ( ) ?;
7074 let target = token. syntax ( ) . text_range ( ) ;
7175 acc. add (
@@ -104,11 +108,15 @@ pub(crate) fn make_usual_string(acc: &mut Assists, ctx: &AssistContext) -> Optio
104108// }
105109// ```
106110pub ( crate ) fn add_hash ( acc : & mut Assists , ctx : & AssistContext ) -> Option < ( ) > {
107- let token = ctx. find_token_at_offset ( RAW_STRING ) ?;
108- let target = token. text_range ( ) ;
111+ let token = ctx. find_token_at_offset :: < ast:: String > ( ) ?;
112+ if !token. is_raw ( ) {
113+ return None ;
114+ }
115+ let text_range = token. syntax ( ) . text_range ( ) ;
116+ let target = text_range;
109117 acc. add ( AssistId ( "add_hash" , AssistKind :: Refactor ) , "Add #" , target, |edit| {
110- edit. insert ( token . text_range ( ) . start ( ) + TextSize :: of ( 'r' ) , "#" ) ;
111- edit. insert ( token . text_range ( ) . end ( ) , "#" ) ;
118+ edit. insert ( text_range. start ( ) + TextSize :: of ( 'r' ) , "#" ) ;
119+ edit. insert ( text_range. end ( ) , "#" ) ;
112120 } )
113121}
114122
@@ -128,7 +136,10 @@ pub(crate) fn add_hash(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
128136// }
129137// ```
130138pub ( crate ) fn remove_hash ( acc : & mut Assists , ctx : & AssistContext ) -> Option < ( ) > {
131- let token = ctx. find_token_at_offset ( RAW_STRING ) . and_then ( ast:: RawString :: cast) ?;
139+ let token = ctx. find_token_at_offset :: < ast:: String > ( ) ?;
140+ if !token. is_raw ( ) {
141+ return None ;
142+ }
132143
133144 let text = token. text ( ) . as_str ( ) ;
134145 if !text. starts_with ( "r#" ) && text. ends_with ( '#' ) {
0 commit comments