Add toggle case command (#28415)
A small addition for those coming from JetBrain's IDEs. A behavioral detail: when any upper case character is detected, the command defaults to toggling to lower case. > Note that when you apply the toggle case action to the CamelCase name format, IntelliJ IDEA converts the name to the lower case. https://www.jetbrains.com/help/idea/working-with-source-code.html#edit_code_fragments Release Notes: - Added an `editor: toggle case` command. Use `cmd-shift-u` for macOS and `ctrl-shift-u` for Linux, when using the `JetBrains` keymap.
This commit is contained in:
parent
c441b651fa
commit
31034f8296
6 changed files with 52 additions and 2 deletions
|
@ -3875,6 +3875,41 @@ async fn test_manipulate_lines_with_multi_selection(cx: &mut TestAppContext) {
|
|||
"});
|
||||
}
|
||||
|
||||
#[gpui::test]
|
||||
async fn test_toggle_case(cx: &mut TestAppContext) {
|
||||
init_test(cx, |_| {});
|
||||
|
||||
let mut cx = EditorTestContext::new(cx).await;
|
||||
|
||||
// If all lower case -> upper case
|
||||
cx.set_state(indoc! {"
|
||||
«hello worldˇ»
|
||||
"});
|
||||
cx.update_editor(|e, window, cx| e.toggle_case(&ToggleCase, window, cx));
|
||||
cx.assert_editor_state(indoc! {"
|
||||
«HELLO WORLDˇ»
|
||||
"});
|
||||
|
||||
// If all upper case -> lower case
|
||||
cx.set_state(indoc! {"
|
||||
«HELLO WORLDˇ»
|
||||
"});
|
||||
cx.update_editor(|e, window, cx| e.toggle_case(&ToggleCase, window, cx));
|
||||
cx.assert_editor_state(indoc! {"
|
||||
«hello worldˇ»
|
||||
"});
|
||||
|
||||
// If any upper case characters are identified -> lower case
|
||||
// This matches JetBrains IDEs
|
||||
cx.set_state(indoc! {"
|
||||
«hEllo worldˇ»
|
||||
"});
|
||||
cx.update_editor(|e, window, cx| e.toggle_case(&ToggleCase, window, cx));
|
||||
cx.assert_editor_state(indoc! {"
|
||||
«hello worldˇ»
|
||||
"});
|
||||
}
|
||||
|
||||
#[gpui::test]
|
||||
async fn test_manipulate_text(cx: &mut TestAppContext) {
|
||||
init_test(cx, |_| {});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue