@@ -20,6 +20,7 @@ use language::{
FakeLspAdapter, IndentGuide, LanguageConfig, LanguageConfigOverride, LanguageMatcher, Override,
Point,
};
+use language_settings::IndentGuideSettings;
use multi_buffer::MultiBufferIndentGuide;
use parking_lot::Mutex;
use project::project_settings::{LspSettings, ProjectSettings};
@@ -11505,6 +11506,7 @@ fn assert_indent_guides(
let snapshot = editor.snapshot(cx).display_snapshot;
let mut indent_guides: Vec<_> = crate::indent_guides::indent_guides_in_range(
MultiBufferRow(range.start)..MultiBufferRow(range.end),
+ true,
&snapshot,
cx,
);
@@ -11543,6 +11545,21 @@ fn assert_indent_guides(
assert_eq!(indent_guides, expected, "Indent guides do not match");
}
+fn indent_guide(buffer_id: BufferId, start_row: u32, end_row: u32, depth: u32) -> IndentGuide {
+ IndentGuide {
+ buffer_id,
+ start_row,
+ end_row,
+ depth,
+ tab_size: 4,
+ settings: IndentGuideSettings {
+ enabled: true,
+ line_width: 1,
+ ..Default::default()
+ },
+ }
+}
+
#[gpui::test]
async fn test_indent_guide_single_line(cx: &mut gpui::TestAppContext) {
let (buffer_id, mut cx) = setup_indent_guides_editor(
@@ -11555,12 +11572,7 @@ async fn test_indent_guide_single_line(cx: &mut gpui::TestAppContext) {
)
.await;
- assert_indent_guides(
- 0..3,
- vec![IndentGuide::new(buffer_id, 1, 1, 0, 4)],
- None,
- &mut cx,
- );
+ assert_indent_guides(0..3, vec![indent_guide(buffer_id, 1, 1, 0)], None, &mut cx);
}
#[gpui::test]
@@ -11576,12 +11588,7 @@ async fn test_indent_guide_simple_block(cx: &mut gpui::TestAppContext) {
)
.await;
- assert_indent_guides(
- 0..4,
- vec![IndentGuide::new(buffer_id, 1, 2, 0, 4)],
- None,
- &mut cx,
- );
+ assert_indent_guides(0..4, vec![indent_guide(buffer_id, 1, 2, 0)], None, &mut cx);
}
#[gpui::test]
@@ -11604,9 +11611,9 @@ async fn test_indent_guide_nested(cx: &mut gpui::TestAppContext) {
assert_indent_guides(
0..8,
vec![
- IndentGuide::new(buffer_id, 1, 6, 0, 4),
- IndentGuide::new(buffer_id, 3, 3, 1, 4),
- IndentGuide::new(buffer_id, 5, 5, 1, 4),
+ indent_guide(buffer_id, 1, 6, 0),
+ indent_guide(buffer_id, 3, 3, 1),
+ indent_guide(buffer_id, 5, 5, 1),
],
None,
&mut cx,
@@ -11630,8 +11637,8 @@ async fn test_indent_guide_tab(cx: &mut gpui::TestAppContext) {
assert_indent_guides(
0..5,
vec![
- IndentGuide::new(buffer_id, 1, 3, 0, 4),
- IndentGuide::new(buffer_id, 2, 2, 1, 4),
+ indent_guide(buffer_id, 1, 3, 0),
+ indent_guide(buffer_id, 2, 2, 1),
],
None,
&mut cx,
@@ -11652,12 +11659,7 @@ async fn test_indent_guide_continues_on_empty_line(cx: &mut gpui::TestAppContext
)
.await;
- assert_indent_guides(
- 0..5,
- vec![IndentGuide::new(buffer_id, 1, 3, 0, 4)],
- None,
- &mut cx,
- );
+ assert_indent_guides(0..5, vec![indent_guide(buffer_id, 1, 3, 0)], None, &mut cx);
}
#[gpui::test]
@@ -11683,9 +11685,9 @@ async fn test_indent_guide_complex(cx: &mut gpui::TestAppContext) {
assert_indent_guides(
0..11,
vec![
- IndentGuide::new(buffer_id, 1, 9, 0, 4),
- IndentGuide::new(buffer_id, 6, 6, 1, 4),
- IndentGuide::new(buffer_id, 8, 8, 1, 4),
+ indent_guide(buffer_id, 1, 9, 0),
+ indent_guide(buffer_id, 6, 6, 1),
+ indent_guide(buffer_id, 8, 8, 1),
],
None,
&mut cx,
@@ -11715,9 +11717,9 @@ async fn test_indent_guide_starts_off_screen(cx: &mut gpui::TestAppContext) {
assert_indent_guides(
1..11,
vec![
- IndentGuide::new(buffer_id, 1, 9, 0, 4),
- IndentGuide::new(buffer_id, 6, 6, 1, 4),
- IndentGuide::new(buffer_id, 8, 8, 1, 4),
+ indent_guide(buffer_id, 1, 9, 0),
+ indent_guide(buffer_id, 6, 6, 1),
+ indent_guide(buffer_id, 8, 8, 1),
],
None,
&mut cx,
@@ -11747,9 +11749,9 @@ async fn test_indent_guide_ends_off_screen(cx: &mut gpui::TestAppContext) {
assert_indent_guides(
1..10,
vec![
- IndentGuide::new(buffer_id, 1, 9, 0, 4),
- IndentGuide::new(buffer_id, 6, 6, 1, 4),
- IndentGuide::new(buffer_id, 8, 8, 1, 4),
+ indent_guide(buffer_id, 1, 9, 0),
+ indent_guide(buffer_id, 6, 6, 1),
+ indent_guide(buffer_id, 8, 8, 1),
],
None,
&mut cx,
@@ -11775,9 +11777,9 @@ async fn test_indent_guide_without_brackets(cx: &mut gpui::TestAppContext) {
assert_indent_guides(
1..10,
vec![
- IndentGuide::new(buffer_id, 1, 4, 0, 4),
- IndentGuide::new(buffer_id, 2, 3, 1, 4),
- IndentGuide::new(buffer_id, 3, 3, 2, 4),
+ indent_guide(buffer_id, 1, 4, 0),
+ indent_guide(buffer_id, 2, 3, 1),
+ indent_guide(buffer_id, 3, 3, 2),
],
None,
&mut cx,
@@ -11802,8 +11804,8 @@ async fn test_indent_guide_ends_before_empty_line(cx: &mut gpui::TestAppContext)
assert_indent_guides(
0..6,
vec![
- IndentGuide::new(buffer_id, 1, 2, 0, 4),
- IndentGuide::new(buffer_id, 2, 2, 1, 4),
+ indent_guide(buffer_id, 1, 2, 0),
+ indent_guide(buffer_id, 2, 2, 1),
],
None,
&mut cx,
@@ -11825,12 +11827,7 @@ async fn test_indent_guide_continuing_off_screen(cx: &mut gpui::TestAppContext)
)
.await;
- assert_indent_guides(
- 0..1,
- vec![IndentGuide::new(buffer_id, 1, 1, 0, 4)],
- None,
- &mut cx,
- );
+ assert_indent_guides(0..1, vec![indent_guide(buffer_id, 1, 1, 0)], None, &mut cx);
}
#[gpui::test]
@@ -11852,8 +11849,8 @@ async fn test_indent_guide_tabs(cx: &mut gpui::TestAppContext) {
assert_indent_guides(
0..6,
vec![
- IndentGuide::new(buffer_id, 1, 6, 0, 4),
- IndentGuide::new(buffer_id, 3, 4, 1, 4),
+ indent_guide(buffer_id, 1, 6, 0),
+ indent_guide(buffer_id, 3, 4, 1),
],
None,
&mut cx,
@@ -11880,7 +11877,7 @@ async fn test_active_indent_guide_single_line(cx: &mut gpui::TestAppContext) {
assert_indent_guides(
0..3,
- vec![IndentGuide::new(buffer_id, 1, 1, 0, 4)],
+ vec![indent_guide(buffer_id, 1, 1, 0)],
Some(vec![0]),
&mut cx,
);
@@ -11909,8 +11906,8 @@ async fn test_active_indent_guide_respect_indented_range(cx: &mut gpui::TestAppC
assert_indent_guides(
0..4,
vec![
- IndentGuide::new(buffer_id, 1, 3, 0, 4),
- IndentGuide::new(buffer_id, 2, 2, 1, 4),
+ indent_guide(buffer_id, 1, 3, 0),
+ indent_guide(buffer_id, 2, 2, 1),
],
Some(vec![1]),
&mut cx,
@@ -11925,8 +11922,8 @@ async fn test_active_indent_guide_respect_indented_range(cx: &mut gpui::TestAppC
assert_indent_guides(
0..4,
vec![
- IndentGuide::new(buffer_id, 1, 3, 0, 4),
- IndentGuide::new(buffer_id, 2, 2, 1, 4),
+ indent_guide(buffer_id, 1, 3, 0),
+ indent_guide(buffer_id, 2, 2, 1),
],
Some(vec![1]),
&mut cx,
@@ -11941,8 +11938,8 @@ async fn test_active_indent_guide_respect_indented_range(cx: &mut gpui::TestAppC
assert_indent_guides(
0..4,
vec![
- IndentGuide::new(buffer_id, 1, 3, 0, 4),
- IndentGuide::new(buffer_id, 2, 2, 1, 4),
+ indent_guide(buffer_id, 1, 3, 0),
+ indent_guide(buffer_id, 2, 2, 1),
],
Some(vec![0]),
&mut cx,
@@ -11971,7 +11968,7 @@ async fn test_active_indent_guide_empty_line(cx: &mut gpui::TestAppContext) {
assert_indent_guides(
0..5,
- vec![IndentGuide::new(buffer_id, 1, 3, 0, 4)],
+ vec![indent_guide(buffer_id, 1, 3, 0)],
Some(vec![0]),
&mut cx,
);
@@ -11997,7 +11994,7 @@ async fn test_active_indent_guide_non_matching_indent(cx: &mut gpui::TestAppCont
assert_indent_guides(
0..3,
- vec![IndentGuide::new(buffer_id, 1, 2, 0, 4)],
+ vec![indent_guide(buffer_id, 1, 2, 0)],
Some(vec![0]),
&mut cx,
);