[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/d-mode 4dd90f3 277/346: Consolidate c-forward-decl-or-cast
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/d-mode 4dd90f3 277/346: Consolidate c-forward-decl-or-cast-1 "else" patch |
Date: |
Sun, 29 Aug 2021 11:00:45 -0400 (EDT) |
branch: elpa/d-mode
commit 4dd90f38bc4ea548f35be618b2d3b85f0037f9b5
Author: Vladimir Panteleev <git@thecybershadow.net>
Commit: Vladimir Panteleev <git@thecybershadow.net>
Consolidate c-forward-decl-or-cast-1 "else" patch
---
d-mode.el | 27 +++++++++++++--------------
1 file changed, 13 insertions(+), 14 deletions(-)
diff --git a/d-mode.el b/d-mode.el
index 7277088..610913f 100644
--- a/d-mode.el
+++ b/d-mode.el
@@ -7,7 +7,7 @@
;; Maintainer: Russel Winder <russel@winder.org.uk>
;; Vladimir Panteleev <vladimir@thecybershadow.net>
;; Created: March 2007
-;; Version: 201911081535
+;; Version: 201911081541
;; Keywords: D programming language emacs cc-mode
;; Package-Requires: ((emacs "25.1"))
@@ -561,6 +561,18 @@ Fixes cc-mode handling of D constructors."
;;
;; This function might do hidden buffer changes.
+ ;; 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'.
+ ;; However, cc-mode invokes `c-forward-decl-or-cast-1' with point
+ ;; at the "else" keyword, which, when followed by a function call,
+ ;; is mis-parsed as a function declaration.
+ ;; Fix this by moving point forward, past the "else" keyword, to
+ ;; put cc-mode on the right track.
+ (when (looking-at (d-make-keywords-re t '("else")))
+ (goto-char (match-end 1))
+ (c-forward-syntactic-ws))
+
;; D: Work around a cc-mode bug(?) in which the c-forward-annotation
;; calls in c-forward-decl-or-cast-1 do not advance the start
;; position, causing the annotation to be fontified as the function
@@ -1548,19 +1560,6 @@ Fixes cc-mode handling of D constructors."
(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'.
- ;; However, cc-mode invokes `c-forward-decl-or-cast-1' with point
- ;; at the "else" keyword, which, when followed by a function call,
- ;; is mis-parsed as a function declaration.
- ;; Fix this by moving point forward, past the "else" keyword, to
- ;; put cc-mode on the right track.
- ((looking-at (d-make-keywords-re t '("else")))
- (goto-char (match-end 1))
- (c-forward-syntactic-ws)
- (apply #'d-forward-decl-or-cast-1 args))
-
(t
(apply #'d-forward-decl-or-cast-1 args))))
- [nongnu] elpa/d-mode 3c7db4a 255/346: Fix imenu context with multiple nesting, (continued)
- [nongnu] elpa/d-mode 3c7db4a 255/346: Fix imenu context with multiple nesting, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 3ed3b7b 257/346: Simplify imenu testing code, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode f1d37dd 263/346: Fix byte-compiled version, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 060d1f3 249/346: Fix parsing of version(...) and other non-scope blocks, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 2529eb2 259/346: Add a TODO, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 8d30f6b 246/346: Add back the old imenu implementation for Emacs 25, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 7d39bdf 269/346: Add missing "package" keyword to c-modifier-kwds, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode ed4428c 272/346: Fix fontification of "invariant", ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 300708d 268/346: Fix imenu for template members, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 685a8cc 271/346: Expand "is" rule for other infix keyword variants and negation, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 4dd90f3 277/346: Consolidate c-forward-decl-or-cast-1 "else" patch,
ELPA Syncer <=
- [nongnu] elpa/d-mode 6417bf5 279/346: d-mode-test: Stop catching exceptions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 7c72767 280/346: d-mode-test: Fix saving results of mis-indenting tests, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode acaf2fb 278/346: Call d-forward-decl-or-cast-1 directly, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 5abe29d 276/346: Consolidate c-forward-decl-or-cast-1 c-forward-name patch, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 0cbb2ab 288/346: tests: New testcase, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode e2b70b7 289/346: tests: New testcase, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode c2f332e 291/346: tests: Add test for c-decl-start-kwds, ELPA Syncer, 2021/08/29
- [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