11use ra_syntax:: {
22 ast:: { self , NameOwner , VisibilityOwner } ,
33 AstNode ,
4- SyntaxKind :: {
5- ATTR , COMMENT , CONST_DEF , ENUM_DEF , FN_DEF , MODULE , STRUCT_DEF , TRAIT_DEF , VISIBILITY ,
6- WHITESPACE ,
7- } ,
8- SyntaxNode , TextSize , T ,
4+ SyntaxKind :: { CONST_DEF , ENUM_DEF , FN_DEF , MODULE , STRUCT_DEF , TRAIT_DEF , VISIBILITY } ,
5+ T ,
96} ;
107use test_utils:: mark;
118
12- use crate :: { AssistContext , AssistId , Assists } ;
9+ use crate :: { utils :: vis_offset , AssistContext , AssistId , Assists } ;
1310
1411// Assist: change_visibility
1512//
@@ -30,9 +27,8 @@ pub(crate) fn change_visibility(acc: &mut Assists, ctx: &AssistContext) -> Optio
3027}
3128
3229fn add_vis ( acc : & mut Assists , ctx : & AssistContext ) -> Option < ( ) > {
33- let item_keyword = ctx. token_at_offset ( ) . find ( |leaf| match leaf. kind ( ) {
34- T ! [ const ] | T ! [ fn ] | T ! [ mod ] | T ! [ struct ] | T ! [ enum ] | T ! [ trait ] => true ,
35- _ => false ,
30+ let item_keyword = ctx. token_at_offset ( ) . find ( |leaf| {
31+ matches ! ( leaf. kind( ) , T ![ const ] | T ![ fn ] | T ![ mod ] | T ![ struct ] | T ![ enum ] | T ![ trait ] )
3632 } ) ;
3733
3834 let ( offset, target) = if let Some ( keyword) = item_keyword {
@@ -71,17 +67,6 @@ fn add_vis(acc: &mut Assists, ctx: &AssistContext) -> Option<()> {
7167 } )
7268}
7369
74- fn vis_offset ( node : & SyntaxNode ) -> TextSize {
75- node. children_with_tokens ( )
76- . skip_while ( |it| match it. kind ( ) {
77- WHITESPACE | COMMENT | ATTR => true ,
78- _ => false ,
79- } )
80- . next ( )
81- . map ( |it| it. text_range ( ) . start ( ) )
82- . unwrap_or_else ( || node. text_range ( ) . start ( ) )
83- }
84-
8570fn change_vis ( acc : & mut Assists , vis : ast:: Visibility ) -> Option < ( ) > {
8671 if vis. syntax ( ) . text ( ) == "pub" {
8772 let target = vis. syntax ( ) . text_range ( ) ;
0 commit comments