fixup: work on rewrapping block comments in selections
This commit is contained in:
parent
619a142e3d
commit
e246758be4
2 changed files with 174 additions and 1 deletions
|
@ -12003,7 +12003,7 @@ impl Editor {
|
|||
let line_trimmed = line_trimmed
|
||||
.strip_prefix(start.as_ref())
|
||||
.map(|s| {
|
||||
let mut indent_size = indent_size.clone();
|
||||
let mut indent_size = indent_size;
|
||||
indent_size.len -= tab_size;
|
||||
let indent_prefix: String = indent_size.chars().collect();
|
||||
first_line_delimiter = Some((indent_prefix, start));
|
||||
|
|
|
@ -5954,6 +5954,164 @@ async fn test_rewrap_block_comments(cx: &mut TestAppContext) {
|
|||
&mut cx,
|
||||
);
|
||||
|
||||
// selection w/ single short block comment
|
||||
assert_rewrap(
|
||||
indoc! {"
|
||||
«/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */ˇ»
|
||||
"},
|
||||
indoc! {"
|
||||
«/*
|
||||
* Lorem ipsum dolor sit amet,
|
||||
* consectetur adipiscing elit.
|
||||
*/ˇ»
|
||||
"},
|
||||
rust_lang.clone(),
|
||||
&mut cx,
|
||||
);
|
||||
|
||||
// rewrapping a single comment w/ abutting comments
|
||||
assert_rewrap(
|
||||
indoc! {"
|
||||
/* ˇLorem ipsum dolor sit amet, consectetur adipiscing elit. */
|
||||
/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */
|
||||
"},
|
||||
indoc! {"
|
||||
/*
|
||||
* ˇLorem ipsum dolor sit amet,
|
||||
* consectetur adipiscing elit.
|
||||
*/
|
||||
/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */
|
||||
"},
|
||||
rust_lang.clone(),
|
||||
&mut cx,
|
||||
);
|
||||
|
||||
// selection w/ non-abutting short block comments
|
||||
assert_rewrap(
|
||||
indoc! {"
|
||||
«/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */
|
||||
|
||||
/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */ˇ»
|
||||
"},
|
||||
indoc! {"
|
||||
«/*
|
||||
* Lorem ipsum dolor sit amet,
|
||||
* consectetur adipiscing elit.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Lorem ipsum dolor sit amet,
|
||||
* consectetur adipiscing elit.
|
||||
*/ˇ»
|
||||
"},
|
||||
rust_lang.clone(),
|
||||
&mut cx,
|
||||
);
|
||||
|
||||
// selection of multiline block comments
|
||||
assert_rewrap(
|
||||
indoc! {"
|
||||
«/* Lorem ipsum dolor sit amet,
|
||||
* consectetur adipiscing elit. */ˇ»
|
||||
"},
|
||||
indoc! {"
|
||||
«/*
|
||||
* Lorem ipsum dolor sit amet,
|
||||
* consectetur adipiscing elit.
|
||||
*/ˇ»
|
||||
"},
|
||||
rust_lang.clone(),
|
||||
&mut cx,
|
||||
);
|
||||
|
||||
// partial selection of multiline block comments
|
||||
assert_rewrap(
|
||||
indoc! {"
|
||||
«/* Lorem ipsum dolor sit amet,ˇ»
|
||||
* consectetur adipiscing elit. */
|
||||
/* Lorem ipsum dolor sit amet,
|
||||
«* consectetur adipiscing elit. */ˇ»
|
||||
"},
|
||||
indoc! {"
|
||||
«/*
|
||||
* Lorem ipsum dolor sit amet,ˇ»
|
||||
* consectetur adipiscing elit. */
|
||||
/* Lorem ipsum dolor sit amet,
|
||||
«* consectetur adipiscing elit.
|
||||
*/ˇ»
|
||||
"},
|
||||
rust_lang.clone(),
|
||||
&mut cx,
|
||||
);
|
||||
|
||||
// selection w/ abutting short block comments
|
||||
// FIXME unhandled edge case; not correct, just documenting known issues
|
||||
// should not be combined; should rewrap as 2 comments
|
||||
assert_rewrap(
|
||||
indoc! {"
|
||||
«/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */
|
||||
/* Lorem ipsum dolor sit amet, consectetur adipiscing elit. */ˇ»
|
||||
"},
|
||||
// desired behavior:
|
||||
// indoc! {"
|
||||
// «/*
|
||||
// * Lorem ipsum dolor sit amet,
|
||||
// * consectetur adipiscing elit.
|
||||
// */
|
||||
// /*
|
||||
// * Lorem ipsum dolor sit amet,
|
||||
// * consectetur adipiscing elit.
|
||||
// */ˇ»
|
||||
// "},
|
||||
// actual behaviour:
|
||||
indoc! {"
|
||||
«/*
|
||||
* Lorem ipsum dolor sit amet,
|
||||
* consectetur adipiscing elit. Lorem
|
||||
* ipsum dolor sit amet, consectetur
|
||||
* adipiscing elit.
|
||||
*/ˇ»
|
||||
"},
|
||||
rust_lang.clone(),
|
||||
&mut cx,
|
||||
);
|
||||
|
||||
// FIXME same as above, but with delimiters on separate line
|
||||
// assert_rewrap(
|
||||
// indoc! {"
|
||||
// «/* Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
// */
|
||||
// /*
|
||||
// * Lorem ipsum dolor sit amet, consectetur adipiscing elit. */ˇ»
|
||||
// "},
|
||||
// // desired:
|
||||
// // indoc! {"
|
||||
// // «/*
|
||||
// // * Lorem ipsum dolor sit amet,
|
||||
// // * consectetur adipiscing elit.
|
||||
// // */
|
||||
// // /*
|
||||
// // * Lorem ipsum dolor sit amet,
|
||||
// // * consectetur adipiscing elit.
|
||||
// // */ˇ»
|
||||
// // "},
|
||||
// // actual: (but with trailing w/s on the empty lines)
|
||||
// indoc! {"
|
||||
// «/*
|
||||
// * Lorem ipsum dolor sit amet,
|
||||
// * consectetur adipiscing elit.
|
||||
// *
|
||||
// */
|
||||
// /*
|
||||
// *
|
||||
// * Lorem ipsum dolor sit amet,
|
||||
// * consectetur adipiscing elit.
|
||||
// */ˇ»
|
||||
// "},
|
||||
// rust_lang.clone(),
|
||||
// &mut cx,
|
||||
// );
|
||||
|
||||
// TODO these are unhandled edge cases; not correct, just documenting known issues
|
||||
assert_rewrap(
|
||||
indoc! {"
|
||||
|
@ -5964,6 +6122,21 @@ async fn test_rewrap_block_comments(cx: &mut TestAppContext) {
|
|||
//ˇ Lorem ipsum dolor sit amet, consectetur adipiscing elit. */
|
||||
/*ˇ Lorem ipsum dolor sit amet */ /* consectetur adipiscing elit. */
|
||||
"},
|
||||
// desired:
|
||||
// indoc! {"
|
||||
// /*
|
||||
// *ˇ Lorem ipsum dolor sit amet,
|
||||
// * consectetur adipiscing elit.
|
||||
// */
|
||||
// /*
|
||||
// *ˇ Lorem ipsum dolor sit amet,
|
||||
// * consectetur adipiscing elit.
|
||||
// */
|
||||
// /*
|
||||
// *ˇ Lorem ipsum dolor sit amet
|
||||
// */ /* consectetur adipiscing elit. */
|
||||
// "},
|
||||
// actual:
|
||||
indoc! {"
|
||||
/*
|
||||
//ˇ Lorem ipsum dolor sit amet,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue