emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/tuareg d484910213 1/2: Misc minor simplifications


From: Stefan Monnier
Subject: [nongnu] elpa/tuareg d484910213 1/2: Misc minor simplifications
Date: Tue, 18 Jul 2023 18:28:06 -0400 (EDT)

branch: elpa/tuareg
commit d484910213d6a241d72a651cb46b7de17dac1ad5
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    Misc minor simplifications
    
    * dot-emacs.el: Don't eagerly load packages.
    Don't set `merlin-command` to `opam` sine it's the default value anyway.
    Set a major mode for `.merlin` files even if `merlin-mode` is not installed.
    
    * tuareg-opam.el (tuareg-opam-build-menu): Move the function's body to
    top-level and delete the function.
    (tuareg-opam-mode): Don't call it.  Don't redundantly run
    `tuareg-opam-mode-hook`.
    (tuareg--compile-opam): Add FIXME.
    
    * tuareg.el (tuareg-mode-map): Prefer `opam-switch-set-switch`
    if available.
    (tuareg-opam-insinuate): Don't set `merlin-command` to `opam` since
    that's its default value anyway.
---
 dot-emacs.el   | 41 +++++++++++++++++++++--------------------
 tuareg-opam.el | 18 +++++++++---------
 tuareg.el      | 10 ++++------
 3 files changed, 34 insertions(+), 35 deletions(-)

diff --git a/dot-emacs.el b/dot-emacs.el
index 809011e821..6e54088273 100644
--- a/dot-emacs.el
+++ b/dot-emacs.el
@@ -1,40 +1,40 @@
 ;; -*- lexical-binding: t; -*-
-(require 'tuareg)
+;; (require 'tuareg)
 
 ;; See README
 (setq tuareg-indent-align-with-first-arg nil)
 
-(add-hook
- 'tuareg-mode-hook
- (lambda()
+(add-hook 'tuareg-mode-hook #'my-tuareg-mode-setup)
+(defun my-tuareg-mode-setup ()
    (setq show-trailing-whitespace t)
    (setq indicate-empty-lines t)
 
    ;; Enable the representation of some keywords using fonts
-   (when (functionp 'prettify-symbols-mode)
-     (prettify-symbols-mode))
+   (prettify-symbols-mode)
+
+   (flyspell-prog-mode)                ;Spell check strings and comments.
+
+   ;; Easy keys to navigate errors after compilation:
+   (define-key tuareg-mode-map [(f12)] #'next-error)
+   (define-key tuareg-mode-map [(shift f12)] #'previous-error)
 
-   (when (functionp 'flyspell-prog-mode)
-     (flyspell-prog-mode))
    ;; See README
    ;;(setq tuareg-match-patterns-aligned t)
    ;;(electric-indent-mode 0)
-   ))
-
+   )
 
-;; Easy keys to navigate errors after compilation:
-(define-key tuareg-mode-map [(f12)] #'next-error)
-(define-key tuareg-mode-map [(shift f12)] #'previous-error)
 
+;;;; Use Merlin when available ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-;; Use Merlin if available
-(when (require 'merlin nil t)
-  (setq merlin-command 'opam)
-  (add-to-list 'auto-mode-alist '("/\\.merlin\\'" . conf-mode))
+;; FIXME: Should be included in Merlin's own support code.
+(add-to-list 'auto-mode-alist '("/\\.merlin\\'" . conf-mode))
 
-  (when (functionp 'merlin-document)
-    (define-key tuareg-mode-map (kbd "\C-c\C-h") #'merlin-document))
+(with-eval-after-load 'merlin
+  (when (fboundp 'merlin-document)
+    (with-eval-after-load 'tuareg
+      (define-key tuareg-mode-map (kbd "\C-c\C-h") #'merlin-document))))
 
+(when (fboundp 'merlin-mode)
   ;; Run Merlin if a .merlin file in the parent dirs is detected
   (add-hook 'tuareg-mode-hook
             (lambda()
@@ -42,8 +42,9 @@
                 (if (and fn (locate-dominating-file fn ".merlin"))
                     (merlin-mode))))))
 
-;; Choose modes for related config. files
+;;;; Choose modes for related config files ;;;;;;;;;;;;;;;;;;
 (setq auto-mode-alist
+      ;; FIXME: Are these still in use?  Which tools are they used for?
       (append '(("_oasis\\'" . conf-mode)
                ("_tags\\'" . conf-mode)
                ("_log\\'" . conf-mode))
diff --git a/tuareg-opam.el b/tuareg-opam.el
index 2ad3e80a9a..5211624564 100644
--- a/tuareg-opam.el
+++ b/tuareg-opam.el
@@ -295,12 +295,11 @@ characters \\([0-9]+\\)-\\([0-9]+\\): +\\([^\n]*\\)$"
     map)
   "Keymap used in Tuareg-opam mode.")
 
-(defun tuareg-opam-build-menu ()
-  (easy-menu-define
-    tuareg-opam-mode-menu  (list tuareg-opam-mode-map)
-    "Tuareg-opam mode menu."
-    '("OPAM"
-      ["Skeleton" tuareg-opam-insert-opam-form t])))
+(easy-menu-define
+  tuareg-opam-mode-menu  (list tuareg-opam-mode-map)
+  "Tuareg-opam mode menu."
+  '("OPAM"
+    ["Skeleton" tuareg-opam-insert-opam-form t]))
 
 
 ;;;###autoload
@@ -323,9 +322,7 @@ characters \\([0-9]+\\)-\\([0-9]+\\): +\\([^\n]*\\)$"
   (setq-local tuareg-opam--flymake-proc-err-line-patterns
               tuareg-opam--err-line-patterns)
   (when (and tuareg-opam-flymake buffer-file-name)
-    (flymake-mode t))
-  (tuareg-opam-build-menu)
-  (run-mode-hooks 'tuareg-opam-mode-hook))
+    (flymake-mode t)))
 
 (defun tuareg-opam-config-env (&optional switch)
   "Get the opam environment for the given switch (or the default
@@ -417,6 +414,8 @@ mode-bar menu `\"OPSW\"'."
 switch before compiling."
   (let* ((env (tuareg-opam-config-env)))
     (when env
+      ;; FIXME: This blindly overrides other settings the user
+      ;; may have put into `compilation-environment'!
       (setq-local compilation-environment
                   (mapcar (lambda(v) (concat (car v) "=" (cadr v)))
                           (tuareg-opam-config-env))))))
@@ -426,3 +425,4 @@ switch before compiling."
 
 
 (provide 'tuareg-opam)
+;;; tuareg-opam.el ends here
diff --git a/tuareg.el b/tuareg.el
index c70470c350..fb8a09bf04 100644
--- a/tuareg.el
+++ b/tuareg.el
@@ -1493,7 +1493,9 @@ Run only once."
     (define-key map "\C-c\C-q" #'tuareg-indent-phrase)
     (define-key map "\C-c\C-a" #'tuareg-find-alternate-file)
     (define-key map "\C-c\C-c" #'compile)
-    (define-key map "\C-c\C-w" #'tuareg-opam-update-env)
+    (define-key map "\C-c\C-w" (if (fboundp 'opam-switch-set-switch)
+                                   #'opam-switch-set-switch
+                                 'tuareg-opam-update-env))
     (define-key map "\M-\C-x" #'tuareg-eval-phrase)
     (define-key map "\C-x\C-e" #'tuareg-eval-phrase)
     (define-key map "\C-c\C-e" #'tuareg-eval-phrase)
@@ -3510,11 +3512,7 @@ OCaml uses exclusive end-columns but Emacs wants them to 
be inclusive."
   (setq tuareg-interactive-program
         (concat tuareg-opam " exec -- ocaml"))
 
-  (advice-add 'compile :before #'tuareg--compile-opam)
-
-  (defvar merlin-command)               ;Silence byte-compiler.
-  (setq merlin-command 'opam)
-  )
+  (advice-add 'compile :before #'tuareg--compile-opam))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]