diff --git a/crates/language/src/buffer.rs b/crates/language/src/buffer.rs index 69d51ce9dbeb482eca2026f5f1d3055cd4d7b14d..7fb414166d94c9726c7eb64d1a5c8574ce85fab6 100644 --- a/crates/language/src/buffer.rs +++ b/crates/language/src/buffer.rs @@ -1902,7 +1902,7 @@ impl BufferSnapshot { } while stack.last().map_or(false, |prev_range| { - !prev_range.contains(&item_range.start) || !prev_range.contains(&item_range.end) + prev_range.start > item_range.start || prev_range.end < item_range.end }) { stack.pop(); } diff --git a/crates/zed/src/languages/python/brackets.scm b/crates/zed/src/languages/python/brackets.scm new file mode 100644 index 0000000000000000000000000000000000000000..191fd9c084a52eced37428281971ff9e569a4932 --- /dev/null +++ b/crates/zed/src/languages/python/brackets.scm @@ -0,0 +1,3 @@ +("(" @open ")" @close) +("[" @open "]" @close) +("{" @open "}" @close) diff --git a/crates/zed/src/languages/python/outline.scm b/crates/zed/src/languages/python/outline.scm new file mode 100644 index 0000000000000000000000000000000000000000..373c7c7c68b3b2a97e753c4fca09b6c2e42c68e6 --- /dev/null +++ b/crates/zed/src/languages/python/outline.scm @@ -0,0 +1,9 @@ +(class_definition + "class" @context + name: (identifier) @name + ) @item + +(function_definition + "async"? @context + "def" @context + name: (_) @name) @item \ No newline at end of file