commit b4655ff99b512f30220f22226514267d78a70605 (HEAD, refs/remotes/origin/master) Author: Jim Porter Date: Fri Nov 1 13:11:47 2024 -0700 Remove 'eshell-escape-arg' Eshell no longer needs this function, since all command parsing is performed first, with special syntax annotated with text properties as needed, as opposed to marking literal text with a property (bug#54486). * lisp/eshell/em-pred.el (eshell-modifier-alist): Make "q" modifier obsolete. (eshell-modifier-help-string): Remove mention of "q". * lisp/eshell/esh-arg.el (eshell-escape-arg): Make obsolete. (eshell-parse-backslash, eshell-parse-literal-quote) (eshell-parse-double-quote): Don't call 'eshell-escape-arg'. * lisp/eshell/esh-var.el (eshell-parse-variable): Don't call 'eshell-escape-arg'. * test/lisp/eshell/em-extpipe-tests.el (em-extpipe-test-2) (em-extpipe-test-9, em-extpipe-test-11): Remove 'eshell-escape-arg'. * test/lisp/eshell/em-pred-tests.el (em-pred-test/modifier-quote): Remove test. * test/lisp/eshell/esh-var-tests.el (esh-var-test/quoted-interp-var-indices) (esh-var-test/quote-interp-var-indices-subcommand): Remove workaround in tests. * doc/misc/eshell.texi (Argument Modifiers): Remove documentation of obsolete "q" modifier. diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index fda1632f1ac..709417a7efb 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi @@ -2255,11 +2255,6 @@ Treating the value as a file name, gets the file name excluding the final extension. For example, @samp{foo/bar/baz.tar.gz(:r)} expands to @samp{foo/bar/baz.tar}. -@item q -Marks that the value should be interpreted by Eshell literally, so -that any special characters like @samp{$} no longer have any special -meaning. - @item s/@var{pattern}/@var{replace}/ Replaces the first instance of the regular expression @var{pattern} with @var{replace}. Signals an error if no match is found. diff --git a/lisp/eshell/em-pred.el b/lisp/eshell/em-pred.el index df7438ffa4d..16946eb5bfc 100644 --- a/lisp/eshell/em-pred.el +++ b/lisp/eshell/em-pred.el @@ -121,7 +121,7 @@ The format of each entry is (?r . (lambda (lst) (mapcar #'file-name-sans-extension lst))) (?e . (lambda (lst) (mapcar #'file-name-extension lst))) (?t . (lambda (lst) (mapcar #'file-name-nondirectory lst))) - (?q . (lambda (lst) (mapcar #'eshell-escape-arg lst))) + (?q . #'identity) ; Obsolete as of Emacs 31.1. (?u . (lambda (lst) (seq-uniq lst))) (?o . (lambda (lst) (sort lst #'string-lessp))) (?O . (lambda (lst) (sort lst #'string-greaterp))) @@ -197,7 +197,6 @@ FOR SINGLE ARGUMENTS, or each argument of a list of strings: t basename e file extension r strip file extension - q escape special characters S split string at any whitespace character S/PAT/ split string at each occurrence of PAT diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el index 8a23bfe20b4..937f1f435f0 100644 --- a/lisp/eshell/esh-arg.el +++ b/lisp/eshell/esh-arg.el @@ -209,6 +209,7 @@ Eshell will expand special refs like \"#\" into (defsubst eshell-escape-arg (string) "Return STRING with the `escaped' property on it." + (declare (obsolete nil "31.1")) (if (stringp string) (add-text-properties 0 (length string) '(escaped t) string)) string) @@ -540,53 +541,46 @@ after are both returned." (when (= (1+ (point)) (point-max)) (throw 'eshell-incomplete "\\")) (forward-char 2) ; Move one char past the backslash. - (let ((special-chars (if eshell-current-quoted - eshell-special-chars-inside-quoting - eshell-special-chars-outside-quoting))) - (cond - ;; Escaped newlines are extra-special: they expand to an empty - ;; token to allow for continuing Eshell commands across - ;; multiple lines. - ((eq (char-before) ?\n) - 'eshell-empty-token) - ((memq (char-before) special-chars) - (list 'eshell-escape-arg (char-to-string (char-before)))) - ;; If the char is in a quote, backslash only has special - ;; meaning if it is escaping a special char. Otherwise, the - ;; result is the literal string "\c". - (eshell-current-quoted - (concat "\\" (char-to-string (char-before)))) - (t - (char-to-string (char-before))))))) + (cond + ;; Escaped newlines are extra-special: they expand to an empty + ;; token to allow for continuing Eshell commands across + ;; multiple lines. + ((eq (char-before) ?\n) + 'eshell-empty-token) + ;; If the char is in a quote, backslash only has special + ;; meaning if it is escaping a special char. Otherwise, the + ;; result is the literal string "\c". + ((and eshell-current-quoted + (not (memq (char-before) eshell-special-chars-inside-quoting))) + (concat "\\" (char-to-string (char-before)))) + (t + (char-to-string (char-before)))))) (defun eshell-parse-literal-quote () "Parse a literally quoted string. Nothing has special meaning!" - (if (eq (char-after) ?\') - (let ((end (eshell-find-delimiter ?\' ?\'))) - (if (not end) - (throw 'eshell-incomplete "'") - (let ((string (buffer-substring-no-properties (1+ (point)) end))) - (goto-char (1+ end)) - (while (string-match "''" string) - (setq string (replace-match "'" t t string))) - (list 'eshell-escape-arg string)))))) + (when (eq (char-after) ?\') + (let ((end (eshell-find-delimiter ?\' ?\'))) + (unless end + (throw 'eshell-incomplete "'")) + (let ((string (buffer-substring-no-properties (1+ (point)) end))) + (goto-char (1+ end)) + (while (string-match "''" string) + (setq string (replace-match "'" t t string))) + string)))) (defun eshell-parse-double-quote () "Parse a double quoted string, which allows for variable interpolation." (when (eq (char-after) ?\") (let* ((end (eshell-find-delimiter ?\" ?\" nil nil t)) - (eshell-current-quoted t)) - (if (not end) - (throw 'eshell-incomplete "\"") - (prog1 - (save-restriction - (forward-char) - (narrow-to-region (point) end) - (let ((arg (eshell-parse-argument))) - (if (eq arg nil) - "" - (list 'eshell-escape-arg arg)))) - (goto-char (1+ end))))))) + (eshell-current-quoted t)) + (unless end + (throw 'eshell-incomplete "\"")) + (prog1 + (save-restriction + (forward-char) + (narrow-to-region (point) end) + (or (eshell-parse-argument) "")) + (goto-char (1+ end)))))) (defun eshell-unescape-inner-double-quote (bound) "Unescape escaped characters inside a double-quoted string. diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el index f46f5ef839c..b6bae7a379c 100644 --- a/lisp/eshell/esh-var.el +++ b/lisp/eshell/esh-var.el @@ -496,7 +496,6 @@ process any indices that come after the variable reference." (setq value `(eshell-list-to-string ,value) splice nil) (setq value `(eshell-stringify ,value t)))) - (setq value `(eshell-escape-arg ,value)) (when splice (setq value `(eshell-splice-args ,value))) value)) diff --git a/test/lisp/eshell/em-extpipe-tests.el b/test/lisp/eshell/em-extpipe-tests.el index 4c3adbc2d90..b7573806ad8 100644 --- a/test/lisp/eshell/em-extpipe-tests.el +++ b/test/lisp/eshell/em-extpipe-tests.el @@ -93,7 +93,7 @@ (skip-unless (executable-find "rev")) (should-parse '(eshell-execute-pipeline - '((eshell-named-command "echo" (list (eshell-escape-arg "bar"))) + '((eshell-named-command "echo" (list "bar")) (eshell-named-command "sh" (list "-c" "rev >temp"))))) (with-substitute-for-temp (eshell-match-command-output input "^$") @@ -156,8 +156,7 @@ (em-extpipe-tests--deftest em-extpipe-test-9 "foo \\*| bar" (should-parse '(eshell-execute-pipeline - '((eshell-named-command "foo" - (list (eshell-escape-arg "*"))) + '((eshell-named-command "foo" (list "*")) (eshell-named-command "bar"))))) (em-extpipe-tests--deftest em-extpipe-test-10 "foo \"*|\" *>bar" @@ -165,8 +164,7 @@ '(eshell-named-command "sh" (list "-c" "foo \"*|\" >bar")))) (em-extpipe-tests--deftest em-extpipe-test-11 "foo '*|' bar" - (should-parse '(eshell-named-command - "foo" (list (eshell-escape-arg "*|") "bar")))) + (should-parse '(eshell-named-command "foo" (list "*|" "bar")))) (em-extpipe-tests--deftest em-extpipe-test-12 ">foo bar *| baz" (should-parse diff --git a/test/lisp/eshell/em-pred-tests.el b/test/lisp/eshell/em-pred-tests.el index 3bffc918b66..71d5bf6c62e 100644 --- a/test/lisp/eshell/em-pred-tests.el +++ b/test/lisp/eshell/em-pred-tests.el @@ -417,12 +417,6 @@ PREDICATE is the predicate used to query that attribute." '("/path/to/file.el" "/other/path/") ":r") '("/path/to/file" "/other/path/")))) -(ert-deftest em-pred-test/modifier-quote () - "Test that \":q\" quotes arguments." - (should (equal-including-properties - (eshell-eval-predicate '("foo" "bar") ":q") - (list (eshell-escape-arg "foo") (eshell-escape-arg "bar"))))) - (ert-deftest em-pred-test/modifier-substitute () "Test that \":s/PAT/REP/\" replaces PAT with REP once." (should (equal (eshell-eval-predicate "bar" ":s/a/*/") "b*r")) diff --git a/test/lisp/eshell/esh-var-tests.el b/test/lisp/eshell/esh-var-tests.el index 2f8ac32b0b5..d8ebd02f168 100644 --- a/test/lisp/eshell/esh-var-tests.el +++ b/test/lisp/eshell/esh-var-tests.el @@ -342,15 +342,10 @@ nil, use FUNCTION instead." (let ((eshell-test-value '("zero" "one" "two" "three" "four"))) (eshell-command-result-equal "echo \"$eshell-test-value[0]\"" "zero") - ;; FIXME: These tests would use the 0th index like the other tests - ;; here, but evaluating the command just above adds an `escaped' - ;; property to the string "zero". This results in the output - ;; printing the string properties, which is probably the wrong - ;; behavior. See bug#54486. - (eshell-command-result-equal "echo \"$eshell-test-value[1 2]\"" - "(\"one\" \"two\")") - (eshell-command-result-equal "echo \"$eshell-test-value[1 2 4]\"" - "(\"one\" \"two\" \"four\")"))) + (eshell-command-result-equal "echo \"$eshell-test-value[0 2]\"" + "(\"zero\" \"two\")") + (eshell-command-result-equal "echo \"$eshell-test-value[0 2 4]\"" + "(\"zero\" \"two\" \"four\")"))) (ert-deftest esh-var-test/quote-interp-var-indices-subcommand () "Interpolate list variable with subcommand expansion for indices inside double-quotes." @@ -359,11 +354,9 @@ nil, use FUNCTION instead." (eshell-command-result-equal "echo \"$eshell-test-value[${*echo 0}]\"" "zero") - ;; FIXME: These tests would use the 0th index like the other tests - ;; here, but see above. (eshell-command-result-equal - "echo \"$eshell-test-value[${*echo 1} ${*echo 2}]\"" - "(\"one\" \"two\")"))) + "echo \"$eshell-test-value[${*echo 0} ${*echo 2}]\"" + "(\"zero\" \"two\")"))) (ert-deftest esh-var-test/quoted-interp-var-split-indices () "Interpolate string variable with indices inside double-quotes." commit f713258416f224b93e4f25b2db24d5e8797bcbff Author: Stefan Monnier Date: Sat Nov 23 22:05:33 2024 -0500 (dir-locals-collect-variables): Don't autoload if not needed (bug#74349) While dir-local settings for `c-mode` may require (auto)loading `cc-mode.el` to get all the `safe-local-variable` properties, they may not. So before (auto)loading that file, make sure we don't already have all the `safe-local-variable` properties we need. * lisp/files.el (dir-locals--load-mode-if-needed): New function. (hack-one-local-variable): Don't inf-loop if `eval` calls a major mode. (dir-locals-collect-variables): Use `dir-locals--load-mode-if-needed`. diff --git a/lisp/files.el b/lisp/files.el index db1e46b1ba4..72f3604054e 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -4438,7 +4438,8 @@ already the major mode." ('eval (pcase val (`(add-hook ',hook . ,_) (hack-one-local-variable--obsolete hook))) - (save-excursion (eval val t))) + (let ((enable-local-variables nil)) ;FIXME: Should be buffer-local! + (save-excursion (eval val t)))) (_ (hack-one-local-variable--obsolete var) ;; Make sure the string has no text properties. @@ -4484,6 +4485,21 @@ Returns the new list." ;; Need a new cons in case we setcdr later. (push (cons variable value) variables))))) +(defun dir-locals--load-mode-if-needed (key alist) + ;; If KEY is an extra parent it may remain not loaded + ;; (hence with some of its mode-specific vars missing their + ;; `safe-local-variable' property), leading to spurious + ;; prompts about unsafe vars (bug#68246). + (when (and (symbolp key) (autoloadp (indirect-function key))) + (let ((unsafe nil)) + (pcase-dolist (`(,var . ,_val) alist) + (unless (or (memq var '(mode eval)) + (get var 'safe-local-variable)) + (setq unsafe t))) + (when unsafe + (ignore-errors + (autoload-do-load (indirect-function key))))))) + (defun dir-locals-collect-variables (class-variables root variables &optional predicate) "Collect entries from CLASS-VARIABLES into VARIABLES. @@ -4514,15 +4530,9 @@ to see whether it should be considered." (funcall predicate key) (or (not key) (derived-mode-p key))) - ;; If KEY is an extra parent it may remain not loaded - ;; (hence with some of its mode-specific vars missing their - ;; `safe-local-variable' property), leading to spurious - ;; prompts about unsafe vars (bug#68246). - (if (and (symbolp key) (autoloadp (indirect-function key))) - (ignore-errors (autoload-do-load (indirect-function key)))) (let* ((alist (cdr entry)) (subdirs (assq 'subdirs alist))) - (if (or (not subdirs) + (when (or (not subdirs) (progn (setq alist (remq subdirs alist)) (cdr-safe subdirs)) @@ -4531,6 +4541,7 @@ to see whether it should be considered." ;; variables apply to this directory and N levels ;; below it (0 == nil). (equal root (expand-file-name default-directory))) + (dir-locals--load-mode-if-needed key alist) (setq variables (dir-locals-collect-mode-variables alist variables)))))))) (error commit e71d714a815e1088f8cfe946b1e431356ec85b24 Author: john muhl Date: Sat Nov 23 14:08:21 2024 -0600 Avoid loading 'rx' at runtime in 'lua-ts-mode' * lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua): Replace 'rx-to-string' and substitution with 'rx' and 'literal'. (Bug#74499) diff --git a/lisp/progmodes/lua-ts-mode.el b/lisp/progmodes/lua-ts-mode.el index f88fe0e49af..828636f359d 100644 --- a/lisp/progmodes/lua-ts-mode.el +++ b/lisp/progmodes/lua-ts-mode.el @@ -659,9 +659,9 @@ Calls REPORT-FN directly." (setq-local comint-input-ignoredups t comint-input-ring-file-name lua-ts-inferior-history comint-prompt-read-only t - comint-prompt-regexp (rx-to-string `(: bol - ,lua-ts-inferior-prompt - (1+ space)))) + comint-prompt-regexp (rx bol + (literal lua-ts-inferior-prompt) + (1+ space))) (comint-read-input-ring t) (add-hook 'comint-preoutput-filter-functions (lambda (string) @@ -672,11 +672,11 @@ Calls REPORT-FN directly." ;; accumulate in the output when sending regions ;; to the inferior process. (replace-regexp-in-string - (rx-to-string `(: bol - (* ,lua-ts-inferior-prompt - (? ,lua-ts-inferior-prompt) - (1+ space)) - (group (* nonl)))) + (rx bol + (* (literal lua-ts-inferior-prompt) + (? (literal lua-ts-inferior-prompt)) + (1+ space)) + (group (* nonl))) "\\1" string) ;; Re-add the prompt for the next line. lua-ts-inferior-prompt " "))) commit eb1756a8a551d345397b0ef52cac8b8c62f4f1f2 Author: Sean Whitton Date: Sun Nov 24 08:44:18 2024 +0800 Improve marking if-let and when-let obsolete * lisp/subr.el (if-let): Use a declaration instead of make-obsolete. (when-let): Use a declaration instead of make-obsolete. Use with-suppressed-warnings to avoid generating two warnings. diff --git a/lisp/subr.el b/lisp/subr.el index 6ba92d56b3f..a959c6a9810 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2683,7 +2683,8 @@ binding." (declare (indent 2) (debug ([&or (symbolp form) ; must be first, Bug#48489 (&rest [&or symbolp (symbolp form) (form)])] - body))) + body)) + (obsolete if-let* "31.1")) (when (and (<= (length spec) 2) (not (listp (car spec)))) ;; Adjust the single binding case @@ -2696,12 +2697,10 @@ Evaluate each binding in turn, stopping if a binding value is nil. If all are non-nil, return the value of the last form in BODY. The variable list SPEC is the same as in `if-let'." - (declare (indent 1) (debug if-let)) - (list 'if-let spec (macroexp-progn body))) - -(make-obsolete 'if-let 'if-let* "31.1") -(make-obsolete 'when-let "use `when-let*' or `and-let*' instead." - "31.1") + (declare (indent 1) (debug if-let) + (obsolete "use `when-let*' or `and-let*' instead." "31.1")) + `(with-suppressed-warnings ((obsolete if-let)) + (if-let ,spec ,(macroexp-progn body)))) (defmacro while-let (spec &rest body) "Bind variables according to SPEC and conditionally evaluate BODY. commit 043830577332a6b32209bed8fa2efca24ed56ab0 Author: Stefan Kangas Date: Sat Nov 23 18:36:01 2024 +0100 ; * etc/symbol-releases.eld: Rearrange. diff --git a/etc/symbol-releases.eld b/etc/symbol-releases.eld index 270761c3e16..3febf0a10bb 100644 --- a/etc/symbol-releases.eld +++ b/etc/symbol-releases.eld @@ -12,6 +12,11 @@ ("28.1" fun always) ("26.1" fun when-let*) ("26.1" fun if-let*) + ("24.4" fun set-transient-map) + ("22.1" fun version=) + ("22.1" fun version<) + ("22.1" fun version<=) + ("22.1" fun read-number) ;; Since much of early Emacs source history is lost, these versions are ;; conservative estimates: the actual version of first appearance may very @@ -20,11 +25,6 @@ ;; damaged. See ;; https://github.com/larsbrinkhoff/emacs-history/tree/sources/decuslib.com/decus/vax85b/gnuemax - ("24.4" fun set-transient-map) - ("22.1" fun version=) - ("22.1" fun version<) - ("22.1" fun version<=) - ("22.1" fun read-number) ("19.7" fun defsubst) ("19.34" fun make-directory) ("18.59" fun mark) commit 80a2c74f3be935b115b00b0c15532d0ff2079dad Author: Stefan Kangas Date: Sat Nov 23 18:33:14 2024 +0100 ; * etc/symbol-releases.eld: Add if-let/when-let. diff --git a/etc/symbol-releases.eld b/etc/symbol-releases.eld index bdf5858102e..270761c3e16 100644 --- a/etc/symbol-releases.eld +++ b/etc/symbol-releases.eld @@ -10,6 +10,8 @@ ( ("28.1" fun always) + ("26.1" fun when-let*) + ("26.1" fun if-let*) ;; Since much of early Emacs source history is lost, these versions are ;; conservative estimates: the actual version of first appearance may very commit abcc8c717d80ddffaa68a30ff59bc71d35eb52e3 Author: Michael Albinus Date: Sat Nov 23 18:33:26 2024 +0100 ; Fix bootstrap * lisp/net/tramp.el (tramp-initial-file-name-regexp) (tramp-autoload-file-name-regexp): Don't use `rx' in autoloaded objects. (Bug#74490) diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 6d384d97db6..7b14469fb55 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -1208,7 +1208,10 @@ See also `tramp-file-name-regexp'.") ;;;###autoload (defconst tramp-initial-file-name-regexp - (rx bos "/" (+ (not (any "/:"))) ":" (* (not (any "/:"))) ":") + ;; We shouldn't use `rx' in autoloaded objects, because we don't + ;; know whether it does exist already. (Bug#74490) + ;; (rx bos "/" (+ (not (any "/:"))) ":" (* (not (any "/:"))) ":") + "\\`/[^/:]+:[^/:]*:" "Value for `tramp-file-name-regexp' for autoload. It must match the initial `tramp-syntax' settings.") @@ -1287,7 +1290,10 @@ Also see `tramp-file-name-structure'.") ;;;###autoload (defconst tramp-autoload-file-name-regexp ;; The method is either "-", or at least two characters. - (rx bos "/" (| "-" (>= 2 (not (any "/:|")))) ":") + ;; We shouldn't use `rx' in autoloaded objects, because we don't + ;; know whether it does exist already. (Bug#74490) + ;; (rx bos "/" (| "-" (>= 2 (not (any "/:|")))) ":") + "\\`/\\(?:-\\|[^/:|]\\{2,\\}\\):" "Regular expression matching file names handled by Tramp autoload. It must match the initial `tramp-syntax' settings. It should not match file names at root of the underlying local file system, commit d4cb3b30f18f4ac2c4a2ed21a4084d2209987382 Author: Stefan Kangas Date: Sat Nov 23 16:42:46 2024 +0100 ; Fix bootstrap (Bug#74490) * lisp/progmodes/python.el (python--auto-mode-alist-regexp): Don't use rx in autoloaded variable, since it breaks bootstrap when copied to ldefs-boot.el. * lisp/ldefs-boot.el: Update. diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index c3d83746c1d..648633004c9 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -26407,7 +26407,7 @@ Optional argument FACE specifies the face to do the highlighting. ;;; Generated autoloads from progmodes/python.el (push (purecopy '(python 0 28)) package--builtin-versions) -(defconst python--auto-mode-alist-regexp (rx (or (seq "." (or "py" "pth" "pyi" "pyw")) (seq "/" (or "SConstruct" "SConscript"))) eos)) +(defconst python--auto-mode-alist-regexp "\\(?:\\.\\(?:p\\(?:th\\|y[iw]?\\)\\)\\|/\\(?:SCons\\(?:\\(?:crip\\|truc\\)t\\)\\)\\)\\'") (add-to-list 'auto-mode-alist (cons python--auto-mode-alist-regexp 'python-mode)) (add-to-list 'interpreter-mode-alist (cons (purecopy "python[0-9.]*") 'python-mode)) (autoload 'run-python "python" "\ diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 2438029bfdd..cfa3cc59568 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -278,13 +278,15 @@ ;;;###autoload (defconst python--auto-mode-alist-regexp - (rx (or - (seq "." (or "py" - "pth" ; Python Path Configuration File - "pyi" ; Python Stub File (PEP 484) - "pyw")) ; MS-Windows specific extension - (seq "/" (or "SConstruct" "SConscript"))) ; SCons Build Files - eos)) + ;; (rx (or + ;; (seq "." (or "py" + ;; "pth" ; Python Path Configuration File + ;; "pyi" ; Python Stub File (PEP 484) + ;; "pyw")) ; MS-Windows specific extension + ;; (seq "/" (or "SConstruct" "SConscript"))) ; SCons Build Files + ;; eos) + "\\(?:\\.\\(?:p\\(?:th\\|y[iw]?\\)\\)\\|/\\(?:SCons\\(?:\\(?:crip\\|truc\\)t\\)\\)\\)\\'" + ) ;;;###autoload (add-to-list 'auto-mode-alist (cons python--auto-mode-alist-regexp 'python-mode)) commit 30bcba27c8c8c89c4ba9d81fc96edf173329a7e6 Author: Eshel Yaron Date: Sun Nov 17 16:55:30 2024 +0100 Give Completion Preview bindings higher precedence * lisp/completion-preview.el (completion-preview-active-mode): add keymap to 'minor-mode-overriding-map-alist' so it takes precedence over other minor mode maps that bind TAB, such as 'eshell-cmpl-mode' in Eshell. (bug#74404) diff --git a/lisp/completion-preview.el b/lisp/completion-preview.el index 4564812e8a9..0fae7e94fdb 100644 --- a/lisp/completion-preview.el +++ b/lisp/completion-preview.el @@ -322,8 +322,15 @@ Completion Preview mode adds this function to "Mode for when the completion preview is shown." :interactive nil (if completion-preview-active-mode - (add-hook 'window-selection-change-functions - #'completion-preview--window-selection-change nil t) + (progn + (add-hook 'window-selection-change-functions + #'completion-preview--window-selection-change nil t) + ;; Give keymap precedence over other minor mode maps. + ;; TODO: Use explicit minor mode precedence instead when + ;; implemented (bug#74492). + (setf (alist-get 'completion-preview-active-mode + minor-mode-overriding-map-alist) + completion-preview-active-mode-map)) (remove-hook 'window-selection-change-functions #'completion-preview--window-selection-change t) (completion-preview-hide))) commit 902696c3ae3ed046208c57de923362bb609da6df Author: Christophe Troestler Date: Fri Oct 18 23:50:06 2024 +0200 Rust ts: fontify as type the possible suffix of number literals * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-number-literal): Perform the improved fontification of numbers. (Bug#73877) * test/lisp/progmodes/rust-ts-mode-tests.el: * test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs: * test/lisp/progmodes/rust-ts-mode-resources/font-lock-number.rs: Add tests for the new optional fontification of the possible type suffix of numbers. diff --git a/etc/NEWS b/etc/NEWS index 796a55fdc82..d7047d0923f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -608,6 +608,13 @@ the built-in Web server. Interactively, when invoked with a prefix argument, 'php-ts-mode-run-php-webserver' prompts for the config file as well as for other connection parameters. +** Rust-ts mode + +--- +*** New user option 'rust-ts-mode-fontify-number-suffix-as-type'. +Rust number literals may have an optional type suffix. When this option +is non-nil, this suffix is fontified using 'font-lock-type-face'. + ** Ediff +++ diff --git a/lisp/progmodes/rust-ts-mode.el b/lisp/progmodes/rust-ts-mode.el index e52ea3b125a..7a421eb506b 100644 --- a/lisp/progmodes/rust-ts-mode.el +++ b/lisp/progmodes/rust-ts-mode.el @@ -62,6 +62,15 @@ to be checked as its standard input." (repeat :tag "Custom command" string)) :group 'rust) +(defcustom rust-ts-mode-fontify-number-suffix-as-type nil + "If non-nil, suffixes of number literals are fontified as types. +In Rust, number literals can possess an optional type suffix. When this +variable is non-nil, these suffixes are fontified using +`font-lock-type-face' instead of `font-lock-number-face'." + :version "31.1" + :type 'boolean + :group 'rust) + (defvar rust-ts-mode-prettify-symbols-alist '(("&&" . ?∧) ("||" . ?∨) ("<=" . ?≤) (">=" . ?≥) ("!=" . ?≠) @@ -116,6 +125,12 @@ to be checked as its standard input." ((parent-is "use_list") parent-bol rust-ts-mode-indent-offset))) "Tree-sitter indent rules for `rust-ts-mode'.") +(defconst rust-ts-mode--number-types + (regexp-opt '("u8" "i8" "u16" "i16" "u32" "i32" "u64" + "i64" "u128" "i128" "usize" "isize" "f32" "f64")) + "Regexp matching type suffixes of number literals. +See https://doc.rust-lang.org/reference/tokens.html#suffixes.") + (defvar rust-ts-mode--builtin-macros '("concat_bytes" "concat_idents" "const_format_args" "format_args_nl" "log_syntax" "trace_macros" "assert" "assert_eq" @@ -221,7 +236,8 @@ to be checked as its standard input." :language 'rust :feature 'number - '([(float_literal) (integer_literal)] @font-lock-number-face) + '([(float_literal) (integer_literal)] + @rust-ts-mode--fontify-number-literal) :language 'rust :feature 'operator @@ -369,6 +385,25 @@ to be checked as its standard input." (treesit-node-start id) (treesit-node-end id) 'font-lock-variable-name-face override start end))))))) +(defun rust-ts-mode--fontify-number-literal (node override start stop &rest _) + "Fontify number literals, highlighting the optional type suffix. +If `rust-ts-mode-fontify-number-suffix-as-type' is non-nil, use +`font-lock-type-face' to highlight the suffix." + (let* ((beg (treesit-node-start node)) + (end (treesit-node-end node))) + (save-excursion + (goto-char end) + (if (and rust-ts-mode-fontify-number-suffix-as-type + (looking-back rust-ts-mode--number-types beg)) + (let* ((ty (match-beginning 0)) + (nb (if (eq (char-before ty) ?_) (1- ty) ty))) + (treesit-fontify-with-override + ty end 'font-lock-type-face override start stop) + (treesit-fontify-with-override + beg nb 'font-lock-number-face override start stop)) + (treesit-fontify-with-override + beg end 'font-lock-number-face override start stop))))) + (defun rust-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." diff --git a/test/lisp/progmodes/rust-ts-mode-resources/font-lock-number.rs b/test/lisp/progmodes/rust-ts-mode-resources/font-lock-number.rs new file mode 100644 index 00000000000..ed5b222d5ff --- /dev/null +++ b/test/lisp/progmodes/rust-ts-mode-resources/font-lock-number.rs @@ -0,0 +1,17 @@ +fn main() { + let x = 1usize; +// ^ font-lock-number-face +// ^ font-lock-type-face + let x = 1_usize; +// ^ font-lock-number-face +// ^ font-lock-type-face + let x = 1_f64; +// ^ font-lock-number-face +// ^ font-lock-type-face + let x = 1.0f64; +// ^ font-lock-number-face +// ^ font-lock-type-face + let x = 1.0_f64; +// ^ font-lock-number-face +// ^ font-lock-type-face +} diff --git a/test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs b/test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs index 377cda0e3b9..1f549085e3f 100644 --- a/test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs +++ b/test/lisp/progmodes/rust-ts-mode-resources/font-lock.rs @@ -23,3 +23,21 @@ macro_rules! unsafe_foo { // ^ font-lock-operator-face } }; + +fn main() { + let x = 1usize; +// ^ font-lock-number-face +// ^ font-lock-number-face + let x = 1_usize; +// ^ font-lock-number-face +// ^ font-lock-number-face + let x = 1_f64; +// ^ font-lock-number-face +// ^ font-lock-number-face + let x = 1.0f64; +// ^ font-lock-number-face +// ^ font-lock-number-face + let x = 1.0_f64; +// ^ font-lock-number-face +// ^ font-lock-number-face +} diff --git a/test/lisp/progmodes/rust-ts-mode-tests.el b/test/lisp/progmodes/rust-ts-mode-tests.el index f718a57fc9e..3a710b3af3b 100644 --- a/test/lisp/progmodes/rust-ts-mode-tests.el +++ b/test/lisp/progmodes/rust-ts-mode-tests.el @@ -23,11 +23,21 @@ (require 'ert-font-lock) (require 'ert-x) (require 'treesit) +(require 'rust-ts-mode) (ert-deftest rust-ts-test-font-lock () (skip-unless (treesit-ready-p 'rust)) - (let ((treesit-font-lock-level 4)) - (ert-font-lock-test-file (ert-resource-file "font-lock.rs") 'rust-ts-mode))) + (let ((treesit-font-lock-level 4) + (rust-ts-mode-fontify-number-suffix-as-type nil)) + (ert-font-lock-test-file (ert-resource-file "font-lock.rs") + 'rust-ts-mode))) + +(ert-deftest rust-ts-test-font-lock-number () + (skip-unless (treesit-ready-p 'rust)) + (let ((treesit-font-lock-level 4) + (rust-ts-mode-fontify-number-suffix-as-type t)) + (ert-font-lock-test-file (ert-resource-file "font-lock-number.rs") + 'rust-ts-mode))) (provide 'rust-ts-mode-tests) commit 1b33c00f4c28d730b17293f94ce5325f7e916bc8 Author: Michael Albinus Date: Sat Nov 23 12:49:56 2024 +0100 Improve robustness of auth-source-pass.el * lisp/auth-source-pass.el (auth-source-pass--read-entry): Ensure, that `epa-file-handler' is active. (Bug#67937) diff --git a/lisp/auth-source-pass.el b/lisp/auth-source-pass.el index 08abcf6b572..1a741a1b696 100644 --- a/lisp/auth-source-pass.el +++ b/lisp/auth-source-pass.el @@ -195,10 +195,15 @@ See `auth-source-pass-get'." (defun auth-source-pass--read-entry (entry) "Return a string with the file content of ENTRY." (with-temp-buffer - (insert-file-contents (expand-file-name - (format "%s.gpg" entry) - auth-source-pass-filename)) - (buffer-substring-no-properties (point-min) (point-max)))) + ;; `file-name-handler-alist' could be nil, or miss the + ;; `epa-file-handler' entry. We ensure, that it does exist. + ;; (Bug#67937) + (let ((file-name-handler-alist + (cons epa-file-handler file-name-handler-alist))) + (insert-file-contents (expand-file-name + (format "%s.gpg" entry) + auth-source-pass-filename)) + (buffer-substring-no-properties (point-min) (point-max))))) (defun auth-source-pass-parse-entry (entry) "Return an alist of the data associated with ENTRY. commit 1c2e0615fb87727bc2aa1f871353c999b67c792a Author: Eli Zaretskii Date: Sat Nov 23 04:51:10 2024 -0500 ; Update ldefs-boot.el diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 38df2a23cac..c3d83746c1d 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el @@ -738,7 +738,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `allout-mode'. +evaluate the variable `allout-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -811,7 +811,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `allout-widgets-mode'. +evaluate the variable `allout-widgets-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -1398,7 +1398,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `artist-mode'. +evaluate the variable `artist-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -1554,7 +1554,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate the variable `(default-value \\='auto-insert-mode)'. +evaluate `(default-value \\='auto-insert-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -1592,7 +1592,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `auto-revert-mode'. +evaluate the variable `auto-revert-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -1630,7 +1630,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `auto-revert-tail-mode'. +evaluate the variable `auto-revert-tail-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -2779,7 +2779,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `bug-reference-mode'. +evaluate the variable `bug-reference-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -2797,7 +2797,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `bug-reference-prog-mode'. +evaluate the variable `bug-reference-prog-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -4764,6 +4764,25 @@ displayed. If FRAME is omitted or nil, use the selected frame. If FRAME cannot display COLOR, return nil. (fn COLOR &optional FRAME)") +(autoload 'color-rgb-to-hex "color" "\ +Return hexadecimal #RGB notation for the color specified by RED GREEN BLUE. +RED, GREEN, and BLUE should be numbers between 0.0 and 1.0, inclusive. +Optional argument DIGITS-PER-COMPONENT can be either 4 (the default) +or 2; use the latter if you need a 24-bit specification of a color. + +(fn RED GREEN BLUE &optional DIGITS-PER-COMPONENT)") +(autoload 'color-blend "color" "\ +Blend the two colors A and B in linear space with ALPHA. +A and B should be lists (RED GREEN BLUE), where each element is +between 0.0 and 1.0, inclusive. ALPHA controls the influence A +has on the result and should be between 0.0 and 1.0, inclusive. + +For instance: + + (color-blend \\='(1 0.5 1) \\='(0 0 0) 0.75) + => (0.75 0.375 0.75) + +(fn A B &optional ALPHA)") (register-definition-prefixes "color" '("color-")) @@ -4900,6 +4919,13 @@ the compilation was successful return the compiled function. (fn FUNCTION-OR-FILE &optional OUTPUT)") (function-put 'native-compile 'function-type '(function ((or string symbol) &optional string) (or native-comp-function string))) +(autoload 'native-compile-directory "comp" "\ +Native compile if necessary all the .el files present in DIRECTORY. +Each .el file is native-compiled if the corresponding .eln file is not +found in any directory mentioned in `native-comp-eln-load-path'. +The search within DIRECTORY is performed recursively. + +(fn DIRECTORY)") (autoload 'batch-native-compile "comp" "\ Perform batch native compilation of remaining command-line arguments. @@ -5148,6 +5174,13 @@ the function in `compilation-buffer-name-function', so you can set that to a function that generates a unique name. (fn COMMAND &optional COMINT)" t) +(autoload 'recompile "compile" "\ +Re-compile the program including the current buffer. +If this is run in a Compilation mode buffer, reuse the arguments from the +original use. Otherwise, recompile using `compile-command'. +If the optional argument `edit-command' is non-nil, the command can be edited. + +(fn &optional EDIT-COMMAND)" t) (autoload 'compilation--default-buffer-name "compile" "\ @@ -5208,7 +5241,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `compilation-shell-minor-mode'. +evaluate the variable `compilation-shell-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -5230,7 +5263,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `compilation-minor-mode'. +evaluate the variable `compilation-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -5241,7 +5274,7 @@ Advance to the next error message and visit the file where the error was. This is the value of `next-error-function' in Compilation buffers. (fn N &optional RESET)" t) -(register-definition-prefixes "compile" '("compil" "define-compilation-mode" "kill-compilation" "recompile")) +(register-definition-prefixes "compile" '("compil" "define-compilation-mode" "kill-compilation")) ;;; Generated autoloads from cedet/srecode/compile.el @@ -5331,7 +5364,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `completion-preview-mode'. +evaluate the variable `completion-preview-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -5381,6 +5414,11 @@ list.") (custom-autoload 'global-completion-preview-modes "completion-preview" t) (register-definition-prefixes "completion-preview" '("completion-preview-")) + +;;; Generated autoloads from emacs-lisp/cond-star.el + +(register-definition-prefixes "cond-star" '("cond*" "match*")) + ;;; Generated autoloads from textmodes/conf-mode.el @@ -5753,7 +5791,7 @@ Settings for classic indent-styles: K&R BSD=C++ GNU PBP PerlStyle=Whitesmith CPerl knows several indentation styles, and may bulk set the corresponding variables. Use \\[cperl-set-style] to do this or -set the `cperl-file-style' user option. Use +set the variable `cperl-file-style' user option. Use \\[cperl-set-style-back] to restore the memorized preexisting values (both available from menu). See examples in `cperl-style-examples'. @@ -6006,7 +6044,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `cua-rectangle-mark-mode'. +evaluate the variable `cua-rectangle-mark-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -6033,7 +6071,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `cursor-intangible-mode'. +evaluate the variable `cursor-intangible-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -6057,7 +6095,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `cursor-sensor-mode'. +evaluate the variable `cursor-sensor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -6116,6 +6154,11 @@ This is like `setq', but is meant for user options instead of plain variables. This means that `setopt' will execute any `custom-set' form associated with VARIABLE. +Note that `setopt' will emit a warning if the type of a VALUE +does not match the type of the corresponding VARIABLE as +declared by `defcustom'. (VARIABLE will be assigned the value +even if it doesn't match the type.) + (fn [VARIABLE VALUE]...)" nil t) (autoload 'setopt--set "cus-edit" "\ @@ -6440,7 +6483,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `cwarn-mode'. +evaluate the variable `cwarn-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -6946,6 +6989,29 @@ evaluate `(default-value \\='delete-selection-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. +(fn &optional ARG)" t) +(autoload 'delete-selection-local-mode "delsel" "\ +Toggle `delete-selection-mode' only in this buffer. + +For compatibility with features and packages that are aware of +`delete-selection-mode', this local mode sets the variable +`delete-selection-mode' in the current buffer as needed. + +This is a minor mode. If called interactively, toggle the +`Delete-Selection-Local mode' mode. If the prefix argument is positive, +enable the mode, and if it is zero or negative, disable the mode. + +If called from Lisp, toggle the mode if ARG is `toggle'. Enable the +mode if ARG is nil, omitted, or is a positive number. Disable the mode +if ARG is a negative number. + +To check whether the minor mode is enabled in the current buffer, +evaluate `(buffer-local-value \\='delete-selection-mode +(current-buffer))'. + +The mode's hook is called both when the mode is enabled and when it is +disabled. + (fn &optional ARG)" t) (autoload 'delete-active-region "delsel" "\ Delete the active region. @@ -7129,7 +7195,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate the variable `(default-value \\='desktop-save-mode)'. +evaluate `(default-value \\='desktop-save-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -7575,7 +7641,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `diff-minor-mode'. +evaluate the variable `diff-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -7791,7 +7857,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `dirtrack-mode'. +evaluate the variable `dirtrack-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -7977,7 +8043,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `display-fill-column-indicator-mode'. +evaluate the variable `display-fill-column-indicator-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -8048,7 +8114,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `display-line-numbers-mode'. +evaluate the variable `display-line-numbers-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -8136,7 +8202,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `header-line-indent-mode'. +evaluate the variable `header-line-indent-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -8249,7 +8315,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `doc-view-minor-mode'. +evaluate the variable `doc-view-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -8320,7 +8386,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `double-mode'. +evaluate the variable `double-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -9340,6 +9406,79 @@ To change the default, set the variable `ediff-use-toolbar-p', which see." t) (register-definition-prefixes "semantic/edit" '("semantic-")) + +;;; Generated autoloads from editorconfig.el + +(push (purecopy '(editorconfig 0 11 0)) package--builtin-versions) +(defvar editorconfig-mode nil "\ +Non-nil if Editorconfig mode is enabled. +See the `editorconfig-mode' command +for a description of this minor mode. +Setting this variable directly does not take effect; +either customize it (see the info node `Easy Customization') +or call the function `editorconfig-mode'.") +(custom-autoload 'editorconfig-mode "editorconfig" nil) +(autoload 'editorconfig-mode "editorconfig" "\ +Toggle EditorConfig feature. + +This is a global minor mode. If called interactively, toggle the +`Editorconfig mode' mode. If the prefix argument is positive, enable +the mode, and if it is zero or negative, disable the mode. + +If called from Lisp, toggle the mode if ARG is `toggle'. Enable the +mode if ARG is nil, omitted, or is a positive number. Disable the mode +if ARG is a negative number. + +To check whether the minor mode is enabled in the current buffer, +evaluate `(default-value \\='editorconfig-mode)'. + +The mode's hook is called both when the mode is enabled and when it is +disabled. + +(fn &optional ARG)" t) +(register-definition-prefixes "editorconfig" '("editorconfig-")) + + +;;; Generated autoloads from editorconfig-conf-mode.el + +(autoload 'editorconfig-conf-mode "editorconfig-conf-mode" "\ +Major mode for editing .editorconfig files. + +(fn)" t) +(add-to-list 'auto-mode-alist '("\\.editorconfig\\'" . editorconfig-conf-mode)) +(register-definition-prefixes "editorconfig-conf-mode" '("editorconfig-conf-mode-")) + + +;;; Generated autoloads from editorconfig-core.el + +(register-definition-prefixes "editorconfig-core" '("editorconfig-core-")) + + +;;; Generated autoloads from editorconfig-core-handle.el + +(register-definition-prefixes "editorconfig-core-handle" '("editorconfig-core-handle")) + + +;;; Generated autoloads from editorconfig-fnmatch.el + +(register-definition-prefixes "editorconfig-fnmatch" '("editorconfig-fnmatch-")) + + +;;; Generated autoloads from editorconfig-tools.el + +(autoload 'editorconfig-apply "editorconfig-tools" "\ +Get and apply EditorConfig properties to current buffer. + +This function does not respect the values of `editorconfig-exclude-modes' and +`editorconfig-exclude-regexps' and always applies available properties. +Use `editorconfig-mode-apply' instead to make use of these variables." t) +(autoload 'editorconfig-find-current-editorconfig "editorconfig-tools" "\ +Find the closest .editorconfig file for current file." t) +(autoload 'editorconfig-display-current-properties "editorconfig-tools" "\ +Display EditorConfig properties extracted for current buffer." t) +(defalias 'describe-editorconfig-properties #'editorconfig-display-current-properties) +(register-definition-prefixes "editorconfig-tools" '("editorconfig-mode-apply")) + ;;; Generated autoloads from edmacro.el @@ -9658,7 +9797,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `electric-pair-mode'. +evaluate the variable `electric-pair-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -9687,7 +9826,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `elide-head-mode'. +evaluate the variable `elide-head-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -10078,7 +10217,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `enriched-mode'. +evaluate the variable `enriched-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -10311,7 +10450,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `epa-mail-mode'. +evaluate the variable `epa-mail-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -10430,7 +10569,6 @@ Look at CONFIG and try to expand GROUP. (dolist (symbol '( erc-sasl erc-spelling ; 29 erc-imenu erc-nicks)) ; 30 (custom-add-load symbol symbol)) -(custom-autoload 'erc-modules "erc") (autoload 'erc-select-read-args "erc" "\ Prompt for connection parameters and return them in a plist. By default, collect `:server', `:port', `:nickname', and @@ -10735,10 +10873,10 @@ in batch mode, an error is signaled. (autoload 'ert-run-tests-batch "ert" "\ Run the tests specified by SELECTOR, printing results to the terminal. -SELECTOR works as described in `ert-select-tests', except if -SELECTOR is nil, in which case all tests rather than none will be -run; this makes the command line \"emacs -batch -l my-tests.el -f -ert-run-tests-batch-and-exit\" useful. +SELECTOR selects which tests to run as described in `ert-select-tests' when +called with its second argument t, except if SELECTOR is nil, in which case +all tests rather than none will be run; this makes the command line + \"emacs -batch -l my-tests.el -f ert-run-tests-batch-and-exit\" useful. Returns the stats object. @@ -10755,7 +10893,9 @@ the tests). (autoload 'ert-run-tests-interactively "ert" "\ Run the tests specified by SELECTOR and display the results in a buffer. -SELECTOR works as described in `ert-select-tests'. +SELECTOR selects which tests to run as described in `ert-select-tests' +when called with its second argument t. Interactively, prompt for +SELECTOR; the default t means run all the defined tests. (fn SELECTOR)" t) (defalias 'ert #'ert-run-tests-interactively) @@ -11178,11 +11318,12 @@ For non-interactive use, this is superseded by `fileloop-initialize-replace'. (set-advertised-calling-convention 'tags-query-replace '(from to &optional delimited) '"27.1") (autoload 'list-tags "etags" "\ Display list of tags in file FILE. -This searches only the first table in the list, and no included -tables. FILE should be as it appeared in the `etags' command, -usually without a directory specification. If called -interactively, FILE defaults to the file name of the current -buffer. +Interactively, prompt for FILE, with completion, offering the current +buffer's file name as the default. +This command searches only the first table in the list of tags tables, +and does not search included tables. +FILE should be as it was submitted to the `etags' command, which usually +means relative to the directory of the tags table file. (fn FILE &optional NEXT-MATCH)" t) (autoload 'tags-apropos "etags" "\ @@ -11237,7 +11378,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate the variable `(default-value \\='etags-regen-mode)'. +evaluate `(default-value \\='etags-regen-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -12061,7 +12202,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `buffer-face-mode'. +evaluate the variable `buffer-face-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -12389,9 +12530,14 @@ This command deletes all existing settings of VARIABLE (except `mode' and `eval') and adds a new file-local VARIABLE with VALUE to the Local Variables list. -If there is no Local Variables list in the current file buffer -then this function adds the first line containing the string -`Local Variables:' and the last line containing the string `End:'. +If there is no Local Variables list in the current file buffer, +then this function adds it at the end of the file, with the first +line containing the string `Local Variables:' and the last line +containing the string `End:'. + +For adding local variables on the first line of a file, for example +for settings like `lexical-binding, which must be specified there, +use the `add-file-local-variable-prop-line' command instead. (fn VARIABLE VALUE &optional INTERACTIVE)" t) (autoload 'delete-file-local-variable "files-x" "\ @@ -12403,11 +12549,14 @@ Add file-local VARIABLE with its VALUE to the -*- line. This command deletes all existing settings of VARIABLE (except `mode' and `eval') and adds a new file-local VARIABLE with VALUE to -the -*- line. +the -*- line at the beginning of the file. If there is no -*- line at the beginning of the current file buffer then this function adds it. +To add variables to the Local Variables list at the end of the file, +use the `add-file-local-variable' command instead. + (fn VARIABLE VALUE &optional INTERACTIVE)" t) (autoload 'delete-file-local-variable-prop-line "files-x" "\ Delete all settings of file-local VARIABLE from the -*- line. @@ -12616,6 +12765,11 @@ The command run (after changing into DIR) is essentially except that the car of the variable `find-ls-option' specifies what to use in place of \"-ls\" as the final argument. +If your `find' program is not a GNU Find, the columns in the produced +Dired display might fail to align. We recommend to install GNU Find in +those cases (you may need to customize the value of `find-program' if +you do so), which attempts to align the columns. + Collect output in the \"*Find*\" buffer. To kill the job before it finishes, type \\[kill-find]. @@ -12898,8 +13052,34 @@ See `find-function-on-key'. Find directly the function at point in the other window." t) (autoload 'find-variable-at-point "find-func" "\ Find directly the variable at point in the other window." t) +(defvar find-function-mode nil "\ +Non-nil if Find-Function mode is enabled. +See the `find-function-mode' command +for a description of this minor mode. +Setting this variable directly does not take effect; +either customize it (see the info node `Easy Customization') +or call the function `find-function-mode'.") +(custom-autoload 'find-function-mode "find-func" nil) +(autoload 'find-function-mode "find-func" "\ +Enable some key bindings for the `find-function' family of functions. + +This is a global minor mode. If called interactively, toggle the +`Find-Function mode' mode. If the prefix argument is positive, enable +the mode, and if it is zero or negative, disable the mode. + +If called from Lisp, toggle the mode if ARG is `toggle'. Enable the +mode if ARG is nil, omitted, or is a positive number. Disable the mode +if ARG is a negative number. + +To check whether the minor mode is enabled in the current buffer, +evaluate `(default-value \\='find-function-mode)'. + +The mode's hook is called both when the mode is enabled and when it is +disabled. + +(fn &optional ARG)" t) (autoload 'find-function-setup-keys "find-func" "\ -Define some key bindings for the `find-function' family of functions.") +Turn on `find-function-mode', which see.") (register-definition-prefixes "find-func" '("find-" "read-library-name--find-files")) @@ -13148,7 +13328,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `flyspell-mode'. +evaluate the variable `flyspell-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -13225,7 +13405,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `follow-mode'. +evaluate the variable `follow-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -13323,7 +13503,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `footnote-mode'. +evaluate the variable `footnote-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -13788,7 +13968,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate the variable `(default-value \\='gdb-enable-debug)'. +evaluate `(default-value \\='gdb-enable-debug)'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -13964,7 +14144,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `glasses-mode'. +evaluate the variable `glasses-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -13995,7 +14175,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `glyphless-display-mode'. +evaluate the variable `glyphless-display-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -14487,7 +14667,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `gnus-mailing-list-mode'. +evaluate the variable `gnus-mailing-list-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -14886,7 +15066,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `goto-address-mode'. +evaluate the variable `goto-address-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -14928,7 +15108,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `goto-address-prog-mode'. +evaluate the variable `goto-address-prog-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -15795,7 +15975,7 @@ gives the window that lists the options.") (fn HELP-LINE HELP-TEXT HELPED-MAP BUFFER-NAME)") -(register-definition-prefixes "help-macro" '("make-help-screen")) +(register-definition-prefixes "help-macro" '("help-for-help-use-variable-pitch" "make-help-screen")) ;;; Generated autoloads from help-mode.el @@ -16094,7 +16274,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `hi-lock-mode'. +evaluate the variable `hi-lock-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -16347,7 +16527,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `hs-minor-mode'. +evaluate the variable `hs-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -16558,7 +16738,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `hl-line-mode'. +evaluate the variable `hl-line-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -17127,172 +17307,6 @@ Pop to a buffer to describe ICON. (register-definition-prefixes "semantic/idle" '("define-semantic-idle-service" "global-semantic-idle-summary-mode" "semantic-")) - -;;; Generated autoloads from progmodes/idlw-complete-structtag.el - -(register-definition-prefixes "idlw-complete-structtag" '("idlwave-")) - - -;;; Generated autoloads from progmodes/idlw-help.el - -(register-definition-prefixes "idlw-help" '("idlwave-")) - - -;;; Generated autoloads from progmodes/idlw-shell.el - -(autoload 'idlwave-shell "idlw-shell" "\ -Run an inferior IDL, with I/O through buffer `(idlwave-shell-buffer)'. -If buffer exists but shell process is not running, start new IDL. -If buffer exists and shell process is running, just switch to the buffer. - -When called with a prefix ARG, or when `idlwave-shell-use-dedicated-frame' -is non-nil, the shell buffer and the source buffers will be in -separate frames. - -The command to run comes from variable `idlwave-shell-explicit-file-name', -with options taken from `idlwave-shell-command-line-options'. - -The buffer is put in `idlwave-shell-mode', providing commands for sending -input and controlling the IDL job. See help on `idlwave-shell-mode'. -See also the variable `idlwave-shell-prompt-pattern'. - -(Type \\[describe-mode] in the shell buffer for a list of commands.) - -(fn &optional ARG)" t) -(register-definition-prefixes "idlw-shell" '("idlwave-")) - - -;;; Generated autoloads from progmodes/idlw-toolbar.el - -(register-definition-prefixes "idlw-toolbar" '("idlwave-toolbar")) - - -;;; Generated autoloads from progmodes/idlwave.el - -(push (purecopy '(idlwave 6 1 22)) package--builtin-versions) -(autoload 'idlwave-mode "idlwave" "\ -Major mode for editing IDL source files (version 6.1_em22). - -The main features of this mode are - -1. Indentation and Formatting - -------------------------- - Like other Emacs programming modes, C-j inserts a newline and indents. - TAB is used for explicit indentation of the current line. - - To start a continuation line, use \\[idlwave-split-line]. This - function can also be used in the middle of a line to split the line - at that point. When used inside a long constant string, the string - is split at that point with the `+' concatenation operator. - - Comments are indented as follows: - - `;;;' Indentation remains unchanged. - `;;' Indent like the surrounding code - `;' Indent to a minimum column. - - The indentation of comments starting in column 0 is never changed. - - Use \\[idlwave-fill-paragraph] to refill a paragraph inside a - comment. The indentation of the second line of the paragraph - relative to the first will be retained. Use - \\[auto-fill-mode] to toggle auto-fill mode for these - comments. When the variable `idlwave-fill-comment-line-only' is - nil, code can also be auto-filled and auto-indented. - - To convert pre-existing IDL code to your formatting style, mark the - entire buffer with \\[mark-whole-buffer] and execute - \\[idlwave-expand-region-abbrevs]. Then mark the entire buffer - again followed by \\[indent-region] (`indent-region'). - -2. Routine Info - ------------ - IDLWAVE displays information about the calling sequence and the - accepted keyword parameters of a procedure or function with - \\[idlwave-routine-info]. \\[idlwave-find-module] jumps to the - source file of a module. These commands know about system - routines, all routines in idlwave-mode buffers and (when the - idlwave-shell is active) about all modules currently compiled under - this shell. It also makes use of pre-compiled or custom-scanned - user and library catalogs many popular libraries ship with by - default. Use \\[idlwave-update-routine-info] to update this - information, which is also used for completion (see item 4). - -3. Online IDL Help - --------------- - - \\[idlwave-context-help] displays the IDL documentation relevant - for the system variable, keyword, or routines at point. A single - key stroke gets you directly to the right place in the docs. See - the manual to configure where and how the HTML help is displayed. - -4. Completion - ---------- - \\[idlwave-complete] completes the names of procedures, functions - class names, keyword parameters, system variables and tags, class - tags, structure tags, filenames and much more. It is context - sensitive and figures out what is expected at point. Lower case - strings are completed in lower case, other strings in mixed or - upper case. - -5. Code Templates and Abbreviations - -------------------------------- - Many Abbreviations are predefined to expand to code fragments and templates. - The abbreviations start generally with a `\\'. Some examples: - - \\pr PROCEDURE template - \\fu FUNCTION template - \\c CASE statement template - \\sw SWITCH statement template - \\f FOR loop template - \\r REPEAT Loop template - \\w WHILE loop template - \\i IF statement template - \\elif IF-ELSE statement template - \\b BEGIN - - For a full list, use \\[idlwave-list-abbrevs]. Some templates also - have direct keybindings - see the list of keybindings below. - - \\[idlwave-doc-header] inserts a documentation header at the - beginning of the current program unit (pro, function or main). - Change log entries can be added to the current program unit with - \\[idlwave-doc-modification]. - -6. Automatic Case Conversion - ------------------------- - The case of reserved words and some abbrevs is controlled by - `idlwave-reserved-word-upcase' and `idlwave-abbrev-change-case'. - -7. Automatic END completion - ------------------------ - If the variable `idlwave-expand-generic-end' is non-nil, each END typed - will be converted to the specific version, like ENDIF, ENDFOR, etc. - -8. Hooks - ----- - Turning on `idlwave-mode' runs `idlwave-mode-hook'. - -9. Documentation and Customization - ------------------------------- - Info documentation for this package is available. Use - \\[idlwave-info] to display (complain to your sysadmin if that does - not work). For Postscript, PDF, and HTML versions of the - documentation, check IDLWAVE's website at URL - `https://github.com/jdtsmith/idlwave'. - IDLWAVE has customize support - see the group `idlwave'. - -10.Keybindings - ----------- - Here is a list of all keybindings of this mode. - If some of the key bindings below show with ??, use \\[describe-key] - followed by the key sequence to see what the key sequence does. - -\\{idlwave-mode-map} - -(fn)" t) -(register-definition-prefixes "idlwave" '("idlwave-")) - ;;; Generated autoloads from ido.el @@ -17564,7 +17578,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `iimage-mode'. +evaluate the variable `iimage-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -17956,7 +17970,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `image-dired-minor-mode'. +evaluate the variable `image-dired-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -18106,7 +18120,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `image-minor-mode'. +evaluate the variable `image-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -18728,6 +18742,11 @@ See Info node `(elisp)Defining Functions' for more details. (register-definition-prefixes "quail/ipa" '("ipa-x-sampa-")) + +;;; Generated autoloads from leim/quail/iroquoian.el + +(register-definition-prefixes "quail/iroquoian" '("iroquoian-")) + ;;; Generated autoloads from international/isearch-x.el @@ -19614,22 +19633,23 @@ Special commands: Let-bind dotted symbols to their cdrs in ALIST and execute BODY. Dotted symbol is any symbol starting with a `.'. Only those present in BODY are let-bound and this search is done at compile time. +A number will result in a list index. For instance, the following code (let-alist alist - (if (and .title .body) + (if (and .title.0 .body) .body .site .site.contents)) essentially expands to - (let ((.title (cdr (assq \\='title alist))) + (let ((.title (nth 0 (cdr (assq \\='title alist)))) (.body (cdr (assq \\='body alist))) (.site (cdr (assq \\='site alist))) (.site.contents (cdr (assq \\='contents (cdr (assq \\='site alist)))))) - (if (and .title .body) + (if (and .title.0 .body) .body .site .site.contents)) @@ -20421,7 +20441,7 @@ Makefile mode can be configured by modifying the following variables: to MODIFY A FILE WITHOUT YOUR CONFIRMATION when \"it seems necessary\". `makefile-special-targets-list': - List of special targets. You will be offered to complete + List of special targets. You will be offered to complete on one of those in the minibuffer whenever you enter a `.'. at the beginning of a line in Makefile mode. @@ -20558,7 +20578,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `master-mode'. +evaluate the variable `master-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -21638,7 +21658,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate the variable `(default-value \\='msb-mode)'. +evaluate `(default-value \\='msb-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -22113,15 +22133,18 @@ values: used to decode and encode the data which the process reads and writes. See `make-network-process' for details. -:return-list specifies this function's return value. - If omitted or nil, return a process object. A non-nil means to - return (PROC . PROPS), where PROC is a process object and PROPS - is a plist of connection properties, with these keywords: +:return-list controls the form of the function's return value. + If omitted or nil, return a process object. Anything else means to + return (PROC . PROPS), where PROC is a process object, and PROPS is a + plist of connection properties, which may include the following + keywords: :greeting -- the greeting returned by HOST (a string), or nil. :capabilities -- a string representing HOST's capabilities, or nil if none could be found. :type -- the resulting connection type; `plain' (unencrypted) or `tls' (TLS-encrypted). + :error -- A string describing any error when attempting + to negotiate STARTTLS. :end-of-command specifies a regexp matching the end of a command. @@ -22160,8 +22183,9 @@ writes. See `make-network-process' for details. :use-starttls-if-possible is a boolean that says to do opportunistic STARTTLS upgrades even if Emacs doesn't have built-in TLS functionality. -:warn-unless-encrypted is a boolean which, if :return-list is -non-nil, is used warn the user if the connection isn't encrypted. +:warn-unless-encrypted, if non-nil, warn the user if the connection +isn't encrypted (i.e. STARTTLS failed). Additionally, setting +:return-list non-nil allows capturing any error response. :nogreeting is a boolean that can be used to inhibit waiting for a greeting from the server. @@ -22971,7 +22995,7 @@ Coloring: ;;; Generated autoloads from org/org.el -(push (purecopy '(org 9 7 9)) package--builtin-versions) +(push (purecopy '(org 9 7 11)) package--builtin-versions) (autoload 'org-babel-do-load-languages "org" "\ Load the languages defined in `org-babel-load-languages'. @@ -23518,6 +23542,11 @@ With a numeric prefix, show all headlines up to that level. (register-definition-prefixes "org-element" '("org-element-")) + +;;; Generated autoloads from org/org-element-ast.el + +(register-definition-prefixes "org-element-ast" '("org-element-")) + ;;; Generated autoloads from org/org-entities.el @@ -23712,7 +23741,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `outline-minor-mode'. +evaluate the variable `outline-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -24021,8 +24050,9 @@ directory. (autoload 'package-install-selected-packages "package" "\ Ensure packages in `package-selected-packages' are installed. If some packages are not installed, propose to install them. -If optional argument NOCONFIRM is non-nil, don't ask for -confirmation to install packages. + +If optional argument NOCONFIRM is non-nil, or when invoked with a prefix +argument, don't ask for confirmation to install packages. (fn &optional NOCONFIRM)" t) (autoload 'package-reinstall "package" "\ @@ -24046,7 +24076,12 @@ Remove packages that are no longer needed. Packages that are no more needed by other packages in `package-selected-packages' and their dependencies -will be deleted." t) +will be deleted. + +If optional argument NOCONFIRM is non-nil, or when invoked with a prefix +argument, don't ask for confirmation to install packages. + +(fn &optional NOCONFIRM)" t) (autoload 'describe-package "package" "\ Display the full documentation of PACKAGE (a symbol). @@ -24228,6 +24263,12 @@ return a \"likely\" value even for somewhat malformed strings. The values returned are identical to those of `decode-time', but any unknown values other than DST are returned as nil, and an unknown DST value is returned as -1. +Note that, unlike `decode-time', this function does not interpret +the time string, and in particular the values of DST and TZ do not +affect the returned value of date and time, they only affect the +last two members of the returned value. This function simply +parses the textual representation of date and time into separate +numerical values, and doesn't care whether the time is local or UTC. See `decode-time' for the meaning of FORM. @@ -24360,9 +24401,14 @@ not signal an error. (function-put 'pcase-exhaustive 'lisp-indent-function 1) (autoload 'pcase-lambda "pcase" "\ Like `lambda' but allow each argument to be a pattern. -I.e. accepts the usual &optional and &rest keywords, but every -formal argument can be any pattern accepted by `pcase' (a mere -variable name being but a special case of it). +I.e. accepts the usual &optional and &rest keywords, but every formal +argument can be any pattern destructed by `pcase-let' (a mere variable +name being but a special case of it). + +Each argument should match its respective pattern in the parameter +list (i.e. be of a compatible structure); a mismatch may signal an error +or may go undetected, binding arguments to arbitrary values, such as +nil. (fn LAMBDA-LIST &rest BODY)" nil t) (function-put 'pcase-lambda 'doc-string-elt 2) @@ -24919,6 +24965,46 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'. (register-definition-prefixes "pgtk-dnd" '("pgtk-dnd-")) + +;;; Generated autoloads from progmodes/php-ts-mode.el + +(autoload 'php-ts-mode "php-ts-mode" "\ +Major mode for editing PHP, powered by tree-sitter. + +(fn)" t) +(autoload 'php-ts-mode-run-php-webserver "php-ts-mode" "\ +Run PHP built-in web server. + +PORT: Port number of built-in web server, default `php-ts-mode-ws-port'. +Prompt for the port if the default value is nil. +HOSTNAME: Hostname or IP address of Built-in web server, +default `php-ts-mode-ws-hostname'. Prompt for the hostname if the +default value is nil. +DOCUMENT-ROOT: Path to Document root, default `php-ts-mode-ws-document-root'. +Prompt for the document-root if the default value is nil. +ROUTER-SCRIPT: Path of the router PHP script, +see `https://www.php.net/manual/en/features.commandline.webserver.php' +NUM-OF-WORKERS: Before run the web server set the +PHP_CLI_SERVER_WORKERS env variable useful for testing code against +multiple simultaneous requests +CONFIG: Alternative php.ini config, default `php-ts-mode-php-config'. + +Interactively, when invoked with prefix argument, always prompt for +PORT, HOSTNAME, DOCUMENT-ROOT, ROUTER-SCRIPT, NUM-OF-WORKERS and +CONFIG. + +(fn &optional PORT HOSTNAME DOCUMENT-ROOT ROUTER-SCRIPT NUM-OF-WORKERS CONFIG)" t) +(autoload 'run-php "php-ts-mode" "\ +Run an PHP interpreter as a inferior process. + +Arguments CMD and CONFIG, default to `php-ts-mode-php-executable' +and `php-ts-mode-php-config' respectively, control which PHP interpreter is run. +Prompt for CMD if `php-ts-mode-php-executable' is nil. +Optional CONFIG, if supplied, is the php.ini file to use. + +(fn &optional CMD CONFIG)" t) +(register-definition-prefixes "php-ts-mode" '("inferior-php-ts-mode" "php-ts-")) + ;;; Generated autoloads from textmodes/picture.el @@ -25777,7 +25863,8 @@ else prompt the user for the project to use. To prompt for a project, call the function specified by `project-prompter', which returns the directory in which to look for the project. If no project is found in that directory, return a \"transient\" -project instance. +project instance. When MAYBE-PROMPT is a string, it's passed to the +prompter function as an argument. The \"transient\" project instance is a special kind of value which denotes a project rooted in that directory and includes all @@ -25833,6 +25920,14 @@ requires quoting, e.g. `\\[quoted-insert]'. Find all matches for REGEXP in the project roots or external roots. (fn REGEXP)" t) +(autoload 'project-root-find-file "project" "\ +Edit file FILENAME. + +Interactively, prompt for FILENAME, defaulting to the root directory of +the current project. + +(fn FILENAME)" t) +(function-put 'project-root-find-file 'interactive-only 'find-file) (autoload 'project-find-file "project" "\ Visit a file (with completion) in the current project. @@ -26312,7 +26407,8 @@ Optional argument FACE specifies the face to do the highlighting. ;;; Generated autoloads from progmodes/python.el (push (purecopy '(python 0 28)) package--builtin-versions) -(add-to-list 'auto-mode-alist (cons (purecopy "\\.py[iw]?\\'") 'python-mode)) +(defconst python--auto-mode-alist-regexp (rx (or (seq "." (or "py" "pth" "pyi" "pyw")) (seq "/" (or "SConstruct" "SConscript"))) eos)) +(add-to-list 'auto-mode-alist (cons python--auto-mode-alist-regexp 'python-mode)) (add-to-list 'interpreter-mode-alist (cons (purecopy "python[0-9.]*") 'python-mode)) (autoload 'run-python "python" "\ Run an inferior Python process. @@ -26385,7 +26481,7 @@ Major mode for editing Python files, using tree-sitter library. (fn)" t) (add-to-list 'auto-mode-alist '("/\\(?:Pipfile\\|\\.?flake8\\)\\'" . conf-mode)) -(register-definition-prefixes "python" '("inferior-python-mode" "python-" "run-python-internal")) +(register-definition-prefixes "python" '("inferior-python-mode" "python-" "run-python-internal" "subword-mode")) ;;; Generated autoloads from cedet/semantic/wisent/python.el @@ -26677,7 +26773,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate the variable `(default-value \\='rcirc-track-minor-mode)'. +evaluate `(default-value \\='rcirc-track-minor-mode)'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -26893,7 +26989,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `rectangle-mark-mode'. +evaluate the variable `rectangle-mark-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -26933,7 +27029,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `refill-mode'. +evaluate the variable `refill-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -26995,7 +27091,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `reftex-mode'. +evaluate the variable `reftex-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -27317,7 +27413,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `reveal-mode'. +evaluate the variable `reveal-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -27900,7 +27996,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `rng-validate-mode'. +evaluate the variable `rng-validate-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -28026,7 +28122,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `rst-minor-mode'. +evaluate the variable `rst-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -28086,7 +28182,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `ruler-mode'. +evaluate the variable `ruler-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -28453,7 +28549,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `save-place-mode'. +evaluate the variable `save-place-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -28587,7 +28683,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `scroll-lock-mode'. +evaluate the variable `scroll-lock-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -29631,6 +29727,7 @@ twice for the others. ;;; Generated autoloads from vc/smerge-mode.el + (global-set-key "\C-c^" (make-sparse-keymap)) (autoload 'smerge-refine-regions "smerge-mode" "\ Show fine differences in the two regions BEG1..END1 and BEG2..END2. PROPS-C is an alist of properties to put (via overlays) on the changes. @@ -29667,7 +29764,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `smerge-mode'. +evaluate the variable `smerge-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -29782,7 +29879,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `so-long-minor-mode'. +evaluate the variable `so-long-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -31022,10 +31119,22 @@ This construct can only be used with lexical binding. (fn NAME BINDINGS &rest BODY)" nil t) (function-put 'named-let 'lisp-indent-function 2) +(autoload 'with-work-buffer "subr-x" "\ +Create a work buffer, and evaluate BODY there like `progn'. +Like `with-temp-buffer', but reuse an already created temporary +buffer when possible, instead of creating a new one on each call. + +(fn &rest BODY)" nil t) +(function-put 'with-work-buffer 'lisp-indent-function 0) (autoload 'string-pixel-width "subr-x" "\ Return the width of STRING in pixels. +If BUFFER is non-nil, use the face remappings from that buffer when +determining the width. +If you call this function to measure pixel width of a string +with embedded newlines, it returns the width of the widest +substring that does not include newlines. -(fn STRING)") +(fn STRING &optional BUFFER)") (function-put 'string-pixel-width 'important-return-value 't) (autoload 'string-glyph-split "subr-x" "\ Split STRING into a list of strings representing separate glyphs. @@ -31049,7 +31158,7 @@ this defaults to the current buffer. Query the user for a process and return the process object. (fn PROMPT)") -(register-definition-prefixes "subr-x" '("emacs-etc--hide-local-variables" "hash-table-" "internal--thread-argument" "replace-region-contents" "string-remove-" "thread-" "with-buffer-unmodified-if-unchanged")) +(register-definition-prefixes "subr-x" '("emacs-etc--hide-local-variables" "hash-table-" "internal--thread-argument" "replace-region-contents" "string-remove-" "thread-" "with-buffer-unmodified-if-unchanged" "work-buffer-")) ;;; Generated autoloads from progmodes/subword.el @@ -31085,7 +31194,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `subword-mode'. +evaluate the variable `subword-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -31134,7 +31243,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `superword-mode'. +evaluate the variable `superword-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -31251,6 +31360,14 @@ disabled. (autoload 'tab-line-mode "tab-line" "\ Toggle display of tab line in the windows displaying the current buffer. +When this mode is enabled, each window displays a tab line on its +top screen line. The tab line is a row of tabs -- buttons which +you can click to have the window display the buffer whose name is +shown on the button. Clicking on the \"x\" icon of the button +removes the button (but does not kill the corresponding buffer). +In addition, the tab line shows a \"+\" button which adds a new +button, so you could have one more buffer shown on the tab line. + This is a minor mode. If called interactively, toggle the `Tab-Line mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. @@ -32767,7 +32884,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `tildify-mode'. +evaluate the variable `tildify-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -32847,7 +32964,7 @@ the default format \"%f seconds\" is used. (autoload 'date-to-time "time-date" "\ Parse a string DATE that represents a date-time and return a time value. DATE should be in one of the forms recognized by `parse-time-string'. -If DATE lacks timezone information, GMT is assumed. +If DATE lacks time zone information, local time is assumed. (fn DATE)") (defalias 'time-to-seconds #'float-time) @@ -32948,13 +33065,13 @@ Valid ZONE values are described in the documentation of `format-time-string'. (put 'time-stamp-line-limit 'safe-local-variable 'integerp) (put 'time-stamp-start 'safe-local-variable 'stringp) (put 'time-stamp-end 'safe-local-variable 'stringp) -(put 'time-stamp-inserts-lines 'safe-local-variable 'symbolp) +(put 'time-stamp-inserts-lines 'safe-local-variable 'booleanp) (put 'time-stamp-count 'safe-local-variable 'integerp) (put 'time-stamp-pattern 'safe-local-variable 'stringp) (autoload 'time-stamp "time-stamp" "\ Update any time stamp string(s) in the buffer. -This function looks for a time stamp template and updates it with -the current date, time, and/or other info. +Look for a time stamp template and update it with the current date, +time, and/or other info. The template, which you manually create on one of the first 8 lines of the file before running this function, by default can look like @@ -32963,7 +33080,7 @@ one of the following (your choice): Time-stamp: \" \" This function writes the current time between the brackets or quotes, by default formatted like this: - Time-stamp: <2020-08-07 17:10:21 gildea> + Time-stamp: <2024-08-07 17:10:21 gildea> Although you can run this function manually to update a time stamp once, usually you want automatic time stamp updating. @@ -32977,7 +33094,7 @@ To enable automatic time-stamping for only a specific file, add this line to a local variables list near the end of the file: eval: (add-hook \\='before-save-hook \\='time-stamp nil t) -If the file has no time-stamp template, this function does nothing. +If the file has no time stamp template, this function does nothing. You can set `time-stamp-pattern' in a file's local variables list to customize the information in the time stamp and where it is written. @@ -33152,8 +33269,10 @@ DEFAULT-ITEM, if non-nil, specifies an initial default choice. Its value should be an event that has a binding in MENU. NO-EXECUTE, if non-nil, means to return the command the user selects instead of executing it. +PATH is a stack that keeps track of your path through sub-menus. It +is used to go back through those sub-menus. -(fn MENU &optional IN-POPUP DEFAULT-ITEM NO-EXECUTE)") +(fn MENU &optional IN-POPUP DEFAULT-ITEM NO-EXECUTE PATH)") (register-definition-prefixes "tmm" '("tmm-")) @@ -33459,8 +33578,9 @@ the output buffer or changing the window configuration. (load "tramp-compat" 'noerror 'nomessage)) (defvar tramp-mode t "\ Whether Tramp is enabled. -If it is set to nil, all remote file names are used literally.") -(custom-autoload 'tramp-mode "tramp" t) +If it is set to nil, all remote file names are used literally. Don't +set it manually, use `inhibit-remote-files' or `without-remote-files' +instead.") (defconst tramp-initial-file-name-regexp (rx bos "/" (+ (not (any "/:"))) ":" (* (not (any "/:"))) ":") "\ Value for `tramp-file-name-regexp' for autoload. It must match the initial `tramp-syntax' settings.") @@ -33622,7 +33742,7 @@ Add archive file name handler to `file-name-handler-alist'." (when (and tramp-ar ;;; Generated autoloads from transient.el -(push (purecopy '(transient 0 7 2 1)) package--builtin-versions) +(push (purecopy '(transient 0 7 4)) package--builtin-versions) (autoload 'transient-insert-suffix "transient" "\ Insert a SUFFIX into PREFIX before LOC. PREFIX is a prefix command, a symbol. @@ -34669,7 +34789,7 @@ is \"www.fsf.co.uk\". ;;; Generated autoloads from use-package/use-package.el -(push (purecopy '(use-package 2 4 5)) package--builtin-versions) +(push (purecopy '(use-package 2 4 6)) package--builtin-versions) ;;; Generated autoloads from use-package/use-package-bind-key.el @@ -35064,8 +35184,8 @@ remove from the list of ignored files. (autoload 'vc-version-diff "vc" "\ Report diffs between revisions REV1 and REV2 in the repository history. This compares two revisions of the current fileset. -If REV1 is nil, it defaults to the current revision, i.e. revision -of the last commit. +If REV1 is nil, it defaults to the previous revision, i.e. revision +before the last commit. If REV2 is nil, it defaults to the work tree, i.e. the current state of each file in the fileset. @@ -35683,7 +35803,7 @@ Key bindings: ;;; Generated autoloads from progmodes/verilog-mode.el -(push (purecopy '(verilog-mode 2024 3 1 121933719)) package--builtin-versions) +(push (purecopy '(verilog-mode 2024 10 9 140346409)) package--builtin-versions) (autoload 'verilog-mode "verilog-mode" "\ Major mode for editing Verilog code. \\ @@ -36639,7 +36759,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `view-mode'. +evaluate the variable `view-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -36734,7 +36854,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `visual-wrap-prefix-mode'. +evaluate the variable `visual-wrap-prefix-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -36965,6 +37085,183 @@ disabled. (fn &optional ARG)" t) (register-definition-prefixes "which-func" '("which-func")) + +;;; Generated autoloads from which-key.el + +(push (purecopy '(which-key 3 6 1)) package--builtin-versions) +(defvar which-key-mode nil "\ +Non-nil if Which-Key mode is enabled. +See the `which-key-mode' command +for a description of this minor mode. +Setting this variable directly does not take effect; +either customize it (see the info node `Easy Customization') +or call the function `which-key-mode'.") +(custom-autoload 'which-key-mode "which-key" nil) +(autoload 'which-key-mode "which-key" "\ +Toggle `which-key-mode'. + +`which-key' is a minor mode that displays the key bindings following +your currently entered incomplete command (a prefix) in a popup. + +For example, after enabling the minor mode, if you enter \\`C-x' and +wait for one second (by default), the minibuffer will expand with all +available key bindings that follow \\`C-x' (or as many as space allows +given your settings). + +This is a global minor mode. If called interactively, toggle the +`Which-Key mode' mode. If the prefix argument is positive, enable the +mode, and if it is zero or negative, disable the mode. + +If called from Lisp, toggle the mode if ARG is `toggle'. Enable the +mode if ARG is nil, omitted, or is a positive number. Disable the mode +if ARG is a negative number. + +To check whether the minor mode is enabled in the current buffer, +evaluate `(default-value \\='which-key-mode)'. + +The mode's hook is called both when the mode is enabled and when it is +disabled. + +(fn &optional ARG)" t) +(autoload 'which-key-setup-side-window-right "which-key" "\ +Set up side-window on right." t) +(autoload 'which-key-setup-side-window-right-bottom "which-key" "\ +Set up side-window on right if space allows. +Otherwise, use bottom." t) +(autoload 'which-key-setup-side-window-bottom "which-key" "\ +Set up side-window that opens on bottom." t) +(autoload 'which-key-setup-minibuffer "which-key" "\ +Set up minibuffer display. +Do not use this setup if you use the paging commands. Instead use +`which-key-setup-side-window-bottom', which is nearly identical +but more functional." t) +(autoload 'which-key-add-keymap-based-replacements "which-key" "\ +Replace the description of KEY using REPLACEMENT in KEYMAP. +KEY should take a format suitable for use in `kbd'. REPLACEMENT +should be a cons cell of the form (STRING . COMMAND) for each +REPLACEMENT, where STRING is the replacement string and COMMAND +is a symbol corresponding to the intended command to be +replaced. COMMAND can be nil if the binding corresponds to a key +prefix. An example is + +(which-key-add-keymap-based-replacements global-map + \"C-x w\" \\='(\"Save as\" . write-file)). + +For backwards compatibility, REPLACEMENT can also be a string, +but the above format is preferred, and the option to use a string +for REPLACEMENT will eventually be removed. + +(fn KEYMAP KEY REPLACEMENT &rest MORE)") +(function-put 'which-key-add-keymap-based-replacements 'lisp-indent-function 'defun) +(autoload 'which-key-add-key-based-replacements "which-key" "\ +Replace the description of KEY-SEQUENCE with REPLACEMENT. +KEY-SEQUENCE is a string suitable for use in `kbd'. +REPLACEMENT may either be a string, as in + +(which-key-add-key-based-replacements \"C-x 1\" \"maximize\") + +a cons of two strings as in + +(which-key-add-key-based-replacements \"C-x 8\" + \\='(\"unicode\" . \"Unicode keys\")) + +or a function that takes a (KEY . BINDING) cons and returns a +replacement. + +In the second case, the second string is used to provide a longer +name for the keys under a prefix. + +MORE allows you to specify additional KEY REPLACEMENT pairs. All +replacements are added to `which-key-replacement-alist'. + +(fn KEY-SEQUENCE REPLACEMENT &rest MORE)") +(autoload 'which-key-add-major-mode-key-based-replacements "which-key" "\ +Functions like `which-key-add-key-based-replacements'. +The difference is that MODE specifies the `major-mode' that must +be active for KEY-SEQUENCE and REPLACEMENT (MORE contains +addition KEY-SEQUENCE REPLACEMENT pairs) to apply. + +(fn MODE KEY-SEQUENCE REPLACEMENT &rest MORE)") +(function-put 'which-key-add-major-mode-key-based-replacements 'lisp-indent-function 'defun) +(autoload 'which-key-reload-key-sequence "which-key" "\ +Simulate entering the key sequence KEY-SEQ. +KEY-SEQ should be a list of events as produced by +`listify-key-sequence'. If nil, KEY-SEQ defaults to +`which-key--current-key-list'. Any prefix arguments that were +used are reapplied to the new key sequence. + +(fn &optional KEY-SEQ)") +(autoload 'which-key-show-standard-help "which-key" "\ +Call the command in `which-key--prefix-help-cmd-backup'. +Usually this is `describe-prefix-bindings'. + +(fn &optional _)" t) +(autoload 'which-key-show-next-page-no-cycle "which-key" "\ +Show next page of keys or `which-key-show-standard-help'." t) +(autoload 'which-key-show-previous-page-no-cycle "which-key" "\ +Show previous page of keys if one exists." t) +(autoload 'which-key-show-next-page-cycle "which-key" "\ +Show the next page of keys, cycling from end to beginning. + +(fn &optional _)" t) +(autoload 'which-key-show-previous-page-cycle "which-key" "\ +Show the previous page of keys, cycling from beginning to end. + +(fn &optional _)" t) +(autoload 'which-key-show-top-level "which-key" "\ +Show top-level bindings. + +(fn &optional _)" t) +(autoload 'which-key-show-major-mode "which-key" "\ +Show top-level bindings in the map of the current major mode. +This function will also detect evil bindings made using +`evil-define-key' in this map. These bindings will depend on the +current evil state. + +(fn &optional ALL)" t) +(autoload 'which-key-show-full-major-mode "which-key" "\ +Show all bindings in the map of the current major mode. +This function will also detect evil bindings made using +`evil-define-key' in this map. These bindings will depend on the +current evil state." t) +(autoload 'which-key-dump-bindings "which-key" "\ +Dump bindings from PREFIX into buffer named BUFFER-NAME. +PREFIX should be a string suitable for `kbd'. + +(fn PREFIX BUFFER-NAME)" t) +(autoload 'which-key-undo-key "which-key" "\ +Undo last keypress and force which-key update. + +(fn &optional _)" t) +(autoload 'which-key-C-h-dispatch "which-key" "\ +Dispatch \\`C-h' commands by looking up key in `which-key-C-h-map'. +This command is always accessible (from any prefix) if +`which-key-use-C-h-commands' is non nil." t) +(autoload 'which-key-show-keymap "which-key" "\ +Show the top-level bindings in KEYMAP using which-key. +KEYMAP is selected interactively from all available keymaps. + +If NO-PAGING is non-nil, which-key will not intercept subsequent +keypresses for the paging functionality. + +(fn KEYMAP &optional NO-PAGING)" t) +(autoload 'which-key-show-full-keymap "which-key" "\ +Show all bindings in KEYMAP using which-key. +KEYMAP is selected interactively from all available keymaps. + +(fn KEYMAP)" t) +(autoload 'which-key-show-minor-mode-keymap "which-key" "\ +Show the top-level bindings in KEYMAP using which-key. +KEYMAP is selected interactively by mode in +`minor-mode-map-alist'. + +(fn &optional ALL)" t) +(autoload 'which-key-show-full-minor-mode-keymap "which-key" "\ +Show all bindings in KEYMAP using which-key. +KEYMAP is selected interactively by mode in +`minor-mode-map-alist'." t) +(register-definition-prefixes "which-key" '("evil-state" "which-key-")) + ;;; Generated autoloads from whitespace.el @@ -36987,7 +37284,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `whitespace-mode'. +evaluate the variable `whitespace-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -37012,7 +37309,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `whitespace-newline-mode'. +evaluate the variable `whitespace-newline-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -37391,7 +37688,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `widget-minor-mode'. +evaluate the variable `widget-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -37636,7 +37933,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `window-tool-bar-mode'. +evaluate the variable `window-tool-bar-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -37778,7 +38075,7 @@ mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, -evaluate `word-wrap-whitespace-mode'. +evaluate the variable `word-wrap-whitespace-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. @@ -38091,7 +38388,7 @@ TYPES should be a MIME media type symbol, a regexp, or a list that can contain both symbols and regexps. HANDLER is a function that will be called with two arguments: The -MIME type (a symbol on the form `image/png') and the selection +MIME type (a symbol of the form `image/png') and the selection data (a string). (fn TYPES HANDLER)") @@ -38125,300 +38422,6 @@ run a specific program. The program must be a member of (fn &optional PGM)" t) (register-definition-prefixes "zone" '("zone-")) - - -;;; Generated autoloads from org/org-element-ast.el - -(register-definition-prefixes "org-element-ast" '("org-element-")) - - -;;; Generated autoloads from progmodes/php-ts-mode.el - -(autoload 'php-ts-mode "php-ts-mode" "\ -Major mode for editing PHP, powered by tree-sitter. - -(fn)" t) -(autoload 'php-ts-mode-run-php-webserver "php-ts-mode" "\ -Run PHP built-in web server. - -PORT: Port number of built-in web server, default `php-ts-mode-ws-port'. -Prompt for the port if the default value is nil. -HOSTNAME: Hostname or IP address of Built-in web server, -default `php-ts-mode-ws-hostname'. Prompt for the hostname if the -default value is nil. -DOCUMENT-ROOT: Path to Document root, default `php-ts-mode-ws-document-root'. -Prompt for the document-root if the default value is nil. -ROUTER-SCRIPT: Path of the router PHP script, -see `https://www.php.net/manual/en/features.commandline.webserver.php' -NUM-OF-WORKERS: Before run the web server set the -PHP_CLI_SERVER_WORKERS env variable useful for testing code against -multiple simultaneous requests. - -Interactively, when invoked with prefix argument, always prompt -for PORT, HOSTNAME, DOCUMENT-ROOT and ROUTER-SCRIPT. - -(fn &optional PORT HOSTNAME DOCUMENT-ROOT ROUTER-SCRIPT NUM-OF-WORKERS)" t) -(autoload 'run-php "php-ts-mode" "\ -Run an PHP interpreter as a inferior process. - -Arguments CMD and CONFIG, default to `php-ts-mode-php-executable' -and `php-ts-mode-php-config' respectively, control which PHP interpreter is run. -Prompt for CMD if `php-ts-mode-php-executable' is nil. -Optional CONFIG, if supplied, is the php.ini file to use. - -(fn &optional CMD CONFIG)" t) -(register-definition-prefixes "php-ts-mode" '("inferior-php-ts-mode" "php-ts-")) - - -;;; Generated autoloads from editorconfig.el - -(push (purecopy '(editorconfig 0 11 0)) package--builtin-versions) -(defvar editorconfig-mode nil "\ -Non-nil if Editorconfig mode is enabled. -See the `editorconfig-mode' command -for a description of this minor mode. -Setting this variable directly does not take effect; -either customize it (see the info node `Easy Customization') -or call the function `editorconfig-mode'.") -(custom-autoload 'editorconfig-mode "editorconfig" nil) -(autoload 'editorconfig-mode "editorconfig" "\ -Toggle EditorConfig feature. - -This is a global minor mode. If called interactively, toggle the -`Editorconfig mode' mode. If the prefix argument is positive, enable -the mode, and if it is zero or negative, disable the mode. - -If called from Lisp, toggle the mode if ARG is `toggle'. Enable the -mode if ARG is nil, omitted, or is a positive number. Disable the mode -if ARG is a negative number. - -To check whether the minor mode is enabled in the current buffer, -evaluate `(default-value \\='editorconfig-mode)'. - -The mode's hook is called both when the mode is enabled and when it is -disabled. - -(fn &optional ARG)" t) -(register-definition-prefixes "editorconfig" '("editorconfig-")) - - -;;; Generated autoloads from editorconfig-conf-mode.el - -(autoload 'editorconfig-conf-mode "editorconfig-conf-mode" "\ -Major mode for editing .editorconfig files. - -(fn)" t) -(add-to-list 'auto-mode-alist '("\\.editorconfig\\'" . editorconfig-conf-mode)) -(register-definition-prefixes "editorconfig-conf-mode" '("editorconfig-conf-mode-")) - - -;;; Generated autoloads from editorconfig-core.el - -(register-definition-prefixes "editorconfig-core" '("editorconfig-core-")) - - -;;; Generated autoloads from editorconfig-core-handle.el - -(register-definition-prefixes "editorconfig-core-handle" '("editorconfig-core-handle")) - - -;;; Generated autoloads from editorconfig-fnmatch.el - -(register-definition-prefixes "editorconfig-fnmatch" '("editorconfig-fnmatch-")) - - -;;; Generated autoloads from editorconfig-tools.el - -(autoload 'editorconfig-apply "editorconfig-tools" "\ -Get and apply EditorConfig properties to current buffer. - -This function does not respect the values of `editorconfig-exclude-modes' and -`editorconfig-exclude-regexps' and always applies available properties. -Use `editorconfig-mode-apply' instead to make use of these variables." t) -(autoload 'editorconfig-find-current-editorconfig "editorconfig-tools" "\ -Find the closest .editorconfig file for current file." t) -(autoload 'editorconfig-display-current-properties "editorconfig-tools" "\ -Display EditorConfig properties extracted for current buffer." t) -(defalias 'describe-editorconfig-properties #'editorconfig-display-current-properties) -(register-definition-prefixes "editorconfig-tools" '("editorconfig-mode-apply")) - - -;;; Generated autoloads from which-key.el - -(push (purecopy '(which-key 3 6 1)) package--builtin-versions) -(defvar which-key-mode nil "\ -Non-nil if Which-Key mode is enabled. -See the `which-key-mode' command -for a description of this minor mode. -Setting this variable directly does not take effect; -either customize it (see the info node `Easy Customization') -or call the function `which-key-mode'.") -(custom-autoload 'which-key-mode "which-key" nil) -(autoload 'which-key-mode "which-key" "\ -Toggle `which-key-mode'. - -`which-key' is a minor mode that displays the key bindings following -your currently entered incomplete command (a prefix) in a popup. - -For example, after enabling the minor mode, if you enter \\`C-x' and -wait for one second (by default), the minibuffer will expand with all -available key bindings that follow \\`C-x' (or as many as space allows -given your settings). - -This is a global minor mode. If called interactively, toggle the -`Which-Key mode' mode. If the prefix argument is positive, enable the -mode, and if it is zero or negative, disable the mode. - -If called from Lisp, toggle the mode if ARG is `toggle'. Enable the -mode if ARG is nil, omitted, or is a positive number. Disable the mode -if ARG is a negative number. - -To check whether the minor mode is enabled in the current buffer, -evaluate `(default-value \\='which-key-mode)'. - -The mode's hook is called both when the mode is enabled and when it is -disabled. - -(fn &optional ARG)" t) -(autoload 'which-key-setup-side-window-right "which-key" "\ -Set up side-window on right." t) -(autoload 'which-key-setup-side-window-right-bottom "which-key" "\ -Set up side-window on right if space allows. -Otherwise, use bottom." t) -(autoload 'which-key-setup-side-window-bottom "which-key" "\ -Set up side-window that opens on bottom." t) -(autoload 'which-key-setup-minibuffer "which-key" "\ -Set up minibuffer display. -Do not use this setup if you use the paging commands. Instead use -`which-key-setup-side-window-bottom', which is nearly identical -but more functional." t) -(autoload 'which-key-add-keymap-based-replacements "which-key" "\ -Replace the description of KEY using REPLACEMENT in KEYMAP. -KEY should take a format suitable for use in `kbd'. REPLACEMENT -should be a cons cell of the form (STRING . COMMAND) for each -REPLACEMENT, where STRING is the replacement string and COMMAND -is a symbol corresponding to the intended command to be -replaced. COMMAND can be nil if the binding corresponds to a key -prefix. An example is - -(which-key-add-keymap-based-replacements global-map - \"C-x w\" \\='(\"Save as\" . write-file)). - -For backwards compatibility, REPLACEMENT can also be a string, -but the above format is preferred, and the option to use a string -for REPLACEMENT will eventually be removed. - -(fn KEYMAP KEY REPLACEMENT &rest MORE)") -(function-put 'which-key-add-keymap-based-replacements 'lisp-indent-function 'defun) -(autoload 'which-key-add-key-based-replacements "which-key" "\ -Replace the description of KEY-SEQUENCE with REPLACEMENT. -KEY-SEQUENCE is a string suitable for use in `kbd'. -REPLACEMENT may either be a string, as in - -(which-key-add-key-based-replacements \"C-x 1\" \"maximize\") - -a cons of two strings as in - -(which-key-add-key-based-replacements \"C-x 8\" - \\='(\"unicode\" . \"Unicode keys\")) - -or a function that takes a (KEY . BINDING) cons and returns a -replacement. - -In the second case, the second string is used to provide a longer -name for the keys under a prefix. - -MORE allows you to specify additional KEY REPLACEMENT pairs. All -replacements are added to `which-key-replacement-alist'. - -(fn KEY-SEQUENCE REPLACEMENT &rest MORE)") -(autoload 'which-key-add-major-mode-key-based-replacements "which-key" "\ -Functions like `which-key-add-key-based-replacements'. -The difference is that MODE specifies the `major-mode' that must -be active for KEY-SEQUENCE and REPLACEMENT (MORE contains -addition KEY-SEQUENCE REPLACEMENT pairs) to apply. - -(fn MODE KEY-SEQUENCE REPLACEMENT &rest MORE)") -(function-put 'which-key-add-major-mode-key-based-replacements 'lisp-indent-function 'defun) -(autoload 'which-key-reload-key-sequence "which-key" "\ -Simulate entering the key sequence KEY-SEQ. -KEY-SEQ should be a list of events as produced by -`listify-key-sequence'. If nil, KEY-SEQ defaults to -`which-key--current-key-list'. Any prefix arguments that were -used are reapplied to the new key sequence. - -(fn &optional KEY-SEQ)") -(autoload 'which-key-show-standard-help "which-key" "\ -Call the command in `which-key--prefix-help-cmd-backup'. -Usually this is `describe-prefix-bindings'. - -(fn &optional _)" t) -(autoload 'which-key-show-next-page-no-cycle "which-key" "\ -Show next page of keys or `which-key-show-standard-help'." t) -(autoload 'which-key-show-previous-page-no-cycle "which-key" "\ -Show previous page of keys if one exists." t) -(autoload 'which-key-show-next-page-cycle "which-key" "\ -Show the next page of keys, cycling from end to beginning. - -(fn &optional _)" t) -(autoload 'which-key-show-previous-page-cycle "which-key" "\ -Show the previous page of keys, cycling from beginning to end. - -(fn &optional _)" t) -(autoload 'which-key-show-top-level "which-key" "\ -Show top-level bindings. - -(fn &optional _)" t) -(autoload 'which-key-show-major-mode "which-key" "\ -Show top-level bindings in the map of the current major mode. -This function will also detect evil bindings made using -`evil-define-key' in this map. These bindings will depend on the -current evil state. - -(fn &optional ALL)" t) -(autoload 'which-key-show-full-major-mode "which-key" "\ -Show all bindings in the map of the current major mode. -This function will also detect evil bindings made using -`evil-define-key' in this map. These bindings will depend on the -current evil state." t) -(autoload 'which-key-dump-bindings "which-key" "\ -Dump bindings from PREFIX into buffer named BUFFER-NAME. -PREFIX should be a string suitable for `kbd'. - -(fn PREFIX BUFFER-NAME)" t) -(autoload 'which-key-undo-key "which-key" "\ -Undo last keypress and force which-key update. - -(fn &optional _)" t) -(autoload 'which-key-C-h-dispatch "which-key" "\ -Dispatch \\`C-h' commands by looking up key in `which-key-C-h-map'. -This command is always accessible (from any prefix) if -`which-key-use-C-h-commands' is non nil." t) -(autoload 'which-key-show-keymap "which-key" "\ -Show the top-level bindings in KEYMAP using which-key. -KEYMAP is selected interactively from all available keymaps. - -If NO-PAGING is non-nil, which-key will not intercept subsequent -keypresses for the paging functionality. - -(fn KEYMAP &optional NO-PAGING)" t) -(autoload 'which-key-show-full-keymap "which-key" "\ -Show all bindings in KEYMAP using which-key. -KEYMAP is selected interactively from all available keymaps. - -(fn KEYMAP)" t) -(autoload 'which-key-show-minor-mode-keymap "which-key" "\ -Show the top-level bindings in KEYMAP using which-key. -KEYMAP is selected interactively by mode in -`minor-mode-map-alist'. - -(fn &optional ALL)" t) -(autoload 'which-key-show-full-minor-mode-keymap "which-key" "\ -Show all bindings in KEYMAP using which-key. -KEYMAP is selected interactively by mode in -`minor-mode-map-alist'." t) -(register-definition-prefixes "which-key" '("evil-state" "which-key-")) - ;;; End of scraped data @@ -38427,8 +38430,8 @@ KEYMAP is selected interactively by mode in ;; Local Variables: ;; version-control: never ;; no-update-autoloads: t -;; no-native-compile: t ;; no-byte-compile: t +;; no-native-compile: t ;; coding: utf-8-emacs-unix ;; End: commit db7b3f6b953a9c5314db3c3e34639893e53da960 Merge: 65a55c90cf0 74a972cace6 Author: Eli Zaretskii Date: Sat Nov 23 04:46:10 2024 -0500 Merge from origin/emacs-30 74a972cace6 Skip proced refine tests on Darwin c50ce03afc1 ; Fix recent additions to the manuals c818c5bbafd ; * lisp/term/w32-win.el (tree-sitter--library-abi): Decl... b71d3b2f52f ; Better clarify function types in C-h f (bug#73626) 59b3eae481d ; Introduce type specifiers to the elisp manual (bug#73626) 83fc3cf53a4 Future-proof loading tree-sitter library on MS-Windows 3eb30186825 ; Improve documentation of 'category' in display-buffer a... 4d80c4f4858 ; More accurate documentation of 'set-mark-command' 70dd5705e11 Fix overriding 'c-ts-mode' by 'c-mode' 331610aef05 ; Improve vc-dir help-echo 9c484d51012 ; Avoid assertion violations in "temacs -Q" 8dc9dfdc381 lisp/progmodes/c-ts-mode.el: Demote loading c-ts-mode as ... 426bce8a675 ; In PROBLEMS mention issue with .Xresources on Gnome des... commit 65a55c90cf09113c97ba9b9aed489196618022c3 Merge: 07543dd226a 6036e0dadf3 Author: Eli Zaretskii Date: Sat Nov 23 04:46:10 2024 -0500 ; Merge from origin/emacs-30 The following commit was skipped: 6036e0dadf3 Backport: Don't autoload erc-modules commit 07543dd226a2794424a2841d65143809ab532264 Merge: 097b685aa1c fc52cb8d741 Author: Eli Zaretskii Date: Sat Nov 23 04:46:09 2024 -0500 Merge from origin/emacs-30 fc52cb8d741 ; etc/NEWS: Fix example indentation. 81816800628 Improve the documentation of major-mode remapping 0856360d80c ; Fix typo in recent change d4f81f716ae Improve 'which-key-special-keys' docstring 926d47ab2ca Don't error in Proced tests if %CPU is a NaN commit 74a972cace6816753475c3c21f5b164a9a9342dd Author: Laurence Warne Date: Thu Nov 21 17:26:25 2024 +0000 Skip proced refine tests on Darwin * test/lisp/proced-tests.el (proced-refine-test) (proced-refine-with-update-test): Skip if the system is Darwin. diff --git a/test/lisp/proced-tests.el b/test/lisp/proced-tests.el index 65afeeb5f08..852fd441359 100644 --- a/test/lisp/proced-tests.el +++ b/test/lisp/proced-tests.el @@ -114,6 +114,8 @@ CPU is as in `proced--assert-process-valid-cpu-refinement'." (proced--assert-emacs-pid-in-buffer)))) (ert-deftest proced-refine-test () + ;; %CPU is not implemented on macOS + (skip-when (eq system-type 'darwin)) (proced--within-buffer 'verbose 'user @@ -127,6 +129,7 @@ CPU is as in `proced--assert-process-valid-cpu-refinement'." (forward-line))))) (ert-deftest proced-refine-with-update-test () + (skip-when (eq system-type 'darwin)) (proced--within-buffer 'verbose 'user commit c50ce03afc1ee636d5678844fcf982b7ac0a7f8f Author: Eli Zaretskii Date: Thu Nov 21 17:47:22 2024 +0200 ; Fix recent additions to the manuals * doc/lispref/objects.texi (Type Specifiers): * doc/lispref/functions.texi (Declare Form): * doc/emacs/help.texi (Name Help): Fix wording and markup. (Bug#73626) diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index 079ea76156f..f9120bead20 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -326,8 +326,8 @@ yet further information is often reachable by clicking or typing The function type, if known, is expressed with a @dfn{function type specifier} (@pxref{Type Specifiers,,,elisp, The Emacs Lisp Reference -Manual}), it will be specified if the type was manually declared by the -programmer or inferred by the compiler. Note that function type +Manual}), it will be specified if the type was manually declared by a +Lisp program or inferred by the compiler. Note that function type inference works only when native compilation is enabled (@pxref{native compilation,,, elisp, The Emacs Lisp Reference Manual}). diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 4ffa3d7ead4..82f87614b29 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -2734,7 +2734,7 @@ generation and for deriving more precisely the type of other functions without type declaration. @var{type} is a @dfn{type specifier} (@pxref{Type Specifiers}) in the -form @w{@code{(function (@var{arg-1-type} ... @var{arg-n-type}) +form @w{@code{(function (@var{arg-1-type} @dots{} @var{arg-n-type}) RETURN-TYPE)}}. Argument types can be interleaved with symbols @code{&optional} and @code{&rest} to match the function's arguments (@pxref{Argument List}). diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi index d847f438e0f..df9c2267cc4 100644 --- a/doc/lispref/objects.texi +++ b/doc/lispref/objects.texi @@ -1506,13 +1506,13 @@ An example of a type descriptor is any instance of A type specifier is an expression that denotes a type. A type represents a set of possible values. Type specifiers can be classified -in primitives and compounds. +into primitive types and compound types. -Type specifiers are in use for several purposes including: documenting +Type specifiers are in use for several purposes, including: documenting function interfaces through declaration (@pxref{Declare Form}), specifying structure slot values (@pxref{Structures,,, cl, Common Lisp Extensions for GNU Emacs Lisp}), type-checking through @code{cl-the} -(@pxref{Declarations,,, cl, Common Lisp Extensions for GNU Emacs Lisp}) +(@pxref{Declarations,,, cl, Common Lisp Extensions for GNU Emacs Lisp}), and others. @table @asis @@ -1521,7 +1521,7 @@ Primitive types specifiers are the basic types (i.e.@: not composed by other type specifiers). Built-in primitive types (like @code{integer}, @code{float}, -@code{string} etc) are listed in @ref{Type Hierarchy}. +@code{string} etc.@:) are listed in @ref{Type Hierarchy}. @item Compound type specifiers Compound types serve the purpose of defining more complex or precise @@ -1530,55 +1530,59 @@ type specifications by combining or modifying simpler types. List of compound type specifiers: @table @code -@item (or @var{type-1} .. @var{type-n}) +@item (or @var{type-1} @dots{} @var{type-n}) The @code{or} type specifier describes a type that satisfies at least one of the given types. -@item (and @var{type-1} .. @var{type-n}) +@item (and @var{type-1} @dots{} @var{type-n}) Similarly the @code{and} type specifier describes a type that satisfies -all the given types. +all of the given types. @item (not @var{type}) The @code{not} type specifier defines any type except the specified one. -@item (member @var{value-1} .. @var{value-n}) +@item (member @var{value-1} @dots{} @var{value-n}) The @code{member} type specifier allows to specify a type that includes only the explicitly listed values. -@item (function (@var{arg-1-type} ... @var{arg-n-type}) @var{return-type}) +@item (function (@var{arg-1-type} @dots{} @var{arg-n-type}) @var{return-type}) The @code{function} type specifier is used to describe the argument -types and return type of a function. Argument types can be interleaved +types and the return type of a function. Argument types can be interleaved with symbols @code{&optional} and @code{&rest} to match the function's arguments (@pxref{Argument List}). -The following is to represent a function with: a first parameter of type -@code{symbol}, a second optional parameter of type @code{float} and -returning an @code{integer}: +The type specifier represent a function whose first parameter is of type +@code{symbol}, the second optional parameter is of type @code{float}, +and which returns an @code{integer}: + @example -(function (symbol &optional float) integer) + (function (symbol &optional float) integer) @end example @item (integer @var{lower-bound} @var{upper-bound}) - -@code{integer} can be used as well as a compound type specifier to -define a subset of integers by specifying a range. This allows to -precisely control which integers are valid for a given type. +The @code{integer} type specifier can also be used as a compound type +specifier to define a subset of integer values by specifying a range. +This allows to precisely control which integers are valid for a given +type. @var{lower-bound} is the minimum integer value in the range and -@var{upper-bound} the maximum. It is possible to use @code{*} to -indicate no lower or uper limit. +@var{upper-bound} the maximum. You can use @code{*} instead of the +lower or upper bound to indicate no limit. + +The following represents all integers from -10 to 10: -The following represents all integers from -10 to 10. @example (integer -10 10) @end example -The following represents 10. +The following represents the single value of 10: + @example (integer 10 10) @end example -The following represents all integers from negative infinity to 10. +The following represents all the integers from negative infinity to 10: + @example (integer * 10) @end example commit c818c5bbafde627ed277c599815c27f8cd40f891 Author: Andrea Corallo Date: Thu Nov 21 16:02:37 2024 +0100 ; * lisp/term/w32-win.el (tree-sitter--library-abi): Declare to rm warning. diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index 2a59ec2460d..5b8f9ad0109 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -224,6 +224,8 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") (defvar libgnutls-version) ; gnutls.c +(defvar tree-sitter--library-abi) ; treesit.c + ;;; Set default known names for external libraries (setq dynamic-library-alist (list commit b71d3b2f52ff186e2e7e9724890aa08d0fc9796b Author: Andrea Corallo Date: Thu Nov 14 01:01:08 2024 +0100 ; Better clarify function types in C-h f (bug#73626) * doc/emacs/help.texi (Name Help): Better clarify function types. diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi index f15b4c5e89d..079ea76156f 100644 --- a/doc/emacs/help.texi +++ b/doc/emacs/help.texi @@ -322,6 +322,15 @@ file where it was defined, whether it has been declared obsolete, and yet further information is often reachable by clicking or typing @key{RET} on emphasized parts of the text. +@cindex function type specifier + +The function type, if known, is expressed with a @dfn{function type +specifier} (@pxref{Type Specifiers,,,elisp, The Emacs Lisp Reference +Manual}), it will be specified if the type was manually declared by the +programmer or inferred by the compiler. Note that function type +inference works only when native compilation is enabled (@pxref{native +compilation,,, elisp, The Emacs Lisp Reference Manual}). + @vindex help-enable-symbol-autoload If you request help for an autoloaded function whose @code{autoload} form (@pxref{Autoload,,, elisp, The Emacs Lisp Reference Manual}) commit 59b3eae481d59d901ff64de1a827d3dd656a4fc9 Author: Andrea Corallo Date: Thu Nov 14 00:20:13 2024 +0100 ; Introduce type specifiers to the elisp manual (bug#73626) * doc/lispref/objects.texi (Programming Types): Add 'Type Specifiers' entry. (Type Specifiers): Add node. * doc/lispref/functions.texi (Declare Form): Add 'Type Specifiers' reference. diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi index 7fb9fb37c0a..4ffa3d7ead4 100644 --- a/doc/lispref/functions.texi +++ b/doc/lispref/functions.texi @@ -2733,10 +2733,11 @@ native compiler (@pxref{Native Compilation}) for improving code generation and for deriving more precisely the type of other functions without type declaration. -@var{type} is a type specifier in the form @w{@code{(function -(ARG-1-TYPE ... ARG-N-TYPE) RETURN-TYPE)}}. Argument types can be -interleaved with symbols @code{&optional} and @code{&rest} to match the -function's arguments (@pxref{Argument List}). +@var{type} is a @dfn{type specifier} (@pxref{Type Specifiers}) in the +form @w{@code{(function (@var{arg-1-type} ... @var{arg-n-type}) +RETURN-TYPE)}}. Argument types can be interleaved with symbols +@code{&optional} and @code{&rest} to match the function's arguments +(@pxref{Argument List}). @var{function} if present should be the name of function being defined. diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi index 34ea7cf4996..d847f438e0f 100644 --- a/doc/lispref/objects.texi +++ b/doc/lispref/objects.texi @@ -247,6 +247,7 @@ latter are unique to Emacs Lisp. * Closure Type:: A function written in Lisp. * Record Type:: Compound objects with programmer-defined types. * Type Descriptors:: Objects holding information about types. +* Type Specifiers:: Expressions which describe types. * Autoload Type:: A type used for automatically loading seldom-used functions. * Finalizer Type:: Runs code when no longer reachable. @@ -1499,6 +1500,92 @@ free for use by Lisp extensions. An example of a type descriptor is any instance of @code{cl-structure-class}. +@node Type Specifiers +@subsection Type Specifiers +@cindex type specifier + +A type specifier is an expression that denotes a type. A type +represents a set of possible values. Type specifiers can be classified +in primitives and compounds. + +Type specifiers are in use for several purposes including: documenting +function interfaces through declaration (@pxref{Declare Form}), +specifying structure slot values (@pxref{Structures,,, cl, Common Lisp +Extensions for GNU Emacs Lisp}), type-checking through @code{cl-the} +(@pxref{Declarations,,, cl, Common Lisp Extensions for GNU Emacs Lisp}) +and others. + +@table @asis +@item Primitive type specifiers +Primitive types specifiers are the basic types (i.e.@: not composed by other +type specifiers). + +Built-in primitive types (like @code{integer}, @code{float}, +@code{string} etc) are listed in @ref{Type Hierarchy}. + +@item Compound type specifiers +Compound types serve the purpose of defining more complex or precise +type specifications by combining or modifying simpler types. + +List of compound type specifiers: + +@table @code +@item (or @var{type-1} .. @var{type-n}) +The @code{or} type specifier describes a type that satisfies at least +one of the given types. + +@item (and @var{type-1} .. @var{type-n}) +Similarly the @code{and} type specifier describes a type that satisfies +all the given types. + +@item (not @var{type}) +The @code{not} type specifier defines any type except the specified one. + +@item (member @var{value-1} .. @var{value-n}) +The @code{member} type specifier allows to specify a type that includes +only the explicitly listed values. + +@item (function (@var{arg-1-type} ... @var{arg-n-type}) @var{return-type}) +The @code{function} type specifier is used to describe the argument +types and return type of a function. Argument types can be interleaved +with symbols @code{&optional} and @code{&rest} to match the function's +arguments (@pxref{Argument List}). + +The following is to represent a function with: a first parameter of type +@code{symbol}, a second optional parameter of type @code{float} and +returning an @code{integer}: +@example +(function (symbol &optional float) integer) +@end example + +@item (integer @var{lower-bound} @var{upper-bound}) + +@code{integer} can be used as well as a compound type specifier to +define a subset of integers by specifying a range. This allows to +precisely control which integers are valid for a given type. + +@var{lower-bound} is the minimum integer value in the range and +@var{upper-bound} the maximum. It is possible to use @code{*} to +indicate no lower or uper limit. + +The following represents all integers from -10 to 10. +@example +(integer -10 10) +@end example + +The following represents 10. +@example +(integer 10 10) +@end example + +The following represents all integers from negative infinity to 10. +@example +(integer * 10) +@end example + +@end table +@end table + @node Autoload Type @subsection Autoload Type commit 83fc3cf53a4b54a4ec3bf464cfea97f74522cd8d Author: Eli Zaretskii Date: Thu Nov 21 14:55:38 2024 +0200 Future-proof loading tree-sitter library on MS-Windows * src/treesit.c (syms_of_treesit) : New internal variable. * lisp/term/w32-win.el (dynamic-library-alist): Use 'tree-sitter--library-abi' to select a proper libtree-sitter DLL version. diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el index 3c0acf368f4..2a59ec2460d 100644 --- a/lisp/term/w32-win.el +++ b/lisp/term/w32-win.el @@ -290,8 +290,18 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.") '(lcms2 "liblcms2-2.dll") '(gccjit "libgccjit-0.dll") ;; MSYS2 distributes libtree-sitter.dll, without API version - ;; number... - '(tree-sitter "libtree-sitter.dll" "libtree-sitter-0.dll"))) + ;; number, upto and including version 0.24.3-2; later versions + ;; come with libtree-sitter-major.minor.dll (as in + ;; libtree-sitter-0.24.dll). Sadly, the header files don't have + ;; any symbols for library version, so we can only use the + ;; library-language ABI version; according to + ;; https://github.com/tree-sitter/tree-sitter/issues/3925, the + ;; language ABI must change when the library's ABI is modified. + (if (<= tree-sitter--library-abi 14) + '(tree-sitter "libtree-sitter-0.24.dll" + "libtree-sitter.dll" + "libtree-sitter-0.dll") + '(tree-sitter "libtree-sitter-0.25.dll")))) ;;; multi-tty support (defvar w32-initialized nil diff --git a/src/treesit.c b/src/treesit.c index 679b8fc7ddd..4031d80f7c9 100644 --- a/src/treesit.c +++ b/src/treesit.c @@ -4371,4 +4371,15 @@ the symbol of that THING. For example, (or sexp sentence). */); defsubr (&Streesit_subtree_stat); #endif /* HAVE_TREE_SITTER */ defsubr (&Streesit_available_p); +#ifdef WINDOWSNT + DEFSYM (Qtree_sitter__library_abi, "tree-sitter--library-abi"); + Fset (Qtree_sitter__library_abi, +#if HAVE_TREE_SITTER + make_fixnum (TREE_SITTER_LANGUAGE_VERSION) +#else + make_fixnum (-1) +#endif + ); +#endif + } commit 3eb3018682595208076fe7beea1175e123cf1966 Author: Eli Zaretskii Date: Thu Nov 21 12:28:26 2024 +0200 ; Improve documentation of 'category' in display-buffer actions * doc/lispref/windows.texi (Choosing Window) (Buffer Display Action Alists): Add cross-references. * doc/lispref/buffers.texi (Buffer List): * lisp/subr.el (buffer-match-p): Improve documentation of 'category' condition. (Bug#74361) diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi index 5375eb64155..5aa712e4247 100644 --- a/doc/lispref/buffers.texi +++ b/doc/lispref/buffers.texi @@ -1000,6 +1000,12 @@ Satisfied if the buffer's major mode is equal to @var{expr}. Prefer using @code{derived-mode} instead, when both can work. Note that this condition might fail to report a match if @code{buffer-match-p} is invoked before the major mode of the buffer has been established. +@item category +This is pertinent only when this function is called by +@code{display-buffer} (@pxref{Buffer Display Action Alists}), and is +satisfied if the action alist with which @code{display-buffer} was +called includes @w{@code{(category . @var{expr})}} in the value of its +@var{action} argument. @xref{Buffer Display Action Alists}. @end table @item t Satisfied by any buffer. A convenient alternative to @code{""} (empty diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index f5963d984e9..c7e575b0e4f 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -2656,6 +2656,9 @@ for example: @end group @end example +@noindent +@xref{Buffer List, @code{buffer-match-p}}. + Regardless of the displayed buffer's name the caller defines a category as a symbol @code{comint}. Then @code{display-buffer-alist} matches this category for all buffers displayed with the same category. @@ -3405,9 +3408,13 @@ windows were selected afterwards within this command. @vindex category@r{, a buffer display action alist entry} @item category If the caller of @code{display-buffer} passes an alist entry -@code{(category . symbol)} in its @var{action} argument, then you can -match the displayed buffer by using the same category in the condition -part of @code{display-buffer-alist} entries. +@w{@code{(category . @var{symbol})}} in its @var{action} argument, then you +can match the displayed buffer by using the same category symbol in the +condition part of @code{display-buffer-alist} entries. @xref{Buffer +List, @code{buffer-match-p}}. Thus, if a Lisp program uses a particular +@var{symbol} as the category when calling @code{display-buffer}, users +can customize how these buffers will be displayed by including such an +entry in @code{display-buffer-alist}. @end table By convention, the entries @code{window-height}, @code{window-width} diff --git a/lisp/subr.el b/lisp/subr.el index 2152f16ba95..e9d12644d0e 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -7447,9 +7447,10 @@ CONDITION is either: * `major-mode': the buffer matches if the buffer's major mode is eq to the cons-cell's cdr. Prefer using `derived-mode' instead when both can work. - * `category': the buffer matches a category as a symbol if - the caller of `display-buffer' provides `(category . symbol)' - in its action argument. + * `category': when this function is called from `display-buffer', + the buffer matches if the caller of `display-buffer' provides + `(category . SYMBOL)' in its ACTION argument, and SYMBOL is `eq' + to the cons-cell's cdr. * `not': the cadr is interpreted as a negation of a condition. * `and': the cdr is a list of recursive conditions, that all have to be met. commit 4d80c4f4858916becd528b236b29085d29cf3706 Author: Eli Zaretskii Date: Thu Nov 21 11:47:07 2024 +0200 ; More accurate documentation of 'set-mark-command' * doc/emacs/mark.texi (Setting Mark, Global Mark Ring): Explain that activating an existing mark doesn't set a new mark, and doesn't push the mark onto the global mark ring. (Bug#74438) diff --git a/doc/emacs/mark.texi b/doc/emacs/mark.texi index 0d705769f55..0a63f289011 100644 --- a/doc/emacs/mark.texi +++ b/doc/emacs/mark.texi @@ -112,7 +112,8 @@ to @code{set-mark-command}, so unless you are unlucky enough to have a text terminal that behaves differently, you might as well think of @kbd{C-@@} as @kbd{C-@key{SPC}}.}. This sets the mark where point is, and activates it. You can then move point away, leaving the mark -behind. +behind. If the mark is already set where point is, this command doesn't +set another mark, but only activates the existing mark. For example, suppose you wish to convert part of the buffer to upper case. To accomplish this, go to one end of the desired text, type @@ -398,6 +399,11 @@ of buffers that you have been in, and, for each buffer, a place where you set the mark. The length of the global mark ring is controlled by @code{global-mark-ring-max}, and is 16 by default. + Note that a mark is recorded in the global mark ring only when some +command sets the mark. If an existing mark is merely activated, as is +the case when you use @kbd{C-@key{SPC}} where a mark is already set +(@pxref{Setting Mark}), that doesn't push the mark onto the global ring. + @kindex C-x C-SPC @findex pop-global-mark The command @kbd{C-x C-@key{SPC}} (@code{pop-global-mark}) jumps to commit 70dd5705e11f2259dd1890cee6c72ddcf9d7dd33 Author: Eli Zaretskii Date: Thu Nov 21 09:43:34 2024 +0200 Fix overriding 'c-ts-mode' by 'c-mode' * lisp/progmodes/c-ts-mode.el: Remove all c- and c++-mode associations from 'major-mode-remap-defaults' before installing entries that remap to 'c-ts-mode' and 'c++-ts-mode'. (Bug#74339) diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index 647a9420e0d..90eeffe370c 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -1488,19 +1488,20 @@ the code is C or C++, and based on that chooses whether to enable 'c-ts-mode))) (funcall (major-mode-remap mode)))) -;; The entries for C++ must come first to prevent *.c files be taken -;; as C++ on case-insensitive filesystems, since *.C files are C++, -;; not C. -(if (treesit-ready-p 'cpp) - (add-to-list 'major-mode-remap-defaults - '(c++-mode . c++-ts-mode))) +(when (treesit-ready-p 'cpp) + (setq major-mode-remap-defaults + (assq-delete-all 'c++-mode major-mode-remap-defaults)) + (add-to-list 'major-mode-remap-defaults '(c++-mode . c++-ts-mode))) (when (treesit-ready-p 'c) - (add-to-list 'major-mode-remap-defaults '(c++-mode . c++-ts-mode)) + (setq major-mode-remap-defaults + (assq-delete-all 'c-mode major-mode-remap-defaults)) (add-to-list 'major-mode-remap-defaults '(c-mode . c-ts-mode))) (when (and (treesit-ready-p 'cpp) (treesit-ready-p 'c)) + (setq major-mode-remap-defaults + (assq-delete-all 'c-or-c++-mode major-mode-remap-defaults)) (add-to-list 'major-mode-remap-defaults '(c-or-c++-mode . c-or-c++-ts-mode))) (provide 'c-ts-mode) commit 331610aef0572eacb2846f817e979aa5e29170b7 Author: Eli Zaretskii Date: Mon Nov 18 21:25:18 2024 +0200 ; Improve vc-dir help-echo * lisp/vc/vc-git.el (vc-git-stash-shared-help) (vc-git-stash-list-help, vc-git-stash-menu-map): Improve help-echo text. diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 00cef214af7..61f1db527ad 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -739,9 +739,9 @@ or an empty string if none." "RET" #'push-button) (defconst vc-git-stash-shared-help - "\\\\[vc-git-stash]: Create named stash\n\\[vc-git-stash-snapshot]: Snapshot stash") + "\\\\[vc-git-stash]: Create named stash\n\\[vc-git-stash-snapshot]: Snapshot: stash from current tree") -(defconst vc-git-stash-list-help (concat "\\mouse-3: Show stash menu\n\\[vc-git-stash-show-at-point], =: Show stash\n\\[vc-git-stash-apply-at-point]: Apply stash\n\\[vc-git-stash-pop-at-point]: Apply and remove stash (pop)\n\\[vc-git-stash-delete-at-point]: Delete stash\n" +(defconst vc-git-stash-list-help (concat "\\mouse-3: Show stash menu\n\\[vc-git-stash-show-at-point], =: Show stash\n\\[vc-git-stash-apply-at-point]: Apply stash\n\\[vc-git-stash-pop-at-point]: Apply and remove stash (pop)\n\\[vc-git-stash-delete-at-point]: Delete (drop) stash\n" vc-git-stash-shared-help)) (defun vc-git--make-button-text (show count1 count2) @@ -779,19 +779,19 @@ or an empty string if none." (let ((map (make-sparse-keymap "Git Stash"))) (define-key map [sn] '(menu-item "Snapshot Stash" vc-git-stash-snapshot - :help "Snapshot stash")) + :help "Create stash from the current tree state")) (define-key map [cr] '(menu-item "Create Named Stash" vc-git-stash :help "Create named stash")) (define-key map [de] '(menu-item "Delete Stash" vc-git-stash-delete-at-point - :help "Delete the current stash")) + :help "Delete (drop) the current stash")) (define-key map [ap] '(menu-item "Apply Stash" vc-git-stash-apply-at-point :help "Apply the current stash and keep it in the stash list")) (define-key map [po] '(menu-item "Apply and Remove Stash (Pop)" vc-git-stash-pop-at-point - :help "Apply the current stash and remove it")) + :help "Apply the current stash and remove it (pop)")) (define-key map [sh] '(menu-item "Show Stash" vc-git-stash-show-at-point :help "Show the contents of the current stash")) commit 9c484d510121e0d545f952bc016586ead61d3f10 Author: Eli Zaretskii Date: Mon Nov 18 20:54:15 2024 +0200 ; Avoid assertion violations in "temacs -Q" * src/lread.c (build_load_history): Use Fequal to compare strings. diff --git a/src/lread.c b/src/lread.c index 854aaa784ad..c4d8d706872 100644 --- a/src/lread.c +++ b/src/lread.c @@ -2313,7 +2313,7 @@ build_load_history (Lisp_Object filename, bool entire) if (entire || !foundit) { Lisp_Object tem = Fnreverse (Vcurrent_load_list); - eassert (EQ (filename, Fcar (tem))); + eassert (!NILP (Fequal (filename, Fcar (tem)))); Vload_history = Fcons (tem, Vload_history); /* FIXME: There should be an unbind_to right after calling us which should re-establish the previous value of Vcurrent_load_list. */ commit 8dc9dfdc381f5b75594572bfb3bbfb5126bc4a88 Author: Stefan Monnier Date: Mon Nov 18 10:10:00 2024 -0500 lisp/progmodes/c-ts-mode.el: Demote loading c-ts-mode as a configuration See bug#74367. diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index 2785e9a6e68..647a9420e0d 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -35,12 +35,6 @@ ;; To use these modes by default, assuming you have the respective ;; tree-sitter grammars available, do one of the following: ;; -;; - If you have both C and C++ grammars installed, add -;; -;; (require 'c-ts-mode) -;; -;; to your init file. -;; ;; - Add one or mode of the following to your init file: ;; ;; (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode)) @@ -59,6 +53,12 @@ ;; ;; will turn on the c++-ts-mode for C++ source files. ;; +;; - If you have both C and C++ grammars installed, add +;; +;; (load "c-ts-mode") +;; +;; to your init file. +;; ;; You can also turn on these modes manually in a buffer. Doing so ;; will set up Emacs to use the C/C++ modes defined here for other ;; files, provided that you have the corresponding parser grammar commit 426bce8a6754a112b38a5c6ded75497a0be08718 Author: Martin Rudalics Date: Sat Nov 16 17:30:29 2024 +0100 ; In PROBLEMS mention issue with .Xresources on Gnome desktop (Bug#73244) * etc/PROBLEMS: Mention issue with specifying frame size in .Xresources when running Emacs on Gnome desktop (Bug#73244). diff --git a/etc/PROBLEMS b/etc/PROBLEMS index d13d0d34128..30506b3c87a 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS @@ -1604,6 +1604,12 @@ after switching back from another virtual desktop. Setting the variable 'x-set-frame-visibility-more-laxly' to one of 'focus-in', 'expose' or 't' should fix this. +*** Gnome desktop does not respect frame size specified in .Xresources + +This has been obeserved when running a GTK+ build of Emacs 29 from the +launch pad on Ubuntu 24.04 with mutter as window manager. The problem +can be resolved by running Emacs from the command line instead. + *** Gnome: Emacs receives input directly from the keyboard, bypassing XIM. This seems to happen when gnome-settings-daemon version 2.12 or later commit 6036e0dadf307ebf75e9da16915857e86e8d3340 Author: F. Jason Park Date: Mon Oct 14 19:32:16 2024 -0700 Backport: Don't autoload erc-modules * doc/misc/erc.texi (Modules): Recommend using `describe-variable' instead of `customize-option' because the latter needs the symbol to be loaded. * lisp/erc/erc.el (erc-modules): Remove autoload cookie because it caused customizations for this option to load the main library. This reverts the thrust of bb894845 "Teach customize-option about erc-modules", which was added in ERC 5.6 and Emacs 30. The motivation for the original offending change was to allow new users to run M-x customize-option RET erc-modules RET immediately after startup instead of M-x customize-group RET, followed by an I-search. (Bug#73812) (Cherry picked from commit 1854f2751e3f73e1e5f12f6de993b6357de1766b) Do not merge to master. diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi index 1e973d9c434..aa0bc58a8ec 100644 --- a/doc/misc/erc.texi +++ b/doc/misc/erc.texi @@ -411,8 +411,9 @@ Kill current input line using @code{erc-bol} followed by @code{kill-line}. One way to add functionality to ERC is to customize which of its many modules are loaded. -There is a spiffy customize interface, which may be reached by typing -@kbd{M-x customize-option @key{RET} erc-modules @key{RET}}. When +You can do this by typing @kbd{C-h v erc-modules @key{RET}} and clicking +@samp{customize} near the bottom of the resulting help buffer, where it +says ``You can @emph{customize} this variable.'' When removing a module outside of Customize, you may wish to ensure it's disabled by invoking its associated minor-mode toggle with a nonpositive prefix argument, for example, @kbd{C-u - M-x diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 30641c2bd88..688d2f4b1ae 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -2263,8 +2263,6 @@ buffer rather than a server buffer.") (cl-pushnew mod (if (get mod 'erc--module) built-in third-party))) `(,@(sort built-in #'string-lessp) ,@(nreverse third-party)))) -;;;###autoload(custom-autoload 'erc-modules "erc") - (defcustom erc-modules '( autojoin button completion fill imenu irccontrols list match menu move-to-prompt netsplit networks readonly ring stamp track) commit fc52cb8d74151bcac18d534529517a0a1845ad2e Author: Michael Albinus Date: Sat Nov 16 13:35:30 2024 +0100 ; etc/NEWS: Fix example indentation. diff --git a/etc/NEWS b/etc/NEWS index 3c3c772d0d1..442053fa12b 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -116,12 +116,12 @@ non-Tree-Sitter mode, customize the user option 'major-mode-remap-alist' to specify that a non-Tree-Sitter mode is "remapped" to itself. For example: - (add-to-list 'major-mode-remap-alist '(c-mode)) + (add-to-list 'major-mode-remap-alist '(c-mode)) specifies that C Mode should not be remapped to 'c-ts-mode' even if and when 'c-ts-mode' is loaded. Conversely, - (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode)) + (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode)) tells Emacs to always invoke 'c-ts-mode' whenever 'c-mode' is requested, either by 'auto-mode-alist' or by file/directory-local commit 81816800628f1eef1928eee3ccf9a2f8b53ab9a7 Author: Eli Zaretskii Date: Sat Nov 16 11:47:34 2024 +0200 Improve the documentation of major-mode remapping * etc/NEWS (example): * doc/emacs/files.texi (Reverting): * doc/emacs/modes.texi (Choosing Modes): Improve the documentation of 'major-mode-remap-alist' and mode remapping. (Bug#74339) diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi index 709cb0910e6..e22d1fb6dab 100644 --- a/doc/emacs/files.texi +++ b/doc/emacs/files.texi @@ -1091,6 +1091,13 @@ is non-@code{nil}, use a shorter @kbd{y/n} query instead of a longer You can also tell Emacs to revert buffers automatically when their visited files change on disk; @pxref{Auto Revert}. +@vindex major-mode-remap-alist@r{, and reverting a buffer} + Note that reverting a buffer turns on the major mode appropriate for +visiting the buffer's file, as described in @ref{Choosing Modes}. Thus, +the major mode actually turned on as result of reverting a buffer +depends on mode remapping, and could be different from the original mode +if you customized @code{major-mode-remap-alist} in-between. + @node Auto Revert @section Auto Revert: Keeping buffers automatically up-to-date @cindex Global Auto Revert mode diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi index 1321464014d..644dc21a684 100644 --- a/doc/emacs/modes.texi +++ b/doc/emacs/modes.texi @@ -465,12 +465,47 @@ only @emph{after} @code{auto-mode-alist}. By default, files, HTML/XML/SGML files, PostScript files, and Unix style Conf files. +@cindex remapping of major modes +@cindex major modes, remapping @vindex major-mode-remap-alist Once a major mode is found, Emacs does a final check to see if the -mode has been remapped by @code{major-mode-remap-alist}, in which case -it uses the remapped mode instead. This is used when several +mode has been @dfn{remapped} by @code{major-mode-remap-alist}, in which +case it uses the remapped mode instead. This is used when several different major modes can be used for the same file type, so you can -specify which mode you prefer. +specify which mode you prefer. Note that this remapping affects the +major mode found by all of the methods described above, so, for example, +the mode specified by the first line of the file will not necessarily be +the mode actually turned on in the buffer visiting the file. (This +remapping also affects @code{revert-buffer}, @pxref{Reverting}.) When +several modes are available for the same file type, you can tell Emacs +about your major-mode preferences by customizing +@code{major-mode-remap-alist}. For example, put this in your +@file{~/.emacs} init file (@pxref{Init File}) + +@lisp + (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode)) +@end lisp + +@noindent +to force Emacs to invoke @code{c-ts-mode} when @code{c-mode} is +specified by @code{auto-mode-alist} or by file-local variables. +Conversely, + +@lisp + (add-to-list 'major-mode-remap-alist '(c-mode)) +@end lisp + +@noindent +will force Emacs to never remap @code{c-mode} to any other mode. + + The default value of @code{major-mode-remap-alist} is @code{nil}, so +no remapping takes place. However, loading some Lisp packages or +features might introduce mode remapping, because Emacs assumes that +loading those means the user prefers using an alternative mode. So for +predictable behavior, we recommend that you always customize +@code{major-mode-remap-alist} to express your firm preferences, because +this variable overrides any remapping that Emacs might decide to perform +internally. @findex normal-mode If you have changed the major mode of a buffer, you can return to @@ -481,7 +516,11 @@ visiting a file, this command also processes the file's @samp{-*-} line and file-local variables list (if any). @xref{File Variables}. If the buffer doesn't visit a file, the command processes only the major mode specification, if any, in the @samp{-*-} line and in the -file-local variables list. +file-local variables list. @kbd{M-x normal-mode} takes the mode +remapping into consideration, so if you customized +@code{major-mode-remap-alist} after the buffer's major mode was chosen +by Emacs, @code{normal-mode} could turn on a mode that is different from +the one Emacs chose originally. @vindex change-major-mode-with-file-name The commands @kbd{C-x C-w} and @code{set-visited-file-name} change to diff --git a/etc/NEWS b/etc/NEWS index fbc29206039..3c3c772d0d1 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -103,6 +103,36 @@ collections of snippets automatically apply to the new Tree-Sitter modes. Note that those modes still do not inherit from the non-TS mode, so configuration settings installed via mode hooks are not affected. +Loading a Tree-Sitter mode (such as by using 'M-x load-library' or with +'M-x load-file') by default causes the corresponding non-Tree-Sitter +mode be remapped to the Tree-Sitter mode. This remapping affects +visiting files for which 'auto-mode-alist' specifies a non-Tree-Sitter +mode, and also affects mode-specification cookies on the first line of a +file and mode specifications in file- and directory-local variables. To +revert to using a non-Tree-Sitter mode, reload the corresponding mode +file anew. To prevent file loading from turning on Tree-Sitter mode +when 'auto-mode-alist' or the file/directory-local variables specify a +non-Tree-Sitter mode, customize the user option 'major-mode-remap-alist' +to specify that a non-Tree-Sitter mode is "remapped" to itself. For +example: + + (add-to-list 'major-mode-remap-alist '(c-mode)) + +specifies that C Mode should not be remapped to 'c-ts-mode' even if and +when 'c-ts-mode' is loaded. Conversely, + + (add-to-list 'major-mode-remap-alist '(c-mode . c-ts-mode)) + +tells Emacs to always invoke 'c-ts-mode' whenever 'c-mode' is +requested, either by 'auto-mode-alist' or by file/directory-local +variables. + +We recommend using 'major-mode-remap-alist' to express your preferences +for using Tree-Sitter or non-Tree-Sitter modes for files for which both +variants of major modes are available, because that variable overrides +the remapping Emacs might decide to perform as result of loading Lisp +files and features. + --- ** Mouse wheel events should now always be 'wheel-up/down/left/right'. At those places where the old 'mouse-4/5/6/7' events could still occur commit 0856360d80c6cded703e4e32f1a49653fbcba485 Author: Stefan Kangas Date: Sat Nov 16 07:21:59 2024 +0100 ; Fix typo in recent change diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index 2c19275f946..79ef959ae65 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -2718,7 +2718,7 @@ If non-@code{nil}, the host's capability string. @item :type @var{symbol} The connection type: @samp{plain} or @samp{tls}. @item :error @var{symbol} -A string describing any error encountered when perfoming +A string describing any error encountered when performing @acronym{STARTTLS} upgrade. @end table commit d4f81f716ae0ced72e26b403972adf95f02dbdd0 Author: Robert Pluim Date: Fri Nov 15 16:28:55 2024 +0100 Improve 'which-key-special-keys' docstring * lisp/which-key.el (which-key-special-keys): Explain the format and use 'setopt'. diff --git a/lisp/which-key.el b/lisp/which-key.el index fb0685cd3a9..0118c0f74ef 100644 --- a/lisp/which-key.el +++ b/lisp/which-key.el @@ -255,11 +255,12 @@ face to apply)." :package-version '(which-key . "1.0") :version "30.1") (defcustom which-key-special-keys '() - "These keys will automatically be truncated to one character. -They also have `which-key-special-key-face' applied to them. This -is disabled by default. An example configuration is + "Keys which will be truncated to their first character. +They also have `which-key-special-key-face' applied to them. This is +disabled by default. Format is a list of strings, an example +configuration is: -\(setq which-key-special-keys \\='(\"SPC\" \"TAB\" \"RET\" \"ESC\" \"DEL\")\)" +\(setopt which-key-special-keys \\='(\"SPC\" \"TAB\" \"RET\" \"ESC\" \"DEL\")\)" :type '(repeat string) :package-version '(which-key . "1.0") :version "30.1") commit 926d47ab2ca72054f1a5c774916927160a839dc1 Author: Laurence Warne Date: Fri Nov 15 16:22:52 2024 +0100 Don't error in Proced tests if %CPU is a NaN * test/lisp/proced-tests.el (proced--cpu-at-point): New function. (proced--assert-process-valid-cpu-refinement) (proced-refine-test, proced-refine-with-update-test): If %CPU for any process visited is a NaN skip the test. (proced-update-preserves-pid-at-point-test): Fix typo in comment. (proced--assert-process-valid-cpu-refinement-explainer): Add process attributes to the explainer along with tweaking how the process %CPU is obtained to account for circumstances where it's not numeric (most notably '-nan'). diff --git a/test/lisp/proced-tests.el b/test/lisp/proced-tests.el index 3dc7e065afa..65afeeb5f08 100644 --- a/test/lisp/proced-tests.el +++ b/test/lisp/proced-tests.el @@ -35,6 +35,15 @@ ,@body) (kill-buffer "*Proced*")))) +(defun proced--cpu-at-point () + "Return as an integer the current CPU value at point." + (if (string-suffix-p "nan" (thing-at-point 'sexp)) + (let ((pid (proced-pid-at-point))) + (ert-skip + (format + "Found NaN value for %%CPU at point for process with PID %d" pid))) + (thing-at-point 'number))) + (defun proced--assert-emacs-pid-in-buffer () "Fail unless the process ID of the current Emacs process exists in buffer." (should (string-match-p @@ -51,7 +60,7 @@ "Fail unless the process at point could be present after a refinement using CPU." (proced--move-to-column "%CPU") (condition-case err - (>= (thing-at-point 'number) cpu) + (>= (proced--cpu-at-point) cpu) (error (ert-fail (list err (proced--assert-process-valid-cpu-refinement-explainer cpu)))))) @@ -64,11 +73,14 @@ CPU is as in `proced--assert-process-valid-cpu-refinement'." (header-line ,(substring-no-properties (string-replace "%%" "%" (cadr (proced-header-line))))) - (process ,(thing-at-point 'line t)) + (buffer-process-line ,(thing-at-point 'line t)) + (process-attributes ,(format "%s" (process-attributes (proced-pid-at-point)))) (refined-value ,cpu) (process-value ,(save-excursion - (proced--move-to-column "%CPU") (thing-at-point 'number))))) + (proced--move-to-column "%CPU") + (or (thing-at-point 'number) + (substring-no-properties (thing-at-point 'sexp))))))) (put #'proced--assert-process-valid-cpu-refinement 'ert-explainer #'proced--assert-process-valid-cpu-refinement-explainer) @@ -108,7 +120,7 @@ CPU is as in `proced--assert-process-valid-cpu-refinement'." ;; When refining on %CPU for process A, a process is kept if and only ;; if its %CPU is greater than or equal to that of process A. (proced--move-to-column "%CPU") - (let ((cpu (thing-at-point 'number))) + (let ((cpu (proced--cpu-at-point))) (proced-refine) (while (not (eobp)) (should (proced--assert-process-valid-cpu-refinement cpu)) @@ -119,7 +131,7 @@ CPU is as in `proced--assert-process-valid-cpu-refinement'." 'verbose 'user (proced--move-to-column "%CPU") - (let ((cpu (thing-at-point 'number))) + (let ((cpu (proced--cpu-at-point))) (proced-refine) ;; Don't use (proced-update t) since this will reset `proced-process-alist' ;; and it's possible the process refined on would have exited by that @@ -132,7 +144,7 @@ CPU is as in `proced--assert-process-valid-cpu-refinement'." (ert-deftest proced-update-preserves-pid-at-point-test () ;; FIXME: Occasionally the cursor inexplicably changes to the first line which - ;; causes the test to file when the line isn't the Emacs process. + ;; causes the test to fail when the line isn't the Emacs process. :tags '(:unstable) (proced--within-buffer 'medium