[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/d-mode 49cb5a8 275/346: Consolidate c-forward-decl-or-cast
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/d-mode 49cb5a8 275/346: Consolidate c-forward-decl-or-cast-1 annotation patch |
Date: |
Sun, 29 Aug 2021 11:00:45 -0400 (EDT) |
branch: elpa/d-mode
commit 49cb5a8fae4ec2c884b7e60dc02abd9e40b9434c
Author: Vladimir Panteleev <git@thecybershadow.net>
Commit: Vladimir Panteleev <git@thecybershadow.net>
Consolidate c-forward-decl-or-cast-1 annotation patch
---
d-mode.el | 41 ++++++++++++++++++-----------------------
1 file changed, 18 insertions(+), 23 deletions(-)
diff --git a/d-mode.el b/d-mode.el
index a1d974b..31eae77 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: 201911081922
+;; Version: 201911081530
;; Keywords: D programming language emacs cc-mode
;; Package-Requires: ((emacs "25.1"))
@@ -562,6 +562,13 @@ operators."
;;
;; This function might do hidden buffer changes.
+ ;; 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
+ ;; name.
+ (while (c-forward-annotation)
+ (c-forward-syntactic-ws))
+
(let (;; `start-pos' is used below to point to the start of the
;; first type, i.e. after any leading specifiers. It might
;; also point at the beginning of the preceding syntactic
@@ -642,9 +649,6 @@ operators."
(member (buffer-substring-no-properties (point) tok-end)
c-pre-start-tokens)))))
- (while (c-forward-annotation)
- (c-forward-syntactic-ws))
-
;; Check for a type. Unknown symbols are treated as possible
;; types, but they could also be specifiers disguised through
;; macros like __INLINE__, so we recognize both types and known
@@ -1528,23 +1532,21 @@ operators."
;; D: The logic in cc-mode's `c-forward-decl-or-cast-1' will
;; recognize "someIdentifier in" as a variable declaration,
;; fontifying someIdentifier as a type. Prevent this here.
- ((save-excursion
- (and
- (looking-at c-identifier-start)
- (progn
- (c-forward-token-2)
- (looking-at (d-make-keywords-re t '("is" "!is" "in" "!in"))))))
+ ((and
+ (looking-at c-identifier-start)
+ (save-excursion
+ (c-forward-token-2)
+ (looking-at (d-make-keywords-re t '("is" "!is" "in" "!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 (d-make-keywords-re t '("scope")))
- (progn
- (c-forward-token-2)
- (looking-at "("))))
+ ((and
+ (looking-at (d-make-keywords-re t '("scope")))
+ (save-excursion
+ (c-forward-token-2)
+ (looking-at "(")))
nil)
;; D: The "else" following a "version" or "static if" can start a
@@ -1561,13 +1563,6 @@ operators."
(apply #'d-forward-decl-or-cast-1 args))
(t
- ;; 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 name.
- (while (c-forward-annotation)
- (c-forward-syntactic-ws))
-
(add-function :around (symbol-function 'c-forward-name)
#'d-special-case-c-forward-name)
(unwind-protect
- [nongnu] elpa/d-mode 32446a7 338/346: Merge pull request #107 from CyberShadow/github-actions, (continued)
- [nongnu] elpa/d-mode 32446a7 338/346: Merge pull request #107 from CyberShadow/github-actions, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode c3be102 344/346: Cask: Fetch undercover.el directly from git, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 7fdd7b2 343/346: .github/workflows/test.yml: Add final step to call the Coveralls webhook, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 505022e 341/346: tests: New testcase, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 199743d 346/346: tests/I0021: Update condition, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 66796d0 247/346: Rename gplv2.txt -> COPYING, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 51dcd68 251/346: Improve comprehension of D constructors and destructors, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode f4b3d8a 267/346: Precompute regular expressions for inline keyword lists, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 809586a 266/346: Reorganize code, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 4851fc2 270/346: Fix fontification of "enum" in string literals, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 49cb5a8 275/346: Consolidate c-forward-decl-or-cast-1 annotation patch,
ELPA Syncer <=
- [nongnu] elpa/d-mode 45c60e0 286/346: Fix fontification of variable declarations with top-level types, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode e9a034e 283/346: Tighten decl/arglist recognition, obsoleting another patch, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 05fc5f1 284/346: Consolidate c-forward-decl-or-cast-1 "scope" patch, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 44cf02b 287/346: tests: New testcase, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 73f4bdc 292/346: Emacs 25 compatibility, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode 8e77187 293/346: Fix fontification of return statements, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode cb97457 297/346: Remove another obsolete hack, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode bc725ef 296/346: Use a conditional compilation macro for version checks, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode c77fc0a 307/346: Skip coverage analysis when byte-compiling, ELPA Syncer, 2021/08/29
- [nongnu] elpa/d-mode d9e9d06 311/346: Merge d-forward-module-clause into d-forward-keyword-clause, ELPA Syncer, 2021/08/29