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

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

[nongnu] elpa/haskell-tng-mode f2ce737 038/385: neutral


From: ELPA Syncer
Subject: [nongnu] elpa/haskell-tng-mode f2ce737 038/385: neutral
Date: Tue, 5 Oct 2021 23:58:57 -0400 (EDT)

branch: elpa/haskell-tng-mode
commit f2ce7373602ae9cf3492fe938fc7ae235229a612
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>

    neutral
---
 haskell-tng-font-lock.el | 65 +++++++++++++++++++++++++++---------------------
 1 file changed, 37 insertions(+), 28 deletions(-)

diff --git a/haskell-tng-font-lock.el b/haskell-tng-font-lock.el
index 2c1d5b1..db62463 100644
--- a/haskell-tng-font-lock.el
+++ b/haskell-tng-font-lock.el
@@ -114,21 +114,22 @@
           (: symbol-start (char ?\\))))
       . 'haskell-tng:keyword)
 
-     ;; ;; TypeFamilies
-     ;; (,(rx word-start "type" (+ space) (group "family") word-end)
-     ;;  (1 'haskell-tng:keyword))
-     ;; ;; EXT:TypeFamilies (associated types, is this the right extension?)
-
-     ;; ;; Types
-     ;; (haskell-tng:font:explicit-type:keyword
-     ;;  (1 'haskell-tng:type keep))
-     ;; (haskell-tng:font:topdecl:keyword
-     ;;  (1 'haskell-tng:type keep))
-     ;; (haskell-tng:font:type:keyword
-     ;;  (1 'haskell-tng:type keep))
-     ;; (haskell-tng:font:deriving:keyword
-     ;;  (1 'haskell-tng:keyword keep)
-     ;;  (2 'haskell-tng:type keep))
+     ;; TypeFamilies
+     (,(rx word-start "type" (+ space) (group "family") word-end)
+      (1 'haskell-tng:keyword))
+     ;; EXT:TypeFamilies (associated types, is this the right extension?)
+
+     ;; Types
+     (haskell-tng:font:explicit-type:keyword
+      (1 'haskell-tng:type keep))
+     (haskell-tng:font:topdecl:keyword
+      (1 'haskell-tng:type keep))
+     (haskell-tng:font:type:keyword
+      (1 'haskell-tng:type keep))
+     (haskell-tng:font:deriving:keyword
+      (1 'haskell-tng:keyword keep)
+      (2 'haskell-tng:type keep))
+     ;; TODO don't colour parens
 
      ;; TypeApplications: Unfortunately it is not possible to disambiguate
      ;; between type applications when the following type is in parentheses, as
@@ -158,7 +159,7 @@
        (haskell-tng:font:multiline:anchor-rewind) nil
        (1 'haskell-tng:keyword)
        (2 'haskell-tng:module))
-      (haskell-tng:font:paren-search-forward
+      (haskell-tng:font:explicit-constructors
        (haskell-tng:font:multiline:anchor-rewind 1)
        (haskell-tng:font:multiline:anchor-rewind)
        (0 'haskell-tng:constructor))
@@ -177,17 +178,22 @@
      ;; TODO: numeric / char primitives?
      ;; TODO: haddock, different face vs line comments, and some markup.
 
-     ;; ;; top-level
-     ;; (,(rx-to-string toplevel)
-     ;;  . 'haskell-tng:toplevel)
+     ;; top-level
+     (,(rx-to-string toplevel)
+      . 'haskell-tng:toplevel)
 
-     ;; ;; uses of F.Q.N.s
-     ;; (,(rx-to-string `(: symbol-start (+ (: ,conid "."))))
-     ;;  . 'haskell-tng:module)
+     ;; uses of F.Q.N.s
+     (,(rx-to-string `(: symbol-start (+ (: ,conid "."))))
+      . 'haskell-tng:module)
 
-     ;; ;; constructors
-     ;; (,(rx-to-string `(: symbol-start (| ,conid ,consym) symbol-end))
-     ;;  . 'haskell-tng:constructor)
+     ;; constructors
+     (,(rx-to-string `(: symbol-start (| ,conid ,consym) symbol-end))
+      . 'haskell-tng:constructor)
+
+     ;; some things look nicer without faces
+     (,(rx (any ?\( ?\) ?\[ ?\] ?\{ ?\} ?,))
+      (0 'default t))
+     ;; TODO: remove faces instead of adding 'default
 
      )))
 
@@ -205,10 +211,13 @@ If there is no match for GROUP, move to the end of the 
line, canceling this ANCH
       (forward-char jump))
     (match-end 0)))
 
-(defun haskell-tng:font:paren-search-forward (limit)
-  "Match the contents of balanced parenthesis."
+(defun haskell-tng:font:explicit-constructors (limit)
+  "Finds paren blocks of constructors when in an import statement.
+Some complexity to avoid matching on operators."
   (let ((start (point)))
-    (when (re-search-forward "(" limit t)
+    (when (re-search-forward
+           (rx (any lower) (* space) "(")
+           limit t)
       (let ((open (point)))
         (when-let (close (haskell-tng:paren-close))
           (when (<= close limit)



reply via email to

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