emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/d-mode 2f7adb1 319/346: Fontify sole lambda params


From: ELPA Syncer
Subject: [nongnu] elpa/d-mode 2f7adb1 319/346: Fontify sole lambda params
Date: Sun, 29 Aug 2021 11:00:52 -0400 (EDT)

branch: elpa/d-mode
commit 2f7adb185fc5440dc2b0eb80b4eed1a218ad0b32
Author: Vladimir Panteleev <git@thecybershadow.net>
Commit: Vladimir Panteleev <git@thecybershadow.net>

    Fontify sole lambda params
---
 d-mode.el                 | 15 +++++++++++++--
 tests/fonts_params.d      |  4 ++++
 tests/fonts_params.d.html |  4 ++++
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/d-mode.el b/d-mode.el
index 4c4e8c9..89d84eb 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:  201911121452
+;; Version:  201911121459
 ;; Keywords:  D programming language emacs cc-mode
 ;; Package-Requires: ((emacs "25.1"))
 
@@ -144,7 +144,7 @@
   d "\\(\\[[^]]*\\]\\|\\.\\.\\.\\|\\*\\)")
 
 (c-lang-defconst c-decl-prefix-re
-  d "\\([{}();:,]+\\)")
+  d "\\([{}();:,=]+\\)")
 
 (c-lang-defconst c-identifier-ops
   ;; For recognizing "~this", ".foo", and "foo.bar.baz" as identifiers
@@ -631,6 +631,17 @@ Evaluate OLD-FORM if the Emacs version is older than 
MIN-VERSION,
            (setq id-start (point))
            t)))
 
+        ;; Lambda literal
+        ((and (memq context '(top nil arglist))
+              (save-excursion
+                (and
+                 (d-forward-identifier)
+                 (progn
+                   (c-forward-syntactic-ws)
+                   (looking-at "=>")))))
+         (setq id-start decl-start)
+         t)
+
         ;; Function / variable / constant declaration, i.e. an
         ;; (optional) type followed by an identifier.
         ((and (memq context '(top nil))
diff --git a/tests/fonts_params.d b/tests/fonts_params.d
index dc70530..8e3e0b2 100644
--- a/tests/fonts_params.d
+++ b/tests/fonts_params.d
@@ -4,6 +4,10 @@
 auto dg = (Object a, Object b) {};
 alias dg2 = (a, b) {};
 
+alias dg3 = a => a + 1;
+alias dg4 = fun(a => a + 1);
+alias dg5 = fun(a, b => b + 1);
+
 void fun()
 {
        foreach (a; c) foo();
diff --git a/tests/fonts_params.d.html b/tests/fonts_params.d.html
index 58100b5..0d6c716 100644
--- a/tests/fonts_params.d.html
+++ b/tests/fonts_params.d.html
@@ -4,6 +4,10 @@
 <span class="keyword">auto</span> <span class="variable-name">dg</span> = 
(<span class="type">Object</span> <span class="variable-name">a</span>, <span 
class="type">Object</span> <span class="variable-name">b</span>) {};
 <span class="keyword">alias</span> <span class="variable-name">dg2</span> = 
(<span class="variable-name">a</span>, <span class="variable-name">b</span>) {};
 
+<span class="keyword">alias</span> <span class="variable-name">dg3</span> = 
<span class="variable-name">a</span> =&gt; a + 1;
+<span class="keyword">alias</span> <span class="variable-name">dg4</span> = 
fun(<span class="variable-name">a</span> =&gt; a + 1);
+<span class="keyword">alias</span> <span class="variable-name">dg5</span> = 
fun(a, <span class="variable-name">b</span> =&gt; b + 1);
+
 <span class="type">void</span> <span class="function-name">fun</span>()
 {
        <span class="keyword">foreach</span> (<span 
class="variable-name">a</span>; c) foo();



reply via email to

[Prev in Thread] Current Thread [Next in Thread]