about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-c2hs.el
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-c2hs.el')
-rw-r--r--configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-c2hs.el207
1 files changed, 0 insertions, 207 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-c2hs.el b/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-c2hs.el
deleted file mode 100644
index c4cb41ec3759..000000000000
--- a/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-c2hs.el
+++ /dev/null
@@ -1,207 +0,0 @@
-;; haskell-c2hs.el --- -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2016 Sergey Vinokurov
-;;
-;; Author: Sergey Vinokurov <serg.foo@gmail.com>
-;; Created: Monday,  7 March 2016
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; This mode is mostly intended for highlighting {#...#} hooks.
-;;
-;; Quick setup:
-;; (autoload 'haskell-c2hs-mode "haskell-c2hs-mode" nil t)
-;; (add-to-list 'auto-mode-alist '("\\.chs\\'" . haskell-c2hs-mode))
-;;
-
-(require 'haskell-mode)
-(require 'haskell-font-lock)
-(require 'haskell-utils)
-
-;;;###autoload
-(add-to-list 'auto-mode-alist '("\\.chs\\'" . haskell-c2hs-mode))
-
-(defface haskell-c2hs-hook-pair-face
-  '((t (:inherit 'font-lock-preprocessor-face)))
-  "Face for highlighting {#...#} pairs."
-  :group 'haskell)
-
-(defface haskell-c2hs-hook-name-face
-  '((t (:inherit 'font-lock-keyword-face)))
-  "Face for highlighting c2hs hook names."
-  :group 'haskell)
-
-(defvar haskell-c2hs-font-lock-keywords
-  `((,(eval-when-compile
-        (let* ((ws '(any ?\s ?\t ?\n ?\r))
-               (anychar '(or (not (any ?#))
-                             (seq "#"
-                                  (not (any ?\})))))
-               (any-nonquote '(or (not (any ?# ?\"))
-                                  (seq "#"
-                                       (not (any ?\} ?\")))))
-               (cid '(seq (any (?a . ?z) (?A . ?Z) ?_)
-                          (* (any (?a . ?z) (?A . ?Z) (?0 . ?9) ?_))))
-               (hsid-type '(seq (? "'")
-                                (any (?A . ?Z))
-                                (* (any (?a . ?z) (?A . ?Z) (?0 . ?9) ?_ ?'))))
-               (equals-str-val `(seq (* ,ws)
-                                     "="
-                                     (* ,ws)
-                                     "\""
-                                     (* ,any-nonquote)
-                                     "\"")))
-          (eval
-           `(rx
-             (seq
-              (group-n 1 "{#")
-              (* ,ws)
-              (or (seq (group-n 2
-                                "import"
-                                (opt (+ ,ws)
-                                     "qualified"))
-                       (+ ,ws))
-                  (seq (group-n 2
-                                "context")
-                       (opt (+ ,ws)
-                            (group-n 3
-                                     "lib")
-                            ,equals-str-val)
-                       (opt (+ ,ws)
-                            (group-n 4
-                                     "prefix")
-                            ,equals-str-val)
-                       (opt (+ ,ws)
-                            (group-n 5
-                                     "add"
-                                     (+ ,ws)
-                                     "prefix")
-                            ,equals-str-val))
-                  (seq (group-n 2
-                                "type")
-                       (+ ,ws)
-                       ,cid)
-                  (seq (group-n 2
-                                "sizeof")
-                       (+ ,ws)
-                       ,cid)
-                  (seq (group-n 2
-                                "enum"
-                                (+ ,ws)
-                                "define")
-                       (+ ,ws)
-                       ,cid)
-                  ;; TODO: vanilla enum fontification is incomplete
-                  (seq (group-n 2
-                                "enum")
-                       (+ ,ws)
-                       ,cid
-                       (opt (+ ,ws)
-                            (group-n 3
-                                     "as")))
-                  ;; TODO: fun hook highlighting is incompelete
-                  (seq (group-n 2
-                                (or "call"
-                                    "fun")
-                                (opt (+ ,ws)
-                                     "pure")
-                                (opt (+ ,ws)
-                                     "unsafe"))
-                       (+ ,ws)
-                       ,cid
-                       (opt (+ ,ws)
-                            (group-n 3
-                                     "as")
-                            (opt (+ ,ws)
-                                 (group-n 8
-                                          "^"))))
-                  (group-n 2
-                           "get")
-                  (group-n 2
-                           "set")
-                  (seq (group-n 2
-                                "pointer")
-                       (or (seq (* ,ws)
-                                (group-n 3 "*")
-                                (* ,ws))
-                           (+ ,ws))
-                       ,cid
-                       (opt (+ ,ws)
-                            (group-n 4 "as")
-                            (+ ,ws)
-                            ,hsid-type)
-                       (opt (+ ,ws)
-                            (group-n 5
-                                     (or "foreign"
-                                         "stable")))
-                       (opt
-                        (or (seq (+ ,ws)
-                                 (group-n 6
-                                          "newtype"))
-                            (seq (* ,ws)
-                                 "->"
-                                 (* ,ws)
-                                 ,hsid-type)))
-                       (opt (+ ,ws)
-                            (group-n 7
-                                     "nocode")))
-                  (group-n 2
-                           "class")
-                  (group-n 2
-                           "alignof")
-                  (group-n 2
-                           "offsetof")
-                  (seq (group-n 2
-                                "const")
-                       (+ ,ws)
-                       ,cid)
-                  (seq (group-n 2
-                                "typedef")
-                       (+ ,ws)
-                       ,cid
-                       (+ ,ws)
-                       ,hsid-type)
-                  (group-n 2
-                           "nonGNU")
-                  ;; TODO: default hook not implemented
-                  )
-              (* ,anychar)
-              (group-n 9 "#}"))))))
-     ;; Override highlighting for pairs in order to always distinguish them.
-     (1 'haskell-c2hs-hook-pair-face t)
-     (2 'haskell-c2hs-hook-name-face)
-     ;; Make matches lax, i.e. do not signal error if nothing
-     ;; matched.
-     (3 'haskell-c2hs-hook-name-face nil t)
-     (4 'haskell-c2hs-hook-name-face nil t)
-     (5 'haskell-c2hs-hook-name-face nil t)
-     (6 'haskell-c2hs-hook-name-face nil t)
-     (7 'haskell-c2hs-hook-name-face nil t)
-     (8 'font-lock-negation-char-face nil t)
-     ;; Override highlighting for pairs in order to always distinguish them.
-     (9 'haskell-c2hs-hook-pair-face t))
-    ,@(haskell-font-lock-keywords)))
-
-;;;###autoload
-(define-derived-mode haskell-c2hs-mode haskell-mode "C2HS"
-  "Mode for editing *.chs files of the c2hs haskell tool."
-  (setq-local font-lock-defaults
-              (cons 'haskell-c2hs-font-lock-keywords
-                    (cdr font-lock-defaults))))
-
-
-(provide 'haskell-c2hs)
-
-;; haskell-c2hs.el ends here