emacs-diffs
[Top][All Lists]
Advanced

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

feature/android 5f6971e5cbd 2/2: Merge remote-tracking branch 'origin/ma


From: Po Lu
Subject: feature/android 5f6971e5cbd 2/2: Merge remote-tracking branch 'origin/master' into feature/android
Date: Sat, 21 Jan 2023 07:07:18 -0500 (EST)

branch: feature/android
commit 5f6971e5cbd168db8a2d1e17bc92f2deadcaeceb
Merge: aaacf24ca25 f4a3e8f29f0
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Merge remote-tracking branch 'origin/master' into feature/android
---
 etc/NEWS                          |  14 +++-
 lisp/files.el                     |  21 +++---
 lisp/progmodes/c-ts-mode.el       |   2 +-
 lisp/textmodes/html-ts-mode.el    | 137 ++++++++++++++++++++++++++++++++++++
 test/lisp/eshell/esh-var-tests.el | 142 +++++++++++++++++++-------------------
 5 files changed, 233 insertions(+), 83 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 678a5a70ca7..cfb1f82706f 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -59,18 +59,23 @@ trash when deleting.  Default is nil.
 
 * Editing Changes in Emacs 30.1
 
++++
 ** Emacs now has better support for touchscreen events.
 Many touch screen gestures are now implemented, as is support for
 tapping buttons and opening menus.
 
+
+---
 ** New command 'kill-matching-buffers-no-ask'.
-Kills buffers whose name matches a regexp without asking for
+This works like 'kill-matching-buffers', but without asking for
 confirmation.
 
++++
 ** New helper variable 'transpose-sexps-function'.
 Emacs now can set this variable to customize the behavior of the
 'transpose-sexps' function.
 
++++
 ** New function 'transpose-sexps-default-function'.
 The previous implementation is moved into its own function, to be
 bound by 'transpose-sexps-function'.
@@ -191,6 +196,13 @@ activate this behavior.
 
 * New Modes and Packages in Emacs 30.1
 
+** New major modes based on the tree-sitter library.
+
++++
+*** New major mode 'html-ts-mode'.
+An optional major mode based on the tree-sitter library for editing
+HTML files.
+
 ---
 ** The highly accessible Modus themes collection has six items.
 The 'modus-operandi' and 'modus-vivendi' are the main themes that have
diff --git a/lisp/files.el b/lisp/files.el
index d308e99804d..9da82446112 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -7100,10 +7100,11 @@ specifies the list of buffers to kill, asking for 
approval for each one."
     (setq list (cdr list))))
 
 (defun kill-matching-buffers (regexp &optional internal-too no-ask)
-  "Kill buffers whose name matches the specified REGEXP.
-Ignores buffers whose name starts with a space, unless optional
-prefix argument INTERNAL-TOO is non-nil.  Asks before killing
-each buffer, unless NO-ASK is non-nil."
+  "Kill buffers whose names match the regular expression REGEXP.
+Interactively, prompt for REGEXP.
+Ignores buffers whose names start with a space, unless optional
+prefix argument INTERNAL-TOO(interactively, the prefix argument)
+is non-nil.  Asks before killing each buffer, unless NO-ASK is non-nil."
   (interactive "sKill buffers matching this regular expression: \nP")
   (dolist (buffer (buffer-list))
     (let ((name (buffer-name buffer)))
@@ -7113,11 +7114,13 @@ each buffer, unless NO-ASK is non-nil."
         (funcall (if no-ask 'kill-buffer 'kill-buffer-ask) buffer)))))
 
 (defun kill-matching-buffers-no-ask (regexp &optional internal-too)
-  "Kill buffers whose name matches the specified REGEXP.
-Ignores buffers whose name starts with a space, unless optional
-prefix argument INTERNAL-TOO is non-nil.  Equivalent to
-`kill-matching-buffers' but never ask before killing each
-buffer."
+  "Kill buffers whose names match the regular expression REGEXP.
+Interactively, prompt for REGEXP.
+Like `kill-matching-buffers', but doesn't ask for confirmation
+before killing each buffer.
+Ignores buffers whose names start with a space, unless the
+optional argument INTERNAL-TOO (interactively, the prefix argument)
+is non-nil."
   (interactive "sKill buffers matching this regular expression: \nP")
   (kill-matching-buffers regexp internal-too t))
 
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index b3d162cd3ab..348d027af19 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -228,7 +228,7 @@ NODE should be a labeled_statement."
 (defvar c-ts-mode-indent-block-type-regexp
   (rx (or "compound_statement"
           "field_declaration_list"
-          "enumeratior_list"))
+          "enumerator_list"))
   "Regexp matching types of block nodes (i.e., {} blocks).")
 
 (defun c-ts-mode--statement-offset (node parent &rest _)
diff --git a/lisp/textmodes/html-ts-mode.el b/lisp/textmodes/html-ts-mode.el
new file mode 100644
index 00000000000..7e4360747a3
--- /dev/null
+++ b/lisp/textmodes/html-ts-mode.el
@@ -0,0 +1,137 @@
+;;; html-ts-mode.el --- tree-sitter support for HTML  -*- lexical-binding: t; 
-*-
+
+;; Copyright (C) 2023 Free Software Foundation, Inc.
+
+;; Author     : Theodor Thornhill <theo@thornhill.no>
+;; Maintainer : Theodor Thornhill <theo@thornhill.no>
+;; Created    : January 2023
+;; Keywords   : html languages tree-sitter
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+
+;;; Code:
+
+(require 'treesit)
+(require 'sgml-mode)
+
+(declare-function treesit-parser-create "treesit.c")
+(declare-function treesit-node-type "treesit.c")
+
+(defcustom html-ts-mode-indent-offset 2
+  "Number of spaces for each indentation step in `html-ts-mode'."
+  :version "29.1"
+  :type 'integer
+  :safe 'integerp
+  :group 'html)
+
+(defvar html-ts-mode--indent-rules
+  `((html
+     ((parent-is "fragment") point-min 0)
+     ((node-is "/>") parent-bol 0)
+     ((node-is ">") parent-bol 0)
+     ((node-is "end_tag") parent-bol 0)
+     ((parent-is "comment") prev-adaptive-prefix 0)
+     ((parent-is "element") parent-bol html-ts-mode-indent-offset)
+     ((parent-is "script_element") parent-bol html-ts-mode-indent-offset)
+     ((parent-is "style_element") parent-bol html-ts-mode-indent-offset)
+     ((parent-is "start_tag") parent-bol html-ts-mode-indent-offset)
+     ((parent-is "self_closing_tag") parent-bol html-ts-mode-indent-offset)))
+  "Tree-sitter indent rules.")
+
+(defvar html-ts-mode--font-lock-settings
+  (treesit-font-lock-rules
+   :language 'html
+   :override t
+   :feature 'comment
+   `((comment) @font-lock-comment-face)
+   :language 'html
+   :override t
+   :feature 'keyword
+   `("doctype" @font-lock-keyword-face)
+   :language 'html
+   :override t
+   :feature 'definition
+   `((tag_name) @font-lock-function-name-face)
+   :language 'html
+   :override t
+   :feature 'string
+   `((quoted_attribute_value) @font-lock-string-face)
+   :language 'html
+   :override t
+   :feature 'property
+   `((attribute_name) @font-lock-variable-name-face))
+  "Tree-sitter font-lock settings for `html-ts-mode'.")
+
+(defun html-ts-mode--defun-name (node)
+  "Return the defun name of NODE.
+Return nil if there is no name or if NODE is not a defun node."
+  (when (equal (treesit-node-type node) "tag_name")
+    (treesit-node-text node t)))
+
+;;;###autoload
+(define-derived-mode html-ts-mode html-mode "HTML"
+  "Major mode for editing Html, powered by tree-sitter."
+  :group 'html
+
+  (unless (treesit-ready-p 'html)
+    (error "Tree-sitter for HTML isn't available"))
+
+  (treesit-parser-create 'html)
+
+  ;; Comments.
+  (setq-local treesit-text-type-regexp
+              (regexp-opt '("comment" "text")))
+
+  ;; Indent.
+  (setq-local treesit-simple-indent-rules html-ts-mode--indent-rules)
+
+  ;; Navigation.
+  (setq-local treesit-defun-type-regexp "element")
+
+  (setq-local treesit-defun-name-function #'html-ts-mode--defun-name)
+
+  (setq-local treesit-sentence-type-regexp
+              (regexp-opt '("start_tag"
+                            "self_closing_tag"
+                            "end_tag")))
+
+  (setq-local treesit-sexp-type-regexp
+              (regexp-opt '("tag"
+                            "text"
+                            "attribute"
+                            "value")))
+
+  ;; Font-lock.
+  (setq-local treesit-font-lock-settings html-ts-mode--font-lock-settings)
+  (setq-local treesit-font-lock-feature-list
+              '((comment keyword definition)
+                (property string)
+                () ()))
+
+  ;; Imenu.
+  (setq-local treesit-simple-imenu-settings
+              '(("Element" "\\`tag_name\\'" nil nil)))
+  (treesit-major-mode-setup))
+
+(if (treesit-ready-p 'html)
+    (add-to-list 'auto-mode-alist '("\\.html\\'" . html-ts-mode)))
+
+(provide 'html-ts-mode)
+
+;;; html-ts-mode.el ends here
diff --git a/test/lisp/eshell/esh-var-tests.el 
b/test/lisp/eshell/esh-var-tests.el
index 82324d72163..12412d13640 100644
--- a/test/lisp/eshell/esh-var-tests.el
+++ b/test/lisp/eshell/esh-var-tests.el
@@ -83,7 +83,7 @@
                                  '("zero" "two" "four"))))
 
 (ert-deftest esh-var-test/interp-var-indices-subcommand ()
-  "Interpolate list variable with subcommand expansion for indices"
+  "Interpolate list variable with subcommand expansion for indices."
   (skip-unless (executable-find "echo"))
   (let ((eshell-test-value '("zero" "one" "two" "three" "four")))
     (eshell-command-result-equal
@@ -94,7 +94,7 @@
      '("zero" "two"))))
 
 (ert-deftest esh-var-test/interp-var-split-indices ()
-  "Interpolate string variable with indices"
+  "Interpolate string variable with indices."
   (let ((eshell-test-value "zero one two three four"))
     (eshell-command-result-equal "echo $eshell-test-value[0]"
                                  "zero")
@@ -104,7 +104,7 @@
                                  '("zero" "two" "four"))))
 
 (ert-deftest esh-var-test/interp-var-string-split-indices ()
-  "Interpolate string variable with string splitter and indices"
+  "Interpolate string variable with string splitter and indices."
   (let ((eshell-test-value "zero:one:two:three:four"))
     (eshell-command-result-equal "echo $eshell-test-value[: 0]"
                                  "zero")
@@ -117,7 +117,7 @@
                                  '("zero" "two"))))
 
 (ert-deftest esh-var-test/interp-var-regexp-split-indices ()
-  "Interpolate string variable with regexp splitter and indices"
+  "Interpolate string variable with regexp splitter and indices."
   (let ((eshell-test-value "zero:one!two:three!four"))
     (eshell-command-result-equal "echo $eshell-test-value['[:!]' 0]"
                                  "zero")
@@ -129,7 +129,7 @@
                                  '("zero" "two"))))
 
 (ert-deftest esh-var-test/interp-var-assoc ()
-  "Interpolate alist variable with index"
+  "Interpolate alist variable with index."
   (let ((eshell-test-value '(("foo" . 1) (bar . 2))))
     (eshell-command-result-equal "echo $eshell-test-value[foo]"
                                  1)
@@ -137,7 +137,7 @@
                                  2)))
 
 (ert-deftest esh-var-test/interp-var-length-list ()
-  "Interpolate length of list variable"
+  "Interpolate length of list variable."
   (let ((eshell-test-value '((1 2) (3) (5 (6 7 8 9)))))
     (eshell-command-result-equal "echo $#eshell-test-value" 3)
     (eshell-command-result-equal "echo $#eshell-test-value[1]" 1)
@@ -149,19 +149,19 @@
     (eshell-command-result-equal "echo $#eshell-test-value" 6)))
 
 (ert-deftest esh-var-test/interp-var-length-alist ()
-  "Interpolate length of alist variable"
+  "Interpolate length of alist variable."
   (let ((eshell-test-value '(("foo" . (1 2 3)))))
     (eshell-command-result-equal "echo $#eshell-test-value" 1)
     (eshell-command-result-equal "echo $#eshell-test-value[foo]" 3)))
 
 (ert-deftest esh-var-test/interp-var-splice ()
-  "Splice-interpolate list variable"
+  "Splice-interpolate list variable."
   (let ((eshell-test-value '(1 2 3)))
     (eshell-command-result-equal "echo a $@eshell-test-value z"
                                  '("a" 1 2 3 "z"))))
 
 (ert-deftest esh-var-test/interp-var-splice-concat ()
-  "Splice-interpolate and concat list variable"
+  "Splice-interpolate and concat list variable."
   (let ((eshell-test-value '(1 2 3)))
     (eshell-command-result-equal "echo it is a$@'eshell-test-value'z"
                                  '("it" "is" "a1" 2 "3z"))
@@ -175,49 +175,49 @@
      '("it" "is" 1 2 (31 2 3)))))
 
 (ert-deftest esh-var-test/interp-lisp ()
-  "Interpolate Lisp form evaluation"
+  "Interpolate Lisp form evaluation."
   (eshell-command-result-equal "+ $(+ 1 2) 3" 6))
 
 (ert-deftest esh-var-test/interp-lisp-indices ()
-  "Interpolate Lisp form evaluation with index"
+  "Interpolate Lisp form evaluation with index."
   (eshell-command-result-equal "+ $(list 1 2)[1] 3" 5))
 
 (ert-deftest esh-var-test/interp-cmd ()
-  "Interpolate command result"
+  "Interpolate command result."
   (eshell-command-result-equal "+ ${+ 1 2} 3" 6))
 
 (ert-deftest esh-var-test/interp-cmd-indices ()
-  "Interpolate command result with index"
+  "Interpolate command result with index."
   (eshell-command-result-equal "+ ${listify 1 2}[1] 3" 5))
 
 (ert-deftest esh-var-test/interp-cmd-external ()
-  "Interpolate command result from external command"
+  "Interpolate command result from external command."
   (skip-unless (executable-find "echo"))
   (with-temp-eshell
    (eshell-match-command-output "echo ${*echo hi}"
                                 "hi\n")))
 
 (ert-deftest esh-var-test/interp-cmd-external-indices ()
-  "Interpolate command result from external command with index"
+  "Interpolate command result from external command with index."
   (skip-unless (executable-find "echo"))
   (with-temp-eshell
    (eshell-match-command-output "echo ${*echo \"hi\nbye\"}[1]"
                                 "bye\n")))
 
 (ert-deftest esh-var-test/interp-temp-cmd ()
-  "Interpolate command result redirected to temp file"
+  "Interpolate command result redirected to temp file."
   (eshell-command-result-equal "cat $<echo hi>" "hi"))
 
 (ert-deftest esh-var-test/interp-concat-lisp ()
-  "Interpolate and concat Lisp form"
+  "Interpolate and concat Lisp form."
   (eshell-command-result-equal "+ $(+ 1 2)3 3" 36))
 
 (ert-deftest esh-var-test/interp-concat-lisp2 ()
-  "Interpolate and concat two Lisp forms"
+  "Interpolate and concat two Lisp forms."
   (eshell-command-result-equal "+ $(+ 1 2)$(+ 1 2) 3" 36))
 
 (ert-deftest esh-var-test/interp-concat-cmd ()
-  "Interpolate and concat command with literal"
+  "Interpolate and concat command with literal."
   (eshell-command-result-equal "+ ${+ 1 2}3 3" 36)
   (eshell-command-result-equal "echo ${*echo \"foo\nbar\"}-baz"
                                '("foo" "bar-baz"))
@@ -230,11 +230,11 @@
                                '("hi" "23")))
 
 (ert-deftest esh-var-test/interp-concat-cmd2 ()
-  "Interpolate and concat two commands"
+  "Interpolate and concat two commands."
   (eshell-command-result-equal "+ ${+ 1 2}${+ 1 2} 3" 36))
 
 (ert-deftest esh-var-test/interp-concat-cmd-external ()
-  "Interpolate command result from external command with concatenation"
+  "Interpolate command result from external command with concatenation."
   (skip-unless (executable-find "echo"))
   (with-temp-eshell
    (eshell-match-command-output "echo ${echo hi}-${*echo there}"
@@ -244,7 +244,7 @@
 ;; Quoted variable interpolation
 
 (ert-deftest esh-var-test/quoted-interp-var ()
-  "Interpolate variable inside double-quotes"
+  "Interpolate variable inside double-quotes."
   (eshell-command-result-equal "echo \"$user-login-name\""
                                user-login-name))
 
@@ -256,7 +256,7 @@
                                (concat "hi, " user-login-name)))
 
 (ert-deftest esh-var-test/quoted-interp-list-var ()
-  "Interpolate list variable inside double-quotes"
+  "Interpolate list variable inside double-quotes."
   (let ((eshell-test-value '(1 2 3)))
     (eshell-command-result-equal "echo \"$eshell-test-value\""
                                  "(1 2 3)")))
@@ -268,7 +268,7 @@
                                  "a(1 2 3)z")))
 
 (ert-deftest esh-var-test/quoted-interp-var-indices ()
-  "Interpolate string variable with indices inside double-quotes"
+  "Interpolate string variable with indices inside double-quotes."
   (let ((eshell-test-value '("zero" "one" "two" "three" "four")))
     (eshell-command-result-equal "echo \"$eshell-test-value[0]\""
                                  "zero")
@@ -283,8 +283,7 @@
                                  "(\"one\" \"two\" \"four\")")))
 
 (ert-deftest esh-var-test/quote-interp-var-indices-subcommand ()
-  "Interpolate list variable with subcommand expansion for indices
-inside double-quotes"
+  "Interpolate list variable with subcommand expansion for indices inside 
double-quotes."
   (skip-unless (executable-find "echo"))
   (let ((eshell-test-value '("zero" "one" "two" "three" "four")))
     (eshell-command-result-equal
@@ -297,7 +296,7 @@ inside double-quotes"
      "(\"one\" \"two\")")))
 
 (ert-deftest esh-var-test/quoted-interp-var-split-indices ()
-  "Interpolate string variable with indices inside double-quotes"
+  "Interpolate string variable with indices inside double-quotes."
   (let ((eshell-test-value "zero one two three four"))
     (eshell-command-result-equal "echo \"$eshell-test-value[0]\""
                                  "zero")
@@ -305,8 +304,7 @@ inside double-quotes"
                                  "(\"zero\" \"two\")")))
 
 (ert-deftest esh-var-test/quoted-interp-var-string-split-indices ()
-  "Interpolate string variable with string splitter and indices
-inside double-quotes"
+  "Interpolate string variable with string splitter and indices inside 
double-quotes."
   (let ((eshell-test-value "zero:one:two:three:four"))
     (eshell-command-result-equal "echo \"$eshell-test-value[: 0]\""
                                  "zero")
@@ -319,7 +317,7 @@ inside double-quotes"
                                  "(\"zero\" \"two\")")))
 
 (ert-deftest esh-var-test/quoted-interp-var-regexp-split-indices ()
-  "Interpolate string variable with regexp splitter and indices"
+  "Interpolate string variable with regexp splitter and indices."
   (let ((eshell-test-value "zero:one!two:three!four"))
     (eshell-command-result-equal "echo \"$eshell-test-value['[:!]' 0]\""
                                  "zero")
@@ -332,7 +330,7 @@ inside double-quotes"
      "(\"zero\" \"two\")")))
 
 (ert-deftest esh-var-test/quoted-interp-var-assoc ()
-  "Interpolate alist variable with index inside double-quotes"
+  "Interpolate alist variable with index inside double-quotes."
   (let ((eshell-test-value '(("foo" . 1) (bar . 2))))
     (eshell-command-result-equal "echo \"$eshell-test-value[foo]\""
                                  "1")
@@ -340,7 +338,7 @@ inside double-quotes"
                                  "2")))
 
 (ert-deftest esh-var-test/quoted-interp-var-length-list ()
-  "Interpolate length of list variable inside double-quotes"
+  "Interpolate length of list variable inside double-quotes."
   (let ((eshell-test-value '((1 2) (3) (5 (6 7 8 9)))))
     (eshell-command-result-equal "echo \"$#eshell-test-value\""
                                  "3")
@@ -350,13 +348,13 @@ inside double-quotes"
                                  "4")))
 
 (ert-deftest esh-var-test/quoted-interp-var-length-string ()
-  "Interpolate length of string variable inside double-quotes"
+  "Interpolate length of string variable inside double-quotes."
   (let ((eshell-test-value "foobar"))
     (eshell-command-result-equal "echo \"$#eshell-test-value\""
                                  "6")))
 
 (ert-deftest esh-var-test/quoted-interp-var-length-alist ()
-  "Interpolate length of alist variable inside double-quotes"
+  "Interpolate length of alist variable inside double-quotes."
   (let ((eshell-test-value '(("foo" . (1 2 3)))))
     (eshell-command-result-equal "echo \"$#eshell-test-value\""
                                  "1")
@@ -364,7 +362,7 @@ inside double-quotes"
                                  "3")))
 
 (ert-deftest esh-var-test/quoted-interp-var-splice ()
-  "Splice-interpolate list variable inside double-quotes"
+  "Splice-interpolate list variable inside double-quotes."
   (let ((eshell-test-value '(1 2 3)))
     (eshell-command-result-equal "echo a \"$@eshell-test-value\" z"
                                  '("a" "1 2 3" "z"))))
@@ -376,27 +374,27 @@ inside double-quotes"
                                  "a1 2 3z")))
 
 (ert-deftest esh-var-test/quoted-interp-lisp ()
-  "Interpolate Lisp form evaluation inside double-quotes"
+  "Interpolate Lisp form evaluation inside double-quotes."
   (eshell-command-result-equal "echo \"hi $(concat \\\"the\\\" \\\"re\\\")\""
                                "hi there"))
 
 (ert-deftest esh-var-test/quoted-interp-lisp-indices ()
-  "Interpolate Lisp form evaluation with index"
+  "Interpolate Lisp form evaluation with index."
   (eshell-command-result-equal "concat \"$(list 1 2)[1]\" cool"
                                "2cool"))
 
 (ert-deftest esh-var-test/quoted-interp-cmd ()
-  "Interpolate command result inside double-quotes"
+  "Interpolate command result inside double-quotes."
   (eshell-command-result-equal "echo \"hi ${echo \\\"there\\\"}\""
                                "hi there"))
 
 (ert-deftest esh-var-test/quoted-interp-cmd-indices ()
-  "Interpolate command result with index inside double-quotes"
+  "Interpolate command result with index inside double-quotes."
   (eshell-command-result-equal "concat \"${listify 1 2}[1]\" cool"
                                "2cool"))
 
 (ert-deftest esh-var-test/quoted-interp-temp-cmd ()
-  "Interpolate command result redirected to temp file inside double-quotes"
+  "Interpolate command result redirected to temp file inside double-quotes."
   (let ((temporary-file-directory
          (file-name-as-directory (make-temp-file "esh-vars-tests" t))))
     (unwind-protect
@@ -404,7 +402,7 @@ inside double-quotes"
       (delete-directory temporary-file-directory t))))
 
 (ert-deftest esh-var-test/quoted-interp-concat-cmd ()
-  "Interpolate and concat command with literal"
+  "Interpolate and concat command with literal."
   (eshell-command-result-equal "echo \"${echo \\\"foo\nbar\\\"} baz\""
                                "foo\nbar baz"))
 
@@ -412,13 +410,13 @@ inside double-quotes"
 ;; Interpolating commands
 
 (ert-deftest esh-var-test/command-interp ()
-  "Interpolate a variable as a command name"
+  "Interpolate a variable as a command name."
   (let ((eshell-test-value "printnl"))
     (eshell-command-result-equal "$eshell-test-value hello there"
                                  "hello\nthere\n")))
 
 (ert-deftest esh-var-test/command-interp-splice ()
-  "Interpolate a splice variable as a command name with arguments"
+  "Interpolate a splice variable as a command name with arguments."
   (let ((eshell-test-value '("printnl" "hello" "there")))
     (eshell-command-result-equal "$@eshell-test-value"
                                  "hello\nthere\n")))
@@ -427,13 +425,13 @@ inside double-quotes"
 ;; Interpolated variable conversion
 
 (ert-deftest esh-var-test/interp-convert-var-number ()
-  "Interpolate numeric variable"
+  "Interpolate numeric variable."
   (let ((eshell-test-value 123))
     (eshell-command-result-equal "type-of $eshell-test-value"
                                  'integer)))
 
 (ert-deftest esh-var-test/interp-convert-var-split-indices ()
-  "Interpolate and convert string variable with indices"
+  "Interpolate and convert string variable with indices."
   ;; Check that numeric forms are converted to numbers.
   (let ((eshell-test-value "000 010 020 030 040"))
     (eshell-command-result-equal "echo $eshell-test-value[0]"
@@ -448,7 +446,7 @@ inside double-quotes"
                                  "baz\n")))
 
 (ert-deftest esh-var-test/interp-convert-quoted-var-number ()
-  "Interpolate numeric quoted numeric variable"
+  "Interpolate numeric quoted numeric variable."
   (let ((eshell-test-value 123))
     (eshell-command-result-equal "type-of $'eshell-test-value'"
                                  'integer)
@@ -456,7 +454,7 @@ inside double-quotes"
                                  'integer)))
 
 (ert-deftest esh-var-test/interp-convert-quoted-var-split-indices ()
-  "Interpolate and convert quoted string variable with indices"
+  "Interpolate and convert quoted string variable with indices."
   (let ((eshell-test-value "000 010 020 030 040"))
     (eshell-command-result-equal "echo $'eshell-test-value'[0]"
                                  0)
@@ -464,11 +462,11 @@ inside double-quotes"
                                  '(0 20))))
 
 (ert-deftest esh-var-test/interp-convert-cmd-string-newline ()
-  "Interpolate trailing-newline command result"
+  "Interpolate trailing-newline command result."
   (eshell-command-result-equal "echo ${echo \"foo\n\"}" "foo"))
 
 (ert-deftest esh-var-test/interp-convert-cmd-multiline ()
-  "Interpolate multi-line command result"
+  "Interpolate multi-line command result."
   (eshell-command-result-equal "echo ${echo \"foo\nbar\"}"
                                '("foo" "bar"))
   ;; Numeric output should be converted to numbers...
@@ -479,24 +477,24 @@ inside double-quotes"
                                '("01" "02" "hi")))
 
 (ert-deftest esh-var-test/interp-convert-cmd-number ()
-  "Interpolate numeric command result"
+  "Interpolate numeric command result."
   (eshell-command-result-equal "echo ${echo \"1\"}" 1))
 
 (ert-deftest esh-var-test/interp-convert-cmd-split-indices ()
-  "Interpolate command result with indices"
+  "Interpolate command result with indices."
   (eshell-command-result-equal "echo ${echo \"000 010 020\"}[0]"
                                0)
   (eshell-command-result-equal "echo ${echo \"000 010 020\"}[0 2]"
                                '(0 20)))
 
 (ert-deftest esh-var-test/quoted-interp-convert-var-number ()
-  "Interpolate numeric variable inside double-quotes"
+  "Interpolate numeric variable inside double-quotes."
   (let ((eshell-test-value 123))
     (eshell-command-result-equal "type-of \"$eshell-test-value\""
                                  'string)))
 
 (ert-deftest esh-var-test/quoted-interp-convert-var-split-indices ()
-  "Interpolate string variable with indices inside double-quotes"
+  "Interpolate string variable with indices inside double-quotes."
   (let ((eshell-test-value "000 010 020 030 040"))
     (eshell-command-result-equal "echo \"$eshell-test-value[0]\""
                                  "000")
@@ -504,7 +502,7 @@ inside double-quotes"
                                  "(\"000\" \"020\")")))
 
 (ert-deftest esh-var-test/quoted-interp-convert-quoted-var-number ()
-  "Interpolate numeric quoted variable inside double-quotes"
+  "Interpolate numeric quoted variable inside double-quotes."
   (let ((eshell-test-value 123))
     (eshell-command-result-equal "type-of \"$'eshell-test-value'\""
                                  'string)
@@ -512,7 +510,7 @@ inside double-quotes"
                                  'string)))
 
 (ert-deftest esh-var-test/quoted-interp-convert-quoted-var-split-indices ()
-  "Interpolate quoted string variable with indices inside double-quotes"
+  "Interpolate quoted string variable with indices inside double-quotes."
   (let ((eshell-test-value "000 010 020 030 040"))
     (eshell-command-result-equal "echo \"$eshell-test-value[0]\""
                                  "000")
@@ -520,23 +518,23 @@ inside double-quotes"
                                  "(\"000\" \"020\")")))
 
 (ert-deftest esh-var-test/quoted-interp-convert-cmd-string-newline ()
-  "Interpolate trailing-newline command result inside double-quotes"
+  "Interpolate trailing-newline command result inside double-quotes."
   (eshell-command-result-equal "echo \"${echo \\\"foo\n\\\"}\""
                                "foo")
   (eshell-command-result-equal "echo \"${echo \\\"foo\n\n\\\"}\""
                                "foo"))
 
 (ert-deftest esh-var-test/quoted-interp-convert-cmd-multiline ()
-  "Interpolate multi-line command result inside double-quotes"
+  "Interpolate multi-line command result inside double-quotes."
   (eshell-command-result-equal "echo \"${echo \\\"foo\nbar\\\"}\""
                                "foo\nbar"))
 
 (ert-deftest esh-var-test/quoted-interp-convert-cmd-number ()
-  "Interpolate numeric command result inside double-quotes"
+  "Interpolate numeric command result inside double-quotes."
   (eshell-command-result-equal "echo \"${echo \\\"1\\\"}\"" "1"))
 
 (ert-deftest esh-var-test/quoted-interp-convert-cmd-split-indices ()
-  "Interpolate command result with indices inside double-quotes"
+  "Interpolate command result with indices inside double-quotes."
   (eshell-command-result-equal "echo \"${echo \\\"000 010 020\\\"}[0]\""
                                "000"))
 
@@ -695,19 +693,19 @@ it, since the setter is nil."
                                (window-body-height nil 'remap)))
 
 (ert-deftest esh-var-test/columns-var ()
-  "$COLUMNS should equal (window-body-width nil 'remap)"
+  "$COLUMNS should equal (window-body-width nil 'remap)."
   (eshell-command-result-equal "echo $COLUMNS"
                                (window-body-width nil 'remap)))
 
 (ert-deftest esh-var-test/inside-emacs-var ()
-  "Test presence of \"INSIDE_EMACS\" in subprocesses"
+  "Test presence of \"INSIDE_EMACS\" in subprocesses."
   (with-temp-eshell
    (eshell-match-command-output "env"
                                 (format "INSIDE_EMACS=%s,eshell"
                                         emacs-version))))
 
 (ert-deftest esh-var-test/inside-emacs-var-split-indices ()
-  "Test using \"INSIDE_EMACS\" with split indices"
+  "Test using \"INSIDE_EMACS\" with split indices."
   (with-temp-eshell
    (eshell-match-command-output "echo $INSIDE_EMACS[, 1]"
                                 "eshell")))
@@ -776,7 +774,7 @@ it, since the setter is nil."
   (eshell-command-result-equal "echo $UID" (user-uid)))
 
 (ert-deftest esh-var-test/last-status-var-lisp-command ()
-  "Test using the \"last exit status\" ($?) variable with a Lisp command"
+  "Test using the \"last exit status\" ($?) variable with a Lisp command."
   (with-temp-eshell
    (eshell-match-command-output "zerop 0; echo $?"
                                 "t\n0\n")
@@ -786,7 +784,7 @@ it, since the setter is nil."
                                 "1\n" nil t)))
 
 (ert-deftest esh-var-test/last-status-var-lisp-form ()
-  "Test using the \"last exit status\" ($?) variable with a Lisp form"
+  "Test using the \"last exit status\" ($?) variable with a Lisp form."
   (let ((eshell-lisp-form-nil-is-failure t))
     (with-temp-eshell
      (eshell-match-command-output "(zerop 0); echo $?"
@@ -809,7 +807,7 @@ This tests when `eshell-lisp-form-nil-is-failure' is nil."
                                   "1\n" nil t))))
 
 (ert-deftest esh-var-test/last-status-var-ext-cmd ()
-  "Test using the \"last exit status\" ($?) variable with an external command"
+  "Test using the \"last exit status\" ($?) variable with an external command."
   (skip-unless (executable-find "["))
   (with-temp-eshell
    (eshell-match-command-output "[ foo = foo ]; echo $?"
@@ -818,19 +816,19 @@ This tests when `eshell-lisp-form-nil-is-failure' is nil."
                                 "1\n")))
 
 (ert-deftest esh-var-test/last-result-var ()
-  "Test using the \"last result\" ($$) variable"
+  "Test using the \"last result\" ($$) variable."
   (with-temp-eshell
    (eshell-match-command-output "+ 1 2; + $$ 2"
                                 "3\n5\n")))
 
 (ert-deftest esh-var-test/last-result-var-twice ()
-  "Test using the \"last result\" ($$) variable twice"
+  "Test using the \"last result\" ($$) variable twice."
   (with-temp-eshell
    (eshell-match-command-output "+ 1 2; + $$ $$"
                                 "3\n6\n")))
 
 (ert-deftest esh-var-test/last-result-var-ext-cmd ()
-  "Test using the \"last result\" ($$) variable with an external command"
+  "Test using the \"last result\" ($$) variable with an external command."
   (skip-unless (executable-find "["))
   (with-temp-eshell
    ;; MS-DOS/MS-Windows have an external command 'format', which we
@@ -842,7 +840,7 @@ This tests when `eshell-lisp-form-nil-is-failure' is nil."
                                   "nil\n"))))
 
 (ert-deftest esh-var-test/last-result-var-split-indices ()
-  "Test using the \"last result\" ($$) variable with split indices"
+  "Test using the \"last result\" ($$) variable with split indices."
   (with-temp-eshell
    (eshell-match-command-output
     "string-join (list \"01\" \"02\") :; + $$[: 1] 3"
@@ -852,13 +850,13 @@ This tests when `eshell-lisp-form-nil-is-failure' is nil."
     "01:02\n02\n")))
 
 (ert-deftest esh-var-test/last-arg-var ()
-  "Test using the \"last arg\" ($_) variable"
+  "Test using the \"last arg\" ($_) variable."
   (with-temp-eshell
    (eshell-match-command-output "+ 1 2; + $_ 4"
                                 "3\n6\n")))
 
 (ert-deftest esh-var-test/last-arg-var-indices ()
-  "Test using the \"last arg\" ($_) variable with indices"
+  "Test using the \"last arg\" ($_) variable with indices."
   (with-temp-eshell
    (eshell-match-command-output "+ 1 2; + $_[0] 4"
                                 "3\n5\n")
@@ -866,7 +864,7 @@ This tests when `eshell-lisp-form-nil-is-failure' is nil."
                                 "3\n6\n")))
 
 (ert-deftest esh-var-test/last-arg-var-split-indices ()
-  "Test using the \"last arg\" ($_) variable with split indices"
+  "Test using the \"last arg\" ($_) variable with split indices."
   (with-temp-eshell
    (eshell-match-command-output "concat 01:02 03:04; + $_[0][: 1] 5"
                                 "01:0203:04\n7\n")



reply via email to

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