From 1c8ca2f81526971fb90c014bfe932f472ade450d Mon Sep 17 00:00:00 2001 From: Wilfred Hughes Date: Thu, 28 Dec 2023 19:05:16 -0800 Subject: [PATCH] Version bump haskell-mode --- .../haskell-mode-pkg.el | 17 - .../NEWS | 16 + .../dir | 0 .../ghc-core.el | 1 - .../ghci-script-mode.el | 6 +- .../haskell-align-imports.el | 0 .../haskell-c2hs.el | 2 +- .../haskell-cabal.el | 63 +- .../haskell-collapse.el | 4 +- .../haskell-commands.el | 20 +- .../haskell-compile.el | 20 +- .../haskell-complete-module.el | 0 .../haskell-completions.el | 17 +- .../haskell-customize.el | 22 +- .../haskell-debug.el | 73 +- .../haskell-decl-scan.el | 3 +- .../haskell-doc.el | 204 ++--- .../haskell-font-lock.el | 12 +- .../haskell-ghc-support.el | 181 +++++ .../haskell-hoogle.el | 29 +- .../haskell-indent.el | 10 +- .../haskell-indentation.el | 36 +- .../haskell-interactive-mode.el | 16 +- .../haskell-lexeme.el | 69 +- .../haskell-load.el | 19 +- .../haskell-menu.el | 0 .../haskell-mode-autoloads.el | 723 +++++++----------- .../haskell-mode-pkg.el | 8 + .../haskell-mode.el | 82 +- .../haskell-mode.info | 54 +- .../haskell-modules.el | 0 .../haskell-move-nested.el | 4 +- .../haskell-navigate-imports.el | 0 .../haskell-presentation-mode.el | 0 .../haskell-process.el | 9 +- .../haskell-repl.el | 0 .../haskell-sandbox.el | 0 .../haskell-session.el | 0 .../haskell-sort-imports.el | 0 .../haskell-string.el | 0 .../haskell-svg.el | 0 .../haskell-unicode-input-method.el | 0 .../haskell-utils.el | 8 +- .../haskell.el | 7 +- .../highlight-uses-mode.el | 0 .../inf-haskell.el | 20 +- .../logo.svg | 0 .../w3m-haddock.el | 9 +- 48 files changed, 845 insertions(+), 919 deletions(-) delete mode 100644 elpa/haskell-mode-20210908.1543/haskell-mode-pkg.el rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/NEWS (97%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/dir (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/ghc-core.el (99%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/ghci-script-mode.el (94%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-align-imports.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-c2hs.el (99%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-cabal.el (95%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-collapse.el (98%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-commands.el (98%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-compile.el (92%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-complete-module.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-completions.el (97%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-customize.el (96%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-debug.el (94%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-decl-scan.el (99%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-doc.el (93%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-font-lock.el (99%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-ghc-support.el (90%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-hoogle.el (84%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-indent.el (99%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-indentation.el (97%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-interactive-mode.el (99%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-lexeme.el (90%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-load.el (98%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-menu.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-mode-autoloads.el (52%) create mode 100644 elpa/haskell-mode-20231115.1812/haskell-mode-pkg.el rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-mode.el (97%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-mode.info (99%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-modules.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-move-nested.el (96%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-navigate-imports.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-presentation-mode.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-process.el (99%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-repl.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-sandbox.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-session.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-sort-imports.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-string.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-svg.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-unicode-input-method.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell-utils.el (97%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/haskell.el (98%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/highlight-uses-mode.el (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/inf-haskell.el (93%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/logo.svg (100%) rename elpa/{haskell-mode-20210908.1543 => haskell-mode-20231115.1812}/w3m-haddock.el (96%) diff --git a/elpa/haskell-mode-20210908.1543/haskell-mode-pkg.el b/elpa/haskell-mode-20210908.1543/haskell-mode-pkg.el deleted file mode 100644 index ab0cad2c..00000000 --- a/elpa/haskell-mode-20210908.1543/haskell-mode-pkg.el +++ /dev/null @@ -1,17 +0,0 @@ -(define-package "haskell-mode" "20210908.1543" "A Haskell editing mode" - '((emacs "25.1")) - :commit "8402caa341d90b4236f5c0a802751f9023ccfbe7" :authors - '(("1992 Simon Marlow") - ("1997-1998 Graeme E Moss" . "gem@cs.york.ac.uk") - ("Tommy Thorn" . "thorn@irisa.fr") - ("2001-2002 Reuben Thomas (>=v1.4)") - ("2003 Dave Love" . "fx@gnu.org") - ("2016 Arthur Fayzrakhmanov")) - :maintainer - '("1992 Simon Marlow") - :keywords - '("faces" "files" "haskell") - :url "https://github.com/haskell/haskell-mode") -;; Local Variables: -;; no-byte-compile: t -;; End: diff --git a/elpa/haskell-mode-20210908.1543/NEWS b/elpa/haskell-mode-20231115.1812/NEWS similarity index 97% rename from elpa/haskell-mode-20210908.1543/NEWS rename to elpa/haskell-mode-20231115.1812/NEWS index f4e987a3..a837abd0 100644 --- a/elpa/haskell-mode-20210908.1543/NEWS +++ b/elpa/haskell-mode-20231115.1812/NEWS @@ -6,6 +6,22 @@ This file uses Org mode. Some useful (default) key-bindings: - Use "" to cycle visibility of all nodes - Use "C-c C-o" to open links +* Changes in 17.5 + +- See [[https://github.com/haskell/haskell-mode/compare/v17.4...v17.5][Git history]] + +* Changes in 17.4 + +- See [[https://github.com/haskell/haskell-mode/compare/v17.3...v17.4][Git history]] + +* Changes in 17.3 + +- See [[https://github.com/haskell/haskell-mode/compare/v17.2...v17.3][Git history]] + +* Changes in 17.2 + +- See [[https://github.com/haskell/haskell-mode/compare/v17.1...v17.2][Git history]] + * Changes in 17.1 - Require at least Emacs 25.1 diff --git a/elpa/haskell-mode-20210908.1543/dir b/elpa/haskell-mode-20231115.1812/dir similarity index 100% rename from elpa/haskell-mode-20210908.1543/dir rename to elpa/haskell-mode-20231115.1812/dir diff --git a/elpa/haskell-mode-20210908.1543/ghc-core.el b/elpa/haskell-mode-20231115.1812/ghc-core.el similarity index 99% rename from elpa/haskell-mode-20210908.1543/ghc-core.el rename to elpa/haskell-mode-20231115.1812/ghc-core.el index bb6fa6ed..92951f21 100644 --- a/elpa/haskell-mode-20210908.1543/ghc-core.el +++ b/elpa/haskell-mode-20231115.1812/ghc-core.el @@ -32,7 +32,6 @@ (require 'haskell-mode) (require 'haskell-font-lock) -;;;###autoload (defgroup ghc-core nil "Major mode for viewing pretty printed GHC Core output." :link '(custom-manual "(haskell-mode)") diff --git a/elpa/haskell-mode-20210908.1543/ghci-script-mode.el b/elpa/haskell-mode-20231115.1812/ghci-script-mode.el similarity index 94% rename from elpa/haskell-mode-20210908.1543/ghci-script-mode.el rename to elpa/haskell-mode-20231115.1812/ghci-script-mode.el index 2ec905cd..981060f2 100644 --- a/elpa/haskell-mode-20210908.1543/ghci-script-mode.el +++ b/elpa/haskell-mode-20231115.1812/ghci-script-mode.el @@ -55,9 +55,9 @@ (defun ghci-script-mode-load () "Load the current script file into the GHCi session." (interactive) - (let ((buffer (haskell-session-interactive-buffer (haskell-session))) - (filename (buffer-file-name))) - (save-buffer) + (save-buffer) + (let ((filename (buffer-file-name)) + (buffer (haskell-session-interactive-buffer (haskell-session)))) (with-current-buffer buffer (set-marker haskell-interactive-mode-prompt-start (point-max)) (haskell-interactive-mode-run-expr diff --git a/elpa/haskell-mode-20210908.1543/haskell-align-imports.el b/elpa/haskell-mode-20231115.1812/haskell-align-imports.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-align-imports.el rename to elpa/haskell-mode-20231115.1812/haskell-align-imports.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-c2hs.el b/elpa/haskell-mode-20231115.1812/haskell-c2hs.el similarity index 99% rename from elpa/haskell-mode-20210908.1543/haskell-c2hs.el rename to elpa/haskell-mode-20231115.1812/haskell-c2hs.el index c4cb41ec..8eb31ff8 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-c2hs.el +++ b/elpa/haskell-mode-20231115.1812/haskell-c2hs.el @@ -111,7 +111,7 @@ (opt (+ ,ws) (group-n 3 "as"))) - ;; TODO: fun hook highlighting is incompelete + ;; TODO: fun hook highlighting is incomplete (seq (group-n 2 (or "call" "fun") diff --git a/elpa/haskell-mode-20210908.1543/haskell-cabal.el b/elpa/haskell-mode-20231115.1812/haskell-cabal.el similarity index 95% rename from elpa/haskell-mode-20210908.1543/haskell-cabal.el rename to elpa/haskell-mode-20231115.1812/haskell-cabal.el index a2de2eaa..c0707009 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-cabal.el +++ b/elpa/haskell-mode-20231115.1812/haskell-cabal.el @@ -99,22 +99,29 @@ By default these are: (defvar haskell-cabal-font-lock-keywords ;; The comment syntax can't be described simply in syntax-table. ;; We could use font-lock-syntactic-keywords, but is it worth it? - '(("^[ \t]*--.*" . font-lock-comment-face) - ("^ *\\([^ \t:]+\\):" (1 font-lock-keyword-face)) - ("^\\(Library\\)[ \t]*\\({\\|$\\)" (1 font-lock-keyword-face)) - ("^\\(Executable\\|Test-Suite\\|Benchmark\\|Common\\|package\\)[ \t]+\\([^\n \t]*\\)" + '(;; comments + ("^[ \t]*--.*" . font-lock-comment-face) + ;; fields ending in colon + ("^ *\\([^ \t:]+\\):\\( +\\|$\\)" (1 font-lock-keyword-face)) + ;; stanzas that start a line, followed by an identifier + ("^\\(Library\\|Executable\\|Test-Suite\\|Benchmark\\|Common\\|Package\\|Flag\\|Repository\\)[ \t]+\\([^\n \t]*\\)" (1 font-lock-keyword-face) (2 font-lock-function-name-face)) - ("^\\(Flag\\|install-dirs\\|repository\\)[ \t]+\\([^\n \t]*\\)" - (1 font-lock-keyword-face) (2 font-lock-constant-face)) - ("^\\(Source-Repository\\)[ \t]+\\(head\\|this\\)" - (1 font-lock-keyword-face) (2 font-lock-constant-face)) - ("^\\(haddock\\|source-repository-package\\|program-locations\\|program-default-options\\)\\([ \t]\\|$\\)" - (1 font-lock-keyword-face)) - ("^ *\\(if\\)[ \t]+.*\\({\\|$\\)" (1 font-lock-keyword-face)) - ("^ *\\(}[ \t]*\\)?\\(else\\)[ \t]*\\({\\|$\\)" - (2 font-lock-keyword-face)) - ("\\<\\(?:True\\|False\\)\\>" - (0 font-lock-constant-face)))) + ;; stanzas that start a line, followed by a constant + ("^\\(Source-Repository\\)[ \t]+\\(head\\|this\\)" (1 font-lock-keyword-face) (2 font-lock-constant-face)) + ;; stanzas that start a line, followed by a constant in cabal config + ("^\\(install-dirs\\)[ \t]+\\(global\\|user\\)" (1 font-lock-keyword-face) (2 font-lock-constant-face)) + ;; stanzas that start a line + ("^\\(Library\\|Custom-Setup\\|source-repository-package\\)[ \t]*$" (1 font-lock-keyword-face)) + ;; stanzas that start a line in cabal config + ("^\\(haddock\\|init\\|program-locations\\|program-default-options\\)[ \t]*$" (1 font-lock-keyword-face)) + ;; stanzas that can live inside if-blocks + ("^[ \t]*\\(program-options\\)$" (1 font-lock-keyword-face)) + ;; if clause + ("^ *\\(if\\|elif\\)[ \t]+.*$" (1 font-lock-keyword-face)) + ;; else clause + ("^ *\\(else\\)[ \t]*$" (1 font-lock-keyword-face)) + ;; True/False + ("\\<\\(?:True\\|False\\)\\>" (0 font-lock-constant-face)))) (defvar haskell-cabal-buffers nil "List of Cabal buffers.") @@ -160,7 +167,7 @@ it from list if one of the following conditions are hold: map)) ;;;###autoload -(define-derived-mode haskell-cabal-mode fundamental-mode "Haskell-Cabal" +(define-derived-mode haskell-cabal-mode text-mode "Haskell-Cabal" "Major mode for Cabal package description files." (setq-local font-lock-defaults '(haskell-cabal-font-lock-keywords t t nil nil)) @@ -232,8 +239,9 @@ file), then this function returns nil." ;;;###autoload (defun haskell-cabal-get-dir (&optional use-defaults) - "Get the Cabal dir for a new project. Various ways of figuring this out, - and indeed just prompting the user. Do them all." + "Get the Cabal dir for a new project. +Various ways of figuring this out, and indeed just prompting the user. Do them +all." (let* ((file (haskell-cabal-find-file)) (dir (if file (file-name-directory file) default-directory))) (if use-defaults @@ -348,7 +356,6 @@ OTHER-WINDOW use `find-file-other-window'." "help" "run")) -;;;###autoload (defgroup haskell-cabal nil "Haskell cabal files" :group 'haskell @@ -361,7 +368,9 @@ OTHER-WINDOW use `find-file-other-window'." (defconst haskell-cabal-conditional-regexp "^[ \t]*\\(\\if\\|else\\|}\\)") (defun haskell-cabal-classify-line () - "Classify the current line into 'section-header 'subsection-header 'section-data 'comment and 'empty '" + "Classify the current line's type. +Possible results are \\='section-header \\='subsection-header \\='section-data +\\='comment and \\='empty" (save-excursion (beginning-of-line) (cond @@ -494,7 +503,8 @@ OTHER-WINDOW use `find-file-other-window'." ((equal component-type "benchmark") "bench")))) (defun haskell-cabal-enum-targets (&optional process-type) - "Enumerate .cabal targets. PROCESS-TYPE determines the format of the returned target." + "Enumerate .cabal targets. +PROCESS-TYPE determines the format of the returned target." (let ((cabal-file (haskell-cabal-find-file)) (process-type (if process-type process-type 'ghci))) (when (and cabal-file (file-readable-p cabal-file)) @@ -699,7 +709,7 @@ Respect the COMMA-STYLE, see `haskell-cabal-strip-list-and-detect-style' for the possible styles." (cl-case comma-style - ('before + (before (goto-char (point-min)) (while (haskell-cabal-ignore-line-p) (forward-line)) (indent-to 2) @@ -707,14 +717,14 @@ styles." (haskell-cabal-each-line (unless (haskell-cabal-ignore-line-p) (insert ", ")))) - ('after + (after (goto-char (point-max)) (while (equal 0 (forward-line -1)) (unless (haskell-cabal-ignore-line-p) (end-of-line) (insert ",") (beginning-of-line)))) - ('single + (single (goto-char (point-min)) (while (not (eobp)) (end-of-line) @@ -924,9 +934,10 @@ resulting buffer-content. Unmark line at the end." haskell-cabal-source-bearing-sections)))) (defun haskell-cabal-line-filename () - "Expand filename in current line according to the subsection type + "Expand filename in current line according to the subsection type. -Module names in exposed-modules and other-modules are expanded by replacing each dot (.) in the module name with a forward slash (/) and appending \".hs\" +Module names in exposed-modules and other-modules are expanded by replacing each +dot (.) in the module name with a forward slash (/) and appending \".hs\" Example: Foo.Bar.Quux ==> Foo/Bar/Quux.hs diff --git a/elpa/haskell-mode-20210908.1543/haskell-collapse.el b/elpa/haskell-mode-20231115.1812/haskell-collapse.el similarity index 98% rename from elpa/haskell-mode-20210908.1543/haskell-collapse.el rename to elpa/haskell-mode-20231115.1812/haskell-collapse.el index 8a73fa38..8c4d7906 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-collapse.el +++ b/elpa/haskell-mode-20231115.1812/haskell-collapse.el @@ -43,7 +43,7 @@ "Returns `t' if line is empty or composed only of whitespace." (save-excursion (beginning-of-line) - (= (point-at-eol) + (= (line-end-position) (progn (skip-chars-forward "[:blank:]") (point))))) (defun haskell-indented-block () @@ -92,7 +92,7 @@ indentation if dir=-1" (save-excursion (goto-char (point-max)) (while (zerop (forward-line -1)) - (goto-char (point-at-bol)) + (goto-char (line-beginning-position)) (when (= (current-indentation) 0) (haskell-hide-toggle))))) (defvar haskell-collapse-mode-map diff --git a/elpa/haskell-mode-20210908.1543/haskell-commands.el b/elpa/haskell-mode-20231115.1812/haskell-commands.el similarity index 98% rename from elpa/haskell-mode-20210908.1543/haskell-commands.el rename to elpa/haskell-mode-20231115.1812/haskell-commands.el index fba236d4..f9ed3da4 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-commands.el +++ b/elpa/haskell-mode-20231115.1812/haskell-commands.el @@ -36,6 +36,7 @@ (require 'haskell-utils) (require 'highlight-uses-mode) (require 'haskell-cabal) +(require 'haskell-ghc-support) (defcustom haskell-mode-stylish-haskell-path "stylish-haskell" "Path to `stylish-haskell' executable." @@ -652,11 +653,11 @@ happened since function invocation)." (cl-case res-type ;; neither popup presentation buffer ;; nor insert response in error case - ('unknown-command + (unknown-command (message "This command requires GHCi 8+ or GHCi-ng. Please read command description for details.")) - ('option-missing + (option-missing (message "Could not infer type signature. You need to load file first. Also :set +c is required, see customization `haskell-interactive-set-+c'. Please read command description for details.")) - ('interactive-error (message "Wrong REPL response: %s" sig)) + (interactive-error (message "Wrong REPL response: %s" sig)) (otherwise (if insert-value ;; Only insert type signature and do not present it @@ -676,9 +677,9 @@ happened since function invocation)." (cdr (reverse haskell-utils-async-post-command-flag)))) ;; Present the result only when response is valid and not asked ;; to insert result - (haskell-command-echo-or-present response))) + (haskell-command-echo-or-present response)))) - (haskell-utils-async-stop-watching-changes init-buffer)))))))) + (haskell-utils-async-stop-watching-changes init-buffer))))))) (make-obsolete 'haskell-process-generate-tags 'haskell-mode-generate-tags @@ -935,5 +936,14 @@ newlines and extra whitespace in signature before insertion." (insert sig "\n") (indent-to col))))) +(defun haskell-command-insert-language-pragma (extension) + "Insert a {-# LANGUAGE _ #-} pragma at the top of the current +buffer for the given extension." + (interactive + (list (completing-read "Extension: " haskell-ghc-supported-extensions))) + (save-excursion + (goto-char (point-min)) + (insert (format "{-# LANGUAGE %s #-}\n" extension)))) + (provide 'haskell-commands) ;;; haskell-commands.el ends here diff --git a/elpa/haskell-mode-20210908.1543/haskell-compile.el b/elpa/haskell-mode-20231115.1812/haskell-compile.el similarity index 92% rename from elpa/haskell-mode-20210908.1543/haskell-compile.el rename to elpa/haskell-mode-20231115.1812/haskell-compile.el index b19dfd02..a9779ddb 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-compile.el +++ b/elpa/haskell-mode-20231115.1812/haskell-compile.el @@ -34,7 +34,6 @@ (require 'ansi-color) (eval-when-compile (require 'subr-x)) -;;;###autoload (defgroup haskell-compile nil "Settings for Haskell compilation mode" :link '(custom-manual "(haskell-mode)compilation") @@ -42,35 +41,40 @@ (defcustom haskell-compile-cabal-build-command "cabal build --ghc-option=-ferror-spans" - "Default build command to use for `haskell-cabal-build' when a cabal file is detected. + "Default build command to use for `haskell-cabal-build'. +It is used when a cabal file is detected. For legacy compat, `%s' is replaced by the cabal package top folder." :group 'haskell-compile :type 'string) (defcustom haskell-compile-cabal-build-alt-command "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. + "Alternative build command to use when `haskell-cabal-build'. +It is used when `haskell-cabal-build' is called with a negative prefix argument. For legacy compat, `%s' is replaced by the cabal package top folder." :group 'haskell-compile :type 'string) (defcustom haskell-compile-stack-build-command "stack build --fast" - "Default build command to use for `haskell-stack-build' when a stack file is detected. + "Default build command to use for `haskell-stack-build'. +It is used when a stack file is detected. For legacy compat, `%s' is replaced by the stack package top folder." :group 'haskell-compile :type 'string) (defcustom haskell-compile-stack-build-alt-command "stack clean && stack build --fast" - "Alternative build command to use when `haskell-stack-build' is called with a negative prefix argument. + "Alternative build command to use when `haskell-stack-build'. +It is used when `haskell-stack-build' is called with a negative prefix argument. For legacy compat, `%s' is replaced by the stack 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 or stack file is detected. + "Default build command to use for `haskell-cabal-build'. +It is used when no cabal or stack file is detected. The `%s' placeholder is replaced by the current buffer's filename." :group 'haskell-compile :type 'string) @@ -84,8 +88,8 @@ The `%s' placeholder is replaced by the current buffer's filename." (defcustom haskell-compiler-type 'auto "Controls whether to use cabal, stack, or ghc to compile. - Auto (the default) means infer from the presence of a cabal or stack spec file, - following same rules as haskell-process-type." +Auto (the default) means infer from the presence of a cabal or stack spec file, +following same rules as haskell-process-type." :type '(choice (const auto) (const ghc) (const stack) (const cabal)) :group 'haskell-compile) (make-variable-buffer-local 'haskell-compiler-type) diff --git a/elpa/haskell-mode-20210908.1543/haskell-complete-module.el b/elpa/haskell-mode-20231115.1812/haskell-complete-module.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-complete-module.el rename to elpa/haskell-mode-20231115.1812/haskell-complete-module.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-completions.el b/elpa/haskell-mode-20231115.1812/haskell-completions.el similarity index 97% rename from elpa/haskell-mode-20210908.1543/haskell-completions.el rename to elpa/haskell-mode-20231115.1812/haskell-completions.el index 25121886..f4ea94d1 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-completions.el +++ b/elpa/haskell-mode-20231115.1812/haskell-completions.el @@ -31,7 +31,7 @@ ;; ;; For major use function `haskell-completions-grab-prefix' is supposed, and ;; other prefix grabbing functions are used internally by it. So, only this -;; funciton have prefix minimal length functionality and invokes predicate +;; function have prefix minimal length functionality and invokes predicate ;; function `haskell-completions-can-grab-prefix'. ;;; Code: @@ -40,7 +40,6 @@ (require 'haskell-process) (require 'haskell-interactive-mode) -;;;###autoload (defgroup haskell-completions nil "Settings for completions provided by `haskell-mode'" :link '(custom-manual "(haskell-mode)Completion support") @@ -145,7 +144,7 @@ whitespace or new line, otherwise returns nil. (defun haskell-completions-grab-pragma-prefix () "Grab completion prefix for pragma completions. -Returns a list of form '(prefix-start-position +Returns a list of form \\='(prefix-start-position prefix-end-position prefix-value prefix-type) for pramga names such as WARNING, DEPRECATED, LANGUAGE etc. Also returns completion prefixes for options in case OPTIONS_GHC pragma, or @@ -215,7 +214,7 @@ pragma is supported also." (defun haskell-completions-grab-identifier-prefix () "Grab completion prefix for identifier at point. -Returns a list of form '(prefix-start-position +Returns a list of form \\='(prefix-start-position prefix-end-position prefix-value prefix-type) for haskell identifier at point depending on result of function `haskell-ident-pos-at-point'." @@ -227,7 +226,7 @@ identifier at point depending on result of function (type 'haskell-completions-identifier-prefix) (case-fold-search nil) value) - ;; we need end position of result, becase of + ;; we need end position of result, because of ;; `haskell-ident-pos-at-point' ignores trailing whitespace, e.g. the ;; result will be same for `map|` and `map |` invocations. (when (<= p end) @@ -266,7 +265,7 @@ identifier at point depending on result of function (defun haskell-completions-grab-prefix (&optional minlen) "Grab prefix at point for possible completion. -Returns a list of form '(prefix-start-position +Returns a list of form \\='(prefix-start-position prefix-end-position prefix-value prefix-type) depending on situation, e.g. is it needed to complete pragma, module name, arbitrary identifier, etc. Returns nil in case it is @@ -309,11 +308,11 @@ PREFIX should be a list such one returned by (when (not (eql typ 'haskell-completions-general-prefix)) (let ((candidates (cl-case typ - ('haskell-completions-pragma-name-prefix + (haskell-completions-pragma-name-prefix haskell-completions--pragma-names) - ('haskell-completions-ghc-option-prefix + (haskell-completions-ghc-option-prefix haskell-ghc-supported-options) - ('haskell-completions-language-extension-prefix + (haskell-completions-language-extension-prefix haskell-ghc-supported-extensions) (otherwise (append (when (bound-and-true-p haskell-tags-on-save) diff --git a/elpa/haskell-mode-20210908.1543/haskell-customize.el b/elpa/haskell-mode-20231115.1812/haskell-customize.el similarity index 96% rename from elpa/haskell-mode-20210908.1543/haskell-customize.el rename to elpa/haskell-mode-20231115.1812/haskell-customize.el index 5e3df6da..dccddc7a 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-customize.el +++ b/elpa/haskell-mode-20231115.1812/haskell-customize.el @@ -28,7 +28,6 @@ :type 'boolean :group 'haskell-interactive) -;;;###autoload (defgroup haskell nil "Major mode for editing Haskell programs." :link '(custom-manual "(haskell-mode)") @@ -54,7 +53,7 @@ Used for locating additional package data files.") Customize this variable to see the supported symbol values. -When set to 'auto (the default), the directory contents and +When set to \\='auto (the default), the directory contents and available programs will be used to make a best guess at the process type and the project directory. @@ -87,7 +86,7 @@ The following example function arranges for all haskell process commands to be started in the current nix-shell environment: (lambda (argv) (append (list \"nix-shell\" \"-I\" \".\" \"--command\" ) - (list (mapconcat 'identity argv \" \")))) + (list (mapconcat \\='identity argv \" \")))) See Info Node `(emacs)Directory Variables' for a way to set this option on a per-project basis." @@ -115,7 +114,6 @@ when showing type information about symbols." (defvar haskell-process-ended-functions (list 'haskell-process-prompt-restart) "Hook for when the haskell process ends.") -;;;###autoload (defgroup haskell-interactive nil "Settings for REPL interaction via `haskell-interactive-mode'" :link '(custom-manual "(haskell-mode)haskell-interactive-mode") @@ -174,7 +172,8 @@ pass additional flags to `ghc'." (defcustom haskell-process-do-cabal-format-string ":!cd %s && %s" - "The way to run cabal commands. It takes two arguments -- the directory and the command. + "The way to run cabal commands. +It takes two arguments -- the directory and the command. See `haskell-process-do-cabal' for more details." :group 'haskell-interactive :type 'string) @@ -243,7 +242,8 @@ is a member of the hidden package, blah blah." (defcustom haskell-process-suggest-overloaded-strings t - "Suggest adding OverloadedStrings pragma to file when getting type mismatches with [Char]." + "Suggest adding OverloadedStrings pragma to file. +It is used when getting type mismatches with [Char]." :type 'boolean :group 'haskell-interactive) @@ -367,7 +367,7 @@ read-only property." '() "Support a mapping from module to import lines. -E.g. '((\"Data.Map\" . \"import qualified Data.Map as M +E.g. \\='((\"Data.Map\" . \"import qualified Data.Map as M import Data.Map (Map) \")) @@ -413,9 +413,9 @@ presence of a *.cabal file or stack.yaml file or something similar.") (defun haskell-build-type () "Looks for cabal and stack spec files. When found, returns a pair (TAG . DIR) - where TAG is 'cabal-project, 'cabal-sandbox. 'cabal, or 'stack; + where TAG is \\='cabal-project, \\='cabal-sandbox. \\='cabal, or \\='stack; and DIR is the directory containing cabal or stack file. - When none found, DIR is nil, and TAG is 'ghc" + When none found, DIR is nil, and TAG is \\='ghc" ;; REVIEW maybe just 'cabal is enough. (let ((cabal-project (locate-dominating-file default-directory "cabal.project")) (cabal-sandbox (locate-dominating-file default-directory "cabal.sandbox.config")) @@ -439,8 +439,8 @@ presence of a *.cabal file or stack.yaml file or something similar.") (t (error "Could not find any installation of GHC."))))) (defun haskell-process-type () - "Return `haskell-process-type', or a guess if that variable is 'auto. - Converts the obsolete 'cabal-new-repl to its equivalent 'cabal-repl. + "Return `haskell-process-type', or a guess if that variable is \\='auto. + Converts the obsolete \\='cabal-new-repl to its equivalent \\='cabal-repl. May also set `inferior-haskell-root-dir'" (cond ((eq 'cabal-new-repl haskell-process-type) diff --git a/elpa/haskell-mode-20210908.1543/haskell-debug.el b/elpa/haskell-mode-20231115.1812/haskell-debug.el similarity index 94% rename from elpa/haskell-mode-20210908.1543/haskell-debug.el rename to elpa/haskell-mode-20231115.1812/haskell-debug.el index 38a6859b..5c65e273 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-debug.el +++ b/elpa/haskell-mode-20231115.1812/haskell-debug.el @@ -28,43 +28,36 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Configuration -;;;###autoload (defgroup haskell-debug nil "Settings for debugging support." :link '(custom-manual "(haskell-mode)haskell-debug") :group 'haskell) -;;;###autoload (defface haskell-debug-warning-face '((t :inherit 'compilation-warning)) "Face for warnings." :group 'haskell-debug) -;;;###autoload (defface haskell-debug-trace-number-face '((t :weight bold :background "#f5f5f5")) "Face for numbers in backtrace." :group 'haskell-debug) -;;;###autoload (defface haskell-debug-newline-face '((t :weight bold :background "#f0f0f0")) "Face for newlines in trace steps." :group 'haskell-debug) -;;;###autoload (defface haskell-debug-keybinding-face '((t :inherit 'font-lock-type-face :weight bold)) "Face for keybindings." :group 'haskell-debug) -;;;###autoload (defface haskell-debug-heading-face '((t :inherit 'font-lock-keyword-face)) "Face for headings." :group 'haskell-debug) -;;;###autoload (defface haskell-debug-muted-face '((t :foreground "#999")) "Face for muteds." @@ -107,13 +100,13 @@ (defmacro haskell-debug-with-breakpoints (&rest body) "Breakpoints need to exist to start stepping." `(if (haskell-debug-get-breakpoints) - ,@body + (progn ,@body) (error "No breakpoints to step into!"))) (defmacro haskell-debug-with-modules (&rest body) "Modules need to exist to do debugging stuff." `(if (haskell-debug-get-modules) - ,@body + (progn ,@body) (error "No modules loaded!"))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -260,11 +253,12 @@ (let* ((breakpoints (haskell-debug-get-breakpoints)) (context (haskell-debug-get-context)) (string - (haskell-process-queue-sync-request - (haskell-debug-process) - (if expr - (concat ":step " expr) - ":step")))) + (haskell-debug-trim-break-location + (haskell-process-queue-sync-request + (haskell-debug-process) + (if expr + (concat ":step " expr) + ":step"))))) (cond ((string= string "not stopped at a breakpoint\n") (if haskell-debug-bindings-cache @@ -317,11 +311,18 @@ (format "*debug:%s*" (haskell-session-name session))) +(defun haskell-debug-trim-break-location (string) + "Remove trailing location of current break from output STRING if exists." + (if-let ((i (string-match "^\\(... \\)?\\[[^]]+\\] $" string))) + (substring string 0 i) + string)) + (defun haskell-debug-get-breakpoints () "Get the list of breakpoints currently set." - (let ((string (haskell-process-queue-sync-request - (haskell-debug-process) - ":show breaks"))) + (let ((string (haskell-debug-trim-break-location + (haskell-process-queue-sync-request + (haskell-debug-process) + ":show breaks")))) (if (string= string "No active breakpoints.\n") (list) (mapcar #'haskell-debug-parse-break-point @@ -329,9 +330,10 @@ (defun haskell-debug-get-modules () "Get the list of modules currently set." - (let ((string (haskell-process-queue-sync-request - (haskell-debug-process) - ":show modules"))) + (let ((string (haskell-debug-trim-break-location + (haskell-process-queue-sync-request + (haskell-debug-process) + ":show modules")))) (if (string= string "") (list) (mapcar #'haskell-debug-parse-module @@ -339,18 +341,20 @@ (defun haskell-debug-get-context () "Get the current context." - (let ((string (haskell-process-queue-sync-request - (haskell-debug-process) - ":show context"))) + (let ((string (haskell-debug-trim-break-location + (haskell-process-queue-sync-request + (haskell-debug-process) + ":show context")))) (if (string= string "") nil (haskell-debug-parse-context string)))) (defun haskell-debug-get-history () "Get the step history." - (let ((string (haskell-process-queue-sync-request - (haskell-debug-process) - ":history"))) + (let ((string (haskell-debug-trim-break-location + (haskell-process-queue-sync-request + (haskell-debug-process) + ":history")))) (if (or (string= string "") (string= string "Not stopped at a breakpoint\n")) nil @@ -527,15 +531,13 @@ some old history, then display that." (point-max))))))))) (defun haskell-debug-parse-stopped-at (string) - "Parse the location stopped at from the given string. + "Parse the location stopped at from the given STRING. -For example: +For examples: Stopped at /home/foo/project/src/x.hs:6:25-36 - -" - (let ((index (string-match "Stopped at \\([^:]+\\):\\(.+\\)\n?" - string))) +Stopped in X.test, /home/foo/project/src/x.hs:6:25-36" + (let ((index (string-match "Stopped \\(?:at\\|in [^,]+,\\) \\([^:]+\\):\\(.+\\)\n?" string))) (when index (list :path (match-string 1 string) :span (haskell-debug-parse-span (match-string 2 string)) @@ -664,9 +666,10 @@ variances in source span notation." (defun haskell-debug-navigate (direction) "Navigate in DIRECTION \"back\" or \"forward\"." - (let ((string (haskell-process-queue-sync-request - (haskell-debug-process) - (concat ":" direction)))) + (let ((string (haskell-debug-trim-break-location + (haskell-process-queue-sync-request + (haskell-debug-process) + (concat ":" direction))))) (let ((bindings (haskell-debug-parse-logged string))) (setq haskell-debug-bindings-cache bindings) diff --git a/elpa/haskell-mode-20210908.1543/haskell-decl-scan.el b/elpa/haskell-mode-20231115.1812/haskell-decl-scan.el similarity index 99% rename from elpa/haskell-mode-20210908.1543/haskell-decl-scan.el rename to elpa/haskell-mode-20231115.1812/haskell-decl-scan.el index e1f69773..2f4ddff2 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-decl-scan.el +++ b/elpa/haskell-mode-20231115.1812/haskell-decl-scan.el @@ -107,7 +107,6 @@ (require 'syntax) (require 'imenu) -;;;###autoload (defgroup haskell-decl-scan nil "Haskell declaration scanning (`imenu' support)." :link '(custom-manual "(haskell-mode)haskell-decl-scan-mode") @@ -514,7 +513,7 @@ positions and the type is one of the symbols \"variable\", \"datatype\", (skip-chars-backward " \t") (point)))))) ;; If we did not manage to extract a name, cancel this - ;; declaration (eg. when line ends in "=> "). + ;; declaration (e.g. when line ends in "=> "). (if (string-match "^[ \t]*$" name) (setq name nil)) (setq type 'instance))) ;; Move past start of current declaration. diff --git a/elpa/haskell-mode-20210908.1543/haskell-doc.el b/elpa/haskell-mode-20231115.1812/haskell-doc.el similarity index 93% rename from elpa/haskell-mode-20210908.1543/haskell-doc.el rename to elpa/haskell-mode-20231115.1812/haskell-doc.el index 5ac49b8f..b132dddd 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-doc.el +++ b/elpa/haskell-mode-20231115.1812/haskell-doc.el @@ -308,45 +308,12 @@ (require 'imenu) (require 'eldoc) -;;;###autoload (defgroup haskell-doc nil "Show Haskell function types in echo area." :group 'haskell :prefix "haskell-doc-") -(defvar-local haskell-doc-mode nil - "*If non-nil, show the type of the function near point or a related comment. - -If the identifier near point is a Haskell keyword and the variable -`haskell-doc-show-reserved' is non-nil show a one line summary -of the syntax. - -If the identifier near point is a Prelude or one of the standard library -functions and `haskell-doc-show-prelude' is non-nil show its type. - -If the identifier near point is local \(i.e. defined in this module\) check -the `imenu' list of functions for the type. This obviously requires that -your language mode uses `imenu'. - -If the identifier near point is global \(i.e. defined in an imported module\) -and the variable `haskell-doc-show-global-types' is non-nil show the type of its -function. - -If the identifier near point is a standard strategy or a function, type related -related to strategies and `haskell-doc-show-strategy' is non-nil show the type -of the function. Strategies are special to the parallel execution of Haskell. -If you're not interested in that just turn it off. - -If the identifier near point is a user defined function that occurs as key -in the alist `haskell-doc-user-defined-ids' and the variable -`haskell-doc-show-user-defined' is non-nil show the type of the function. - -This variable is buffer-local.") - -(defvar haskell-doc-mode-hook nil - "Hook invoked when entering `haskell-doc-mode'.") - (defvar-local haskell-doc-index nil "Variable holding an alist matching file names to fct-type alists. The function `haskell-doc-make-global-fct-index' rebuilds this variables @@ -406,14 +373,6 @@ This variable is buffer-local." (defvar haskell-doc-search-distance 40 ; distance in characters "*How far to search when looking for the type declaration of fct under cursor.") - -(defvar haskell-doc-idle-delay 0.50 - "*Number of seconds of idle time to wait before printing. -If user input arrives before this interval of time has elapsed after the -last input, no documentation will be printed. - -If this variable is set to 0, no idle time is required.") - (defvar haskell-doc-argument-case 'identity ; 'upcase "Case in which to display argument names of functions, as a symbol. This has two preferred values: `upcase' or `downcase'. @@ -1239,81 +1198,56 @@ URL is the URL of the online doc." '("Toggle display of reserved ids" . haskell-doc-show-reserved)) (define-key map [haskell-doc-on] '("Toggle haskell-doc mode" . haskell-doc-mode)) + (define-key map [(control shift meta mouse-3)] + 'haskell-doc-ask-mouse-for-type) map)) -(defun haskell-doc-install-keymap () - "Install a menu for `haskell-doc-mode' as a submenu of \"Hugs\"." - (interactive) - ;; Add the menu to the hugs menu as last entry. - (let ((hugsmap (lookup-key (current-local-map) [menu-bar Hugs]))) - (if (not (or (featurep 'xemacs) ; XEmacs has problems here - (not (keymapp hugsmap)) - (lookup-key hugsmap [haskell-doc]))) - (if (functionp 'define-key-after) - (define-key-after hugsmap [haskell-doc] - (cons "Haskell-doc" haskell-doc-keymap) - [Haskell-doc mode])))) - ;; Add shortcuts for these commands. - (local-set-key "\C-c\e/" 'haskell-doc-check-active) - ;; Conflicts with the binding of haskell-insert-otherwise. - ;; (local-set-key "\C-c\C-o" 'haskell-doc-mode) - (local-set-key [(control shift meta mouse-3)] - 'haskell-doc-ask-mouse-for-type)) - - -(defvar haskell-doc-timer nil) -(defvar haskell-doc-buffers nil) ;;;###autoload -(defun haskell-doc-mode (&optional arg) +(define-minor-mode haskell-doc-mode "Enter `haskell-doc-mode' for showing fct types in the echo area. -See variable docstring." - (interactive (list (or current-prefix-arg 'toggle))) - - (setq haskell-doc-mode - (cond - ((eq arg 'toggle) (not haskell-doc-mode)) - (arg (> (prefix-numeric-value arg) 0)) - (t))) - - ;; First, unconditionally turn the mode OFF. - - (setq haskell-doc-buffers (delq (current-buffer) haskell-doc-buffers)) - ;; Refresh the buffers list. - (dolist (buf haskell-doc-buffers) - (unless (and (buffer-live-p buf) - (with-current-buffer buf haskell-doc-mode)) - (setq haskell-doc-buffers (delq buf haskell-doc-buffers)))) - ;; Turn off the idle timer (or idle post-command-hook). - (when (and haskell-doc-timer (null haskell-doc-buffers)) - (cancel-timer haskell-doc-timer) - (setq haskell-doc-timer nil)) - (remove-hook 'post-command-hook - 'haskell-doc-mode-print-current-symbol-info 'local) - (when haskell-doc-mode - ;; Turning the mode ON. - (push (current-buffer) haskell-doc-buffers) +When enabled, shows the type of the function near point or a related comment. - (if (fboundp 'run-with-idle-timer) - (unless haskell-doc-timer - (setq haskell-doc-timer - (run-with-idle-timer - haskell-doc-idle-delay t - 'haskell-doc-mode-print-current-symbol-info))) - (add-hook 'post-command-hook - 'haskell-doc-mode-print-current-symbol-info nil 'local)) - (and haskell-doc-show-global-types - (haskell-doc-make-global-fct-index)) ; build type index for global fcts +If the identifier near point is a Haskell keyword and the variable +`haskell-doc-show-reserved' is non-nil show a one line summary +of the syntax. - (haskell-doc-install-keymap) +If the identifier near point is a Prelude or one of the standard library +functions and `haskell-doc-show-prelude' is non-nil show its type. - (run-hooks 'haskell-doc-mode-hook)) +If the identifier near point is local \(i.e. defined in this module\) check +the `imenu' list of functions for the type. This obviously requires that +your language mode uses `imenu'. - (and (called-interactively-p 'any) - (message "haskell-doc-mode is %s" - (if haskell-doc-mode "enabled" "disabled"))) - haskell-doc-mode) +If the identifier near point is global \(i.e. defined in an imported module\) +and the variable `haskell-doc-show-global-types' is non-nil show the type of its +function. + +If the identifier near point is a standard strategy or a function, type related +related to strategies and `haskell-doc-show-strategy' is non-nil show the type +of the function. Strategies are special to the parallel execution of Haskell. +If you're not interested in that just turn it off. + +If the identifier near point is a user defined function that occurs as key +in the alist `haskell-doc-user-defined-ids' and the variable +`haskell-doc-show-user-defined' is non-nil show the type of the function. + +This variable is buffer-local." + :global nil + :keymap haskell-doc-keymap + + (and haskell-doc-show-global-types + (haskell-doc-make-global-fct-index)) ; build type index for global fcts + (if (boundp 'eldoc-documentation-functions) + (if haskell-doc-mode + (add-hook 'eldoc-documentation-functions 'haskell-doc-eldoc-function nil t) + (remove-hook 'eldoc-documentation-functions 'haskell-doc-eldoc-function t)) + (if haskell-doc-mode + (setq-local eldoc-documentation-function 'haskell-doc-eldoc-function) + (kill-local-variable eldoc-documentation-function))) + (when haskell-doc-mode + (eldoc-mode))) (defmacro haskell-doc-toggle-var (id prefix) ;; toggle variable or set it based on prefix value @@ -1368,46 +1302,22 @@ See variable docstring." "Unequivocally turn off `haskell-doc-mode' (which see)." (haskell-doc-mode 0)) -(defun haskell-doc-check-active () - "Check whether the print function is hooked in. -Should be the same as the value of `haskell-doc-mode' but alas currently it -is not." - (interactive) - (message "%s" - (if (or (and haskell-doc-mode haskell-doc-timer) - (memq 'haskell-doc-mode-print-current-symbol-info - post-command-hook)) - "haskell-doc is ACTIVE" - (substitute-command-keys - "haskell-doc is not ACTIVE \(Use \\[haskell-doc-mode] to turn it on\)")))) - - -;; This is the function hooked into the elisp command engine -(defun haskell-doc-mode-print-current-symbol-info () - "Print the type of the symbol under the cursor. - -This function is run by an idle timer to print the type - automatically if `haskell-doc-mode' is turned on." - (and haskell-doc-mode - (haskell-doc-in-code-p) - (not haskell-mode-interactive-prompt-state) - (not (eobp)) - (not executing-kbd-macro) - ;; Having this mode operate in the minibuffer makes it impossible to - ;; see what you're doing. - (not (eq (selected-window) (minibuffer-window))) - ;; not in string or comment - ;; take a nap, if run straight from post-command-hook. - (if (fboundp 'run-with-idle-timer) t - (sit-for haskell-doc-idle-delay)) - ;; good morning! read the word under the cursor for breakfast - (haskell-doc-show-type))) -;; ;; ToDo: find surrounding fct -;; (cond ((eq current-symbol current-fnsym) -;; (haskell-doc-show-type current-fnsym)) -;; (t -;; (or nil ; (haskell-doc-print-var-docstring current-symbol) -;; (haskell-doc-show-type current-fnsym))))))) +;;;###autoload +(defun haskell-doc-eldoc-function (&optional callback) + "Function for use by eldoc. + +By accepting CALLBACK, it is designed to be used in +`eldoc-documentation-functions' in Emacs >= 28.1, but by making +that argument optional it can also be set directly as +`eldoc-documentation-function' in older Emacsen." + (when (and haskell-doc-mode + (haskell-doc-in-code-p) + (not haskell-mode-interactive-prompt-state) + (not (eobp)) + (not executing-kbd-macro)) + (if callback + (funcall callback (haskell-doc-current-info)) + (haskell-doc-current-info)))) ;;;###autoload (defun haskell-doc-current-info () @@ -1451,7 +1361,7 @@ current buffer." ;; if printed before do not print it again (unless (string= sym (car haskell-doc-last-data)) (let ((doc (or (haskell-doc-current-info--interaction t) - (haskell-doc-sym-doc sym)))) + (haskell-doc-sym-doc sym)))) (when (and doc (haskell-doc-in-code-p)) ;; In Emacs 19.29 and later, and XEmacs 19.13 and later, all ;; messages are recorded in a log. Do not put haskell-doc messages diff --git a/elpa/haskell-mode-20210908.1543/haskell-font-lock.el b/elpa/haskell-mode-20231115.1812/haskell-font-lock.el similarity index 99% rename from elpa/haskell-mode-20210908.1543/haskell-font-lock.el rename to elpa/haskell-mode-20231115.1812/haskell-font-lock.el index 29f888da..52ef6253 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-font-lock.el +++ b/elpa/haskell-mode-20231115.1812/haskell-font-lock.el @@ -31,7 +31,6 @@ (require 'haskell-string) (require 'font-lock) -;;;###autoload (defgroup haskell-appearance nil "Haskell Appearance." :group 'haskell) @@ -145,19 +144,16 @@ font faces assigned as if respective mode was enabled." :group 'haskell-appearance :type '(repeat (cons string symbol))) -;;;###autoload (defface haskell-keyword-face '((t :inherit font-lock-keyword-face)) "Face used to highlight Haskell keywords." :group 'haskell-appearance) -;;;###autoload (defface haskell-type-face '((t :inherit font-lock-type-face)) "Face used to highlight Haskell types" :group 'haskell-appearance) -;;;###autoload (defface haskell-constructor-face '((t :inherit font-lock-type-face)) "Face used to highlight Haskell constructors." @@ -165,7 +161,7 @@ font faces assigned as if respective mode was enabled." ;; This used to be `font-lock-variable-name-face' but it doesn't result in ;; a highlighting that's consistent with other modes (it's mostly used -;; for function defintions). +;; for function definitions). (defface haskell-definition-face '((t :inherit font-lock-function-name-face)) "Face used to highlight Haskell definitions." @@ -174,25 +170,21 @@ font faces assigned as if respective mode was enabled." ;; This is probably just wrong, but it used to use ;; `font-lock-function-name-face' with a result that was not consistent with ;; other major modes, so I just exchanged with `haskell-definition-face'. -;;;###autoload (defface haskell-operator-face '((t :inherit font-lock-variable-name-face)) "Face used to highlight Haskell operators." :group 'haskell-appearance) -;;;###autoload (defface haskell-pragma-face '((t :inherit font-lock-preprocessor-face)) "Face used to highlight Haskell pragmas ({-# ... #-})." :group 'haskell-appearance) -;;;###autoload (defface haskell-liquid-haskell-annotation-face '((t :inherit haskell-pragma-face)) "Face used to highlight LiquidHaskell annotations ({-@ ... @-})." :group 'haskell-appearance) -;;;###autoload (defface haskell-literate-comment-face '((t :inherit font-lock-doc-face)) "Face with which to fontify literate comments. @@ -426,7 +418,7 @@ on an uppercase identifier." ;; Special case for `foreign import' ;; keywords in foreign import statements but are not otherwise reserved. - ("\\<\\(foreign\\)[ \t]+\\(import\\)[ \t]+\\(?:\\(ccall\\|stdcall\\|cplusplus\\|jvm\\|dotnet\\)[ \t]+\\)?\\(?:\\(safe\\|unsafe\\|interruptible\\)[ \t]+\\)?" + ("\\<\\(foreign\\)[ \t]+\\(import\\)[ \t]+\\(?:\\(ccall\\|capi\\|stdcall\\|cplusplus\\|jvm\\|dotnet\\)[ \t]+\\)?\\(?:\\(safe\\|unsafe\\|interruptible\\)[ \t]+\\)?" (1 'haskell-keyword-face nil lax) (2 'haskell-keyword-face nil lax) (3 'haskell-keyword-face nil lax) diff --git a/elpa/haskell-mode-20210908.1543/haskell-ghc-support.el b/elpa/haskell-mode-20231115.1812/haskell-ghc-support.el similarity index 90% rename from elpa/haskell-mode-20210908.1543/haskell-ghc-support.el rename to elpa/haskell-mode-20231115.1812/haskell-ghc-support.el index 3eb84ce1..4720d153 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-ghc-support.el +++ b/elpa/haskell-mode-20231115.1812/haskell-ghc-support.el @@ -43,6 +43,7 @@ "ConstraintKinds" "DataKinds" "DatatypeContexts" + "DeepSubsumption" "DefaultSignatures" "DeriveAnyClass" "DeriveDataTypeable" @@ -64,12 +65,14 @@ "ExplicitForAll" "ExplicitNamespaces" "ExtendedDefaultRules" + "FieldSelectors" "FlexibleContexts" "FlexibleInstances" "ForeignFunctionInterface" "FunctionalDependencies" "GADTSyntax" "GADTs" + "GHC2021" "GHCForeignImportPrim" "GeneralisedNewtypeDeriving" "GeneralizedNewtypeDeriving" @@ -117,6 +120,7 @@ "NoConstraintKinds" "NoDataKinds" "NoDatatypeContexts" + "NoDeepSubsumption" "NoDefaultSignatures" "NoDeriveAnyClass" "NoDeriveDataTypeable" @@ -138,6 +142,7 @@ "NoExplicitForAll" "NoExplicitNamespaces" "NoExtendedDefaultRules" + "NoFieldSelectors" "NoFlexibleContexts" "NoFlexibleInstances" "NoForeignFunctionInterface" @@ -180,6 +185,8 @@ "NoOverlappingInstances" "NoOverloadedLabels" "NoOverloadedLists" + "NoOverloadedRecordDot" + "NoOverloadedRecordUpdate" "NoOverloadedStrings" "NoPackageImports" "NoParallelArrays" @@ -216,6 +223,7 @@ "NoTransformListComp" "NoTupleSections" "NoTypeApplications" + "NoTypeData" "NoTypeFamilies" "NoTypeFamilyDependencies" "NoTypeInType" @@ -226,6 +234,7 @@ "NoUndecidableInstances" "NoUndecidableSuperClasses" "NoUnicodeSyntax" + "NoUnliftedDatatypes" "NoUnliftedFFITypes" "NoUnliftedNewtypes" "NoViewPatterns" @@ -236,6 +245,8 @@ "OverlappingInstances" "OverloadedLabels" "OverloadedLists" + "OverloadedRecordDot" + "OverloadedRecordUpdate" "OverloadedStrings" "PackageImports" "ParallelArrays" @@ -274,6 +285,7 @@ "Trustworthy" "TupleSections" "TypeApplications" + "TypeData" "TypeFamilies" "TypeFamilyDependencies" "TypeInType" @@ -284,6 +296,7 @@ "UndecidableInstances" "UndecidableSuperClasses" "UnicodeSyntax" + "UnliftedDatatypes" "UnliftedFFITypes" "UnliftedNewtypes" "Unsafe" @@ -305,6 +318,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "--info" "--interactive" "--make" + "--merge-objs" "--numeric-version" "--print-booter-version" "--print-build-platform" @@ -329,6 +343,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "--print-tables-next-to-code" "--print-target-platform" "--print-unregisterised" + "--run" "--show-iface" "--show-options" "--show-packages" @@ -356,6 +371,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wall-missed-specialisations" "-Wall-missed-specializations" "-Walternative-layout-rule-transitional" + "-Wambiguous-fields" "-Wamp" "-Wauto-orphans" "-Wcompat" @@ -379,6 +395,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Werror=all-missed-specialisations" "-Werror=all-missed-specializations" "-Werror=alternative-layout-rule-transitional" + "-Werror=ambiguous-fields" "-Werror=auto-orphans" "-Werror=compat" "-Werror=compat-unqualified-imports" @@ -395,9 +412,12 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Werror=duplicate-constraints" "-Werror=duplicate-exports" "-Werror=empty-enumerations" + "-Werror=forall-identifier" + "-Werror=gadt-mono-local-binds" "-Werror=hi-shadowing" "-Werror=identities" "-Werror=implicit-kind-vars" + "-Werror=implicit-lift" "-Werror=implicit-prelude" "-Werror=inaccessible-code" "-Werror=incomplete-patterns" @@ -406,16 +426,19 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Werror=inferred-safe-imports" "-Werror=inline-rule-shadowing" "-Werror=invalid-haddock" + "-Werror=misplaced-pragmas" "-Werror=missed-extra-shared-lib" "-Werror=missed-specialisations" "-Werror=missed-specializations" "-Werror=missing-deriving-strategies" "-Werror=missing-export-lists" + "-Werror=missing-exported-pattern-synonym-signatures" "-Werror=missing-exported-signatures" "-Werror=missing-exported-sigs" "-Werror=missing-fields" "-Werror=missing-home-modules" "-Werror=missing-import-lists" + "-Werror=missing-kind-signatures" "-Werror=missing-local-signatures" "-Werror=missing-local-sigs" "-Werror=missing-methods" @@ -429,14 +452,18 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Werror=noncanonical-monad-instances" "-Werror=noncanonical-monadfail-instances" "-Werror=noncanonical-monoid-instances" + "-Werror=operator-whitespace" + "-Werror=operator-whitespace-ext-conflict" "-Werror=orphans" "-Werror=overflowed-literals" "-Werror=overlapping-patterns" "-Werror=partial-fields" "-Werror=partial-type-signatures" "-Werror=prepositive-qualified-module" + "-Werror=redundant-bang-patterns" "-Werror=redundant-constraints" "-Werror=redundant-record-wildcards" + "-Werror=redundant-strictness-flags" "-Werror=safe" "-Werror=semigroup" "-Werror=simplifiable-class-constraints" @@ -445,8 +472,11 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Werror=tabs" "-Werror=trustworthy-safe" "-Werror=type-defaults" + "-Werror=type-equality-out-of-scope" + "-Werror=type-equality-requires-operators" "-Werror=typed-holes" "-Werror=unbanged-strict-patterns" + "-Werror=unicode-bidirectional-format-characters" "-Werror=unrecognised-pragmas" "-Werror=unrecognised-warning-flags" "-Werror=unsafe" @@ -467,9 +497,12 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Werror=wrong-do-bind" "-Weverything" "-Wextra" + "-Wforall-identifier" + "-Wgadt-mono-local-binds" "-Whi-shadowing" "-Widentities" "-Wimplicit-kind-vars" + "-Wimplicit-lift" "-Wimplicit-prelude" "-Winaccessible-code" "-Wincomplete-patterns" @@ -478,16 +511,19 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Winferred-safe-imports" "-Winline-rule-shadowing" "-Winvalid-haddock" + "-Wmisplaced-pragmas" "-Wmissed-extra-shared-lib" "-Wmissed-specialisations" "-Wmissed-specializations" "-Wmissing-deriving-strategies" "-Wmissing-export-lists" + "-Wmissing-exported-pattern-synonym-signatures" "-Wmissing-exported-signatures" "-Wmissing-exported-sigs" "-Wmissing-fields" "-Wmissing-home-modules" "-Wmissing-import-lists" + "-Wmissing-kind-signatures" "-Wmissing-local-signatures" "-Wmissing-local-sigs" "-Wmissing-methods" @@ -502,6 +538,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-all-missed-specialisations" "-Wno-all-missed-specializations" "-Wno-alternative-layout-rule-transitional" + "-Wno-ambiguous-fields" "-Wno-amp" "-Wno-auto-orphans" "-Wno-compat" @@ -524,6 +561,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-error=all-missed-specialisations" "-Wno-error=all-missed-specializations" "-Wno-error=alternative-layout-rule-transitional" + "-Wno-error=ambiguous-fields" "-Wno-error=auto-orphans" "-Wno-error=compat" "-Wno-error=compat-unqualified-imports" @@ -540,9 +578,12 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-error=duplicate-constraints" "-Wno-error=duplicate-exports" "-Wno-error=empty-enumerations" + "-Wno-error=forall-identifier" + "-Wno-error=gadt-mono-local-binds" "-Wno-error=hi-shadowing" "-Wno-error=identities" "-Wno-error=implicit-kind-vars" + "-Wno-error=implicit-lift" "-Wno-error=implicit-prelude" "-Wno-error=inaccessible-code" "-Wno-error=incomplete-patterns" @@ -551,16 +592,19 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-error=inferred-safe-imports" "-Wno-error=inline-rule-shadowing" "-Wno-error=invalid-haddock" + "-Wno-error=misplaced-pragmas" "-Wno-error=missed-extra-shared-lib" "-Wno-error=missed-specialisations" "-Wno-error=missed-specializations" "-Wno-error=missing-deriving-strategies" "-Wno-error=missing-export-lists" + "-Wno-error=missing-exported-pattern-synonym-signatures" "-Wno-error=missing-exported-signatures" "-Wno-error=missing-exported-sigs" "-Wno-error=missing-fields" "-Wno-error=missing-home-modules" "-Wno-error=missing-import-lists" + "-Wno-error=missing-kind-signatures" "-Wno-error=missing-local-signatures" "-Wno-error=missing-local-sigs" "-Wno-error=missing-methods" @@ -574,14 +618,18 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-error=noncanonical-monad-instances" "-Wno-error=noncanonical-monadfail-instances" "-Wno-error=noncanonical-monoid-instances" + "-Wno-error=operator-whitespace" + "-Wno-error=operator-whitespace-ext-conflict" "-Wno-error=orphans" "-Wno-error=overflowed-literals" "-Wno-error=overlapping-patterns" "-Wno-error=partial-fields" "-Wno-error=partial-type-signatures" "-Wno-error=prepositive-qualified-module" + "-Wno-error=redundant-bang-patterns" "-Wno-error=redundant-constraints" "-Wno-error=redundant-record-wildcards" + "-Wno-error=redundant-strictness-flags" "-Wno-error=safe" "-Wno-error=semigroup" "-Wno-error=simplifiable-class-constraints" @@ -590,8 +638,11 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-error=tabs" "-Wno-error=trustworthy-safe" "-Wno-error=type-defaults" + "-Wno-error=type-equality-out-of-scope" + "-Wno-error=type-equality-requires-operators" "-Wno-error=typed-holes" "-Wno-error=unbanged-strict-patterns" + "-Wno-error=unicode-bidirectional-format-characters" "-Wno-error=unrecognised-pragmas" "-Wno-error=unrecognised-warning-flags" "-Wno-error=unsafe" @@ -612,9 +663,12 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-error=wrong-do-bind" "-Wno-everything" "-Wno-extra" + "-Wno-forall-identifier" + "-Wno-gadt-mono-local-binds" "-Wno-hi-shadowing" "-Wno-identities" "-Wno-implicit-kind-vars" + "-Wno-implicit-lift" "-Wno-implicit-prelude" "-Wno-inaccessible-code" "-Wno-incomplete-patterns" @@ -623,16 +677,19 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-inferred-safe-imports" "-Wno-inline-rule-shadowing" "-Wno-invalid-haddock" + "-Wno-misplaced-pragmas" "-Wno-missed-extra-shared-lib" "-Wno-missed-specialisations" "-Wno-missed-specializations" "-Wno-missing-deriving-strategies" "-Wno-missing-export-lists" + "-Wno-missing-exported-pattern-synonym-signatures" "-Wno-missing-exported-signatures" "-Wno-missing-exported-sigs" "-Wno-missing-fields" "-Wno-missing-home-modules" "-Wno-missing-import-lists" + "-Wno-missing-kind-signatures" "-Wno-missing-local-signatures" "-Wno-missing-local-sigs" "-Wno-missing-methods" @@ -646,14 +703,18 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-noncanonical-monad-instances" "-Wno-noncanonical-monadfail-instances" "-Wno-noncanonical-monoid-instances" + "-Wno-operator-whitespace" + "-Wno-operator-whitespace-ext-conflict" "-Wno-orphans" "-Wno-overflowed-literals" "-Wno-overlapping-patterns" "-Wno-partial-fields" "-Wno-partial-type-signatures" "-Wno-prepositive-qualified-module" + "-Wno-redundant-bang-patterns" "-Wno-redundant-constraints" "-Wno-redundant-record-wildcards" + "-Wno-redundant-strictness-flags" "-Wno-safe" "-Wno-semigroup" "-Wno-simplifiable-class-constraints" @@ -662,8 +723,11 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wno-tabs" "-Wno-trustworthy-safe" "-Wno-type-defaults" + "-Wno-type-equality-out-of-scope" + "-Wno-type-equality-requires-operators" "-Wno-typed-holes" "-Wno-unbanged-strict-patterns" + "-Wno-unicode-bidirectional-format-characters" "-Wno-unrecognised-pragmas" "-Wno-unrecognised-warning-flags" "-Wno-unsafe" @@ -687,14 +751,18 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wnoncanonical-monadfail-instances" "-Wnoncanonical-monoid-instances" "-Wnot" + "-Woperator-whitespace" + "-Woperator-whitespace-ext-conflict" "-Worphans" "-Woverflowed-literals" "-Woverlapping-patterns" "-Wpartial-fields" "-Wpartial-type-signatures" "-Wprepositive-qualified-module" + "-Wredundant-bang-patterns" "-Wredundant-constraints" "-Wredundant-record-wildcards" + "-Wredundant-strictness-flags" "-Wsafe" "-Wsemigroup" "-Wsimplifiable-class-constraints" @@ -703,8 +771,11 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wtabs" "-Wtrustworthy-safe" "-Wtype-defaults" + "-Wtype-equality-out-of-scope" + "-Wtype-equality-requires-operators" "-Wtyped-holes" "-Wunbanged-strict-patterns" + "-Wunicode-bidirectional-format-characters" "-Wunrecognised-pragmas" "-Wunrecognised-warning-flags" "-Wunsafe" @@ -726,6 +797,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wwarn=all-missed-specialisations" "-Wwarn=all-missed-specializations" "-Wwarn=alternative-layout-rule-transitional" + "-Wwarn=ambiguous-fields" "-Wwarn=auto-orphans" "-Wwarn=compat" "-Wwarn=compat-unqualified-imports" @@ -742,9 +814,12 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wwarn=duplicate-constraints" "-Wwarn=duplicate-exports" "-Wwarn=empty-enumerations" + "-Wwarn=forall-identifier" + "-Wwarn=gadt-mono-local-binds" "-Wwarn=hi-shadowing" "-Wwarn=identities" "-Wwarn=implicit-kind-vars" + "-Wwarn=implicit-lift" "-Wwarn=implicit-prelude" "-Wwarn=inaccessible-code" "-Wwarn=incomplete-patterns" @@ -753,16 +828,19 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wwarn=inferred-safe-imports" "-Wwarn=inline-rule-shadowing" "-Wwarn=invalid-haddock" + "-Wwarn=misplaced-pragmas" "-Wwarn=missed-extra-shared-lib" "-Wwarn=missed-specialisations" "-Wwarn=missed-specializations" "-Wwarn=missing-deriving-strategies" "-Wwarn=missing-export-lists" + "-Wwarn=missing-exported-pattern-synonym-signatures" "-Wwarn=missing-exported-signatures" "-Wwarn=missing-exported-sigs" "-Wwarn=missing-fields" "-Wwarn=missing-home-modules" "-Wwarn=missing-import-lists" + "-Wwarn=missing-kind-signatures" "-Wwarn=missing-local-signatures" "-Wwarn=missing-local-sigs" "-Wwarn=missing-methods" @@ -776,14 +854,18 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wwarn=noncanonical-monad-instances" "-Wwarn=noncanonical-monadfail-instances" "-Wwarn=noncanonical-monoid-instances" + "-Wwarn=operator-whitespace" + "-Wwarn=operator-whitespace-ext-conflict" "-Wwarn=orphans" "-Wwarn=overflowed-literals" "-Wwarn=overlapping-patterns" "-Wwarn=partial-fields" "-Wwarn=partial-type-signatures" "-Wwarn=prepositive-qualified-module" + "-Wwarn=redundant-bang-patterns" "-Wwarn=redundant-constraints" "-Wwarn=redundant-record-wildcards" + "-Wwarn=redundant-strictness-flags" "-Wwarn=safe" "-Wwarn=semigroup" "-Wwarn=simplifiable-class-constraints" @@ -792,8 +874,11 @@ This list should be updated by running `haskell-update-ghc-support'.") "-Wwarn=tabs" "-Wwarn=trustworthy-safe" "-Wwarn=type-defaults" + "-Wwarn=type-equality-out-of-scope" + "-Wwarn=type-equality-requires-operators" "-Wwarn=typed-holes" "-Wwarn=unbanged-strict-patterns" + "-Wwarn=unicode-bidirectional-format-characters" "-Wwarn=unrecognised-pragmas" "-Wwarn=unrecognised-warning-flags" "-Wwarn=unsafe" @@ -830,6 +915,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XConstraintKinds" "-XDataKinds" "-XDatatypeContexts" + "-XDeepSubsumption" "-XDefaultSignatures" "-XDeriveAnyClass" "-XDeriveDataTypeable" @@ -851,12 +937,14 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XExplicitForAll" "-XExplicitNamespaces" "-XExtendedDefaultRules" + "-XFieldSelectors" "-XFlexibleContexts" "-XFlexibleInstances" "-XForeignFunctionInterface" "-XFunctionalDependencies" "-XGADTSyntax" "-XGADTs" + "-XGHC2021" "-XGHCForeignImportPrim" "-XGeneralisedNewtypeDeriving" "-XGeneralizedNewtypeDeriving" @@ -905,6 +993,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XNoConstraintKinds" "-XNoDataKinds" "-XNoDatatypeContexts" + "-XNoDeepSubsumption" "-XNoDefaultSignatures" "-XNoDeriveAnyClass" "-XNoDeriveDataTypeable" @@ -926,6 +1015,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XNoExplicitForAll" "-XNoExplicitNamespaces" "-XNoExtendedDefaultRules" + "-XNoFieldSelectors" "-XNoFlexibleContexts" "-XNoFlexibleInstances" "-XNoForeignFunctionInterface" @@ -969,6 +1059,8 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XNoOverlappingInstances" "-XNoOverloadedLabels" "-XNoOverloadedLists" + "-XNoOverloadedRecordDot" + "-XNoOverloadedRecordUpdate" "-XNoOverloadedStrings" "-XNoPackageImports" "-XNoParallelArrays" @@ -1005,6 +1097,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XNoTransformListComp" "-XNoTupleSections" "-XNoTypeApplications" + "-XNoTypeData" "-XNoTypeFamilies" "-XNoTypeFamilyDependencies" "-XNoTypeInType" @@ -1015,6 +1108,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XNoUndecidableInstances" "-XNoUndecidableSuperClasses" "-XNoUnicodeSyntax" + "-XNoUnliftedDatatypes" "-XNoUnliftedFFITypes" "-XNoUnliftedNewtypes" "-XNoViewPatterns" @@ -1025,6 +1119,8 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XOverlappingInstances" "-XOverloadedLabels" "-XOverloadedLists" + "-XOverloadedRecordDot" + "-XOverloadedRecordUpdate" "-XOverloadedStrings" "-XPackageImports" "-XParallelArrays" @@ -1063,6 +1159,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XTrustworthy" "-XTupleSections" "-XTypeApplications" + "-XTypeData" "-XTypeFamilies" "-XTypeFamilyDependencies" "-XTypeInType" @@ -1073,6 +1170,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-XUndecidableInstances" "-XUndecidableSuperClasses" "-XUnicodeSyntax" + "-XUnliftedDatatypes" "-XUnliftedFFITypes" "-XUnliftedNewtypes" "-XUnsafe" @@ -1098,6 +1196,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-ddump-asm-regalloc-stages" "-ddump-asm-stats" "-ddump-bcos" + "-ddump-c-backend" "-ddump-call-arity" "-ddump-cfg-weights" "-ddump-cmm" @@ -1115,6 +1214,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-ddump-cmm-sp" "-ddump-cmm-split" "-ddump-cmm-switch" + "-ddump-cmm-thread-sanitizer" "-ddump-cmm-verbose" "-ddump-cmm-verbose-by-proc" "-ddump-core-stats" @@ -1128,6 +1228,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-ddump-ds-preopt" "-ddump-ec-trace" "-ddump-exitify" + "-ddump-faststrings" "-ddump-file-prefix" "-ddump-foreign" "-ddump-hi" @@ -1136,7 +1237,9 @@ This list should be updated by running `haskell-update-ghc-support'.") "-ddump-hpc" "-ddump-if-trace" "-ddump-inlinings" + "-ddump-js" "-ddump-json" + "-ddump-late-cc" "-ddump-llvm" "-ddump-minimal-imports" "-ddump-mod-cycles" @@ -1161,7 +1264,10 @@ This list should be updated by running `haskell-update-ghc-support'.") "-ddump-spec" "-ddump-splices" "-ddump-stg" + "-ddump-stg-cg" "-ddump-stg-final" + "-ddump-stg-from-core" + "-ddump-stg-tags" "-ddump-stg-unarised" "-ddump-str-signatures" "-ddump-stranal" @@ -1174,6 +1280,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-ddump-to-file" "-ddump-types" "-ddump-vect" + "-ddump-verbose-inlinings" "-ddump-view-pattern-commoning" "-ddump-vt-trace" "-ddump-worker-wrapper" @@ -1186,16 +1293,21 @@ This list should be updated by running `haskell-update-ghc-support'.") "-dinline-check" "-distrust" "-distrust-all-packages" + "-dkeep-comments" "-dlinear-core-lint" + "-dlint" "-dno-debug-output" "-dno-llvm-mangler" "-dno-ppr-case-as-let" "-dno-ppr-ticks" + "-dno-suppress-coercion-types" "-dno-suppress-coercions" + "-dno-suppress-core-sizes" "-dno-suppress-idinfo" "-dno-suppress-module-prefixes" "-dno-suppress-stg-exts" "-dno-suppress-stg-free-vars" + "-dno-suppress-stg-reps" "-dno-suppress-ticks" "-dno-suppress-timestamps" "-dno-suppress-type-applications" @@ -1215,11 +1327,14 @@ This list should be updated by running `haskell-update-ghc-support'.") "-dstg-lint" "-dstg-stats" "-dsuppress-all" + "-dsuppress-coercion-types" "-dsuppress-coercions" + "-dsuppress-core-sizes" "-dsuppress-idinfo" "-dsuppress-module-prefixes" "-dsuppress-stg-exts" "-dsuppress-stg-free-vars" + "-dsuppress-stg-reps" "-dsuppress-ticks" "-dsuppress-timestamps" "-dsuppress-type-applications" @@ -1227,6 +1342,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-dsuppress-unfoldings" "-dsuppress-uniques" "-dsuppress-var-kinds" + "-dtag-inference-checks" "-dth-dec-file" "-dtrace-level" "-dumpdir" @@ -1239,6 +1355,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-dynhisuf" "-dynload" "-dyno" + "-dynohi" "-dynosuf" "-e" "-eventlog" @@ -1261,16 +1378,23 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fblock-layout-weights" "-fbuilding-cabal-package" "-fbyte-code" + "-fbyte-code-and-object-code" "-fcall-arity" "-fcase-folding" "-fcase-merge" "-fcatch-bottoms" + "-fcatch-nonexhaustive-cases" + "-fcheck-prim-bounds" "-fclear-plugins" + "-fcmm-control-flow" "-fcmm-elim-common-blocks" "-fcmm-sink" "-fcmm-static-pred" + "-fcmm-thread-sanitizer" + "-fcompact-unwind" "-fconstraint-solver-iterations" "-fcontext-stack" + "-fcore-constant-folding" "-fcpr-anal" "-fcpr-off" "-fcross-module-specialise" @@ -1286,9 +1410,12 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fdiagnostics-show-caret" "-fdicts-cheap" "-fdicts-strict" + "-fdistinct-constructor-tables" "-fdmd-tx-dict-sel" + "-fdmd-unbox-width" "-fdo-eta-reduction" "-fdo-lambda-eta-expansion" + "-fdump-with-ways" "-feager-blackholing" "-fembed-manifest" "-fenable-rewrite-rules" @@ -1297,10 +1424,13 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fexcess-precision" "-fexitification" "-fexpose-all-unfoldings" + "-fexpose-internal-symbols" "-fext-core" "-fextended-default-rules" "-fexternal-dynamic-refs" "-fexternal-interpreter" + "-ffamily-application-cache" + "-ffast-pap-calls" "-fffi" "-ffi" "-fflat-cache" @@ -1327,6 +1457,9 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fignore-optim-changes" "-fimplicit-params" "-fimplicit-prelude" + "-finfo-table-map" + "-finline-generics" + "-finline-generics-aggressively" "-firrefutable-tuples" "-fkeep-cafs" "-fkeep-going" @@ -1339,6 +1472,8 @@ This list should be updated by running `haskell-update-ghc-support'.") "-flink-rts" "-fllvm" "-fllvm-pass-vectors-in-regs" + "-flocal-float-out" + "-flocal-float-out-top-level" "-floopification" "-fmax-errors" "-fmax-inline-alloc-size" @@ -1368,14 +1503,21 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-block-layout-cfg" "-fno-block-layout-weightless" "-fno-building-cabal-package" + "-fno-byte-code-and-object-code" "-fno-call-arity" "-fno-case-folding" "-fno-case-merge" "-fno-catch-bottoms" + "-fno-catch-nonexhaustive-cases" + "-fno-check-prim-bounds" + "-fno-cmm-control-flow" "-fno-cmm-elim-common-blocks" "-fno-cmm-sink" "-fno-cmm-static-pred" + "-fno-cmm-thread-sanitizer" "-fno-code" + "-fno-compact-unwind" + "-fno-core-constant-folding" "-fno-cpr-anal" "-fno-cross-module-specialise" "-fno-cross-module-specialize" @@ -1390,6 +1532,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-dmd-tx-dict-sel" "-fno-do-eta-reduction" "-fno-do-lambda-eta-expansion" + "-fno-dump-with-ways" "-fno-eager-blackholing" "-fno-embed-manifest" "-fno-enable-rewrite-rules" @@ -1398,10 +1541,13 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-excess-precision" "-fno-exitification" "-fno-expose-all-unfoldings" + "-fno-expose-internal-symbols" "-fno-ext-core" "-fno-extended-default-rules" "-fno-external-dynamic-refs" "-fno-external-interpreter" + "-fno-family-application-cache" + "-fno-fast-pap-calls" "-fno-ffi" "-fno-fi" "-fno-flat-cache" @@ -1424,6 +1570,8 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-ignore-optim-changes" "-fno-implicit-params" "-fno-implicit-prelude" + "-fno-inline-generics" + "-fno-inline-generics-aggressively" "-fno-irrefutable-tuples" "-fno-keep-cafs" "-fno-keep-going" @@ -1434,6 +1582,8 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-liberate-case" "-fno-liberate-case-threshold" "-fno-link-rts" + "-fno-local-float-out" + "-fno-local-float-out-top-level" "-fno-loopification" "-fno-max-errors" "-fno-max-refinement-hole-fits" @@ -1449,6 +1599,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-parr" "-fno-pedantic-bottoms" "-fno-pre-inlining" + "-fno-prefer-byte-code" "-fno-print-axiom-incomps" "-fno-print-equality-relations" "-fno-print-expanded-synonyms" @@ -1457,11 +1608,15 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-print-explicit-kinds" "-fno-print-explicit-runtime-reps" "-fno-print-potential-instances" + "-fno-print-redundant-promotion-ticks" "-fno-print-typechecker-elaboration" "-fno-print-unicode-syntax" "-fno-prof-auto" "-fno-prof-cafs" "-fno-prof-count-entries" + "-fno-prof-late" + "-fno-prof-late-inline" + "-fno-prof-manual" "-fno-refinement-level-hole-fits" "-fno-regs-graph" "-fno-regs-iterative" @@ -1472,6 +1627,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-scoped-type-variables" "-fno-shared-implib" "-fno-show-docs-of-hole-fits" + "-fno-show-error-context" "-fno-show-hole-constraints" "-fno-show-hole-matches-of-hole-fits" "-fno-show-loaded-modules" @@ -1495,6 +1651,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-specialise-aggressively" "-fno-specialize" "-fno-specialize-aggressively" + "-fno-split-sections" "-fno-state-hack" "-fno-static-argument-transformation" "-fno-stg-cse" @@ -1562,7 +1719,9 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fno-warn-wrong-do-bind" "-fno-whole-archive-hs-libs" "-fno-worker-wrapper" + "-fno-worker-wrapper-cbv" "-fno-write-ide-info" + "-fno-write-if-simplified-core" "-fno-write-interface" "-fnum-constant-folding" "-fobject-code" @@ -1573,9 +1732,11 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fparr" "-fpedantic-bottoms" "-fplugin" + "-fplugin-library" "-fplugin-opt" "-fplugin-trustworthy" "-fpre-inlining" + "-fprefer-byte-code" "-fprint-axiom-incomps" "-fprint-equality-relations" "-fprint-expanded-synonyms" @@ -1584,6 +1745,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fprint-explicit-kinds" "-fprint-explicit-runtime-reps" "-fprint-potential-instances" + "-fprint-redundant-promotion-ticks" "-fprint-typechecker-elaboration" "-fprint-unicode-syntax" "-fproc-alignment" @@ -1592,7 +1754,11 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fprof-auto-exported" "-fprof-auto-top" "-fprof-cafs" + "-fprof-callers" "-fprof-count-entries" + "-fprof-late" + "-fprof-late-inline" + "-fprof-manual" "-framework" "-framework-path" "-freduction-depth" @@ -1605,6 +1771,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fscoped-type-variables" "-fshared-implib" "-fshow-docs-of-hole-fits" + "-fshow-error-context" "-fshow-hole-constraints" "-fshow-hole-matches-of-hole-fits" "-fshow-loaded-modules" @@ -1631,6 +1798,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fspecialise-aggressively" "-fspecialize" "-fspecialize-aggressively" + "-fsplit-sections" "-fstatic-argument-transformation" "-fstg-cse" "-fstg-lift-lams" @@ -1646,6 +1814,8 @@ This list should be updated by running `haskell-update-ghc-support'.") "-funbox-small-strict-fields" "-funbox-strict-fields" "-funclutter-valid-hole-fits" + "-funfolding-case-scaling" + "-funfolding-case-threshold" "-funfolding-creation-threshold" "-funfolding-dict-discount" "-funfolding-fun-discount" @@ -1710,7 +1880,9 @@ This list should be updated by running `haskell-update-ghc-support'.") "-fwarn-wrong-do-bind" "-fwhole-archive-hs-libs" "-fworker-wrapper" + "-fworker-wrapper-cbv" "-fwrite-ide-info" + "-fwrite-if-simplified-core" "-fwrite-interface" "-g" "-ghcversion-file" @@ -1719,6 +1891,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-haddock" "-haddock-opts" "-hcsuf" + "-hidden-module" "-hide-all-packages" "-hide-all-plugin-packages" "-hide-package" @@ -1813,10 +1986,12 @@ This list should be updated by running `haskell-update-ghc-support'.") "-pgmar" "-pgmc" "-pgmc-supports-no-pie" + "-pgmcxx" "-pgmdll" "-pgmi" "-pgminstall_name_tool" "-pgml" + "-pgml-supports-no-pie" "-pgmlc" "-pgmlibtool" "-pgmlm" @@ -1831,6 +2006,7 @@ This list should be updated by running `haskell-update-ghc-support'.") "-prof" "-rdynamic" "-recomp" + "-reexported-module" "-relative-dynlib-paths" "-rtsopts" "-rtsopts=all" @@ -1849,18 +2025,23 @@ This list should be updated by running `haskell-update-ghc-support'.") "-syslib" "-this-component-id" "-this-package-key" + "-this-package-name" "-this-unit-id" "-threaded" "-ticky" "-ticky-LNE" "-ticky-allocd" + "-ticky-ap-thunk" "-ticky-dyn-thunk" + "-ticky-tag-checks" "-tmpdir" "-trust" + "-unit" "-user-package-db" "-v" "-w" "-with-rtsopts" + "-working-dir" ;;; END haskell-ghc-supported-options ) "List of options supported by any known version of GHC. diff --git a/elpa/haskell-mode-20210908.1543/haskell-hoogle.el b/elpa/haskell-mode-20231115.1812/haskell-hoogle.el similarity index 84% rename from elpa/haskell-mode-20210908.1543/haskell-hoogle.el rename to elpa/haskell-mode-20231115.1812/haskell-hoogle.el index 86835b7f..857af921 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-hoogle.el +++ b/elpa/haskell-mode-20231115.1812/haskell-hoogle.el @@ -27,6 +27,7 @@ ;;; Code: (require 'ansi-color) +(require 'view) (require 'haskell-mode) (require 'haskell-utils) @@ -70,13 +71,21 @@ is asked to show extra info for the items matching QUERY.." (let* ((command (concat (if (functionp haskell-hoogle-command) (funcall haskell-hoogle-command) haskell-hoogle-command) - (if info " -i " "") - " --color " (shell-quote-argument query))) - (output (shell-command-to-string command))) - (with-help-window "*hoogle*" - (with-current-buffer standard-output - (insert output) - (ansi-color-apply-on-region (point-min) (point-max))))))) + (if info " -i " "") + " --color " (shell-quote-argument query))) + (output (shell-command-to-string command))) + (with-help-window "*hoogle*" + (with-current-buffer standard-output + (let ((outs (ansi-color-filter-apply output))) + (delay-mode-hooks (haskell-mode)) + (if info + (let ((lns (split-string output "\n" t " "))) + (insert (car lns) "\n\n") + (dolist (ln (cdr lns)) (insert "-- " ln "\n"))) + (insert outs) + (forward-line -1) + (when (looking-at-p "^plus more results") (insert "\n-- "))) + (view-mode))))))) ;;;###autoload (defalias 'hoogle 'haskell-hoogle) @@ -89,9 +98,9 @@ is asked to show extra info for the items matching QUERY.." (defcustom haskell-hoogle-server-command (lambda (port) (list "hoogle" "server" - "--local" - "-p" - (number-to-string port))) + "--local" + "-p" + (number-to-string port))) "Command used to start the local hoogle server." :group 'haskell :type 'function diff --git a/elpa/haskell-mode-20210908.1543/haskell-indent.el b/elpa/haskell-mode-20231115.1812/haskell-indent.el similarity index 99% rename from elpa/haskell-mode-20210908.1543/haskell-indent.el rename to elpa/haskell-mode-20231115.1812/haskell-indent.el index afa55850..a5316446 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-indent.el +++ b/elpa/haskell-mode-20231115.1812/haskell-indent.el @@ -92,7 +92,6 @@ (defvar haskell-literate) -;;;###autoload (defgroup haskell-indent nil "Haskell indentation." :group 'haskell @@ -435,7 +434,8 @@ Returns the location of the start of the comment, nil otherwise." (haskell-indent-skip-blanks-and-newlines-forward end)))) (defun haskell-indent-next-symbol-safe (end) - "Puts point to the next following symbol, or to end if there are no more symbols in the sexp." + "Puts point if there are no more symbols in the sexp. +The point is put to the next following symbol, or to end." (condition-case _errlist (haskell-indent-next-symbol end) (error (goto-char end)))) @@ -1233,7 +1233,7 @@ START if non-nil is a presumed start pos of the current definition." (setq open (haskell-indent-offset-after-info))) (list (list (haskell-indent-after-keyword-column open start)))))) - ;; open structure? ie ( { [ + ;; open structure? i.e. ( { [ ((setq open (haskell-indent-open-structure start (point))) (haskell-indent-inside-paren open)) @@ -1324,7 +1324,7 @@ of the regions to move." (defun haskell-indent-align-def (p-arg type) "Align guards or rhs within the current definition before point. If P-ARG is t align all defs up to the mark. -TYPE is either 'guard or 'rhs." +TYPE is either \\='guard or \\='rhs." (save-excursion (let (start-block end-block (maxcol (if (eq type 'rhs) haskell-indent-rhs-align-column 0)) @@ -1435,7 +1435,7 @@ TYPE is either 'guard or 'rhs." (defun haskell-indent-align-guards-and-rhs (_start _end) "Align the guards and rhs of functions in the region, which must be active." - ;; The `start' and `end' args are dummys right now: they're just there so + ;; The `start' and `end' args are dummies right now: they're just there so ;; we can use the "r" interactive spec which properly signals an error. (interactive "*r") (haskell-indent-align-def t 'guard) diff --git a/elpa/haskell-mode-20210908.1543/haskell-indentation.el b/elpa/haskell-mode-20231115.1812/haskell-indentation.el similarity index 97% rename from elpa/haskell-mode-20210908.1543/haskell-indentation.el rename to elpa/haskell-mode-20231115.1812/haskell-indentation.el index 8fb034ec..4c252512 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-indentation.el +++ b/elpa/haskell-mode-20231115.1812/haskell-indentation.el @@ -43,7 +43,6 @@ (require 'cl-lib) (require 'haskell-lexeme) -;;;###autoload (defgroup haskell-indentation nil "Haskell indentation." :link '(custom-manual "(haskell-mode)Indentation") @@ -127,6 +126,14 @@ set and deleted as if they were real tabs." "Return t if this is a literate Haskell buffer in bird style, NIL otherwise." (eq haskell-literate 'bird)) +(defun haskell-indentation-tex-p () + "Return t if this is a literate Haskell buffer in tex style, NIL otherwise." + (eq haskell-literate 'tex)) + +(defun haskell-indentation-literate-p () + "Return t if this is a literate Haskell buffer, NIL otherwise." + (or (haskell-indentation-bird-p) (haskell-indentation-tex-p))) + ;;---------------------------------------------------------------------------- ;; UI starts here @@ -180,12 +187,25 @@ negative ARG. Handles bird style literate Haskell too." (beginning-of-line) (not (eq (char-after) ?>)))))) +(defun haskell-indentation-tex-outside-code-p () + "Non-NIL if we are in tex literate mode, but outside of code." + (and (haskell-indentation-tex-p) + (not (and (save-excursion + (re-search-backward "\\\\end{code}\\|\\\\begin{code}\\(\\)" + nil t)) + (match-end 1))))) + +(defun haskell-indentation-literate-outside-code-p () + "Non-NIL if we are in literate mode, but outside of code." + (or (haskell-indentation-bird-outside-code-p) + (haskell-indentation-tex-outside-code-p))) + (defun haskell-indentation-newline-and-indent () "Insert newline and indent." (interactive "*") ;; On RET (or C-j), we: ;; - just jump to the next line if literate haskell, but outside code - (if (haskell-indentation-bird-outside-code-p) + (if (haskell-indentation-literate-outside-code-p) (progn (delete-horizontal-space) (newline)) @@ -242,9 +262,9 @@ indentation points to the right, we switch going to the left." ;; try to repeat (when (not (haskell-indentation-indent-line-repeat)) (setq haskell-indentation-dyn-last-direction nil) - ;; parse error is intentionally not cought here, it may come from + ;; parse error is intentionally not caught here, it may come from ;; `haskell-indentation-find-indentations', but escapes the scope - ;; and aborts the opertaion before any moving happens + ;; and aborts the operation before any moving happens (let* ((cc (current-column)) (ci (haskell-indentation-current-indentation)) (inds (save-excursion @@ -794,7 +814,7 @@ For example (throw 'parse-end nil)))))) (defun haskell-indentation-toplevel-where () - "Parse 'where' that we may hit as a standalone in module declaration." + "Parse \\='where\\=' that we may hit as a standalone in module declaration." (haskell-indentation-read-next-token) (when (eq current-token 'end-tokens) @@ -1161,13 +1181,13 @@ yet. Keep the list in ascending order." The following symbols are used as pseudo tokens: -'layout-item: A new item in a layout list. The next token +\\='layout-item: A new item in a layout list. The next token will be the first token from the item. -'layout-end: the end of a layout list. Next token will be +\\='layout-end: the end of a layout list. Next token will be the first token after the layout list. -'end-tokens: back at point where we started, following-token +\\='end-tokens: back at point where we started, following-token will be set to the next token. Pseudo tokens are used only when implicit-layout-active is diff --git a/elpa/haskell-mode-20210908.1543/haskell-interactive-mode.el b/elpa/haskell-mode-20231115.1812/haskell-interactive-mode.el similarity index 99% rename from elpa/haskell-mode-20210908.1543/haskell-interactive-mode.el rename to elpa/haskell-mode-20231115.1812/haskell-interactive-mode.el index 0202fb35..63b54878 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-interactive-mode.el +++ b/elpa/haskell-mode-20231115.1812/haskell-interactive-mode.el @@ -48,9 +48,10 @@ "Mark used for the old beginning of the prompt.") (defun haskell-interactive-prompt-regex () - "Generate a regex for searching for any occurrence of the prompt\ -at the beginning of the line. This should prevent any -interference with prompts that look like haskell expressions." + "Generate a regex for searching whether prompt or not. +The regex is for searching for any occurrence of the prompt at the beginning of +the line. This should prevent any interference with prompts that look like +haskell expressions." (concat "^" (regexp-quote haskell-interactive-prompt))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -123,40 +124,33 @@ be nil.") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Faces -;;;###autoload (defface haskell-interactive-face-prompt '((t :inherit font-lock-function-name-face)) "Face for the prompt." :group 'haskell-interactive) -;;;###autoload (defface haskell-interactive-face-prompt-cont '((t :inherit font-lock-keyword-face)) "Face for GHCi's prompt-cont in multi-line mode." :group 'haskell-interactive) -;;;###autoload (define-obsolete-face-alias 'haskell-interactive-face-prompt2 'haskell-interactive-face-prompt-cont "16.2") -;;;###autoload (defface haskell-interactive-face-compile-error '((t :inherit compilation-error)) "Face for compile errors." :group 'haskell-interactive) -;;;###autoload (defface haskell-interactive-face-compile-warning '((t :inherit compilation-warning)) "Face for compiler warnings." :group 'haskell-interactive) -;;;###autoload (defface haskell-interactive-face-result '((t :inherit font-lock-string-face)) "Face for the result." :group 'haskell-interactive) -;;;###autoload (defface haskell-interactive-face-garbage '((t :inherit font-lock-string-face)) "Face for trailing garbage after a command has completed." @@ -402,7 +396,7 @@ SESSION, otherwise operate on the current buffer." 'rear-nonsticky t))))) (defun haskell-interactive-mode-goto-end-point () - "Go to the 'end' of the buffer (before the prompt)." + "Go to the \\='end\\=' of the buffer (before the prompt)." (goto-char haskell-interactive-mode-prompt-start) (goto-char (line-beginning-position))) diff --git a/elpa/haskell-mode-20210908.1543/haskell-lexeme.el b/elpa/haskell-mode-20231115.1812/haskell-lexeme.el similarity index 90% rename from elpa/haskell-mode-20210908.1543/haskell-lexeme.el rename to elpa/haskell-mode-20231115.1812/haskell-lexeme.el index 622f53f2..a00838ce 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-lexeme.el +++ b/elpa/haskell-mode-20231115.1812/haskell-lexeme.el @@ -91,14 +91,14 @@ Using this function is more efficient than matching against the regexp `haskell-lexeme-qid-or-qsym'. Returns: - 'qid - if matched a qualified id: 'Data.Map' or 'Map' - 'qsym - if matched a qualified id: 'Monad.>>=' or '>>=' - 'qprefix - if matched only modid prefix: 'Data.' + \\='qid - if matched a qualified id: \\='Data.Map\\=' or \\='Map\\=' + \\='qsym - if matched a qualified id: \\='Monad.>>=\\=' or \\='>>=\\=' + \\='qprefix - if matched only modid prefix: \\='Data.\\=' -After successful 'qid or 'qsym match (match-string 1) will return +After successful \\='qid or \\='qsym match (match-string 1) will return the unqualified part (if any)." (let ((begin (point)) - (match-data-old (match-data))) + (match-data-old (match-data t))) (save-excursion (while (looking-at (concat haskell-lexeme-modid "\\.")) (goto-char (match-end 0))) @@ -138,7 +138,7 @@ When match is successful, match-data will contain: (match-text 2) - whole qualified identifier (match-text 3) - unqualified part of identifier (match-text 4) - closing backtick" - (let ((match-data-old (match-data)) + (let ((match-data-old (match-data t)) first-backtick-start last-backtick-start qid-start @@ -159,15 +159,12 @@ When match is successful, match-data will contain: (when (looking-at "`") (setq last-backtick-start (match-beginning 0)) (set-match-data - (mapcar - (lambda (p) - (set-marker (make-marker) p)) - (list - first-backtick-start (1+ last-backtick-start) - first-backtick-start (1+ first-backtick-start) - qid-start id-end - id-start id-end - last-backtick-start (1+ last-backtick-start)))) + (list + first-backtick-start (1+ last-backtick-start) + first-backtick-start (1+ first-backtick-start) + qid-start id-end + id-start id-end + last-backtick-start (1+ last-backtick-start))) (setq result t))))) (unless result (set-match-data match-data-old)) @@ -357,8 +354,8 @@ After successful match: "Non-nil when point is just in front of Template Haskell quaisquote literal. -Quasi quotes start with '[xxx|' or '[$xxx|' sequence and end with - '|]'. The 'xxx' is a quoter name. There is no escaping mechanism +Quasi quotes start with \\='[xxx|\\=' or \\='[$xxx|\\=' sequence and end with + \\='|]\\='. The \\='xxx\\=' is a quoter name. There is no escaping mechanism provided for the ending sequence. Regexp has subgroup expressions: @@ -368,9 +365,9 @@ Regexp has subgroup expressions: (match-text 4) matches the closing vertical bar or nil if at the end of the buffer. -Note that this function excludes 'e', 't', 'd', 'p' as quoter -names according to Template Haskell specification." - (let ((match-data-old (match-data))) +Note that this function excludes \\='e\\=', \\='t\\=', \\='d'\\=, \\='p\\=' +as quoter names according to Template Haskell specification." + (let ((match-data-old (match-data t))) (if (and (looking-at (rx-to-string `(: "[" (optional "$") (regexp ,haskell-lexeme-modid-opt-prefix) @@ -383,9 +380,9 @@ names according to Template Haskell specification." ;; note that quasi quote syntax does not have any escaping ;; mechanism and if not closed it will span til lthe end of buffer (goto-char (match-end 0)) - (let ((match-data (match-data)) + (let ((match-data (match-data t)) (match-data-2 (and (re-search-forward "|]" nil t) - (match-data)))) + (match-data t)))) (if match-data-2 (set-match-data (list @@ -445,15 +442,17 @@ type of Haskell token recognized. Use `match-string', result. Possible results are: -- 'special: for chars [](){}`,; -- 'comment: for single line comments -- 'nested-comment: for multiline comments -- 'qsymid: for qualified identifiers or symbols -- 'string: for strings literals -- 'char: for char literals -- 'number: for decimal, float, hexadecimal and octal number literals -- 'template-haskell-quote: for a string of apostrophes for template haskell -- 'template-haskell-quasi-quote: for a string of apostrophes for template haskell +- \\='special: for chars [](){}`,; +- \\='comment: for single line comments +- \\='nested-comment: for multiline comments +- \\='qsymid: for qualified identifiers or symbols +- \\='string: for strings literals +- \\='char: for char literals +- \\='number: for decimal, float, hexadecimal and octal number literals +- \\='template-haskell-quote: for a string of apostrophes for template + haskell +- \\='template-haskell-quasi-quote: for a string of apostrophes for template + haskell Note that for qualified symbols (match-string 1) returns the unqualified identifier or symbol. Further qualification for @@ -472,20 +471,20 @@ See `haskell-lexeme-classify-by-first-char' for details." (> (skip-chars-forward "\n") 0)))) (let ((case-fold-search nil) - (point (point-marker))) + (point (point))) (or (and (equal (string-to-syntax "<") (get-char-property (point) 'syntax-table)) (progn - (set-match-data (list point (set-marker (make-marker) (line-end-position)))) + (set-match-data (list point (line-end-position))) 'literate-comment)) (and (looking-at "\n") 'newline) (and (looking-at "{-") (save-excursion (forward-comment 1) - (set-match-data (list point (point-marker))) + (set-match-data (list point (point))) 'nested-comment)) (and (haskell-lexeme-looking-at-char-literal) 'char) @@ -499,7 +498,7 @@ See `haskell-lexeme-classify-by-first-char' for details." (if (save-match-data (string-match "\\`---*\\'" (match-string-no-properties 0))) (progn - (set-match-data (list point (set-marker (make-marker) (line-end-position)))) + (set-match-data (list point (line-end-position))) 'comment) 'qsymid)) (and (looking-at haskell-lexeme-number) diff --git a/elpa/haskell-mode-20210908.1543/haskell-load.el b/elpa/haskell-mode-20231115.1812/haskell-load.el similarity index 98% rename from elpa/haskell-mode-20210908.1543/haskell-load.el rename to elpa/haskell-mode-20231115.1812/haskell-load.el index 7714ba72..230d8f60 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-load.el +++ b/elpa/haskell-mode-20231115.1812/haskell-load.el @@ -130,7 +130,7 @@ actual Emacs buffer of the module being loaded." process "Failed, modules loaded: \\(.+\\)\\.$") nil) - ((haskell-process-consume + ((haskell-process-consume process "Failed, no modules loaded\\.$") ;; for ghc 8.4 nil) @@ -265,9 +265,9 @@ list of modules where missed IDENT was found." (get-buffer-create "*haskell-process-log*")) (switch-to-buffer-other-window (get-buffer "*haskell-process-log*"))) (t (let ((app-name (cl-ecase (haskell-process-type) - ('ghci haskell-process-path-cabal) - ('cabal-repl haskell-process-path-cabal) - ('stack-ghci haskell-process-path-stack)))) + (ghci haskell-process-path-cabal) + (cabal-repl haskell-process-path-cabal) + (stack-ghci haskell-process-path-stack)))) (haskell-process-queue-command process (make-haskell-command @@ -336,7 +336,6 @@ list of modules where missed IDENT was found." (modules (and modules-string (split-string modules-string ", ")))) (cons modules modules-string))) -;;;###autoload (defface haskell-error-face '((((supports :underline (:style wave))) :underline (:style wave :color "#dc322f")) @@ -345,7 +344,6 @@ list of modules where missed IDENT was found." "Face used for marking error lines." :group 'haskell-mode) -;;;###autoload (defface haskell-warning-face '((((supports :underline (:style wave))) :underline (:style wave :color "#b58900")) @@ -354,7 +352,6 @@ list of modules where missed IDENT was found." "Face used for marking warning lines." :group 'haskell-mode) -;;;###autoload (defface haskell-hole-face '((((supports :underline (:style wave))) :underline (:style wave :color "#6c71c4")) @@ -566,15 +563,15 @@ When MODULE-BUFFER is non-NIL, paint error overlays." t))))))) (defun haskell-interactive-show-load-message (session type module-name file-name echo th) - "Show the '(Compiling|Loading) X' message." + "Show the \\='(Compiling|Loading) X\\=' message." (let ((msg (concat (cl-ecase type - ('compiling + (compiling (if haskell-interactive-mode-include-file-name (format "Compiling: %s (%s)" module-name file-name) (format "Compiling: %s" module-name))) - ('loading (format "Loading: %s" module-name)) - ('import-cycle + (loading (format "Loading: %s" module-name)) + (import-cycle (format "Module has an import cycle: %s" module-name))) (if th " [TH]" "")))) (haskell-mode-message-line msg) diff --git a/elpa/haskell-mode-20210908.1543/haskell-menu.el b/elpa/haskell-mode-20231115.1812/haskell-menu.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-menu.el rename to elpa/haskell-mode-20231115.1812/haskell-menu.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-mode-autoloads.el b/elpa/haskell-mode-20231115.1812/haskell-mode-autoloads.el similarity index 52% rename from elpa/haskell-mode-20210908.1543/haskell-mode-autoloads.el rename to elpa/haskell-mode-20231115.1812/haskell-mode-autoloads.el index ce236a46..e6d59fe7 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-mode-autoloads.el +++ b/elpa/haskell-mode-20231115.1812/haskell-mode-autoloads.el @@ -1,63 +1,60 @@ -;;; haskell-mode-autoloads.el --- automatically extracted autoloads -;; +;;; haskell-mode-autoloads.el --- automatically extracted autoloads (do not edit) -*- lexical-binding: t -*- +;; Generated by the `loaddefs-generate' function. + +;; This file is part of GNU Emacs. + ;;; Code: -(add-to-list 'load-path (directory-file-name - (or (file-name-directory #$) (car load-path)))) +(add-to-list 'load-path (or (and load-file-name (directory-file-name (file-name-directory load-file-name))) (car load-path))) + -;;;### (autoloads nil "ghc-core" "ghc-core.el" (0 0 0 0)) ;;; Generated autoloads from ghc-core.el -(let ((loads (get 'ghc-core 'custom-loads))) (if (member '"ghc-core" loads) nil (put 'ghc-core 'custom-loads (cons '"ghc-core" loads)))) - (autoload 'ghc-core-create-core "ghc-core" "\ -Compile and load the current buffer as tidy core." t nil) - +Compile and load the current buffer as tidy core." t) (add-to-list 'auto-mode-alist '("\\.hcr\\'" . ghc-core-mode)) - (add-to-list 'auto-mode-alist '("\\.dump-simpl\\'" . ghc-core-mode)) - (autoload 'ghc-core-mode "ghc-core" "\ Major mode for GHC Core files. -\(fn)" t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ghc-core" '("ghc-core-"))) +(fn)" t) +(register-definition-prefixes "ghc-core" '("ghc-core-")) -;;;*** -;;;### (autoloads nil "ghci-script-mode" "ghci-script-mode.el" (0 -;;;;;; 0 0 0)) ;;; Generated autoloads from ghci-script-mode.el (autoload 'ghci-script-mode "ghci-script-mode" "\ Major mode for working with .ghci files. -\(fn)" t nil) - +(fn)" t) (add-to-list 'auto-mode-alist '("\\.ghci\\'" . ghci-script-mode)) +(register-definition-prefixes "ghci-script-mode" '("ghci-script-mode-")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ghci-script-mode" '("ghci-script-mode-"))) - -;;;*** -;;;### (autoloads nil "haskell" "haskell.el" (0 0 0 0)) ;;; Generated autoloads from haskell.el (autoload 'interactive-haskell-mode "haskell" "\ Minor mode for enabling haskell-process interaction. -If called interactively, enable Interactive-Haskell mode if ARG -is positive, and disable it if ARG is zero or negative. If -called from Lisp, also enable the mode if ARG is omitted or nil, -and toggle it if ARG is `toggle'; disable the mode otherwise. +This is a minor mode. If called interactively, toggle the +`Interactive-Haskell mode' mode. If the prefix argument is +positive, enable the mode, and if it is zero or negative, disable +the mode. -\(fn &optional ARG)" t nil) +If called from Lisp, toggle the mode if ARG is `toggle'. Enable +the mode if ARG is nil, omitted, or is a positive number. +Disable the mode if ARG is a negative number. -(autoload 'haskell-interactive-mode-return "haskell" "\ -Handle the return key." t nil) +To check whether the minor mode is enabled in the current buffer, +evaluate `interactive-haskell-mode'. +The mode's hook is called both when the mode is enabled and when +it is disabled. + +(fn &optional ARG)" t) +(autoload 'haskell-interactive-mode-return "haskell" "\ +Handle the return key." t) (autoload 'haskell-session-kill "haskell" "\ Kill the session process and buffer, delete the session. 1. Kill the process. @@ -65,124 +62,93 @@ Kill the session process and buffer, delete the session. 3. Walk through all the related buffers and set their haskell-session to nil. 4. Remove the session from the sessions list. -\(fn &optional LEAVE-INTERACTIVE-BUFFER)" t nil) - +(fn &optional LEAVE-INTERACTIVE-BUFFER)" t) (autoload 'haskell-interactive-kill "haskell" "\ -Kill the buffer and (maybe) the session." t nil) - +Kill the buffer and (maybe) the session." t) (autoload 'haskell-session "haskell" "\ -Get the Haskell session, prompt if there isn't one or fail." nil nil) - +Get the Haskell session, prompt if there isn't one or fail.") (autoload 'haskell-interactive-switch "haskell" "\ -Switch to the interactive mode for this session." t nil) - +Switch to the interactive mode for this session." t) (autoload 'haskell-session-change "haskell" "\ -Change the session for the current buffer." t nil) - +Change the session for the current buffer." t) (autoload 'haskell-kill-session-process "haskell" "\ Kill the process. -\(fn &optional SESSION)" t nil) - +(fn &optional SESSION)" t) (autoload 'haskell-interactive-mode-visit-error "haskell" "\ -Visit the buffer of the current (or last) error message." t nil) - +Visit the buffer of the current (or last) error message." t) (autoload 'haskell-mode-jump-to-tag "haskell" "\ Jump to the tag of the given identifier. Give optional NEXT-P parameter to override value of `xref-prompt-for-identifier' during definition search. -\(fn &optional NEXT-P)" t nil) - +(fn &optional NEXT-P)" t) (autoload 'haskell-mode-after-save-handler "haskell" "\ -Function that will be called after buffer's saving." nil nil) - +Function that will be called after buffer's saving.") (autoload 'haskell-mode-tag-find "haskell" "\ The tag find function, specific for the particular session. -\(fn &optional NEXT-P)" t nil) - +(fn &optional NEXT-P)" t) (autoload 'haskell-interactive-bring "haskell" "\ -Bring up the interactive mode for this session." t nil) - +Bring up the interactive mode for this session." t) (autoload 'haskell-process-load-file "haskell" "\ -Load the current buffer file." t nil) - +Load the current buffer file." t) (autoload 'haskell-process-reload "haskell" "\ -Re-load the current buffer file." t nil) - -(autoload 'haskell-process-reload-file "haskell" nil nil nil) - +Re-load the current buffer file." t) +(autoload 'haskell-process-reload-file "haskell") (autoload 'haskell-process-load-or-reload "haskell" "\ Load or reload. Universal argument toggles which. -\(fn &optional TOGGLE)" t nil) - +(fn &optional TOGGLE)" t) (autoload 'haskell-process-cabal-build "haskell" "\ -Build the Cabal project." t nil) - +Build the Cabal project." t) (autoload 'haskell-process-cabal "haskell" "\ Prompts for a Cabal command to run. -\(fn P)" t nil) - +(fn P)" t) (autoload 'haskell-process-minimal-imports "haskell" "\ -Dump minimal imports." t nil) +Dump minimal imports." t) +(register-definition-prefixes "haskell" '("haskell-" "interactive-haskell-mode-map" "xref-prompt-for-identifier")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell" '("haskell-" "interactive-haskell-mode-map" "xref-prompt-for-identifier"))) - -;;;*** -;;;### (autoloads nil "haskell-align-imports" "haskell-align-imports.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-align-imports.el (autoload 'haskell-align-imports "haskell-align-imports" "\ -Align all the imports in the buffer." t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-align-imports" '("haskell-align-imports-"))) +Align all the imports in the buffer." t) +(register-definition-prefixes "haskell-align-imports" '("haskell-align-imports-")) -;;;*** -;;;### (autoloads nil "haskell-c2hs" "haskell-c2hs.el" (0 0 0 0)) ;;; Generated autoloads from haskell-c2hs.el (add-to-list 'auto-mode-alist '("\\.chs\\'" . haskell-c2hs-mode)) - (autoload 'haskell-c2hs-mode "haskell-c2hs" "\ Mode for editing *.chs files of the c2hs haskell tool. -\(fn)" t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-c2hs" '("haskell-c2hs-font-lock-keywords"))) +(fn)" t) +(register-definition-prefixes "haskell-c2hs" '("haskell-c2hs-font-lock-keywords")) -;;;*** -;;;### (autoloads nil "haskell-cabal" "haskell-cabal.el" (0 0 0 0)) ;;; Generated autoloads from haskell-cabal.el (add-to-list 'auto-mode-alist '("\\.cabal\\'\\|/cabal\\.project\\|/\\.cabal/config\\'" . haskell-cabal-mode)) - (autoload 'haskell-cabal-mode "haskell-cabal" "\ Major mode for Cabal package description files. -\(fn)" t nil) - +(fn)" t) (autoload 'haskell-cabal-get-field "haskell-cabal" "\ Read the value of field with NAME from project's cabal file. If there is no valid .cabal file to get the setting from (or there is no corresponding setting with that name in the .cabal file), then this function returns nil. -\(fn NAME)" t nil) - +(fn NAME)" t) (autoload 'haskell-cabal-get-dir "haskell-cabal" "\ -Get the Cabal dir for a new project. Various ways of figuring this out, - and indeed just prompting the user. Do them all. - -\(fn &optional USE-DEFAULTS)" nil nil) +Get the Cabal dir for a new project. +Various ways of figuring this out, and indeed just prompting the user. Do them +all. +(fn &optional USE-DEFAULTS)") (autoload 'haskell-cabal-visit-file "haskell-cabal" "\ Locate and visit package description file for file visited by current buffer. This uses `haskell-cabal-find-file' to locate the closest @@ -192,72 +158,67 @@ of the project, and all files related to the project are in or below the top-folder. If called with non-nil prefix argument OTHER-WINDOW use `find-file-other-window'. -\(fn OTHER-WINDOW)" t nil) - -(let ((loads (get 'haskell-cabal 'custom-loads))) (if (member '"haskell-cabal" loads) nil (put 'haskell-cabal 'custom-loads (cons '"haskell-cabal" loads)))) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-cabal" '("haskell-"))) +(fn OTHER-WINDOW)" t) +(register-definition-prefixes "haskell-cabal" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-collapse" "haskell-collapse.el" (0 -;;;;;; 0 0 0)) ;;; Generated autoloads from haskell-collapse.el (autoload 'haskell-collapse-mode "haskell-collapse" "\ Minor mode to collapse and expand haskell expressions -If called interactively, enable Haskell-Collapse mode if ARG is -positive, and disable it if ARG is zero or negative. If called -from Lisp, also enable the mode if ARG is omitted or nil, and -toggle it if ARG is `toggle'; disable the mode otherwise. +This is a minor mode. If called interactively, toggle the +`Haskell-Collapse mode' mode. If the prefix argument is +positive, enable the mode, and if it is zero or negative, disable +the mode. + +If called from Lisp, toggle the mode if ARG is `toggle'. Enable +the mode if ARG is nil, omitted, or is a positive number. +Disable the mode if ARG is a negative number. + +To check whether the minor mode is enabled in the current buffer, +evaluate `haskell-collapse-mode'. -\(fn &optional ARG)" t nil) +The mode's hook is called both when the mode is enabled and when +it is disabled. -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-collapse" '("haskell-"))) +\\{haskell-collapse-mode-map} + +(fn &optional ARG)" t) +(register-definition-prefixes "haskell-collapse" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-commands" "haskell-commands.el" (0 -;;;;;; 0 0 0)) ;;; Generated autoloads from haskell-commands.el (autoload 'haskell-process-restart "haskell-commands" "\ -Restart the inferior Haskell process." t nil) - +Restart the inferior Haskell process." t) (autoload 'haskell-process-clear "haskell-commands" "\ -Clear the current process." t nil) - +Clear the current process." t) (autoload 'haskell-process-interrupt "haskell-commands" "\ -Interrupt the process (SIGINT)." t nil) - +Interrupt the process (SIGINT)." t) (autoload 'haskell-describe "haskell-commands" "\ Describe the given identifier IDENT. -\(fn IDENT)" t nil) - +(fn IDENT)" t) (autoload 'haskell-rgrep "haskell-commands" "\ Grep the effective project for the symbol at point. Very useful for codebase navigation. Prompts for an arbitrary regexp given a prefix arg PROMPT. -\(fn &optional PROMPT)" t nil) - +(fn &optional PROMPT)" t) (autoload 'haskell-process-do-info "haskell-commands" "\ Print info on the identifier at point. If PROMPT-VALUE is non-nil, request identifier via mini-buffer. -\(fn &optional PROMPT-VALUE)" t nil) - +(fn &optional PROMPT-VALUE)" t) (autoload 'haskell-process-do-type "haskell-commands" "\ Print the type of the given expression. Given INSERT-VALUE prefix indicates that result type signature should be inserted. -\(fn &optional INSERT-VALUE)" t nil) - +(fn &optional INSERT-VALUE)" t) (autoload 'haskell-mode-jump-to-def-or-tag "haskell-commands" "\ Jump to the definition. Jump to definition of identifier at point by consulting GHCi, or @@ -270,25 +231,20 @@ If the definition or tag is found, the location from which you jumped will be pushed onto `xref--marker-ring', so you can return to that position with `xref-pop-marker-stack'. -\(fn &optional NEXT-P)" t nil) - +(fn &optional NEXT-P)" t) (autoload 'haskell-mode-goto-loc "haskell-commands" "\ Go to the location of the thing at point. -Requires the :loc-at command from GHCi." t nil) - +Requires the :loc-at command from GHCi." t) (autoload 'haskell-mode-jump-to-def "haskell-commands" "\ Jump to definition of identifier IDENT at point. -\(fn IDENT)" t nil) - +(fn IDENT)" t) (autoload 'haskell-process-cd "haskell-commands" "\ Change directory. -\(fn &optional NOT-INTERACTIVE)" t nil) - +(fn &optional NOT-INTERACTIVE)" t) (autoload 'haskell-process-cabal-macros "haskell-commands" "\ -Send the cabal macros string." t nil) - +Send the cabal macros string." t) (autoload 'haskell-mode-show-type-at "haskell-commands" "\ Show type of the thing at point or within active region asynchronously. This function requires GHCi 8+ or GHCi-ng. @@ -302,39 +258,29 @@ Optional argument INSERT-VALUE indicates that recieved type signature should be inserted (but only if nothing happened since function invocation). -\(fn &optional INSERT-VALUE)" t nil) - +(fn &optional INSERT-VALUE)" t) (autoload 'haskell-process-unignore "haskell-commands" "\ Unignore any ignored files. Do not ignore files that were specified as being ignored by the -inferior GHCi process." t nil) - +inferior GHCi process." t) (autoload 'haskell-session-change-target "haskell-commands" "\ Set the build TARGET for cabal REPL. -\(fn TARGET)" t nil) - +(fn TARGET)" t) (autoload 'haskell-mode-stylish-buffer "haskell-commands" "\ Apply stylish-haskell to the current buffer. Use `haskell-mode-stylish-haskell-path' to know where to find stylish-haskell executable. This function tries to preserve cursor position and markers by using -`haskell-mode-buffer-apply-command'." t nil) - +`haskell-mode-buffer-apply-command'." t) (autoload 'haskell-mode-find-uses "haskell-commands" "\ -Find use cases of the identifier at point and highlight them all." t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-commands" '("haskell-"))) +Find use cases of the identifier at point and highlight them all." t) +(register-definition-prefixes "haskell-commands" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-compile" "haskell-compile.el" (0 0 -;;;;;; 0 0)) ;;; Generated autoloads from haskell-compile.el -(let ((loads (get 'haskell-compile 'custom-loads))) (if (member '"haskell-compile" loads) nil (put 'haskell-compile 'custom-loads (cons '"haskell-compile" loads)))) - (autoload 'haskell-compile "haskell-compile" "\ Run a compile command for the current Haskell buffer. Obeys haskell-compiler-type to choose the appropriate build command. @@ -357,89 +303,43 @@ command is used, falling back to base directory for build tools, or the current buffer for `haskell-compile-command'. -\(fn &optional EDIT-COMMAND)" t nil) +(fn &optional EDIT-COMMAND)" t) +(register-definition-prefixes "haskell-compile" '("haskell-")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-compile" '("haskell-"))) - -;;;*** -;;;### (autoloads nil "haskell-complete-module" "haskell-complete-module.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-complete-module.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-complete-module" '("haskell-complete-module"))) +(register-definition-prefixes "haskell-complete-module" '("haskell-complete-module")) -;;;*** -;;;### (autoloads nil "haskell-completions" "haskell-completions.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-completions.el -(let ((loads (get 'haskell-completions 'custom-loads))) (if (member '"haskell-completions" loads) nil (put 'haskell-completions 'custom-loads (cons '"haskell-completions" loads)))) - (autoload 'haskell-completions-completion-at-point "haskell-completions" "\ Provide completion list for thing at point. This function is used in non-interactive `haskell-mode'. It provides completions for haskell keywords, language pragmas, -GHC's options, and language extensions, but not identifiers." nil nil) +GHC's options, and language extensions, but not identifiers.") +(register-definition-prefixes "haskell-completions" '("haskell-completions-")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-completions" '("haskell-completions-"))) - -;;;*** -;;;### (autoloads nil "haskell-customize" "haskell-customize.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-customize.el -(let ((loads (get 'haskell 'custom-loads))) (if (member '"haskell-customize" loads) nil (put 'haskell 'custom-loads (cons '"haskell-customize" loads)))) - -(let ((loads (get 'haskell-interactive 'custom-loads))) (if (member '"haskell-customize" loads) nil (put 'haskell-interactive 'custom-loads (cons '"haskell-customize" loads)))) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-customize" '("haskell-" "inferior-haskell-root-dir"))) +(register-definition-prefixes "haskell-customize" '("haskell-" "inferior-haskell-root-dir")) -;;;*** -;;;### (autoloads nil "haskell-debug" "haskell-debug.el" (0 0 0 0)) ;;; Generated autoloads from haskell-debug.el -(let ((loads (get 'haskell-debug 'custom-loads))) (if (member '"haskell-debug" loads) nil (put 'haskell-debug 'custom-loads (cons '"haskell-debug" loads)))) - -(defface haskell-debug-warning-face '((t :inherit 'compilation-warning)) "\ -Face for warnings." :group 'haskell-debug) - -(defface haskell-debug-trace-number-face '((t :weight bold :background "#f5f5f5")) "\ -Face for numbers in backtrace." :group 'haskell-debug) - -(defface haskell-debug-newline-face '((t :weight bold :background "#f0f0f0")) "\ -Face for newlines in trace steps." :group 'haskell-debug) - -(defface haskell-debug-keybinding-face '((t :inherit 'font-lock-type-face :weight bold)) "\ -Face for keybindings." :group 'haskell-debug) - -(defface haskell-debug-heading-face '((t :inherit 'font-lock-keyword-face)) "\ -Face for headings." :group 'haskell-debug) - -(defface haskell-debug-muted-face '((t :foreground "#999")) "\ -Face for muteds." :group 'haskell-debug) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-debug" '("haskell-debug"))) +(register-definition-prefixes "haskell-debug" '("haskell-debug")) -;;;*** -;;;### (autoloads nil "haskell-decl-scan" "haskell-decl-scan.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-decl-scan.el -(let ((loads (get 'haskell-decl-scan 'custom-loads))) (if (member '"haskell-decl-scan" loads) nil (put 'haskell-decl-scan 'custom-loads (cons '"haskell-decl-scan" loads)))) - (autoload 'haskell-ds-create-imenu-index "haskell-decl-scan" "\ Function for finding `imenu' declarations in Haskell mode. Finds all declarations (classes, variables, imports, instances and -datatypes) in a Haskell file for the `imenu' package." nil nil) - +datatypes) in a Haskell file for the `imenu' package.") (autoload 'turn-on-haskell-decl-scan "haskell-decl-scan" "\ -Unconditionally activate `haskell-decl-scan-mode'." t nil) - +Unconditionally activate `haskell-decl-scan-mode'." t) (autoload 'haskell-decl-scan-mode "haskell-decl-scan" "\ Toggle Haskell declaration scanning minor mode on or off. With a prefix argument ARG, enable minor mode if ARG is @@ -476,31 +376,72 @@ assumed, respectively. Invokes `haskell-decl-scan-mode-hook' on activation. -\(fn &optional ARG)" t nil) +(fn &optional ARG)" t) +(register-definition-prefixes "haskell-decl-scan" '("haskell-d" "literate-haskell-ds-")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-decl-scan" '("haskell-d" "literate-haskell-ds-"))) - -;;;*** -;;;### (autoloads nil "haskell-doc" "haskell-doc.el" (0 0 0 0)) ;;; Generated autoloads from haskell-doc.el -(let ((loads (get 'haskell-doc 'custom-loads))) (if (member '"haskell-doc" loads) nil (put 'haskell-doc 'custom-loads (cons '"haskell-doc" loads)))) - (autoload 'haskell-doc-mode "haskell-doc" "\ Enter `haskell-doc-mode' for showing fct types in the echo area. -See variable docstring. -\(fn &optional ARG)" t nil) +When enabled, shows the type of the function near point or a related comment. -(defalias 'turn-on-haskell-doc-mode 'haskell-doc-mode) +If the identifier near point is a Haskell keyword and the variable +`haskell-doc-show-reserved' is non-nil show a one line summary +of the syntax. + +If the identifier near point is a Prelude or one of the standard library +functions and `haskell-doc-show-prelude' is non-nil show its type. + +If the identifier near point is local (i.e. defined in this module) check +the `imenu' list of functions for the type. This obviously requires that +your language mode uses `imenu'. + +If the identifier near point is global (i.e. defined in an imported module) +and the variable `haskell-doc-show-global-types' is non-nil show the type of its +function. + +If the identifier near point is a standard strategy or a function, type related +related to strategies and `haskell-doc-show-strategy' is non-nil show the type +of the function. Strategies are special to the parallel execution of Haskell. +If you're not interested in that just turn it off. +If the identifier near point is a user defined function that occurs as key +in the alist `haskell-doc-user-defined-ids' and the variable +`haskell-doc-show-user-defined' is non-nil show the type of the function. + +This variable is buffer-local. + +This is a minor mode. If called interactively, toggle the +`Haskell-Doc mode' mode. If the prefix argument is positive, +enable the mode, and if it is zero or negative, disable the mode. + +If called from Lisp, toggle the mode if ARG is `toggle'. Enable +the mode if ARG is nil, omitted, or is a positive number. +Disable the mode if ARG is a negative number. + +To check whether the minor mode is enabled in the current buffer, +evaluate `haskell-doc-mode'. + +The mode's hook is called both when the mode is enabled and when +it is disabled. + +(fn &optional ARG)" t) +(defalias 'turn-on-haskell-doc-mode 'haskell-doc-mode) (defalias 'turn-on-haskell-doc 'haskell-doc-mode) +(autoload 'haskell-doc-eldoc-function "haskell-doc" "\ +Function for use by eldoc. + +By accepting CALLBACK, it is designed to be used in +`eldoc-documentation-functions' in Emacs >= 28.1, but by making +that argument optional it can also be set directly as +`eldoc-documentation-function' in older Emacsen. +(fn &optional CALLBACK)") (autoload 'haskell-doc-current-info "haskell-doc" "\ Return the info about symbol at point. -Meant for `eldoc-documentation-function'." nil nil) - +Meant for `eldoc-documentation-function'.") (autoload 'haskell-doc-show-type "haskell-doc" "\ Show the type of the function near point or given symbol SYM. For the function under point, show the type in the echo area. @@ -508,54 +449,20 @@ This information is extracted from the `haskell-doc-prelude-types' alist of prelude functions and their types, or from the local functions in the current buffer. -\(fn &optional SYM)" t nil) +(fn &optional SYM)" t) +(register-definition-prefixes "haskell-doc" '("haskell-" "inferior-haskell-" "turn-off-haskell-doc")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-doc" '("haskell-" "inferior-haskell-" "turn-off-haskell-doc"))) - -;;;*** -;;;### (autoloads nil "haskell-font-lock" "haskell-font-lock.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-font-lock.el -(let ((loads (get 'haskell-appearance 'custom-loads))) (if (member '"haskell-font-lock" loads) nil (put 'haskell-appearance 'custom-loads (cons '"haskell-font-lock" loads)))) - -(defface haskell-keyword-face '((t :inherit font-lock-keyword-face)) "\ -Face used to highlight Haskell keywords." :group 'haskell-appearance) +(register-definition-prefixes "haskell-font-lock" '("haskell-")) -(defface haskell-type-face '((t :inherit font-lock-type-face)) "\ -Face used to highlight Haskell types" :group 'haskell-appearance) - -(defface haskell-constructor-face '((t :inherit font-lock-type-face)) "\ -Face used to highlight Haskell constructors." :group 'haskell-appearance) - -(defface haskell-operator-face '((t :inherit font-lock-variable-name-face)) "\ -Face used to highlight Haskell operators." :group 'haskell-appearance) - -(defface haskell-pragma-face '((t :inherit font-lock-preprocessor-face)) "\ -Face used to highlight Haskell pragmas ({-# ... #-})." :group 'haskell-appearance) - -(defface haskell-liquid-haskell-annotation-face '((t :inherit haskell-pragma-face)) "\ -Face used to highlight LiquidHaskell annotations ({-@ ... @-})." :group 'haskell-appearance) - -(defface haskell-literate-comment-face '((t :inherit font-lock-doc-face)) "\ -Face with which to fontify literate comments. -Inherit from `default' to avoid fontification of them." :group 'haskell-appearance) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-font-lock" '("haskell-"))) - -;;;*** -;;;### (autoloads nil "haskell-ghc-support" "haskell-ghc-support.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-ghc-support.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-ghc-support" '("haskell-"))) +(register-definition-prefixes "haskell-ghc-support" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-hoogle" "haskell-hoogle.el" (0 0 0 -;;;;;; 0)) ;;; Generated autoloads from haskell-hoogle.el (autoload 'haskell-hoogle "haskell-hoogle" "\ @@ -564,31 +471,21 @@ Do a Hoogle search for QUERY. If prefix argument INFO is given, then `haskell-hoogle-command' is asked to show extra info for the items matching QUERY.. -\(fn QUERY &optional INFO)" t nil) - +(fn QUERY &optional INFO)" t) (defalias 'hoogle 'haskell-hoogle) - (autoload 'haskell-hoogle-lookup-from-website "haskell-hoogle" "\ Lookup QUERY at `haskell-hoogle-url'. -\(fn QUERY)" t nil) - +(fn QUERY)" t) (autoload 'haskell-hoogle-lookup-from-local "haskell-hoogle" "\ -Lookup QUERY on local hoogle server." t nil) +Lookup QUERY on local hoogle server." t) +(register-definition-prefixes "haskell-hoogle" '("haskell-hoogle-" "hoogle-prompt")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-hoogle" '("haskell-hoogle-" "hoogle-prompt"))) - -;;;*** -;;;### (autoloads nil "haskell-indent" "haskell-indent.el" (0 0 0 -;;;;;; 0)) ;;; Generated autoloads from haskell-indent.el -(let ((loads (get 'haskell-indent 'custom-loads))) (if (member '"haskell-indent" loads) nil (put 'haskell-indent 'custom-loads (cons '"haskell-indent" loads)))) - (autoload 'turn-on-haskell-indent "haskell-indent" "\ -Turn on ``intelligent'' Haskell indentation mode." nil nil) - +Turn on ``intelligent'' Haskell indentation mode.") (autoload 'haskell-indent-mode "haskell-indent" "\ ``Intelligent'' Haskell indentation mode. This deals with the layout rule of Haskell. @@ -616,103 +513,68 @@ If `ARG' is falsey, toggle `haskell-indent-mode'. Else sets Invokes `haskell-indent-hook' if not nil. -\(fn &optional ARG)" t nil) +(fn &optional ARG)" t) +(register-definition-prefixes "haskell-indent" '("haskell-indent-" "turn-off-haskell-indent")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-indent" '("haskell-indent-" "turn-off-haskell-indent"))) - -;;;*** -;;;### (autoloads nil "haskell-indentation" "haskell-indentation.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-indentation.el -(let ((loads (get 'haskell-indentation 'custom-loads))) (if (member '"haskell-indentation" loads) nil (put 'haskell-indentation 'custom-loads (cons '"haskell-indentation" loads)))) - (autoload 'haskell-indentation-mode "haskell-indentation" "\ Haskell indentation mode that deals with the layout rule. + It rebinds RET, DEL and BACKSPACE, so that indentations can be set and deleted as if they were real tabs. -If called interactively, enable Haskell-Indentation mode if ARG -is positive, and disable it if ARG is zero or negative. If -called from Lisp, also enable the mode if ARG is omitted or nil, -and toggle it if ARG is `toggle'; disable the mode otherwise. +This is a minor mode. If called interactively, toggle the +`Haskell-Indentation mode' mode. If the prefix argument is +positive, enable the mode, and if it is zero or negative, disable +the mode. -\(fn &optional ARG)" t nil) +If called from Lisp, toggle the mode if ARG is `toggle'. Enable +the mode if ARG is nil, omitted, or is a positive number. +Disable the mode if ARG is a negative number. -(autoload 'turn-on-haskell-indentation "haskell-indentation" "\ -Turn on the haskell-indentation minor mode." t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-indentation" '("haskell-indentation-"))) - -;;;*** - -;;;### (autoloads nil "haskell-interactive-mode" "haskell-interactive-mode.el" -;;;;;; (0 0 0 0)) -;;; Generated autoloads from haskell-interactive-mode.el +To check whether the minor mode is enabled in the current buffer, +evaluate `haskell-indentation-mode'. -(defface haskell-interactive-face-prompt '((t :inherit font-lock-function-name-face)) "\ -Face for the prompt." :group 'haskell-interactive) +The mode's hook is called both when the mode is enabled and when +it is disabled. -(defface haskell-interactive-face-prompt-cont '((t :inherit font-lock-keyword-face)) "\ -Face for GHCi's prompt-cont in multi-line mode." :group 'haskell-interactive) +\\{haskell-indentation-mode-map} -(define-obsolete-face-alias 'haskell-interactive-face-prompt2 'haskell-interactive-face-prompt-cont "16.2") - -(defface haskell-interactive-face-compile-error '((t :inherit compilation-error)) "\ -Face for compile errors." :group 'haskell-interactive) - -(defface haskell-interactive-face-compile-warning '((t :inherit compilation-warning)) "\ -Face for compiler warnings." :group 'haskell-interactive) - -(defface haskell-interactive-face-result '((t :inherit font-lock-string-face)) "\ -Face for the result." :group 'haskell-interactive) +(fn &optional ARG)" t) +(autoload 'turn-on-haskell-indentation "haskell-indentation" "\ +Turn on the haskell-indentation minor mode." t) +(register-definition-prefixes "haskell-indentation" '("haskell-indentation-")) -(defface haskell-interactive-face-garbage '((t :inherit font-lock-string-face)) "\ -Face for trailing garbage after a command has completed." :group 'haskell-interactive) + +;;; Generated autoloads from haskell-interactive-mode.el (autoload 'haskell-interactive-mode-reset-error "haskell-interactive-mode" "\ Reset the error cursor position. -\(fn SESSION)" t nil) - +(fn SESSION)" t) (autoload 'haskell-interactive-mode-echo "haskell-interactive-mode" "\ Echo a read only piece of text before the prompt. -\(fn SESSION MESSAGE &optional MODE)" nil nil) - +(fn SESSION MESSAGE &optional MODE)") (autoload 'haskell-process-show-repl-response "haskell-interactive-mode" "\ Send LINE to the GHCi process and echo the result in some fashion. Result will be printed in the minibuffer or presented using function `haskell-presentation-present', depending on variable `haskell-process-use-presentation-mode'. -\(fn LINE)" nil nil) +(fn LINE)") +(register-definition-prefixes "haskell-interactive-mode" '("haskell-")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-interactive-mode" '("haskell-"))) - -;;;*** -;;;### (autoloads nil "haskell-lexeme" "haskell-lexeme.el" (0 0 0 -;;;;;; 0)) ;;; Generated autoloads from haskell-lexeme.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-lexeme" '("haskell-lexeme-"))) +(register-definition-prefixes "haskell-lexeme" '("haskell-lexeme-")) -;;;*** -;;;### (autoloads nil "haskell-load" "haskell-load.el" (0 0 0 0)) ;;; Generated autoloads from haskell-load.el -(defface haskell-error-face '((((supports :underline (:style wave))) :underline (:style wave :color "#dc322f")) (t :inherit error)) "\ -Face used for marking error lines." :group 'haskell-mode) - -(defface haskell-warning-face '((((supports :underline (:style wave))) :underline (:style wave :color "#b58900")) (t :inherit warning)) "\ -Face used for marking warning lines." :group 'haskell-mode) - -(defface haskell-hole-face '((((supports :underline (:style wave))) :underline (:style wave :color "#6c71c4")) (t :inherit warning)) "\ -Face used for marking hole lines." :group 'haskell-mode) - (autoload 'haskell-process-reload-devel-main "haskell-load" "\ Reload the module `DevelMain' and then run `DevelMain.update'. @@ -720,34 +582,26 @@ This is for doing live update of the code of servers or GUI applications. Put your development version of the program in `DevelMain', and define `update' to auto-start the program on a new thread, and use the `foreign-store' package to access the -running context across :load/:reloads in GHCi." t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-load" '("haskell-"))) +running context across :load/:reloads in GHCi." t) +(register-definition-prefixes "haskell-load" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-menu" "haskell-menu.el" (0 0 0 0)) ;;; Generated autoloads from haskell-menu.el (autoload 'haskell-menu "haskell-menu" "\ -Launch the Haskell sessions menu." t nil) +Launch the Haskell sessions menu." t) +(register-definition-prefixes "haskell-menu" '("haskell-menu-")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-menu" '("haskell-menu-"))) - -;;;*** -;;;### (autoloads nil "haskell-mode" "haskell-mode.el" (0 0 0 0)) ;;; Generated autoloads from haskell-mode.el (autoload 'haskell-version "haskell-mode" "\ Show the `haskell-mode` version in the echo area. With prefix argument HERE, insert it at point. -\(fn &optional HERE)" t nil) - +(fn &optional HERE)" t) (autoload 'haskell-mode-view-news "haskell-mode" "\ -Display information on recent changes to haskell-mode." t nil) - +Display information on recent changes to haskell-mode." t) (autoload 'haskell-mode "haskell-mode" "\ Major mode for editing Haskell programs. @@ -782,25 +636,25 @@ Other modes: Scans top-level declarations, and places them in a menu. `haskell-doc-mode', Hans-Wolfgang Loidl - Echoes types of functions or syntax of keywords when the cursor is idle. + Sets up eldoc to echo types of functions or syntax of keywords + when the cursor is idle. To activate a minor-mode, simply run the interactive command. For example, `M-x haskell-doc-mode'. Run it again to disable it. -To enable a mode for every haskell-mode buffer, add a hook in +To enable a mode for every `haskell-mode' buffer, add a hook in your Emacs configuration. To do that you can customize `haskell-mode-hook' or add lines to your .emacs file. For example, to enable `interactive-haskell-mode', use the following: - (add-hook 'haskell-mode-hook 'interactive-haskell-mode) + (add-hook \\='haskell-mode-hook \\='interactive-haskell-mode) Minor modes that work well with `haskell-mode': - `smerge-mode': show and work with diff3 conflict markers used by git, svn and other version control systems. -\(fn)" t nil) - +(fn)" t) (autoload 'haskell-forward-sexp "haskell-mode" "\ Haskell specific version of `forward-sexp'. @@ -813,29 +667,19 @@ If unable to move over a sexp, signal `scan-error' with three arguments: a message, the start of the obstacle (a parenthesis or list marker of some kind), and end of the obstacle. -\(fn &optional ARG)" t nil) - +(fn &optional ARG)" t) (autoload 'haskell-literate-mode "haskell-mode" "\ As `haskell-mode' but for literate scripts. -\(fn)" t nil) - +(fn)" t) (define-obsolete-function-alias 'literate-haskell-mode 'haskell-literate-mode "2020-04") - (add-to-list 'auto-mode-alist '("\\.[gh]s\\'" . haskell-mode)) - (add-to-list 'auto-mode-alist '("\\.hsig\\'" . haskell-mode)) - (add-to-list 'auto-mode-alist '("\\.l[gh]s\\'" . haskell-literate-mode)) - (add-to-list 'auto-mode-alist '("\\.hsc\\'" . haskell-mode)) - (add-to-list 'interpreter-mode-alist '("runghc" . haskell-mode)) - (add-to-list 'interpreter-mode-alist '("runhaskell" . haskell-mode)) - (add-to-list 'completion-ignored-extensions ".hi") - (autoload 'haskell-mode-generate-tags "haskell-mode" "\ Generate tags using Hasktags. This is synchronous function. @@ -843,49 +687,40 @@ If optional AND-THEN-FIND-THIS-TAG argument is present it is used with function `xref-find-definitions' after new table was generated. -\(fn &optional AND-THEN-FIND-THIS-TAG)" t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-mode" '("haskell-"))) +(fn &optional AND-THEN-FIND-THIS-TAG)" t) +(register-definition-prefixes "haskell-mode" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-modules" "haskell-modules.el" (0 0 -;;;;;; 0 0)) ;;; Generated autoloads from haskell-modules.el (autoload 'haskell-session-installed-modules "haskell-modules" "\ Get the modules installed in the current package set. -\(fn SESSION &optional DONTCREATE)" nil nil) - +(fn SESSION &optional DONTCREATE)") (autoload 'haskell-session-all-modules "haskell-modules" "\ Get all modules -- installed or in the current project. If DONTCREATE is non-nil don't create a new session. -\(fn SESSION &optional DONTCREATE)" nil nil) - +(fn SESSION &optional DONTCREATE)") (autoload 'haskell-session-project-modules "haskell-modules" "\ Get the modules of the current project. If DONTCREATE is non-nil don't create a new session. -\(fn SESSION &optional DONTCREATE)" nil nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-modules" '("haskell-"))) +(fn SESSION &optional DONTCREATE)") +(register-definition-prefixes "haskell-modules" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-move-nested" "haskell-move-nested.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-move-nested.el (autoload 'haskell-move-nested "haskell-move-nested" "\ -Shift the nested off-side-rule block adjacent to point by COLS columns to the right. +Shift the nested off-side-rule block adjacent to point. +It shift the nested off-side-rule block adjacent to point by COLS +columns to the right. In Transient Mark mode, if the mark is active, operate on the contents of the region instead. -\(fn COLS)" nil nil) - +(fn COLS)") (autoload 'haskell-move-nested-right "haskell-move-nested" "\ Increase indentation of the following off-side-rule block adjacent to point. @@ -894,8 +729,7 @@ Use a numeric prefix argument to indicate amount of indentation to apply. In Transient Mark mode, if the mark is active, operate on the contents of the region instead. -\(fn COLS)" t nil) - +(fn COLS)" t) (autoload 'haskell-move-nested-left "haskell-move-nested" "\ Decrease indentation of the following off-side-rule block adjacent to point. @@ -904,81 +738,55 @@ Use a numeric prefix argument to indicate amount of indentation to apply. In Transient Mark mode, if the mark is active, operate on the contents of the region instead. -\(fn COLS)" t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-move-nested" '("haskell-"))) +(fn COLS)" t) +(register-definition-prefixes "haskell-move-nested" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-navigate-imports" "haskell-navigate-imports.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-navigate-imports.el (autoload 'haskell-navigate-imports "haskell-navigate-imports" "\ Cycle the Haskell import lines or return to point (with prefix arg). -\(fn &optional RETURN)" t nil) - +(fn &optional RETURN)" t) (autoload 'haskell-navigate-imports-go "haskell-navigate-imports" "\ -Go to the first line of a list of consecutive import lines. Cycles." t nil) - +Go to the first line of a list of consecutive import lines. Cycles." t) (autoload 'haskell-navigate-imports-return "haskell-navigate-imports" "\ Return to the non-import point we were at before going to the module list. - If we were originally at an import list, we can just cycle through easily." t nil) + If we were originally at an import list, we can just cycle through easily." t) +(register-definition-prefixes "haskell-navigate-imports" '("haskell-navigate-imports-")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-navigate-imports" '("haskell-navigate-imports-"))) - -;;;*** -;;;### (autoloads nil "haskell-presentation-mode" "haskell-presentation-mode.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-presentation-mode.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-presentation-mode" '("haskell-presentation-"))) +(register-definition-prefixes "haskell-presentation-mode" '("haskell-presentation-")) -;;;*** -;;;### (autoloads nil "haskell-process" "haskell-process.el" (0 0 -;;;;;; 0 0)) ;;; Generated autoloads from haskell-process.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-process" '("haskell-"))) +(register-definition-prefixes "haskell-process" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-repl" "haskell-repl.el" (0 0 0 0)) ;;; Generated autoloads from haskell-repl.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-repl" '("haskell-interactive-"))) +(register-definition-prefixes "haskell-repl" '("haskell-interactive-")) -;;;*** -;;;### (autoloads nil "haskell-sandbox" "haskell-sandbox.el" (0 0 -;;;;;; 0 0)) ;;; Generated autoloads from haskell-sandbox.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-sandbox" '("haskell-sandbox-"))) +(register-definition-prefixes "haskell-sandbox" '("haskell-sandbox-")) -;;;*** -;;;### (autoloads nil "haskell-session" "haskell-session.el" (0 0 -;;;;;; 0 0)) ;;; Generated autoloads from haskell-session.el (autoload 'haskell-session-maybe "haskell-session" "\ -Maybe get the Haskell session, return nil if there isn't one." nil nil) - +Maybe get the Haskell session, return nil if there isn't one.") (autoload 'haskell-session-process "haskell-session" "\ Get the session process. -\(fn S)" nil nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-session" '("haskell-session"))) +(fn S)") +(register-definition-prefixes "haskell-session" '("haskell-session")) -;;;*** -;;;### (autoloads nil "haskell-sort-imports" "haskell-sort-imports.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-sort-imports.el (autoload 'haskell-sort-imports "haskell-sort-imports" "\ @@ -986,93 +794,78 @@ Sort the import list at point. It sorts the current group i.e. an import list separated by blank lines on either side. If the region is active, it will restrict the imports to sort -within that region." t nil) +within that region." t) +(register-definition-prefixes "haskell-sort-imports" '("haskell-sort-imports-")) -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-sort-imports" '("haskell-sort-imports-"))) - -;;;*** -;;;### (autoloads nil "haskell-string" "haskell-string.el" (0 0 0 -;;;;;; 0)) ;;; Generated autoloads from haskell-string.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-string" '("haskell-"))) +(register-definition-prefixes "haskell-string" '("haskell-")) -;;;*** -;;;### (autoloads nil "haskell-svg" "haskell-svg.el" (0 0 0 0)) ;;; Generated autoloads from haskell-svg.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-svg" '("haskell-svg-"))) +(register-definition-prefixes "haskell-svg" '("haskell-svg-")) -;;;*** -;;;### (autoloads nil "haskell-unicode-input-method" "haskell-unicode-input-method.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from haskell-unicode-input-method.el (autoload 'haskell-unicode-input-method-enable "haskell-unicode-input-method" "\ -Set input method `haskell-unicode'." t nil) - +Set input method `haskell-unicode'." t) (define-obsolete-function-alias 'turn-on-haskell-unicode-input-method 'haskell-unicode-input-method-enable "2020-04") -;;;*** -;;;### (autoloads nil "haskell-utils" "haskell-utils.el" (0 0 0 0)) ;;; Generated autoloads from haskell-utils.el -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "haskell-utils" '("haskell-"))) +(register-definition-prefixes "haskell-utils" '("haskell-")) -;;;*** -;;;### (autoloads nil "highlight-uses-mode" "highlight-uses-mode.el" -;;;;;; (0 0 0 0)) ;;; Generated autoloads from highlight-uses-mode.el (autoload 'highlight-uses-mode "highlight-uses-mode" "\ Minor mode for highlighting and jumping between uses. -If called interactively, enable Highlight-Uses mode if ARG is -positive, and disable it if ARG is zero or negative. If called -from Lisp, also enable the mode if ARG is omitted or nil, and -toggle it if ARG is `toggle'; disable the mode otherwise. +This is a minor mode. If called interactively, toggle the +`Highlight-Uses mode' mode. If the prefix argument is positive, +enable the mode, and if it is zero or negative, disable the mode. -\(fn &optional ARG)" t nil) +If called from Lisp, toggle the mode if ARG is `toggle'. Enable +the mode if ARG is nil, omitted, or is a positive number. +Disable the mode if ARG is a negative number. -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "highlight-uses-mode" '("highlight-uses-mode-"))) +To check whether the minor mode is enabled in the current buffer, +evaluate `highlight-uses-mode'. + +The mode's hook is called both when the mode is enabled and when +it is disabled. + +\\{highlight-uses-mode-map} + +(fn &optional ARG)" t) +(register-definition-prefixes "highlight-uses-mode" '("highlight-uses-mode-")) -;;;*** -;;;### (autoloads nil "inf-haskell" "inf-haskell.el" (0 0 0 0)) ;;; Generated autoloads from inf-haskell.el -(let ((loads (get 'inferior-haskell 'custom-loads))) (if (member '"inf-haskell" loads) nil (put 'inferior-haskell 'custom-loads (cons '"inf-haskell" loads)))) - (autoload 'run-haskell "inf-haskell" "\ -Show the inferior-haskell buffer. Start the process if needed." t nil) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "inf-haskell" '("haskell-" "inf"))) +Show the inferior-haskell buffer. Start the process if needed." t) +(register-definition-prefixes "inf-haskell" '("haskell-" "inf")) -;;;*** -;;;### (autoloads nil "w3m-haddock" "w3m-haddock.el" (0 0 0 0)) ;;; Generated autoloads from w3m-haddock.el -(defface w3m-haddock-heading-face '((((class color)) :inherit highlight)) "\ -Face for quarantines." :group 'haskell) - -(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "w3m-haddock" '("haskell-w3m-" "w3m-haddock-"))) - -;;;*** +(register-definition-prefixes "w3m-haddock" '("haskell-w3m-" "w3m-haddock-")) -;;;### (autoloads nil nil ("haskell-mode-pkg.el") (0 0 0 0)) +;;; End of scraped data + +(provide 'haskell-mode-autoloads) -;;;*** - ;; Local Variables: ;; version-control: never ;; no-byte-compile: t ;; no-update-autoloads: t -;; coding: utf-8 +;; no-native-compile: t +;; coding: utf-8-emacs-unix ;; End: + ;;; haskell-mode-autoloads.el ends here diff --git a/elpa/haskell-mode-20231115.1812/haskell-mode-pkg.el b/elpa/haskell-mode-20231115.1812/haskell-mode-pkg.el new file mode 100644 index 00000000..3312deeb --- /dev/null +++ b/elpa/haskell-mode-20231115.1812/haskell-mode-pkg.el @@ -0,0 +1,8 @@ +(define-package "haskell-mode" "20231115.1812" "A Haskell editing mode" + '((emacs "25.1")) + :commit "8d0f44bfe2a9ab6b0969c9bafb75089f315ff5ae" :keywords + '("haskell" "cabal" "ghc" "repl" "languages") + :url "https://github.com/haskell/haskell-mode") +;; Local Variables: +;; no-byte-compile: t +;; End: diff --git a/elpa/haskell-mode-20210908.1543/haskell-mode.el b/elpa/haskell-mode-20231115.1812/haskell-mode.el similarity index 97% rename from elpa/haskell-mode-20210908.1543/haskell-mode.el rename to elpa/haskell-mode-20231115.1812/haskell-mode.el index c20e66ab..f8e7c3fb 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-mode.el +++ b/elpa/haskell-mode-20231115.1812/haskell-mode.el @@ -5,13 +5,9 @@ ;; Copyright © 1992, 1997-1998 Simon Marlow, Graeme E Moss, and Tommy Thorn -;; Author: 1992 Simon Marlow -;; 1997-1998 Graeme E Moss and -;; Tommy Thorn , -;; 2001-2002 Reuben Thomas (>=v1.4) -;; 2003 Dave Love -;; 2016 Arthur Fayzrakhmanov -;; Keywords: faces files Haskell +;; Version: 17.5 +;; Package-Requires: ((emacs "25.1")) +;; Keywords: haskell cabal ghc repl languages ;; URL: https://github.com/haskell/haskell-mode ;; This file is not part of GNU Emacs. @@ -133,6 +129,7 @@ (require 'compile) (require 'etags) (require 'flymake) +(require 'flymake-proc nil 'noerror) (require 'outline) (require 'cl-lib) (require 'haskell-ghc-support) @@ -228,11 +225,8 @@ be set to the preferred literate style." "---" ["Load tidy core" ghc-core-create-core] "---" - ,(if (default-boundp 'eldoc-documentation-function) - ["Doc mode" eldoc-mode - :style toggle :selected (bound-and-true-p eldoc-mode)] - ["Doc mode" haskell-doc-mode - :style toggle :selected (and (boundp 'haskell-doc-mode) haskell-doc-mode)]) + ["Doc mode" haskell-doc-mode + :style toggle :selected (and (boundp 'haskell-doc-mode) haskell-doc-mode)] ["Customize" (customize-group 'haskell)] )) @@ -531,7 +525,7 @@ be set to the preferred literate style." (when (nth 4 ppss) ;; go to the end of a comment, there is nothing to see inside ;; a comment so we might as well just skip over it - ;; immediatelly + ;; immediately (setq ppss (parse-partial-sexp (point) (point-max) nil nil ppss 'syntax-table))) (when (nth 8 ppss) @@ -733,8 +727,6 @@ Prefix ARG is handled as per `delete-indentation'." (let ((fill-prefix (or fill-prefix (if (eq haskell-literate 'bird) ">")))) (delete-indentation arg))) -(defvar eldoc-print-current-symbol-info-function) - (defvar electric-pair-inhibit-predicate) (declare-function electric-pair-default-inhibit "elec-pair") (defun haskell-mode--inhibit-bracket-inside-comment-or-default (ch) @@ -743,6 +735,26 @@ Prefix ARG is handled as per `delete-indentation'." (funcall #'electric-pair-default-inhibit ch))) ;; The main mode functions +(defcustom haskell-mode-hook '(haskell-indentation-mode interactive-haskell-mode) + "List of functions to run after `haskell-mode' is enabled. + +Use to enable minor modes coming with `haskell-mode' or run an +arbitrary function. + +Note that `haskell-indentation-mode' and `haskell-indent-mode' should not be +run at the same time." + :group 'haskell + :type 'hook + :options '(capitalized-words-mode + flyspell-prog-mode + haskell-decl-scan-mode + haskell-indent-mode + haskell-indentation-mode + highlight-uses-mode + imenu-add-menubar-index + interactive-haskell-mode + turn-on-haskell-unicode-input-method)) + ;;;###autoload (define-derived-mode haskell-mode prog-mode "Haskell" "Major mode for editing Haskell programs. @@ -778,17 +790,18 @@ Other modes: Scans top-level declarations, and places them in a menu. `haskell-doc-mode', Hans-Wolfgang Loidl - Echoes types of functions or syntax of keywords when the cursor is idle. + Sets up eldoc to echo types of functions or syntax of keywords + when the cursor is idle. To activate a minor-mode, simply run the interactive command. For example, `M-x haskell-doc-mode'. Run it again to disable it. -To enable a mode for every haskell-mode buffer, add a hook in +To enable a mode for every `haskell-mode' buffer, add a hook in your Emacs configuration. To do that you can customize `haskell-mode-hook' or add lines to your .emacs file. For example, to enable `interactive-haskell-mode', use the following: - (add-hook 'haskell-mode-hook 'interactive-haskell-mode) + (add-hook \\='haskell-mode-hook \\='interactive-haskell-mode) Minor modes that work well with `haskell-mode': @@ -799,8 +812,8 @@ Minor modes that work well with `haskell-mode': (error "haskell-mode requires at least Emacs 25.1")) ;; paragraph-{start,separate} should treat comments as paragraphs as well. - (setq-local paragraph-start (concat " *{-\\| *-- |\\|" page-delimiter)) - (setq-local paragraph-separate (concat " *$\\| *\\({-\\|-}\\) *$\\|" page-delimiter)) + (setq-local paragraph-start (concat " *{-\\([^#]\\|$\\)\\| *-- |\\|" page-delimiter)) + (setq-local paragraph-separate (concat " *$\\| *\\({-\\([^#]\\|$\\)\\|\\([^#]\\|^\\)-}\\) *$\\|" page-delimiter)) (setq-local fill-paragraph-function 'haskell-fill-paragraph) ;; (setq-local adaptive-fill-function 'haskell-adaptive-fill) (setq-local comment-start "--") @@ -812,8 +825,6 @@ Minor modes that work well with `haskell-mode': (setq-local parse-sexp-ignore-comments nil) (setq-local syntax-propertize-function #'haskell-syntax-propertize) - ;; Set things up for eldoc-mode. - (setq-local eldoc-documentation-function 'haskell-doc-current-info) ;; Set things up for imenu. (setq-local imenu-create-index-function 'haskell-ds-create-imenu-index) ;; Set things up for font-lock. @@ -859,26 +870,6 @@ Minor modes that work well with `haskell-mode': (haskell-indentation-mode)) -(defcustom haskell-mode-hook '(haskell-indentation-mode interactive-haskell-mode) - "List of functions to run after `haskell-mode' is enabled. - -Use to enable minor modes coming with `haskell-mode' or run an -arbitrary function. - -Note that `haskell-indentation-mode' and `haskell-indent-mode' should not be -run at the same time." - :group 'haskell - :type 'hook - :options '(capitalized-words-mode - flyspell-prog-mode - haskell-decl-scan-mode - haskell-indent-mode - haskell-indentation-mode - highlight-uses-mode - imenu-add-menubar-index - interactive-haskell-mode - turn-on-haskell-unicode-input-method)) - (defun haskell-fill-paragraph (justify) (save-excursion ;; Fill paragraph should only work in comments. @@ -1142,7 +1133,8 @@ successful, nil otherwise." "2015-11-11") (defun haskell-mode-toggle-scc-at-point () - "If point is in an SCC annotation, kill the annotation. Otherwise, try to insert a new annotation." + "If point is in an SCC annotation, kill the annotation. +Otherwise, try to insert a new annotation." (interactive) (if (not (haskell-mode-try-kill-scc-at-point)) (if (not (haskell-mode-try-insert-scc-at-point)) @@ -1181,7 +1173,9 @@ Uses `haskell-guess-module-name-from-file-name'." (defvar haskell-auto-insert-module-format-string "-- | \n\nmodule %s where\n\n" - "Template string that will be inserted in new haskell buffers via `haskell-auto-insert-module-template'.") + "Template string for the `haskell-auto-insert-module-template' command. +It will be inserted in new haskell buffers via +`haskell-auto-insert-module-template'.") (defun haskell-auto-insert-module-template () "Insert a module template for the newly created buffer." diff --git a/elpa/haskell-mode-20210908.1543/haskell-mode.info b/elpa/haskell-mode-20231115.1812/haskell-mode.info similarity index 99% rename from elpa/haskell-mode-20210908.1543/haskell-mode.info rename to elpa/haskell-mode-20231115.1812/haskell-mode.info index 8f689609..dec4ebd9 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-mode.info +++ b/elpa/haskell-mode-20231115.1812/haskell-mode.info @@ -1,7 +1,7 @@ This is haskell-mode.info, produced by makeinfo version 6.7 from haskell-mode.texi. -This manual is for Haskell mode, version 17.2-git +This manual is for Haskell mode, version 17.5 Copyright © 2013-2017 Haskell Mode contributors. @@ -2428,32 +2428,32 @@ Variable index  Tag Table: -Node: Top683 -Node: Introduction2588 -Node: Installation4173 -Node: Editing Haskell Code6536 -Node: Syntax highlighting10296 -Node: Completion support12556 -Node: Unicode support14600 -Node: Indentation19272 -Node: External indentation22748 -Node: Autoformatting23477 -Node: Module templates24106 -Node: Declaration scanning24537 -Node: Compilation27825 -Node: Interactive Haskell32131 -Ref: printing mode51555 -Node: Editing Cabal files64319 -Node: Browsing Haddocks65066 -Node: Spell checking strings and comments67891 -Node: Aligning code68997 -Node: Rectangular commands70742 -Node: REPL72262 -Node: Collapsing Haskell code77011 -Node: Getting Help and Reporting Bugs79619 -Node: Concept index80663 -Node: Function index81921 -Node: Variable index82716 +Node: Top679 +Node: Introduction2584 +Node: Installation4169 +Node: Editing Haskell Code6532 +Node: Syntax highlighting10292 +Node: Completion support12552 +Node: Unicode support14596 +Node: Indentation19268 +Node: External indentation22744 +Node: Autoformatting23473 +Node: Module templates24102 +Node: Declaration scanning24533 +Node: Compilation27821 +Node: Interactive Haskell32127 +Ref: printing mode51551 +Node: Editing Cabal files64315 +Node: Browsing Haddocks65062 +Node: Spell checking strings and comments67887 +Node: Aligning code68993 +Node: Rectangular commands70738 +Node: REPL72258 +Node: Collapsing Haskell code77007 +Node: Getting Help and Reporting Bugs79615 +Node: Concept index80659 +Node: Function index81917 +Node: Variable index82712  End Tag Table diff --git a/elpa/haskell-mode-20210908.1543/haskell-modules.el b/elpa/haskell-mode-20231115.1812/haskell-modules.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-modules.el rename to elpa/haskell-mode-20231115.1812/haskell-modules.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-move-nested.el b/elpa/haskell-mode-20231115.1812/haskell-move-nested.el similarity index 96% rename from elpa/haskell-mode-20210908.1543/haskell-move-nested.el rename to elpa/haskell-mode-20231115.1812/haskell-move-nested.el index c4a7bd5a..ba0b67e5 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-move-nested.el +++ b/elpa/haskell-mode-20231115.1812/haskell-move-nested.el @@ -34,7 +34,9 @@ ;;;###autoload (defun haskell-move-nested (cols) - "Shift the nested off-side-rule block adjacent to point by COLS columns to the right. + "Shift the nested off-side-rule block adjacent to point. +It shift the nested off-side-rule block adjacent to point by COLS +columns to the right. In Transient Mark mode, if the mark is active, operate on the contents of the region instead. diff --git a/elpa/haskell-mode-20210908.1543/haskell-navigate-imports.el b/elpa/haskell-mode-20231115.1812/haskell-navigate-imports.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-navigate-imports.el rename to elpa/haskell-mode-20231115.1812/haskell-navigate-imports.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-presentation-mode.el b/elpa/haskell-mode-20231115.1812/haskell-presentation-mode.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-presentation-mode.el rename to elpa/haskell-mode-20231115.1812/haskell-presentation-mode.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-process.el b/elpa/haskell-mode-20231115.1812/haskell-process.el similarity index 99% rename from elpa/haskell-mode-20210908.1543/haskell-process.el rename to elpa/haskell-mode-20231115.1812/haskell-process.el index 2ca131f4..8a2ec940 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-process.el +++ b/elpa/haskell-mode-20231115.1812/haskell-process.el @@ -77,7 +77,7 @@ Do not actually start any process. HPTYPE is the result of calling `'haskell-process-type`' function." (let ((session-name (haskell-session-name session))) (cl-ecase hptype - ('ghci + (ghci (append (list (format "Starting inferior GHCi process %s ..." haskell-process-path-ghci) session-name @@ -86,7 +86,7 @@ HPTYPE is the result of calling `'haskell-process-type`' function." (list (append (haskell-process-path-to-list haskell-process-path-ghci) haskell-process-args-ghci))))) - ('cabal-repl + (cabal-repl (append (list (format "Starting inferior `cabal repl' process using %s ..." haskell-process-path-cabal) session-name @@ -99,7 +99,7 @@ HPTYPE is the result of calling `'haskell-process-type`' function." haskell-process-args-cabal-repl (let ((target (haskell-session-target session))) (if target (list target) nil))))))) - ('stack-ghci + (stack-ghci (append (list (format "Starting inferior stack GHCi process using %s" haskell-process-path-stack) session-name nil) @@ -205,7 +205,8 @@ HPTYPE is the result of calling `'haskell-process-type`' function." t)) (defun haskell-process-send-string (process string) - "Try to send a string to the process's process. Ask to restart if it's not running." + "Try to send a string to the process's process. +Ask to restart if it's not running." (let ((child (haskell-process-process process))) (if (equal 'run (process-status child)) (let ((out (concat string "\n"))) diff --git a/elpa/haskell-mode-20210908.1543/haskell-repl.el b/elpa/haskell-mode-20231115.1812/haskell-repl.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-repl.el rename to elpa/haskell-mode-20231115.1812/haskell-repl.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-sandbox.el b/elpa/haskell-mode-20231115.1812/haskell-sandbox.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-sandbox.el rename to elpa/haskell-mode-20231115.1812/haskell-sandbox.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-session.el b/elpa/haskell-mode-20231115.1812/haskell-session.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-session.el rename to elpa/haskell-mode-20231115.1812/haskell-session.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-sort-imports.el b/elpa/haskell-mode-20231115.1812/haskell-sort-imports.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-sort-imports.el rename to elpa/haskell-mode-20231115.1812/haskell-sort-imports.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-string.el b/elpa/haskell-mode-20231115.1812/haskell-string.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-string.el rename to elpa/haskell-mode-20231115.1812/haskell-string.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-svg.el b/elpa/haskell-mode-20231115.1812/haskell-svg.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-svg.el rename to elpa/haskell-mode-20231115.1812/haskell-svg.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-unicode-input-method.el b/elpa/haskell-mode-20231115.1812/haskell-unicode-input-method.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/haskell-unicode-input-method.el rename to elpa/haskell-mode-20231115.1812/haskell-unicode-input-method.el diff --git a/elpa/haskell-mode-20210908.1543/haskell-utils.el b/elpa/haskell-mode-20231115.1812/haskell-utils.el similarity index 97% rename from elpa/haskell-mode-20210908.1543/haskell-utils.el rename to elpa/haskell-mode-20231115.1812/haskell-utils.el index 1f1620e2..e28955f6 100644 --- a/elpa/haskell-mode-20210908.1543/haskell-utils.el +++ b/elpa/haskell-mode-20231115.1812/haskell-utils.el @@ -114,7 +114,7 @@ characters." (replace-regexp-in-string "\r?\n" "" s))) (defun haskell-utils-repl-response-error-status (response) - "Parse response REPL's RESPONSE for errors. + "Parse response REPL\\='s RESPONSE for errors. Returns one of the following symbols: + unknown-command @@ -122,16 +122,16 @@ Returns one of the following symbols: + interactive-error + no-error -*Warning*: this funciton covers only three kind of responses: +*Warning*: this function covers only three kind of responses: * \"unknown command …\" REPL missing requested command * \":3:5: …\" interactive REPL error -* \"Couldn't guess that module name. Does it exist?\" +* \"Couldn\\='t guess that module name. Does it exist?\" (:type-at and maybe some other commands error) * *all other reposnses* are treated as success reposneses and - 'no-error is returned." + \\='no-error is returned." (if response (let ((first-line (car (split-string response "\n" t)))) (cond diff --git a/elpa/haskell-mode-20210908.1543/haskell.el b/elpa/haskell-mode-20231115.1812/haskell.el similarity index 98% rename from elpa/haskell-mode-20210908.1543/haskell.el rename to elpa/haskell-mode-20231115.1812/haskell.el index a679b620..1b358051 100644 --- a/elpa/haskell-mode-20210908.1543/haskell.el +++ b/elpa/haskell-mode-20231115.1812/haskell.el @@ -446,9 +446,10 @@ Give optional NEXT-P parameter to override value of (list "build --ghc-options=-fforce-recomp")))))) (defun haskell-process-file-loadish (command reload-p module-buffer) - "Run a loading-ish COMMAND that wants to pick up type errors\ -and things like that. RELOAD-P indicates whether the notification -should say 'reloaded' or 'loaded'. MODULE-BUFFER may be used + "Run a loading-ish COMMAND. +For example, a COMMAND that wants to pick up type errors and things like that. +RELOAD-P indicates whether the notification +should say \\='reloaded\\=' or \\='loaded\\='. MODULE-BUFFER may be used for various things, but is optional." (let ((session (haskell-session))) (haskell-session-current-dir session) diff --git a/elpa/haskell-mode-20210908.1543/highlight-uses-mode.el b/elpa/haskell-mode-20231115.1812/highlight-uses-mode.el similarity index 100% rename from elpa/haskell-mode-20210908.1543/highlight-uses-mode.el rename to elpa/haskell-mode-20231115.1812/highlight-uses-mode.el diff --git a/elpa/haskell-mode-20210908.1543/inf-haskell.el b/elpa/haskell-mode-20231115.1812/inf-haskell.el similarity index 93% rename from elpa/haskell-mode-20210908.1543/inf-haskell.el rename to elpa/haskell-mode-20231115.1812/inf-haskell.el index e62b6ed8..6462db99 100644 --- a/elpa/haskell-mode-20210908.1543/inf-haskell.el +++ b/elpa/haskell-mode-20231115.1812/inf-haskell.el @@ -40,7 +40,6 @@ (require 'cl-lib) (require 'haskell-string) -;;;###autoload (defgroup inferior-haskell nil "Settings for REPL interaction via `inferior-haskell-mode'" :link '(custom-manual "(haskell-mode)inferior-haskell-mode") @@ -56,14 +55,14 @@ "Return the command with the arguments to start the repl based on the directory structure." (cl-ecase (haskell-process-type) - ('ghci (cond ((eq system-type 'cygwin) `("ghcii.sh" ,@haskell-process-args-ghci)) - (t (append - (if (listp haskell-process-path-ghci) - haskell-process-path-ghci - (list haskell-process-path-ghci)) - haskell-process-args-ghci)))) - ('cabal-repl `(,haskell-process-path-cabal "repl" ,@haskell-process-args-cabal-repl)) - ('stack-ghci `(,haskell-process-path-stack "ghci" ,@haskell-process-args-stack-ghci)))) + (ghci (cond ((eq system-type 'cygwin) `("ghcii.sh" ,@haskell-process-args-ghci)) + (t (append + (if (listp haskell-process-path-ghci) + haskell-process-path-ghci + (list haskell-process-path-ghci)) + haskell-process-args-ghci)))) + (cabal-repl `(,haskell-process-path-cabal "repl" ,@haskell-process-args-cabal-repl)) + (stack-ghci `(,haskell-process-path-stack "ghci" ,@haskell-process-args-stack-ghci)))) (defconst inferior-haskell-info-xref-re "-- Defined at \\(.+\\):\\([0-9]+\\):\\([0-9]+\\)\\(?:-\\([0-9]+\\)\\)?$") @@ -74,7 +73,8 @@ directory structure." (defvar inferior-haskell-multiline-prompt-re "^\\*?[[:upper:]][\\._[:alnum:]]*\\(?: \\*?[[:upper:]][\\._[:alnum:]]*\\)*| " - "Regular expression for matching multiline prompt (the one inside :{ ... :} blocks).") + "Regular expression for matching multiline prompt. +the one inside :{ ... :} blocks.") (defconst inferior-haskell-error-regexp-alist `(;; Format of error messages used by GHCi. diff --git a/elpa/haskell-mode-20210908.1543/logo.svg b/elpa/haskell-mode-20231115.1812/logo.svg similarity index 100% rename from elpa/haskell-mode-20210908.1543/logo.svg rename to elpa/haskell-mode-20231115.1812/logo.svg diff --git a/elpa/haskell-mode-20210908.1543/w3m-haddock.el b/elpa/haskell-mode-20231115.1812/w3m-haddock.el similarity index 96% rename from elpa/haskell-mode-20210908.1543/w3m-haddock.el rename to elpa/haskell-mode-20231115.1812/w3m-haddock.el index 141cbf49..0f6a9e11 100644 --- a/elpa/haskell-mode-20210908.1543/w3m-haddock.el +++ b/elpa/haskell-mode-20231115.1812/w3m-haddock.el @@ -35,7 +35,6 @@ (add-hook 'w3m-display-hook 'w3m-haddock-display) -;;;###autoload (defface w3m-haddock-heading-face '((((class color)) :inherit highlight)) "Face for quarantines." @@ -43,13 +42,15 @@ (defcustom haskell-w3m-haddock-dirs '("~/.cabal/share/doc/") - "The path to your cabal documentation dir. It should contain -directories of package-name-x.x. + "The path to your cabal documentation dir. +It should contain directories of package-name-x.x. You can rebind this if you're using hsenv by adding it to your .dir-locals.el in your project root. E.g. - ((haskell-mode . ((haskell-w3m-haddock-dirs . (\"/home/chris/Projects/foobar/.hsenv/cabal/share/doc\"))))) + ((haskell-mode . + ((haskell-w3m-haddock-dirs . + (\"/home/chris/Projects/foobar/.hsenv/cabal/share/doc\"))))) " :group 'haskell