@@ -13,8 +13,13 @@ pub fn expand_selection(syntax: &Syntax, text: RopeSlice, selection: &Selection)
1313 let parent = match tree
1414 .root_node()
1515 .descendant_for_byte_range(from, to)
16− .and_then(|node| node.parent())
17− {
16+ .and_then(|node| {
17+ if node.child_count() == 0 || (node.start_byte() == from && node.end_byte() == to) {
18+ node.parent()
19+ } else {
20+ Some(node)
21+ }
22+ }) {
1823 Some(parent) => parent,
1924 None => return range,
2025 };