Lints and suggestions for the Nix programming language
at main 16 lines 485 B view raw
1use rnix::{SyntaxKind, SyntaxNode, TextRange}; 2 3pub fn with_preceeding_whitespace(node: &SyntaxNode) -> TextRange { 4 let start = node.prev_sibling_or_token().map_or_else( 5 || node.text_range().start(), 6 |t| { 7 if t.kind() == SyntaxKind::TOKEN_WHITESPACE { 8 t.text_range().start() 9 } else { 10 t.text_range().end() 11 } 12 }, 13 ); 14 let end = node.text_range().end(); 15 TextRange::new(start, end) 16}