mirror of https://github.com/helix-editor/helix
Fix YAML auto indent
This makes use of the new `extend` capture to correct YAML indentation. Fixes #6661fix-yaml-indents-debug
parent
78e8066c3e
commit
f4a043df88
@ -0,0 +1,3 @@
|
||||
use super::*;
|
||||
|
||||
mod yaml;
|
@ -0,0 +1,598 @@
|
||||
use super::*;
|
||||
|
||||
#[tokio::test(flavor = "multi_thread")]
|
||||
async fn auto_indent() -> anyhow::Result<()> {
|
||||
let app = || AppBuilder::new().with_file("foo.yaml", None);
|
||||
|
||||
let below_tests = [
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
#[t|]#op:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
#[\n|]#
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
top:
|
||||
b#[a|]#z: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
#[\n|]#
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
top:
|
||||
baz: foo
|
||||
bazi#[:|]#
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
#[\n|]#
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: #[yes|]#
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
#[\n|]#
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: becaus#[e|]#
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
#[\n|]#
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:#[\n|]#
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
#[\n|]#
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1#[\n|]#
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
#[\n|]#
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:#[\n|]#
|
||||
"}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
#[\n|]#
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: |
|
||||
some
|
||||
multi
|
||||
line
|
||||
string#[\n|]#
|
||||
fook:
|
||||
"}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: |
|
||||
some
|
||||
multi
|
||||
line
|
||||
string
|
||||
#[\n|]#
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: >
|
||||
some
|
||||
multi
|
||||
line#[\n|]#
|
||||
string
|
||||
fook:
|
||||
"}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: >
|
||||
some
|
||||
multi
|
||||
line
|
||||
#[\n|]#
|
||||
string
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: >#[\n|]#
|
||||
fook:
|
||||
"}),
|
||||
"o",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: >
|
||||
#[\n|]#
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
];
|
||||
|
||||
for test in below_tests {
|
||||
test_with_config(app(), test).await?;
|
||||
}
|
||||
|
||||
let above_tests = [
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
#[t|]#op:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
#[\n|]#
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
top:
|
||||
b#[a|]#z: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
#[\n|]#
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
top:
|
||||
baz: foo
|
||||
bazi#[:|]#
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
#[\n|]#
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: #[yes|]#
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
#[\n|]#
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {r##"
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: becaus#[e|]#
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"##}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
#[\n|]#
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:#[\n|]#
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
#[\n|]#
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1#[\n|]#
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
#[\n|]#
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
fook:#[\n|]#
|
||||
"}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bazi:
|
||||
more: yes
|
||||
why: because
|
||||
quux:
|
||||
- 1
|
||||
- 2
|
||||
bax: foox
|
||||
#[\n|]#
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: |
|
||||
some
|
||||
multi
|
||||
line
|
||||
string#[\n|]#
|
||||
fook:
|
||||
"}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: |
|
||||
some
|
||||
multi
|
||||
line
|
||||
#[\n|]#
|
||||
string
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: >
|
||||
some#[\n|]#
|
||||
multi
|
||||
line
|
||||
string
|
||||
fook:
|
||||
"}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: >
|
||||
#[\n|]#
|
||||
some
|
||||
multi
|
||||
line
|
||||
string
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
(
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: >
|
||||
fook:#[\n|]#
|
||||
"}),
|
||||
"O",
|
||||
helpers::platform_line(indoc! {"\
|
||||
top:
|
||||
baz: foo
|
||||
bax: >
|
||||
#[\n|]#
|
||||
fook:
|
||||
"}),
|
||||
),
|
||||
];
|
||||
|
||||
for test in above_tests {
|
||||
test_with_config(app(), test).await?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
@ -1,2 +1,8 @@
|
||||
(block_mapping_pair) @indent
|
||||
(block_scalar) @indent @extend
|
||||
|
||||
((block_mapping_pair
|
||||
key: (_) @key
|
||||
value: (_)? @val
|
||||
(#not-same-line? @key @val)
|
||||
) @indent @extend
|
||||
)
|
||||
|
Loading…
Reference in New Issue