|
|
|
@@ -2878,7 +2878,7 @@ async fn test_delete_to_bracket(cx: &mut TestAppContext) {
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
cx.set_state(r#"macro!("// ˇCOMMENT");"#);
|
|
|
|
|
cx.update_editor(|editor, window, cx| {
|
|
|
|
@@ -3109,7 +3109,7 @@ async fn test_newline_yaml(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let yaml_language = languages::language("yaml", tree_sitter_yaml::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(yaml_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(yaml_language), cx));
|
|
|
|
|
|
|
|
|
|
// Object (between 2 fields)
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
@@ -3272,7 +3272,7 @@ async fn test_newline_above(cx: &mut TestAppContext) {
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
const a: ˇA = (
|
|
|
|
|
(ˇ
|
|
|
|
@@ -3320,7 +3320,7 @@ async fn test_newline_below(cx: &mut TestAppContext) {
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
const a: ˇA = (
|
|
|
|
|
(ˇ
|
|
|
|
@@ -3367,7 +3367,7 @@ async fn test_newline_comments(cx: &mut TestAppContext) {
|
|
|
|
|
));
|
|
|
|
|
{
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
// Fooˇ
|
|
|
|
|
"});
|
|
|
|
@@ -3439,7 +3439,7 @@ async fn test_newline_comments_with_multiple_delimiters(cx: &mut TestAppContext)
|
|
|
|
|
));
|
|
|
|
|
{
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
//ˇ
|
|
|
|
|
"});
|
|
|
|
@@ -3486,7 +3486,7 @@ async fn test_newline_documentation_comments(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
/**ˇ
|
|
|
|
|
"});
|
|
|
|
@@ -3695,7 +3695,7 @@ async fn test_newline_comments_with_block_comment(cx: &mut TestAppContext) {
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(lua_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(lua_language), cx));
|
|
|
|
|
|
|
|
|
|
// Line with line comment should extend
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
@@ -3816,7 +3816,7 @@ async fn test_tab_in_leading_whitespace_auto_indents_lines(cx: &mut TestAppConte
|
|
|
|
|
.with_indents_query(r#"(_ "(" ")" @end) @indent"#)
|
|
|
|
|
.unwrap(),
|
|
|
|
|
);
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// test when all cursors are not at suggested indent
|
|
|
|
|
// then simply move to their suggested indent location
|
|
|
|
@@ -4040,7 +4040,7 @@ async fn test_tab_with_mixed_whitespace_rust(cx: &mut TestAppContext) {
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
fn a() {
|
|
|
|
|
if b {
|
|
|
|
@@ -4139,7 +4139,7 @@ async fn test_indent_yaml_comments_with_multiple_cursors(cx: &mut TestAppContext
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let yaml_language = languages::language("yaml", tree_sitter_yaml::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(yaml_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(yaml_language), cx));
|
|
|
|
|
|
|
|
|
|
cx.set_state(
|
|
|
|
|
r#"ˇ# ingress:
|
|
|
|
@@ -4174,7 +4174,7 @@ async fn test_indent_yaml_non_comments_with_multiple_cursors(cx: &mut TestAppCon
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let yaml_language = languages::language("yaml", tree_sitter_yaml::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(yaml_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(yaml_language), cx));
|
|
|
|
|
|
|
|
|
|
cx.set_state(
|
|
|
|
|
r#"ˇingress:
|
|
|
|
@@ -4329,9 +4329,10 @@ fn test_indent_outdent_with_excerpts(cx: &mut TestAppContext) {
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
let toml_buffer =
|
|
|
|
|
cx.new(|cx| Buffer::local("a = 1\nb = 2\n", cx).with_language(toml_language, cx));
|
|
|
|
|
let rust_buffer =
|
|
|
|
|
cx.new(|cx| Buffer::local("const c: usize = 3;\n", cx).with_language(rust_language, cx));
|
|
|
|
|
cx.new(|cx| Buffer::local("a = 1\nb = 2\n", cx).with_language_immediate(toml_language, cx));
|
|
|
|
|
let rust_buffer = cx.new(|cx| {
|
|
|
|
|
Buffer::local("const c: usize = 3;\n", cx).with_language_immediate(rust_language, cx)
|
|
|
|
|
});
|
|
|
|
|
let multibuffer = cx.new(|cx| {
|
|
|
|
|
let mut multibuffer = MultiBuffer::new(ReadWrite);
|
|
|
|
|
multibuffer.push_excerpts(
|
|
|
|
@@ -5030,7 +5031,7 @@ async fn test_wrap_in_tag_single_selection(cx: &mut TestAppContext) {
|
|
|
|
|
None,
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(js_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(js_language), cx));
|
|
|
|
|
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
«testˇ»
|
|
|
|
@@ -5079,7 +5080,7 @@ async fn test_wrap_in_tag_multi_selection(cx: &mut TestAppContext) {
|
|
|
|
|
None,
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(js_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(js_language), cx));
|
|
|
|
|
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
«testˇ»
|
|
|
|
@@ -5122,7 +5123,7 @@ async fn test_wrap_in_tag_does_nothing_in_unsupported_languages(cx: &mut TestApp
|
|
|
|
|
None,
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(plaintext_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(plaintext_language), cx));
|
|
|
|
|
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
«testˇ»
|
|
|
|
@@ -6568,7 +6569,7 @@ async fn test_rewrap(cx: &mut TestAppContext) {
|
|
|
|
|
language: Arc<Language>,
|
|
|
|
|
cx: &mut EditorTestContext,
|
|
|
|
|
) {
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
cx.set_state(unwrapped_text);
|
|
|
|
|
cx.update_editor(|e, window, cx| e.rewrap(&Rewrap, window, cx));
|
|
|
|
|
cx.assert_editor_state(wrapped_text);
|
|
|
|
@@ -6973,7 +6974,7 @@ async fn test_rewrap_block_comments(cx: &mut TestAppContext) {
|
|
|
|
|
language: Arc<Language>,
|
|
|
|
|
cx: &mut EditorTestContext,
|
|
|
|
|
) {
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
cx.set_state(unwrapped_text);
|
|
|
|
|
cx.update_editor(|e, window, cx| e.rewrap(&Rewrap, window, cx));
|
|
|
|
|
cx.assert_editor_state(wrapped_text);
|
|
|
|
@@ -6985,7 +6986,7 @@ async fn test_hard_wrap(cx: &mut TestAppContext) {
|
|
|
|
|
init_test(cx, |_| {});
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(git_commit_lang()), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(git_commit_lang()), cx));
|
|
|
|
|
cx.update_editor(|editor, _, cx| {
|
|
|
|
|
editor.set_hard_wrap(Some(14), cx);
|
|
|
|
|
});
|
|
|
|
@@ -7424,7 +7425,7 @@ async fn test_paste_multiline(cx: &mut TestAppContext) {
|
|
|
|
|
init_test(cx, |_| {});
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(rust_lang()), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(rust_lang()), cx));
|
|
|
|
|
|
|
|
|
|
// Cut an indented block, without the leading whitespace.
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
@@ -7566,7 +7567,7 @@ async fn test_paste_content_from_other_app(cx: &mut TestAppContext) {
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(rust_lang()), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(rust_lang()), cx));
|
|
|
|
|
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
fn a() {
|
|
|
|
@@ -8970,7 +8971,7 @@ async fn test_select_larger_smaller_syntax_node(cx: &mut TestAppContext) {
|
|
|
|
|
"#
|
|
|
|
|
.unindent();
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
|
|
|
|
@@ -9155,7 +9156,7 @@ async fn test_select_larger_syntax_node_for_cursor_at_end(cx: &mut TestAppContex
|
|
|
|
|
|
|
|
|
|
let text = "let a = 2;";
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
|
|
|
|
@@ -9225,7 +9226,7 @@ async fn test_select_larger_syntax_node_for_cursor_at_symbol(cx: &mut TestAppCon
|
|
|
|
|
"#
|
|
|
|
|
.unindent();
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
|
|
|
|
@@ -9402,7 +9403,7 @@ async fn test_select_larger_smaller_syntax_node_for_string(cx: &mut TestAppConte
|
|
|
|
|
"#
|
|
|
|
|
.unindent();
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
|
|
|
|
@@ -9576,7 +9577,7 @@ async fn test_unwrap_syntax_nodes(cx: &mut gpui::TestAppContext) {
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
cx.set_state(indoc! { r#"use mod1::{mod2::{«mod3ˇ», mod4}, mod5::{mod6, «mod7ˇ»}};"# });
|
|
|
|
@@ -9789,7 +9790,7 @@ async fn test_autoindent(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
let text = "fn a() {}";
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
editor
|
|
|
|
@@ -9858,7 +9859,7 @@ async fn test_autoindent_disabled(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
let text = "fn a() {}";
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
editor
|
|
|
|
@@ -9997,7 +9998,7 @@ async fn test_autoindent_disabled_with_nested_language(cx: &mut TestAppContext)
|
|
|
|
|
cx.language_registry().add(language.clone());
|
|
|
|
|
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
cx.set_state(r#"struct A {ˇ}"#);
|
|
|
|
@@ -10084,7 +10085,9 @@ async fn test_autoindent_selections(cx: &mut TestAppContext) {
|
|
|
|
|
let buffer = editor.buffer().update(cx, |buffer, _| {
|
|
|
|
|
buffer.all_buffers().iter().next().unwrap().clone()
|
|
|
|
|
});
|
|
|
|
|
buffer.update(cx, |buffer, cx| buffer.set_language(Some(rust_lang()), cx));
|
|
|
|
|
buffer.update(cx, |buffer, cx| {
|
|
|
|
|
buffer.set_language_immediate(Some(rust_lang()), cx)
|
|
|
|
|
});
|
|
|
|
|
buffer
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
@@ -10177,7 +10180,7 @@ async fn test_autoclose_and_auto_surround_pairs(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
cx.language_registry().add(language.clone());
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
cx.set_state(
|
|
|
|
@@ -10366,7 +10369,7 @@ async fn test_always_treat_brackets_as_autoclosed_skip_over(cx: &mut TestAppCont
|
|
|
|
|
|
|
|
|
|
cx.language_registry().add(language.clone());
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
cx.set_state(
|
|
|
|
@@ -10509,7 +10512,7 @@ async fn test_autoclose_with_embedded_language(cx: &mut TestAppContext) {
|
|
|
|
|
cx.executor().run_until_parked();
|
|
|
|
|
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(html_language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(html_language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
cx.set_state(
|
|
|
|
@@ -10687,7 +10690,7 @@ async fn test_autoclose_with_overrides(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
cx.language_registry().add(rust_language.clone());
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(rust_language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(rust_language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
cx.set_state(
|
|
|
|
@@ -10794,7 +10797,7 @@ async fn test_surround_with_pair(cx: &mut TestAppContext) {
|
|
|
|
|
"#
|
|
|
|
|
.unindent();
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
editor
|
|
|
|
@@ -10944,7 +10947,7 @@ async fn test_delete_autoclose_pair(cx: &mut TestAppContext) {
|
|
|
|
|
"#
|
|
|
|
|
.unindent();
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
editor
|
|
|
|
@@ -11072,7 +11075,7 @@ async fn test_always_treat_brackets_as_autoclosed_delete(cx: &mut TestAppContext
|
|
|
|
|
|
|
|
|
|
cx.language_registry().add(language.clone());
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
cx.set_state(
|
|
|
|
@@ -11140,7 +11143,7 @@ async fn test_auto_replace_emoji_shortcode(cx: &mut TestAppContext) {
|
|
|
|
|
Some(tree_sitter_rust::LANGUAGE.into()),
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local("", cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local("", cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
editor
|
|
|
|
@@ -13177,7 +13180,7 @@ async fn test_handle_input_for_show_signature_help_auto_signature_help_true(
|
|
|
|
|
|
|
|
|
|
cx.language_registry().add(language.clone());
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
cx.set_state(
|
|
|
|
@@ -13318,7 +13321,7 @@ async fn test_handle_input_with_different_show_signature_settings(cx: &mut TestA
|
|
|
|
|
|
|
|
|
|
cx.language_registry().add(language.clone());
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Ensure that signature_help is not called when no signature help is enabled.
|
|
|
|
@@ -15900,7 +15903,7 @@ async fn test_toggle_comment(cx: &mut TestAppContext) {
|
|
|
|
|
},
|
|
|
|
|
Some(tree_sitter_rust::LANGUAGE.into()),
|
|
|
|
|
));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// If multiple selections intersect a line, the line is only toggled once.
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
@@ -16021,7 +16024,7 @@ async fn test_toggle_comment_ignore_indent(cx: &mut TestAppContext) {
|
|
|
|
|
},
|
|
|
|
|
Some(tree_sitter_rust::LANGUAGE.into()),
|
|
|
|
|
));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
let toggle_comments = &ToggleComments {
|
|
|
|
|
advance_downwards: false,
|
|
|
|
@@ -16151,7 +16154,7 @@ async fn test_advance_downward_on_toggle_comment(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
cx.language_registry().add(language.clone());
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
let toggle_comments = &ToggleComments {
|
|
|
|
@@ -16309,7 +16312,7 @@ async fn test_toggle_block_comment(cx: &mut TestAppContext) {
|
|
|
|
|
cx.language_registry().add(html_language.clone());
|
|
|
|
|
cx.language_registry().add(javascript_language);
|
|
|
|
|
cx.update_buffer(|buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(html_language), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(html_language), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Toggle comments for empty selections
|
|
|
|
@@ -16744,7 +16747,7 @@ async fn test_extra_newline_insertion(cx: &mut TestAppContext) {
|
|
|
|
|
"{{} }\n", //
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
editor
|
|
|
|
@@ -17639,7 +17642,7 @@ async fn test_move_to_enclosing_bracket_in_markdown_code_block(cx: &mut TestAppC
|
|
|
|
|
cx,
|
|
|
|
|
);
|
|
|
|
|
buffer.set_language_registry(language_registry.clone());
|
|
|
|
|
buffer.set_language(Some(markdown_lang()), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(markdown_lang()), cx);
|
|
|
|
|
buffer
|
|
|
|
|
});
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
@@ -22451,7 +22454,7 @@ async fn test_find_enclosing_node_with_task(cx: &mut TestAppContext) {
|
|
|
|
|
let project = Project::test(fs, ["/a".as_ref()], cx).await;
|
|
|
|
|
let workspace = cx.add_window(|window, cx| Workspace::test_new(project.clone(), window, cx));
|
|
|
|
|
let cx = &mut VisualTestContext::from_window(*workspace.deref(), cx);
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let multi_buffer = cx.new(|cx| MultiBuffer::singleton(buffer.clone(), cx));
|
|
|
|
|
|
|
|
|
|
let editor = cx.new_window_entity(|window, cx| {
|
|
|
|
@@ -23940,7 +23943,7 @@ async fn test_tree_sitter_brackets_newline_insertion(cx: &mut TestAppContext) {
|
|
|
|
|
)
|
|
|
|
|
.unwrap(),
|
|
|
|
|
);
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
|
<span>ˇ</span>
|
|
|
|
@@ -24825,7 +24828,7 @@ async fn test_linked_edits_on_typing_punctuation(cx: &mut TestAppContext) {
|
|
|
|
|
},
|
|
|
|
|
Some(tree_sitter_typescript::LANGUAGE_TSX.into()),
|
|
|
|
|
));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// Test typing > does not extend linked pair
|
|
|
|
|
cx.set_state("<divˇ<div></div>");
|
|
|
|
@@ -25025,7 +25028,7 @@ async fn test_tab_in_leading_whitespace_auto_indents_for_python(cx: &mut TestApp
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let language = languages::language("python", tree_sitter_python::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// test cursor move to start of each line on tab
|
|
|
|
|
// for `if`, `elif`, `else`, `while`, `with` and `for`
|
|
|
|
@@ -25135,7 +25138,7 @@ async fn test_outdent_after_input_for_python(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let language = languages::language("python", tree_sitter_python::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// test `else` auto outdents when typed inside `if` block
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
@@ -25367,7 +25370,7 @@ async fn test_indent_on_newline_for_python(cx: &mut TestAppContext) {
|
|
|
|
|
});
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let language = languages::language("python", tree_sitter_python::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// test correct indent after newline on comment
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
@@ -25428,7 +25431,7 @@ async fn test_tab_in_leading_whitespace_auto_indents_for_bash(cx: &mut TestAppCo
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// test cursor move to start of each line on tab
|
|
|
|
|
// for `if`, `elif`, `else`, `while`, `for`, `case` and `function`
|
|
|
|
@@ -25522,7 +25525,7 @@ async fn test_indent_after_input_for_bash(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// test indents on comment insert
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
@@ -25564,7 +25567,7 @@ async fn test_outdent_after_input_for_bash(cx: &mut TestAppContext) {
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// test `else` auto outdents when typed inside `if` block
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
@@ -25717,7 +25720,7 @@ async fn test_indent_on_newline_for_bash(cx: &mut TestAppContext) {
|
|
|
|
|
});
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
let language = languages::language("bash", tree_sitter_bash::LANGUAGE.into());
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(language), cx));
|
|
|
|
|
|
|
|
|
|
// test correct indent after newline on comment
|
|
|
|
|
cx.set_state(indoc! {"
|
|
|
|
@@ -27016,7 +27019,7 @@ async fn test_select_next_prev_syntax_node(cx: &mut TestAppContext) {
|
|
|
|
|
}
|
|
|
|
|
"#;
|
|
|
|
|
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| Buffer::local(text, cx).with_language_immediate(language, cx));
|
|
|
|
|
let buffer = cx.new(|cx| MultiBuffer::singleton(buffer, cx));
|
|
|
|
|
let (editor, cx) = cx.add_window_view(|window, cx| build_editor(buffer, window, cx));
|
|
|
|
|
|
|
|
|
@@ -27208,7 +27211,7 @@ async fn test_paste_url_from_other_app_creates_markdown_link_over_selected_text(
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(markdown_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(markdown_language), cx));
|
|
|
|
|
cx.set_state("Hello, «editorˇ».\nZed is «ˇgreat» (see this link: ˇ)");
|
|
|
|
|
|
|
|
|
|
cx.update_editor(|editor, window, cx| {
|
|
|
|
@@ -27238,7 +27241,7 @@ async fn test_paste_url_from_zed_copy_creates_markdown_link_over_selected_text(
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(markdown_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(markdown_language), cx));
|
|
|
|
|
cx.set_state(&format!(
|
|
|
|
|
"Hello, editor.\nZed is great (see this link: )\n«{url}ˇ»"
|
|
|
|
|
));
|
|
|
|
@@ -27277,7 +27280,7 @@ async fn test_paste_url_from_other_app_replaces_existing_url_without_creating_ma
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(markdown_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(markdown_language), cx));
|
|
|
|
|
cx.set_state("Please visit zed's homepage: «https://www.apple.comˇ»");
|
|
|
|
|
|
|
|
|
|
cx.update_editor(|editor, window, cx| {
|
|
|
|
@@ -27305,7 +27308,7 @@ async fn test_paste_plain_text_from_other_app_replaces_selection_without_creatin
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(markdown_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(markdown_language), cx));
|
|
|
|
|
cx.set_state("Hello, «editorˇ».\nZed is «ˇgreat»");
|
|
|
|
|
|
|
|
|
|
cx.update_editor(|editor, window, cx| {
|
|
|
|
@@ -27333,7 +27336,7 @@ async fn test_paste_url_from_other_app_without_creating_markdown_link_in_non_mar
|
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
let mut cx = EditorTestContext::new(cx).await;
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language(Some(markdown_language), cx));
|
|
|
|
|
cx.update_buffer(|buffer, cx| buffer.set_language_immediate(Some(markdown_language), cx));
|
|
|
|
|
cx.set_state("// Hello, «editorˇ».\n// Zed is «ˇgreat» (see this link: ˇ)");
|
|
|
|
|
|
|
|
|
|
cx.update_editor(|editor, window, cx| {
|
|
|
|
@@ -27385,7 +27388,7 @@ async fn test_paste_url_from_other_app_creates_markdown_link_selectively_in_mult
|
|
|
|
|
.unwrap();
|
|
|
|
|
let first_buffer = multi_buffer.read(cx).buffer(first_buffer_id).unwrap();
|
|
|
|
|
first_buffer.update(cx, |buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(markdown_language.clone()), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(markdown_language.clone()), cx);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
editor
|
|
|
|
@@ -27688,7 +27691,7 @@ async fn test_sticky_scroll(cx: &mut TestAppContext) {
|
|
|
|
|
.as_singleton()
|
|
|
|
|
.unwrap()
|
|
|
|
|
.update(cx, |buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(rust_lang()), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(rust_lang()), cx);
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
@@ -27778,7 +27781,7 @@ async fn test_scroll_by_clicking_sticky_header(cx: &mut TestAppContext) {
|
|
|
|
|
.as_singleton()
|
|
|
|
|
.unwrap()
|
|
|
|
|
.update(cx, |buffer, cx| {
|
|
|
|
|
buffer.set_language(Some(rust_lang()), cx);
|
|
|
|
|
buffer.set_language_immediate(Some(rust_lang()), cx);
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|