about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-compile.el
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-compile.el')
-rw-r--r--configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-compile.el162
1 files changed, 0 insertions, 162 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-compile.el b/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-compile.el
deleted file mode 100644
index 27a4a5f6efee..000000000000
--- a/configs/shared/emacs/.emacs.d/elpa/haskell-mode-20180913.348/haskell-compile.el
+++ /dev/null
@@ -1,162 +0,0 @@
-;;; haskell-compile.el --- Haskell/GHC compilation sub-mode -*- lexical-binding: t -*-
-
-;; Copyright (C) 2013  Herbert Valerio Riedel
-
-;; Author: Herbert Valerio Riedel <hvr@gnu.org>
-
-;; This file is not part of GNU Emacs.
-
-;; This file 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 file 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:
-
-;; Simple GHC-centric compilation sub-mode; see info node
-;; `(haskell-mode)compilation' for more information
-
-;;; Code:
-
-(require 'compile)
-(require 'haskell-cabal)
-(require 'ansi-color)
-
-;;;###autoload
-(defgroup haskell-compile nil
-  "Settings for Haskell compilation mode"
-  :link '(custom-manual "(haskell-mode)compilation")
-  :group 'haskell)
-
-(defcustom haskell-compile-cabal-build-command
-  "cd %s && cabal build --ghc-option=-ferror-spans"
-  "Default build command to use for `haskell-cabal-build' when a cabal file is detected.
-The `%s' placeholder is replaced by the cabal package top folder."
-  :group 'haskell-compile
-  :type 'string)
-
-(defcustom haskell-compile-cabal-build-alt-command
-  "cd %s && cabal clean -s && cabal build --ghc-option=-ferror-spans"
-  "Alternative build command to use when `haskell-cabal-build' is called with a negative prefix argument.
-The `%s' placeholder is replaced by the cabal package top folder."
-  :group 'haskell-compile
-  :type 'string)
-
-(defcustom haskell-compile-command
-  "ghc -Wall -ferror-spans -fforce-recomp -c %s"
-  "Default build command to use for `haskell-cabal-build' when no cabal file is detected.
-The `%s' placeholder is replaced by the current buffer's filename."
-  :group 'haskell-compile
-  :type 'string)
-
-(defcustom haskell-compile-ghc-filter-linker-messages
-  t
-  "Filter out unremarkable \"Loading package...\" linker messages during compilation."
-  :group 'haskell-compile
-  :type 'boolean)
-
-(defconst haskell-compilation-error-regexp-alist
-  `((,(concat
-       "^ *\\(?1:[^\t\r\n]+?\\):"
-       "\\(?:"
-       "\\(?2:[0-9]+\\):\\(?4:[0-9]+\\)\\(?:-\\(?5:[0-9]+\\)\\)?" ;; "121:1" & "12:3-5"
-       "\\|"
-       "(\\(?2:[0-9]+\\),\\(?4:[0-9]+\\))-(\\(?3:[0-9]+\\),\\(?5:[0-9]+\\))" ;; "(289,5)-(291,36)"
-       "\\)"
-       ":\\(?6:\n?[ \t]+[Ww]arning:\\)?")
-     1 (2 . 3) (4 . 5) (6 . nil)) ;; error/warning locus
-
-    ;; multiple declarations
-    ("^    \\(?:Declared at:\\|            \\) \\(?1:[^ \t\r\n]+\\):\\(?2:[0-9]+\\):\\(?4:[0-9]+\\)$"
-     1 2 4 0) ;; info locus
-
-    ;; failed tasty tests
-    (".*error, called at \\(.*\\.hs\\):\\([0-9]+\\):\\([0-9]+\\) in .*" 1 2 3 2 1)
-    (" +\\(.*\\.hs\\):\\([0-9]+\\):$" 1 2 nil 2 1)
-
-    ;; this is the weakest pattern as it's subject to line wrapping et al.
-    (" at \\(?1:[^ \t\r\n]+\\):\\(?2:[0-9]+\\):\\(?4:[0-9]+\\)\\(?:-\\(?5:[0-9]+\\)\\)?[)]?$"
-     1 2 (4 . 5) 0)) ;; info locus
-  "Regexps used for matching GHC compile messages.
-See `compilation-error-regexp-alist' for semantics.")
-
-(defvar haskell-compilation-mode-map
-  (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map compilation-mode-map))
-  "Keymap for `haskell-compilation-mode' buffers.
-This is a child of `compilation-mode-map'.")
-
-(defun haskell-compilation-filter-hook ()
-  "Local `compilation-filter-hook' for `haskell-compilation-mode'."
-
-  (when haskell-compile-ghc-filter-linker-messages
-    (delete-matching-lines "^ *Loading package [^ \t\r\n]+ [.]+ linking [.]+ done\\.$"
-                           (save-excursion (goto-char compilation-filter-start)
-                                           (line-beginning-position))
-                           (point)))
-
-  (let ((inhibit-read-only t))
-    (ansi-color-apply-on-region compilation-filter-start (point-max))))
-
-(define-compilation-mode haskell-compilation-mode "HsCompilation"
-  "Haskell/GHC specific `compilation-mode' derivative.
-This mode provides support for GHC 7.[46]'s compile
-messages. Specifically, also the `-ferror-spans` source location
-format is supported, as well as info-locations within compile
-messages pointing to additional source locations."
-  (setq-local compilation-error-regexp-alist
-              haskell-compilation-error-regexp-alist)
-
-  (add-hook 'compilation-filter-hook
-            'haskell-compilation-filter-hook nil t)
-  )
-
-;;;###autoload
-(defun haskell-compile (&optional edit-command)
-  "Compile the Haskell program including the current buffer.
-Tries to locate the next cabal description in current or parent
-folders via `haskell-cabal-find-dir' and if found, invoke
-`haskell-compile-cabal-build-command' from the cabal package root
-folder. If no cabal package could be detected,
-`haskell-compile-command' is used instead.
-
-If prefix argument EDIT-COMMAND is non-nil (and not a negative
-prefix `-'), `haskell-compile' prompts for custom compile
-command.
-
-If EDIT-COMMAND contains the negative prefix argument `-',
-`haskell-compile' calls the alternative command defined in
-`haskell-compile-cabal-build-alt-command' if a cabal package was
-detected.
-
-`haskell-compile' uses `haskell-compilation-mode' which is
-derived from `compilation-mode'. See Info
-node `(haskell-mode)compilation' for more details."
-  (interactive "P")
-  (save-some-buffers (not compilation-ask-about-save)
-                         compilation-save-buffers-predicate)
-  (let* ((cabdir (haskell-cabal-find-dir))
-         (command1 (if (eq edit-command '-)
-                       haskell-compile-cabal-build-alt-command
-                     haskell-compile-cabal-build-command))
-         (srcname (buffer-file-name))
-         (command (if cabdir
-                      (format command1 cabdir)
-                    (if (and srcname (derived-mode-p 'haskell-mode))
-                        (format haskell-compile-command srcname)
-                      command1))))
-    (when (and edit-command (not (eq edit-command '-)))
-      (setq command (compilation-read-command command)))
-
-    (compilation-start command 'haskell-compilation-mode)))
-
-(provide 'haskell-compile)
-;;; haskell-compile.el ends here