Lints and suggestions for the Nix programming language
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}