branch: elpa/d-mode
commit 600c70be3b9d925caa63d8396a166dd8173f30f5
Merge: 8d9be09 2d014ef
Author: Russel Winder <[email protected]>
Commit: Russel Winder <[email protected]>
Merge pull request #65 from CyberShadow/pull-20160329-054927
Fix exponential fontification time of backslashes in WYSIWYG-literals
---
.gitignore | 1 +
d-mode-test.el | 1 +
d-mode.el | 2 +-
tests/I0064.d | 5 +++++
4 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index c531d98..1304fa2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
*.elc
+/.cask/
diff --git a/d-mode-test.el b/d-mode-test.el
index cb5fcfc..1347254 100644
--- a/d-mode-test.el
+++ b/d-mode-test.el
@@ -214,6 +214,7 @@
(ert-deftest d-mode-basic ()
(should (equal (do-one-test "tests/I0021.d") t))
(should (equal (do-one-test "tests/I0039.d") t))
+ (should (equal (do-one-test "tests/I0064.d") t))
)
;;----------------------------------------------------------------------------
diff --git a/d-mode.el b/d-mode.el
index e043237..ccf398b 100644
--- a/d-mode.el
+++ b/d-mode.el
@@ -542,7 +542,7 @@ Key bindings:
;; syntax-propertize-rules function for more information.
(when (version<= "24.3" emacs-version)
(setq-local syntax-propertize-function
- (syntax-propertize-rules ("`\\([^`]*\\(\\\\\\)[^`]*\\)+`" (2
"."))))))
+ (syntax-propertize-rules
("`[^\\\\`]*?\\(\\(\\\\\\)[^\\\\`]*?\\)+?`" (2 "."))))))
;;----------------------------------------------------------------------------
;; "Hideous hacks" to support appropriate font-lock behaviour.
diff --git a/tests/I0064.d b/tests/I0064.d
new file mode 100644
index 0000000..3457c13
--- /dev/null
+++ b/tests/I0064.d
@@ -0,0 +1,5 @@
+`\`aoeu
+`\\`aoeu
+
+`\\aaa\\aaa\\aaa\\aaa`
+`\\aaa\\aaa\\aaa\\aaa