diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index fd5cdae3796..960f2e6742b 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2276,9 +2276,10 @@ Like `cl-flet' but the definitions can refer to previous ones. (defmacro cl-labels (bindings &rest body) "Make local (recursive) function definitions. -BINDINGS is a list of definitions of the form (FUNC ARGLIST BODY...) -where FUNC is the function name, ARGLIST its arguments, and BODY the -forms of the function body. +Each definition can take the form (FUNC EXP) where FUNC is the function +name, and EXP is an expression that returns the function value to which +it should be bound, or it can take the more common form (FUNC ARGLIST +BODY...) which is a shorthand for (FUNC (lambda ARGLIST BODY)). FUNC is defined in any BODY, as well as FORM, so you can write recursive and mutually recursive function definitions. See Info node diff --git a/lisp/progmodes/go-ts-mode.el b/lisp/progmodes/go-ts-mode.el index d117fe21590..b133698c772 100644 --- a/lisp/progmodes/go-ts-mode.el +++ b/lisp/progmodes/go-ts-mode.el @@ -601,7 +601,7 @@ what the parent of the node would be if it were a node." (derived-mode-add-parents 'go-mod-ts-mode '(go-mod-mode)) -(if (treesit-ready-p 'gomod) +(if (treesit-ready-p 'gomod t) (add-to-list 'auto-mode-alist '("/go\\.mod\\'" . go-mod-ts-mode))) ;;;; go.work support. diff --git a/lisp/progmodes/php-ts-mode.el b/lisp/progmodes/php-ts-mode.el index e948406d9b4..fb5cf46f9e5 100644 --- a/lisp/progmodes/php-ts-mode.el +++ b/lisp/progmodes/php-ts-mode.el @@ -131,12 +131,16 @@ Works like `css--fontify-region'." :type 'boolean :safe 'booleanp) -(defcustom php-ts-mode-php-executable (or (executable-find "php") "/usr/bin/php") - "The location of PHP executable." +(defcustom php-ts-mode-php-default-executable (or (executable-find "php") "/usr/bin/php") + "The default PHP executable." :tag "PHP Executable" :version "30.1" :type 'file) +(defvar-local php-ts-mode-alternative-php-program-name nil + "An alternative to the usual `php' program name. +In non-nil, `php-ts-mode--executable' try to find this executable.") + (defcustom php-ts-mode-php-config nil "The location of php.ini file. If nil the default one is used to run the embedded webserver or @@ -267,7 +271,7 @@ Calls REPORT-FN directly." :noquery t :connection-type 'pipe :buffer (generate-new-buffer " *php-ts-mode-flymake*") - :command `(,php-ts-mode-php-executable + :command `(,(php-ts-mode--executable) "-l" "-d" "display_errors=0") :sentinel (lambda (proc _event) @@ -303,6 +307,16 @@ Calls REPORT-FN directly." ;;; Utils +(defun php-ts-mode--executable () + "Return the absolute filename of the php executable. +If the `default-directory' is remote, search on a remote host, otherwise +it searches locally. If `php-ts-mode-alternative-php-program-name' is +non-zero, it searches for this program instead of the usual `php'. +If the search fails, it returns `php-ts-mode-php-default-executable'." + (or (executable-find + (or php-ts-mode-alternative-php-program-name "php") t) + php-ts-mode-php-default-executable)) + (defun php-ts-mode--get-indent-style () "Helper function to set indentation style. MODE can be `psr2', `pear', `drupal', `wordpress', `symfony', `zend'." @@ -593,11 +607,11 @@ doesn't have a child. PARENT is NODE's parent, BOL is the beginning of non-whitespace characters of the current line." (when-let* ((prev-sibling - (or (treesit-node-prev-sibling node t) - (treesit-node-prev-sibling - (treesit-node-first-child-for-pos parent bol) t) - (treesit-node-child parent -1 t))) - (continue t)) + (or (treesit-node-prev-sibling node t) + (treesit-node-prev-sibling + (treesit-node-first-child-for-pos parent bol) t) + (treesit-node-child parent -1 t))) + (continue t)) (save-excursion (while (and prev-sibling continue) (goto-char (treesit-node-start prev-sibling)) @@ -1234,7 +1248,7 @@ Return nil if the NODE has no field “name” or if NODE is not a defun node." `treesit-defun-type-regexp' defines what constructs to indent." (interactive "*") (when-let* ((orig-point (point-marker)) - (node (treesit-defun-at-point))) + (node (treesit-defun-at-point))) (indent-region (treesit-node-start node) (treesit-node-end node)) (goto-char orig-point))) @@ -1641,7 +1655,7 @@ CONFIG." (message "Run PHP built-in web server with args %s into buffer %s" (string-join args " ") buf-name) - (apply #'make-comint name php-ts-mode-php-executable nil args)) + (apply #'make-comint name (php-ts-mode--executable) nil args)) (funcall (if (called-interactively-p 'interactive) #'display-buffer #'get-buffer) buf-name))) @@ -1733,18 +1747,19 @@ Prompt for CMD if `php-ts-mode-php-executable' is nil. Optional CONFIG, if supplied, is the php.ini file to use." (interactive (when current-prefix-arg (list - (read-string "Run PHP: " php-ts-mode-php-executable) + (read-string "Run PHP: " (php-ts-mode--executable)) (expand-file-name (read-file-name "With config: " php-ts-mode-php-config))))) - (let ((buffer (get-buffer-create php-ts-mode-inferior-php-buffer)) - (cmd (or - cmd - php-ts-mode-php-executable - (read-string "Run PHP: " php-ts-mode-php-executable))) - (config (or - config - (and php-ts-mode-php-config - (expand-file-name php-ts-mode-php-config))))) + (let* ((php-prog (php-ts-mode--executable)) + (buffer (get-buffer-create php-ts-mode-inferior-php-buffer)) + (cmd (or + cmd + php-prog + (read-string "Run PHP: " php-prog))) + (config (or + config + (and php-ts-mode-php-config + (expand-file-name php-ts-mode-php-config))))) (unless (comint-check-proc buffer) (with-current-buffer buffer (inferior-php-ts-mode-startup cmd config) diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el index 1e3151dce03..fea4f98a8ec 100644 --- a/lisp/textmodes/rst.el +++ b/lisp/textmodes/rst.el @@ -4178,7 +4178,7 @@ string)) to be used for converting the document." (const :tag "No options" nil) (string :tag "Options")))) :group 'rst-compile - :package-version "1.2.0") + :package-version '(rst . "1.2.0")) ;; FIXME: Must be defcustom. (defvar rst-compile-primary-toolset 'html diff --git a/lisp/use-package/use-package-core.el b/lisp/use-package/use-package-core.el index 84ff637435a..630ee83601c 100644 --- a/lisp/use-package/use-package-core.el +++ b/lisp/use-package/use-package-core.el @@ -1849,11 +1849,11 @@ Usage: :magic-fallback Form to be added to `magic-fallback-mode-alist'. :interpreter Form to be added to `interpreter-mode-alist'. -:commands Define autoloads for commands that will be defined by the - package. This is useful if the package is being lazily - loaded, and you wish to conditionally call functions in your +:commands Define autoloads for commands defined by the package. + This is useful if the package is being lazily loaded, + and you wish to conditionally call functions in your `:init' block that are defined in the package. -:autoload Similar to :commands, but it for no-interactive one. +:autoload Similar to `:commands', but used for non-interactive functions. :hook Specify hook(s) to attach this package to. :bind Bind keys, and define autoloads for the bound commands. diff --git a/lisp/which-key.el b/lisp/which-key.el index c62595da587..0be0feb542e 100644 --- a/lisp/which-key.el +++ b/lisp/which-key.el @@ -61,8 +61,8 @@ This variable should be set before activating `which-key-mode'. A value of zero might lead to issues, so a non-zero value is recommended (see https://github.com/justbur/emacs-which-key/issues/134)." - :type 'number - :package-version "1.0" :version "30.1") + :type 'float + :package-version '(which-key . "1.0") :version "30.1") (defcustom which-key-idle-secondary-delay nil "Seconds to wait for which-key to pop up after initial display.