better loading of symbols.
symbols of modules are loaded when a Haskell file is opened on Emacs. idle timer is still effective. M-C-e is obsoleted. M-C-m loads symbols of all un-loaded modules.
This commit is contained in:
parent
cfa7466eef
commit
387bf83f37
@ -162,6 +162,13 @@
|
|||||||
;;; Loading keywords
|
;;; Loading keywords
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
|
(add-hook 'find-file-hook 'ghc-load-module-buffer)
|
||||||
|
|
||||||
|
(defun ghc-load-module-buffer ()
|
||||||
|
(interactive)
|
||||||
|
(when (eq major-mode 'haskell-mode)
|
||||||
|
(mapc 'ghc-load-module (ghc-gather-import-modules-buffer))))
|
||||||
|
|
||||||
(defun ghc-load-module (mod)
|
(defun ghc-load-module (mod)
|
||||||
(when (and (member mod ghc-module-names)
|
(when (and (member mod ghc-module-names)
|
||||||
(not (member mod ghc-loaded-module)))
|
(not (member mod ghc-loaded-module)))
|
||||||
@ -176,11 +183,6 @@
|
|||||||
(uniq-sorted (sort (ghc-uniq-lol keywords) 'string<)))
|
(uniq-sorted (sort (ghc-uniq-lol keywords) 'string<)))
|
||||||
(setq ghc-merged-keyword uniq-sorted)))
|
(setq ghc-merged-keyword uniq-sorted)))
|
||||||
|
|
||||||
(defun ghc-import-module ()
|
|
||||||
(interactive)
|
|
||||||
(ghc-load-module (ghc-read-module-name (ghc-extract-module)))
|
|
||||||
(ghc-merge-keywords))
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;;
|
;;;
|
||||||
;;; Background Idle Timer
|
;;; Background Idle Timer
|
||||||
|
@ -42,8 +42,8 @@
|
|||||||
(interactive)
|
(interactive)
|
||||||
(save-excursion
|
(save-excursion
|
||||||
(beginning-of-line)
|
(beginning-of-line)
|
||||||
(if (looking-at "^import +\\(qualified +\\)?\\([^ (\n]+\\)")
|
(if (looking-at "^\\(import\\|module\\) +\\(qualified +\\)?\\([^ (\n]+\\)")
|
||||||
(match-string-no-properties 2))))
|
(match-string-no-properties 3))))
|
||||||
|
|
||||||
(defun ghc-read-module-name (def)
|
(defun ghc-read-module-name (def)
|
||||||
(read-from-minibuffer "Module name: " def ghc-input-map))
|
(read-from-minibuffer "Module name: " def ghc-input-map))
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
(defvar ghc-completion-key "\e\t")
|
(defvar ghc-completion-key "\e\t")
|
||||||
(defvar ghc-document-key "\e\C-d")
|
(defvar ghc-document-key "\e\C-d")
|
||||||
(defvar ghc-import-key "\e\C-e")
|
(defvar ghc-import-key "\e\C-m")
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;;
|
;;;
|
||||||
@ -40,6 +40,6 @@
|
|||||||
(unless ghc-initialized
|
(unless ghc-initialized
|
||||||
(define-key haskell-mode-map ghc-completion-key 'ghc-complete)
|
(define-key haskell-mode-map ghc-completion-key 'ghc-complete)
|
||||||
(define-key haskell-mode-map ghc-document-key 'ghc-browse-document)
|
(define-key haskell-mode-map ghc-document-key 'ghc-browse-document)
|
||||||
(define-key haskell-mode-map ghc-import-key 'ghc-import-module)
|
(define-key haskell-mode-map ghc-import-key 'ghc-load-module-buffer)
|
||||||
(ghc-comp-init)
|
(ghc-comp-init)
|
||||||
(setq ghc-initialized t)))
|
(setq ghc-initialized t)))
|
||||||
|
Loading…
Reference in New Issue
Block a user