[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/haskell-tng-mode f6ce55f 006/385: type detection has begun
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/haskell-tng-mode f6ce55f 006/385: type detection has begun |
Date: |
Tue, 5 Oct 2021 23:58:50 -0400 (EDT) |
branch: elpa/haskell-tng-mode
commit f6ce55f08f88acad6b877e707f3246f50de88e38
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>
type detection has begun
---
haskell-tng-font-lock.el | 31 +++++++++++++++++++++++++++++--
1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/haskell-tng-font-lock.el b/haskell-tng-font-lock.el
index 7be03a2..8558efc 100644
--- a/haskell-tng-font-lock.el
+++ b/haskell-tng-font-lock.el
@@ -48,8 +48,11 @@
"Haskell constructors."
:group 'haskell-tng:faces)
-;; TODO: types (signatures, classes and imports)
-;;
+(defface haskell-tng:toplevel
+ '((t :inherit font-lock-function-name-face))
+ "Haskell top level declarations."
+ :group 'haskell-tng:faces)
+
;; TODO: pragmas
;;
;; TODO: numeric / char primitives?
@@ -79,6 +82,22 @@
(: symbol-start (char ?\\))))
. 'haskell-tng:keyword)
+ ;; types
+ ;; TODO TypeApplications
+ ;; TODO bracketed types (when are these allowed)
+ ;; TODO class definitions
+ ;; TODO types (not constructors) in imports
+ (,(rx-to-string '(: (|
+ (: line-start (+ space) "->")
+ (: symbol-start "::" symbol-end))
+ (+ space)
+ (group (+? (not (syntax comment-start))))
+ (| (syntax comment-start) line-end)))
+ (1 'haskell-tng:type keep))
+ (,(rx-to-string `(: line-start "data" (+ space)
+ (group (| ,conid ,consym))))
+ (1 'haskell-tng:type))
+
;; modules
(,(rx-to-string `(: symbol-start "module" symbol-end (+ space)
symbol-start (group (opt ,qual) ,conid) symbol-end))
@@ -97,6 +116,14 @@
(opt (+ space) word-start (group ,conid) word-end)))
nil nil (1 'haskell-tng:keyword) (2 'haskell-tng:module nil t)))
+ ;; top-level
+ (,(rx-to-string `(: line-start
+ (group (|
+ (: (any lower ?_) (* wordchar))
+ (: "(" (+? (syntax symbol)) ")")))
+ symbol-end))
+ . 'haskell-tng:toplevel)
+
;; uses of F.Q.N.s
(,(rx-to-string `(: symbol-start (+ (: ,conid "."))))
. 'haskell-tng:module)
- [nongnu] branch elpa/haskell-tng-mode created (now 55d8e69), ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode bf24329 001/385: going nova, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode aadf499 003/385: module fontification, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode c2a5b64 005/385: cleaner import fontification, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode f6ce55f 006/385: type detection has begun,
ELPA Syncer <=
- [nongnu] elpa/haskell-tng-mode 700524b 008/385: typo in keywords, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode 6ce5efb 007/385: moar type fontification, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode 7bc3218 010/385: extend types in parens, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode 52f0cb9 011/385: expand parens, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode f99ca77 012/385: fixup! expand parens, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode bd8f905 016/385: almost there, regions not being expanded, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode db064be 024/385: dank macro for font-lock extends/keyword, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode 639fc6c 018/385: multiline types and font-lock-multiline, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode cc739ad 020/385: multiline topdecl type sections, ELPA Syncer, 2021/10/05
- [nongnu] elpa/haskell-tng-mode 595bd44 034/385: type families, ELPA Syncer, 2021/10/05