Skip to content

🐛 delta not render well for rust's raw string for r# #2171

Description

@eval-exec
  • Please include the raw text output from git, so that we can reproduce the problem.
    (You can use git --no-pager to produce the raw text output.)
  • A screenshot of Delta's output is often helpful also.

Thanks for filing a Delta bug report!

Rust provide raw string indicator: https://doc.rust-lang.org/rust-by-example/std/str.html

but it seems that delta not recognize the rust's raw string well? such as : let str = r#"ab "c" d"? the ab "c" d is a whole string.


reproduce:
git --no-pager diff:

+
+#[test]
+fn parse_partial_sexp_honors_syntax_table_string_fence_property() {
+    crate::test_utils::init_test_tracing();
+    // A `syntax-table' text property of generic-string-fence syntax (class 15)
+    // must put parse-partial-sexp inside a string between the two fences, and
+    // back outside once past the closing fence.  This drives the per-char
+    // syntax-table property read -- and the SyntaxPropRange run cache that
+    // serves it -- through a NON-nil value, which the common all-nil run never
+    // exercises.  `syntax-propertize--done' is pinned past point-max so the
+    // lazy propertizer does not clear the manually applied properties.
+    let result = crate::test_utils::runtime_startup_eval_one(
+        r#"
+        (progn
+          (setq-local parse-sexp-lookup-properties t)
+          (insert "a|b|c")
+          (put-text-property 2 3 'syntax-table '(15))
+          (put-text-property 4 5 'syntax-table '(15))
+          (setq-local syntax-propertize--done (point-max))
+          (list (and (nth 3 (parse-partial-sexp 1 3)) t)
+                (and (nth 3 (parse-partial-sexp 1 5)) t)))
+        "#,
+    );
+    assert_eq!(result, "OK (t nil)");
+}
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions