[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/android a94e9f96448: Merge remote-tracking branch 'origin/master
From: |
Po Lu |
Subject: |
feature/android a94e9f96448: Merge remote-tracking branch 'origin/master' into feature/android |
Date: |
Wed, 19 Apr 2023 20:47:49 -0400 (EDT) |
branch: feature/android
commit a94e9f96448bfa82fa0aaef9c2f3a40eaf7d6516
Merge: 5b314731894 cc0f9389b8e
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/android
---
lisp/treesit.el | 35 +++++++++++++++++++++++------------
lisp/vc/vc-cvs.el | 22 +++++++++++-----------
src/fns.c | 2 +-
test/lisp/vc/vc-cvs-tests.el | 2 +-
4 files changed, 36 insertions(+), 25 deletions(-)
diff --git a/lisp/treesit.el b/lisp/treesit.el
index ed7ad280684..b7af64ee8b5 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -2994,37 +2994,48 @@ See `treesit-language-source-alist' for details."
"History for OUT-DIR for `treesit-install-language-grammar'.")
;;;###autoload
-(defun treesit-install-language-grammar (lang)
+(defun treesit-install-language-grammar (lang &optional out-dir)
"Build and install the tree-sitter language grammar library for LANG.
Interactively, if `treesit-language-source-alist' doesn't already
have data for building the grammar for LANG, prompt for its
-repository URL and the C/C++ compiler to use.
+repository URL and the C/C++ compiler to use. Non-interactively,
+signal an error when there's no recipe for LANG.
This command requires Git, a C compiler and (sometimes) a C++ compiler,
and the linker to be installed and on PATH. It also requires that the
recipe for LANG exists in `treesit-language-source-alist'.
See `exec-path' for the current path where Emacs looks for
-executable programs, such as the C/C++ compiler and linker."
+executable programs, such as the C/C++ compiler and linker.
+
+Interactively, prompt for the directory in which to install the
+compiled grammar files. Non-interactively, use OUT-DIR; if it's
+nil, the grammar is installed to the standard location, the
+\"tree-sitter\" directory under `user-emacs-directory'."
(interactive (list (intern
(completing-read
"Language: "
- (mapcar #'car treesit-language-source-alist)))))
+ (mapcar #'car treesit-language-source-alist)))
+ 'interactive))
(when-let ((recipe
(or (assoc lang treesit-language-source-alist)
- (treesit--install-language-grammar-build-recipe
- lang)))
+ (if (eq out-dir 'interactive)
+ (treesit--install-language-grammar-build-recipe
+ lang)
+ (signal 'treesit-error `("Cannot find recipe for this
language" ,lang)))))
(default-out-dir
(or (car treesit--install-language-grammar-out-dir-history)
(locate-user-emacs-file "tree-sitter")))
(out-dir
- (read-string
- (format "Install to (default: %s): "
- default-out-dir)
- nil
- 'treesit--install-language-grammar-out-dir-history
- default-out-dir)))
+ (if (eq out-dir 'interactive)
+ (read-string
+ (format "Install to (default: %s): "
+ default-out-dir)
+ nil
+ 'treesit--install-language-grammar-out-dir-history
+ default-out-dir)
+ out-dir)))
(condition-case err
(apply #'treesit--install-language-grammar-1
(cons out-dir recipe))
diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el
index c6056c1e5bd..b855591e655 100644
--- a/lisp/vc/vc-cvs.el
+++ b/lisp/vc/vc-cvs.el
@@ -816,7 +816,7 @@ individually should stay local."
(defun vc-cvs-repository-hostname (dirname)
"Hostname of the CVS server associated to workarea DIRNAME.
-Returns nil if there is not hostname or the hostname could not be
+Returns nil if there is no hostname or the hostname could not be
determined because the CVS/Root specification is invalid."
(let ((rootname (expand-file-name "CVS/Root" dirname)))
(when (file-readable-p rootname)
@@ -849,7 +849,7 @@ The default METHOD for a CVS root of the form
is \"ext\".
If METHOD is explicitly \"local\" or \"fork\", then the pathname
-starts immediately after the method block. This must be used on
+starts immediately after the method block. This must be used on
Windows platforms when pathnames start with a drive letter.
Note that, except for METHOD, which is defaulted if not present,
@@ -857,9 +857,9 @@ other optional fields are returned as nil if not
syntactically
present, or as the empty string if delimited but empty.
Returns nil in case of an unparsable CVS root (including the
-empty string) and issues a warning. This function doesn't check
+empty string) and issues a warning. This function doesn't check
that an explicit method is valid, or that some fields are empty
-or nil but should not for a given method."
+or nil but should not be for a given method."
(let (method user password hostname port pathname
;; IDX set by `next-delim' as a side-effect
idx)
@@ -872,7 +872,7 @@ or nil but should not for a given method."
(no-pathname ()
(invalid "No pathname"))
(next-delim (start)
- ;; Search for a :, @ or /. If none is found, there can be
+ ;; Search for a :, @ or /. If none is found, there can be
;; no path at the end, which is an error.
(setq idx (string-match-p "[:@/]" root start))
(if idx (aref root idx) (no-pathname)))
@@ -883,7 +883,7 @@ or nil but should not for a given method."
(cl-ecase cand
(?:
;; Could be : before PORT and PATHNAME, or before
- ;; PASSWORD. We search for a @ to disambiguate.
+ ;; PASSWORD. We search for a @ to disambiguate.
(let ((colon-idx idx)
(cand (next-delim (1+ idx))))
(cl-ecase cand
@@ -937,9 +937,9 @@ or nil but should not for a given method."
;; Check for a starting ":"
(if (= (aref root 0) ?:)
;; 3 possible cases:
- ;; - :METHOD: at start. METHOD doesn't have any @.
- ;; - :PASSWORD@ at start. Must be followed by HOSTNAME.
- ;; - :[PORT] at start. Must be followed immediately by a "/".
+ ;; - :METHOD: at start. METHOD doesn't have any @.
+ ;; - :PASSWORD@ at start. Must be followed by HOSTNAME.
+ ;; - :[PORT] at start. Must be followed immediately by a "/".
;; So, find the next character equal to ":", "@" or "/".
(let ((cand (next-delim 1)))
(cl-ecase cand
@@ -973,7 +973,7 @@ or nil but should not for a given method."
(defun vc-cvs-parse-status (&optional full)
"Parse output of \"cvs status\" command in the current buffer.
Set file properties accordingly. Unless FULL is t, parse only
-essential information. Note that this can never set the `ignored'
+essential information. Note that this can never set the `ignored'
state."
(let (file status missing)
(goto-char (point-min))
@@ -1034,7 +1034,7 @@ state."
;; cvs update: warning: FILENAME was lost
;; U FILENAME
;; with FILENAME in the first line possibly enclosed in
- ;; quotes (since CVS 1.12.3). To avoid problems, use the U
+ ;; quotes (since CVS 1.12.3). To avoid problems, use the U
;; line where name is never quoted.
(forward-line 1)
(when (looking-at "^U \\(.*\\)$")
diff --git a/src/fns.c b/src/fns.c
index 2efeeb2792f..a8ab494eb13 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -1967,7 +1967,7 @@ assq_no_quit (Lisp_Object key, Lisp_Object alist)
}
/* Assq but doesn't signal. Unlike assq_no_quit, this function still
- detect circular lists; like assq_no_quit, this function does not
+ detects circular lists; like assq_no_quit, this function does not
allow quits and never signals. If anything goes wrong, it returns
Qnil. */
Lisp_Object
diff --git a/test/lisp/vc/vc-cvs-tests.el b/test/lisp/vc/vc-cvs-tests.el
index 99ac9c8eb96..473ac69e24c 100644
--- a/test/lisp/vc/vc-cvs-tests.el
+++ b/test/lisp/vc/vc-cvs-tests.el
@@ -76,7 +76,7 @@
":pserver:usr:passwd@host:28/home/serv/repo"
'("pserver" "usr" "host" "/home/serv/repo")))
-;; Next 3 tests are just to err on the side of caution. It doesn't
+;; Next 3 tests are just to err on the side of caution. It doesn't
;; seem that CVS 1.12 can ever produce such lines.
(ert-deftest