[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] externals/caml f6a12d8 149/197: merge patch by Stefan Monnier f
From: |
Stefan Monnier |
Subject: |
[nongnu] externals/caml f6a12d8 149/197: merge patch by Stefan Monnier from PR#5884 |
Date: |
Sat, 21 Nov 2020 01:19:56 -0500 (EST) |
branch: externals/caml
commit f6a12d88edc8ae39e00455341a086f3bd7e5a446
Author: Jacques Garrigue <garrigue at math.nagoya-u.ac.jp>
Commit: Jacques Garrigue <garrigue at math.nagoya-u.ac.jp>
merge patch by Stefan Monnier from PR#5884
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13253
f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
---
caml-emacs.el | 7 ++-
caml-help.el | 135 +++++++++++++++++++++++++++++-----------------------------
caml.el | 16 +++----
3 files changed, 79 insertions(+), 79 deletions(-)
diff --git a/caml-emacs.el b/caml-emacs.el
index 13dc297..7166d1a 100644
--- a/caml-emacs.el
+++ b/caml-emacs.el
@@ -25,7 +25,7 @@
(defalias 'caml-mouse-movement-p 'mouse-movement-p)
(defalias 'caml-sit-for 'sit-for)
-(defmacro caml-track-mouse (&rest body) (cons 'track-mouse body))
+(defalias 'caml-track-mouse 'track-mouse)
(defun caml-event-window (e) (posn-window (event-start e)))
(defun caml-event-point-start (e) (posn-point (event-start e)))
@@ -37,8 +37,7 @@
(or (member 'drag modifiers)
(member 'click modifiers)))))
-(if (fboundp 'string-to-number)
- (defalias 'caml-string-to-int 'string-to-number)
- (defalias 'caml-string-to-int 'string-to-int))
+(defalias 'caml-string-to-int (if (fboundp 'string-to-number)
+ 'string-to-number 'string-to-int))
(provide 'caml-emacs)
diff --git a/caml-help.el b/caml-help.el
index 99af471..94bf621 100644
--- a/caml-help.el
+++ b/caml-help.el
@@ -1,3 +1,4 @@
+;;; caml-help.el --- Contextual completion and help to caml-mode
;(***********************************************************************)
;(* *)
;(* OCaml *)
@@ -10,12 +11,12 @@
;(* *)
;(***********************************************************************)
-;; caml-info.el --- contextual completion and help to caml-mode
+;; Author: Didier Remy, November 2001.
-;; Didier Remy, November 2001.
+;;; Commentary:
-;; This provides two functions completion and help
-;; look for caml-complete and caml-help
+;; This provides two functions: completion and help.
+;; Look for caml-complete and caml-help.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
@@ -32,15 +33,16 @@
;; - the viewing method and the database, so that the documentation for
;; and identifier could be search in
;; * info / html / man / mli's sources
-;; * viewed in emacs or using an external previewer.
+;; * viewed in Emacs or using an external previewer.
;;
;; Take all identifiers (labels, Constructors, exceptions, etc.)
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Code:
(eval-and-compile
- (if (and (boundp 'running-xemacs) running-xemacs)
+ (if (featurep 'xemacs)
(require 'caml-xemacs)
(require 'caml-emacs)))
@@ -50,11 +52,11 @@
;; variables to be customized
(defvar ocaml-lib-path 'lazy
- "Path list for ocaml lib sources (mli files)
+ "Path list for ocaml lib sources (mli files).
-'lazy means ask ocaml to find it for your at first use.")
+`lazy' means ask ocaml to find it for your at first use.")
(defun ocaml-lib-path ()
- "Computes if necessary and returns the path for ocaml libs"
+ "Compute if necessary and return the path for ocaml libs."
(if (listp ocaml-lib-path) nil
(setq ocaml-lib-path
(split-string
@@ -83,13 +85,11 @@
(concat (downcase (substring s 0 1)) (substring s 1))
s))
-(defun iter (f l) (while (consp l) (apply f (list (car l))) (setq l (cdr l))))
-
(defun ocaml-find-files (path filter &optional depth split)
(let* ((path-string
(if (stringp path)
(if (file-directory-p path) path nil)
- (mapconcat '(lambda (d) (if (file-directory-p d) d))
+ (mapconcat (lambda (d) (if (file-directory-p d) d))
path " ")))
(command
(and path-string
@@ -110,7 +110,7 @@
(defvar ocaml-module-alist 'lazy
"A-list of modules with how and where to find help information.
- 'delay means non computed yet")
+`delay' means non computed yet.")
(defun ocaml-add-mli-modules (modules tag &optional path)
(let ((files
@@ -131,13 +131,13 @@
modules))
(defun ocaml-add-path (dir &optional path)
- "Extend ocaml-module-alist with modules of DIR relative to PATH"
+ "Extend `ocaml-module-alist' with modules of DIR relative to PATH."
(interactive "D")
(let* ((old (ocaml-lib-path))
(new
(if (file-name-absolute-p dir) dir
(concat
- (or (find-if '(lambda (p) (file-directory-p (concat p "/" dir)))
+ (or (find-if (lambda (p) (file-directory-p (concat p "/" dir)))
(cons default-directory old))
(error "Directory not found"))
"/" dir))))
@@ -146,7 +146,7 @@
(ocaml-add-mli-modules (ocaml-module-alist) 'lib new))))
(defun ocaml-module-alist ()
- "Call by need value of variable ocaml-module-alist"
+ "Call by need value of variable `ocaml-module-alist'."
(if (listp ocaml-module-alist)
nil
;; build list of mli files
@@ -249,7 +249,7 @@ When call interactively, make completion over known
modules."
(defun ocaml-close-module (arg)
"*Close module of name ARG when ARG is a string.
When call interactively, make completion over visible modules.
-Otherwise if ARG is true, close all modules and reset to default. "
+Otherwise if ARG is true, close all modules and reset to default."
(interactive "P")
(if (= (prefix-numeric-value arg) 4)
(setq ocaml-visible-modules 'lazy)
@@ -262,7 +262,7 @@ Otherwise if ARG is true, close all modules and reset to
default. "
modules))
(if (equal arg "") (setq arg (caar modules))))
(setq ocaml-visible-modules
- (remove-if '(lambda (m) (equal (car m) arg))
+ (remove-if (lambda (m) (equal (car m) arg))
ocaml-visible-modules))
))
(message "%S" (mapcar 'car (ocaml-visible-modules))))
@@ -282,8 +282,7 @@ If defined Module and Entry are represented by a region in
the buffer,
and are nil otherwise.
For debugging purposes, it returns the string Module.entry if called
-with an optional non-nil argument.
-"
+with an optional non-nil argument."
(save-excursion
(let ((module) (entry))
(if (looking-at "[ \n]") (skip-chars-backward " "))
@@ -320,12 +319,12 @@ with an optional non-nil argument.
(if (null pattern)
(apply 'append (mapcar 'ocaml-module-symbols list))
(let ((pat (concat "^" (regexp-quote pattern))) (res))
- (iter
- '(lambda (l)
- (iter '(lambda (x)
- (if (string-match pat (car l))
- (if (member x res) nil (setq res (cons x res)))))
- (ocaml-module-symbols l)))
+ (mapc
+ (lambda (l)
+ (mapc (lambda (x)
+ (if (string-match pat (car l))
+ (if (member x res) nil (setq res (cons x res)))))
+ (ocaml-module-symbols l)))
list)
res)
)))
@@ -425,8 +424,7 @@ where identifier is defined."
(defvar ocaml-info-prefix "ocaml-lib"
"Prefix of ocaml info files describing library modules.
Suffix .info will be added to info files.
-Additional suffix .gz may be added if info files are compressed.
-")
+Additional suffix .gz may be added if info files are compressed.")
;;
(defun ocaml-hevea-info-add-entries (entries dir name)
@@ -472,15 +470,14 @@ Additional suffix .gz may be added if info files are
compressed.
of \\[Info-default-directory-list] and the base name \\[ocaml-info-name]
of files to look for.
-This uses info files produced by HeVeA.
-"
+This uses info files produced by HeVeA."
(let ((collect) (seen))
- (iter '(lambda (d)
- (if (member d seen) nil
- (setq collect
- (ocaml-hevea-info-add-entries
- collect d ocaml-info-prefix))
- (setq done (cons d seen))))
+ (mapc (lambda (d)
+ (if (member d seen) nil
+ (setq collect
+ (ocaml-hevea-info-add-entries
+ collect d ocaml-info-prefix))
+ (setq seen (cons d seen))))
Info-directory-list)
collect))
@@ -518,12 +515,12 @@ of files to look for.
This uses info files produced by ocamldoc."
(require 'info)
(let ((collect) (seen))
- (iter '(lambda (d)
- (if (member d seen) nil
- (setq collect
- (ocaml-ocamldoc-info-add-entries collect d
- ocaml-info-prefix))
- (setq done (cons d seen))))
+ (mapc (lambda (d)
+ (if (member d seen) nil
+ (setq collect
+ (ocaml-ocamldoc-info-add-entries collect d
+ ocaml-info-prefix))
+ (setq seen (cons d seen))))
Info-directory-list)
collect))
@@ -534,11 +531,11 @@ This uses info files produced by ocamldoc."
nil means do not use info.
- A function to build the list lazily (at the first call). The result of
+ A function to build the list lazily (at the first call). The result of
the function call will be assign permanently to this variable for future
-uses. We provide two default functions \\[ocaml-info-default-function]
-(info produced by HeVeA is the default) and \\[ocaml-info-default-function]
-(info produced by ocamldoc).
+uses. We provide two default functions `ocaml-hevea-info'
+\(info produced by HeVeA is the default) and `ocaml-ocamldoc-info'
+\(info produced by ocamldoc).
Otherwise, this value should be an alist binding module names to info
entries of the form to \"(entry)section\" be taken by the \\[info]
@@ -546,7 +543,7 @@ command. An entry may be an info module or a complete file
name."
)
(defun ocaml-info-alist ()
- "Call by need value of variable ocaml-info-alist"
+ "Call by need value of variable `ocaml-info-alist'."
(cond
((listp ocaml-info-alist))
((functionp ocaml-info-alist)
@@ -572,9 +569,11 @@ command. An entry may be an info module or a complete file
name."
;; Help function.
+(defvar view-return-to-alist)
+(defvar view-exit-action)
(defun ocaml-goto-help (&optional module entry same-window)
- "Searches info manual for MODULE and ENTRY in MODULE.
+ "Search info manual for MODULE and ENTRY in MODULE.
If unspecified, MODULE and ENTRY are inferred from the position in the
current buffer using \\[ocaml-qualified-identifier]."
(interactive)
@@ -633,6 +632,15 @@ current buffer using \\[ocaml-qualified-identifier]."
(if (window-live-p window) (select-window window))
))
+(defface ocaml-help-face
+ '((t :background "#88FF44"))
+ "Face to highlight expressions and types.")
+
+(defvar ocaml-help-ovl
+ (let ((ovl (make-overlay 1 1)))
+ (overlay-put ovl 'face 'ocaml-help-face)
+ ovl))
+
(defun caml-help (arg)
"Find documentation for OCaml qualified identifiers.
@@ -640,11 +648,11 @@ It attemps to recognize an qualified identifier of the
form
``Module . entry'' around point using function `ocaml-qualified-identifier'.
If Module is undetermined it is temptatively guessed from the identifier name
-and according to visible modules. If this is still unsucessful, the user is
+and according to visible modules. If this is still unsucessful, the user is
then prompted for a Module name.
The documentation for Module is first seach in the info manual if available,
-then in the ``module.mli'' source file. The entry is then searched in the
+then in the ``module.mli'' source file. The entry is then searched in the
documentation.
Visible modules are computed only once, at the first call.
@@ -655,8 +663,7 @@ Prefix arg 0 forces recompilation of visible modules (and
their content)
from the file content.
Prefix arg 4 prompts for Module and identifier instead of guessing values
-from the possition of point in the current buffer.
-"
+from the possition of point in the current buffer."
(interactive "p")
(delete-overlay ocaml-help-ovl)
(let ((module) (entry) (module-entry))
@@ -741,16 +748,10 @@ buffer positions."
(setq ocaml-links (cons section all))
)))))
-(defvar ocaml-link-map (make-sparse-keymap))
-(define-key ocaml-link-map [mouse-2] 'ocaml-link-goto)
-
-(defvar ocaml-help-ovl (make-overlay 1 1))
-(make-face 'ocaml-help-face)
-(set-face-doc-string 'ocaml-help-face
- "face for hilighting expressions and types")
-(if (not (face-differs-from-default-p 'ocaml-help-face))
- (set-face-background 'ocaml-help-face "#88FF44"))
-(overlay-put ocaml-help-ovl 'face 'ocaml-help-face)
+(defvar ocaml-link-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map [mouse-2] 'ocaml-link-goto)
+ map))
(defun ocaml-help-show (arg)
(let ((right (point))
@@ -761,6 +762,7 @@ buffer positions."
))
(defun ocaml-link-goto (click)
+ "Follow link at point."
(interactive "e")
(let* ((pos (caml-event-point-start click))
(win (caml-event-window click))
@@ -785,12 +787,10 @@ buffer positions."
(if (window-live-p window) (select-window window))
)))
-(cond
- ((and (x-display-color-p)
- (not (memq 'ocaml-link-face (face-list))))
- (make-face 'ocaml-link-face)
- (set-face-foreground 'ocaml-link-face "Purple")))
+(defface ocaml-link-face
+ '(((class color) :foreground "Purple"))
+ "Face to highlight hyperlinks.")
(defun ocaml-link-activate (section)
(let ((links (ocaml-info-links section)))
@@ -851,3 +851,4 @@ buffer positions."
(provide 'caml-help)
+;;; caml-help.el ends here
diff --git a/caml.el b/caml.el
index a246c55..ea2e8ab 100644
--- a/caml.el
+++ b/caml.el
@@ -692,14 +692,14 @@ the current point."
((looking-at "[ \t]*method")
(setq method-alist (cons index method-alist)))))
;; build menu
- (mapcar
- '(lambda (pair)
- (if (symbol-value (cdr pair))
- (setq menu-alist
- (cons
- (cons (car pair)
- (sort (symbol-value (cdr pair)) 'imenu--sort-by-name))
- menu-alist))))
+ (mapc
+ (lambda (pair)
+ (if (symbol-value (cdr pair))
+ (setq menu-alist
+ (cons
+ (cons (car pair)
+ (sort (symbol-value (cdr pair)) 'imenu--sort-by-name))
+ menu-alist))))
'(("Values" . value-alist)
("Types" . type-alist)
("Modules" . module-alist)
- [nongnu] externals/caml 0ca1e97 155/197: Merge branch 4.01 from branching point to 4.01.0+rc1, (continued)
- [nongnu] externals/caml 0ca1e97 155/197: Merge branch 4.01 from branching point to 4.01.0+rc1, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml d7a872b 170/197: caml.el: update authors list, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml ae92bb1 173/197: Fix emacs mode (raise/failwith/invalid_arg regexp)., Stefan Monnier, 2020/11/21
- [nongnu] externals/caml d8a2f7d 165/197: caml-types.el: Fix missing format argument, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml f828046 172/197: caml.el: use conventional permission statement, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml 5569e23 189/197: Handle identifiers in comments, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml b2b6657 135/197: fix whitespace, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml 072b0e0 142/197: add some missing copyright headers, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml 71d36c5 143/197: PR#4994: ocaml-mode doesn't work with xemacs21, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml 3190d71 145/197: PR#5070, continued: also parse backtrace locations, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml f6a12d8 149/197: merge patch by Stefan Monnier from PR#5884,
Stefan Monnier <=
- [nongnu] externals/caml f6cd0b9 078/197: petit nettoyage, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml 474e6ee 102/197: only set type faces where needed, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml b1eaaab 115/197: merge changes 3.10.0 -> 3.10.1, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml 43a83dc 118/197: bug string-to-number, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml c525bf8 121/197: clean up spaces and tabs, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml 73599dd 129/197: uniform .ignore system, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml eec3351 144/197: do byte-compile file caml-font.el, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml b1139bc 146/197: merge version/4.00 at revision 12866, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml b5bf207 160/197: update caml-font.el to deal with the quoted string syntax, Stefan Monnier, 2020/11/21
- [nongnu] externals/caml d3bc724 167/197: caml.el: Pass the `system` flag when defining abbrevs, Stefan Monnier, 2020/11/21