@@ -96,10 +96,8 @@ fn walk(node: Option<Node>) -> usize {
96 walk(Some(parent)) + increment
96 walk(Some(parent)) + increment
99−fn suggested_indent_for_line(state: &State, line_num: usize) -> usize {
99+fn find_first_non_whitespace_char(state: &State, line_num: usize) -> usize {
100 let line = state.doc.line(line_num);
100 let line = state.doc.line(line_num);
101− let current = indent_level_for_line(line);
103 let mut start = state.doc.line_to_char(line_num);
101 let mut start = state.doc.line_to_char(line_num);
105 // find first non-whitespace char
103 // find first non-whitespace char
@@ -110,6 +108,14 @@ fn suggested_indent_for_line(state: &State, line_num: usize) -> usize {
111 start += 1;
109 start += 1;
114+fn suggested_indent_for_line(state: &State, line_num: usize) -> usize {
115+ let line = state.doc.line(line_num);
116+ let current = indent_level_for_line(line);
118+ let start = find_first_non_whitespace_char(state, line_num);
114 suggested_indent_for_pos(state, start)
120 suggested_indent_for_pos(state, start)
@@ -126,7 +132,7 @@ pub fn suggested_indent_for_pos(state: &State, pos: usize) -> usize {
127 indentation
133 indentation
129− // TODO: case for non-tree sitter grammars
135+ // TODO: heuristics for non-tree sitter grammars