[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/d-mode ac898c0 245/346: Fix parsing of scope-statements
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/d-mode ac898c0 245/346: Fix parsing of scope-statements |
Date: |
Sun, 29 Aug 2021 11:00:39 -0400 (EDT) |
branch: elpa/d-mode
commit ac898c0e6c873cb89c9a1f048d78f631852934ac
Author: Vladimir Panteleev <git@thecybershadow.net>
Commit: Vladimir Panteleev <git@thecybershadow.net>
Fix parsing of scope-statements
---
d-mode.el | 11 +++++++++++
tests/fonts.d | 3 +++
tests/fonts.d.html | 3 +++
3 files changed, 17 insertions(+)
diff --git a/d-mode.el b/d-mode.el
index d6756df..c1ebebb 100644
--- a/d-mode.el
+++ b/d-mode.el
@@ -690,6 +690,17 @@ Each list item should be a regexp matching a single
identifier."
(looking-at (c-make-keywords-re t '("in"))))))
nil)
+ ;; D: cc-mode gets confused due to "scope" being a keyword that can
+ ;; both be part of declarations (as a storage class), and a
+ ;; statement (e.g. "scope(exit)"). Disambiguate them here.
+ ((save-excursion
+ (and
+ (looking-at (c-make-keywords-re t '("scope")))
+ (progn
+ (c-forward-token-2)
+ (looking-at "("))))
+ nil)
+
;; D: The "else" following a "version" or "static if" can start a
;; declaration even without a { } block. For this reason, "else" is
;; in `c-decl-start-kwds'.
diff --git a/tests/fonts.d b/tests/fonts.d
index 7cb6789..eb995c2 100644
--- a/tests/fonts.d
+++ b/tests/fonts.d
@@ -16,3 +16,6 @@ version(none) string readLink();
static if (true) {} else fun();
static if (true) {} else void fun();
+
+scope(exit) fun();
+scope(exit) void fun();
diff --git a/tests/fonts.d.html b/tests/fonts.d.html
index ff8b85d..0df8a38 100644
--- a/tests/fonts.d.html
+++ b/tests/fonts.d.html
@@ -16,3 +16,6 @@
<span class="keyword">static if</span> (<span class="constant">true</span>) {}
<span class="keyword">else</span> fun();
<span class="keyword">static if</span> (<span class="constant">true</span>) {}
<span class="keyword">else</span> <span class="type">void</span> <span
class="function-name">fun</span>();
+
+<span class="keyword">scope</span>(exit) fun();
+<span class="keyword">scope</span>(exit) <span class="type">void</span> <span
class="function-name">fun</span>();
- [nongnu] elpa/d-mode c1f5d0d 298/346: Remove a redundant (or), (continued)
- [nongnu] elpa/d-mode c1f5d0d 298/346: Remove a redundant (or), ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode b4496fc 300/346: Conditionally compile out code for newer Emacs versions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 4b3cf20 305/346: Be more restrictive when recognizing lambdas, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 6624fcb 326/346: Unbreak indentation of access labels, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 1931ec9 330/346: Merge pull request #103 from CyberShadow/pull-20201201-111620, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode daaa518 336/346: Migrate from Travis CI to GitHub Actions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 203ef14 335/346: Don't call easy-menu-add on Emacs 28+, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 80fad30 345/346: Merge pull request #108 from CyberShadow/github-actions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode e42c1c1 340/346: Implement r"..." string literal syntax, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode dee393b 228/346: Fix setting the mode menu, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode ac898c0 245/346: Fix parsing of scope-statements,
ELPA Syncer <=
- [nongnu] elpa/d-mode 459732e 243/346: Fix parsing associative arrays in function types, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 362be11 250/346: Fix imenu false positive with e.g. private{...}, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode ea32e73 264/346: Makefile: Test byte-compiled version, too, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 979c946 256/346: Fix testing multiple nested imenu entries, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 8ffe5ac 265/346: Remove doxygen-font-lock-*, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 80f2019 261/346: Don't nest imenu to arbitrary depths, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode bdd5d78 281/346: Replace d-forward-decl-or-cast-1 implementation with a custom one, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 02d1c7f 290/346: tests: Add more binary operation tests, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 09ecdaa 303/346: Add "make coverage", ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 166fac8 313/346: Fix fontification of second foreach variable, ELPA Syncer, 2021/08/29