Merge from origin/emacs-29

45f9af61b8 Remove references to phst@google.com.
7256690a3c * BUGS: Note how to report critical security issues.
1035669b38 Add cross-reference to ELisp manual Caveats
61a1450762 Improve directory prompt used by package-vc-checkout
0c7c8210cb Minor Tramp doc adaption
df243f785d Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
17a395e04c ;; Fix typo in the Tramp documentation
614b244a7f * Improve reproducibility of inferred values by native comp
9f9da26e0d Handle typescript ts grammar breaking change for function...
717d8c4285 Don't quote 't' in doc strings
This commit is contained in:
Eli Zaretskii 2024-02-17 04:54:48 -05:00
commit e6dae47d71
9 changed files with 171 additions and 152 deletions

View file

@ -146,8 +146,7 @@ Philip Kaludercic <philipk@posteo.net>
Philip Kaludercic <philipk@posteo.net> <philip.kaludercic@fau.de>
Philip Kaludercic <philipk@posteo.net> <philip@icterid>
Philip Kaludercic <philipk@posteo.net> <philip@warpmail.net>
Philipp Stephani <phst@google.com>
Philipp Stephani <phst@google.com> Philipp Stephani <p.stephani2@gmail.com>
Philipp Stephani <p.stephani2@gmail.com>
Phillip Lord <phillip.lord@russet.org.uk> <phillip.lord@newcastle.ac.uk>
Pierre Lorenzon <devel@pollock-nageoire.net>
Pieter van Oostrum <pieter@vanoostrum.org> <pieter-l@vanoostrum.org>

4
BUGS
View file

@ -21,6 +21,10 @@ If necessary, you can read the manual without an info program:
cat info/emacs* | more "+/^File: emacs.*, Node: Bugs,"
If you think you may have found a critical security issue that needs
to be communicated privately, please contact the GNU Emacs maintainers
directly. See admin/MAINTAINERS for their contact details.
Please first check the file etc/PROBLEMS (e.g. with C-h C-p in Emacs) to
make sure it isn't a known issue.

View file

@ -89,9 +89,9 @@ you are criticizing.
@cindex bugs
@cindex suggestions
Please send comments and corrections using @kbd{M-x
report-emacs-bug}. If you wish to contribute new code (or send a
patch to fix a problem), use @kbd{M-x submit-emacs-patch}.
Please send comments and corrections using @kbd{M-x report-emacs-bug}.
For more details, @xref{Bugs,, Reporting Bugs, emacs, The GNU Emacs
Manual}.
@node Lisp History
@section Lisp History

View file

@ -525,7 +525,7 @@ is used as the group to change to. The default host name is the same.
@cindex @option{doas} method
If the @option{su}, @option{sudo} or @option{doas} option should be
performed on another host, it can be comnbined with a leading
performed on another host, it can be combined with a leading
@option{ssh} or @option{plink} option. That means that @value{tramp}
connects first to the other host with non-administrative credentials,
and changes to administrative credentials on that host afterwards. In
@ -5243,8 +5243,8 @@ the additional handshaking messages for them. This requires at least
nitrokey, or titankey.
@c @uref{https://docs.fedoraproject.org/en-US/quick-docs/using-yubikeys/}
@strong{Note} that there are reports on problems of handling yubikey
residential keys by @command{ssh-agent}. As workaround, you might
@strong{Note} that there are reports on problems of handling FIDO2
(residential) keys by @command{ssh-agent}. As workaround, you might
disable @command{ssh-agent} for such keys.
@item

View file

@ -249,6 +249,8 @@ Return them as multiple value."
t)
((and (not (symbolp x)) (symbolp y))
nil)
((or (consp x) (consp y)
nil))
(t
(< (sxhash-equal x)
(sxhash-equal y)))))))

View file

@ -939,8 +939,8 @@ for the last released version of the package."
(interactive
(let* ((name (package-vc--read-package-name "Fetch package source: ")))
(list (cadr (assoc name package-archive-contents #'string=))
(read-file-name "Clone into new or empty directory: " nil nil t nil
(lambda (dir) (or (not (file-exists-p dir))
(read-directory-name "Clone into new or empty directory: " nil nil
(lambda (dir) (or (not (file-exists-p dir))
(directory-empty-p dir))))
(and current-prefix-arg :last-release))))
(package-vc--archives-initialize)

View file

@ -745,9 +745,8 @@ The regexp should match at end of buffer."
;; A security key requires the user physically to touch the device
;; with their finger. We must tell it to the user.
;; Added in OpenSSH 8.2. I've tested it with yubikey. Nitrokey and
;; Titankey, which have also passed the tests, do not show such a
;; message.
;; Added in OpenSSH 8.2. I've tested it with Nitrokey, Titankey, and
;; Yubikey.
(defcustom tramp-security-key-confirm-regexp
(rx bol (* "\r") "Confirm user presence for key " (* nonl) (* (any "\r\n")))
"Regular expression matching security key confirmation message.
@ -770,6 +769,7 @@ The regexp should match at end of buffer."
:version "28.1"
:type 'regexp)
;; Needed only for FIDO2 (residential) keys. Tested with Nitrokey and Yubikey.
(defcustom tramp-security-key-pin-regexp
(rx bol (* "\r") (group "Enter PIN for " (* nonl)) (* (any "\r\n")))
"Regular expression matching security key PIN prompt.

View file

@ -318,8 +318,8 @@ Using the value `insert' is not recommended in editable
buffers because it modifies them.
When the value is `in-margins', then clickable buttons are
displayed in the margins before the headings.
When the value is `t', clickable buttons are displayed
in the buffer before the headings. The values `t' and
When the value is t, clickable buttons are displayed
in the buffer before the headings. The values t and
`in-margins' can be used in editing buffers because they
don't modify the buffer."
;; The value `insert' is not intended to be customizable.

View file

@ -199,183 +199,197 @@ Argument LANGUAGE is either `typescript' or `tsx'."
[(nested_identifier (identifier)) (identifier)]
@typescript-ts-jsx-tag-face)))))
(defun tsx-ts-mode--font-lock-compatibility-function-expression (language)
"Handle tree-sitter grammar breaking change for `function' expression.
LANGUAGE can be `typescript' or `tsx'. Starting from version 0.20.4 of the
typescript/tsx grammar, `function' becomes `function_expression'."
(condition-case nil
(progn (treesit-query-capture language '((function_expression) @cap))
;; New version of the grammar
'function_expression)
(treesit-query-error
;; Old version of the grammar
'function)))
(defun typescript-ts-mode--font-lock-settings (language)
"Tree-sitter font-lock settings.
Argument LANGUAGE is either `typescript' or `tsx'."
(treesit-font-lock-rules
:language language
:feature 'comment
`([(comment) (hash_bang_line)] @font-lock-comment-face)
(let ((func-exp (tsx-ts-mode--font-lock-compatibility-function-expression language)))
(treesit-font-lock-rules
:language language
:feature 'comment
`([(comment) (hash_bang_line)] @font-lock-comment-face)
:language language
:feature 'constant
`(((identifier) @font-lock-constant-face
(:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face))
[(true) (false) (null)] @font-lock-constant-face)
:language language
:feature 'constant
`(((identifier) @font-lock-constant-face
(:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face))
[(true) (false) (null)] @font-lock-constant-face)
:language language
:feature 'keyword
`([,@typescript-ts-mode--keywords] @font-lock-keyword-face
[(this) (super)] @font-lock-keyword-face)
:language language
:feature 'keyword
`([,@typescript-ts-mode--keywords] @font-lock-keyword-face
[(this) (super)] @font-lock-keyword-face)
:language language
:feature 'string
`((regex pattern: (regex_pattern)) @font-lock-regexp-face
(string) @font-lock-string-face
(template_string) @js--fontify-template-string
(template_substitution ["${" "}"] @font-lock-misc-punctuation-face))
:language language
:feature 'string
`((regex pattern: (regex_pattern)) @font-lock-regexp-face
(string) @font-lock-string-face
(template_string) @js--fontify-template-string
(template_substitution ["${" "}"] @font-lock-misc-punctuation-face))
:language language
:override t ;; for functions assigned to variables
:feature 'declaration
`((function
name: (identifier) @font-lock-function-name-face)
(function_declaration
name: (identifier) @font-lock-function-name-face)
(function_signature
name: (identifier) @font-lock-function-name-face)
:language language
:override t ;; for functions assigned to variables
:feature 'declaration
`((,func-exp
name: (identifier) @font-lock-function-name-face)
(function_declaration
name: (identifier) @font-lock-function-name-face)
(function_signature
name: (identifier) @font-lock-function-name-face)
(method_definition
name: (property_identifier) @font-lock-function-name-face)
(method_signature
name: (property_identifier) @font-lock-function-name-face)
(required_parameter (identifier) @font-lock-variable-name-face)
(optional_parameter (identifier) @font-lock-variable-name-face)
(method_definition
name: (property_identifier) @font-lock-function-name-face)
(method_signature
name: (property_identifier) @font-lock-function-name-face)
(required_parameter (identifier) @font-lock-variable-name-face)
(optional_parameter (identifier) @font-lock-variable-name-face)
(variable_declarator
name: (identifier) @font-lock-function-name-face
value: [(function) (arrow_function)])
(variable_declarator
name: (identifier) @font-lock-function-name-face
value: [(,func-exp) (arrow_function)])
(variable_declarator
name: (identifier) @font-lock-variable-name-face)
(variable_declarator
name: (identifier) @font-lock-variable-name-face)
(enum_declaration (identifier) @font-lock-type-face)
(enum_declaration (identifier) @font-lock-type-face)
(extends_clause value: (identifier) @font-lock-type-face)
;; extends React.Component<T>
(extends_clause value: (member_expression
object: (identifier) @font-lock-type-face
property: (property_identifier) @font-lock-type-face))
(extends_clause value: (identifier) @font-lock-type-face)
;; extends React.Component<T>
(extends_clause value: (member_expression
object: (identifier) @font-lock-type-face
property: (property_identifier) @font-lock-type-face))
(arrow_function
parameter: (identifier) @font-lock-variable-name-face)
(arrow_function
parameter: (identifier) @font-lock-variable-name-face)
(variable_declarator
name: (array_pattern
(identifier)
(identifier) @font-lock-function-name-face)
value: (array (number) (function)))
(variable_declarator
name: (array_pattern
(identifier)
(identifier) @font-lock-function-name-face)
value: (array (number) (,func-exp)))
(catch_clause
parameter: (identifier) @font-lock-variable-name-face)
(catch_clause
parameter: (identifier) @font-lock-variable-name-face)
;; full module imports
(import_clause (identifier) @font-lock-variable-name-face)
;; named imports with aliasing
(import_clause (named_imports (import_specifier
alias: (identifier) @font-lock-variable-name-face)))
;; named imports without aliasing
(import_clause (named_imports (import_specifier
!alias
name: (identifier) @font-lock-variable-name-face)))
;; full module imports
(import_clause (identifier) @font-lock-variable-name-face)
;; named imports with aliasing
(import_clause (named_imports (import_specifier
alias: (identifier) @font-lock-variable-name-face)))
;; named imports without aliasing
(import_clause (named_imports (import_specifier
!alias
name: (identifier) @font-lock-variable-name-face)))
;; full namespace import (* as alias)
(import_clause (namespace_import (identifier) @font-lock-variable-name-face)))
;; full namespace import (* as alias)
(import_clause (namespace_import (identifier) @font-lock-variable-name-face)))
:language language
:feature 'identifier
`((nested_type_identifier
module: (identifier) @font-lock-type-face)
:language language
:feature 'identifier
`((nested_type_identifier
module: (identifier) @font-lock-type-face)
(type_identifier) @font-lock-type-face
(type_identifier) @font-lock-type-face
(predefined_type) @font-lock-type-face
(predefined_type) @font-lock-type-face
(new_expression
constructor: (identifier) @font-lock-type-face)
(new_expression
constructor: (identifier) @font-lock-type-face)
(enum_body (property_identifier) @font-lock-type-face)
(enum_body (property_identifier) @font-lock-type-face)
(enum_assignment name: (property_identifier) @font-lock-type-face)
(enum_assignment name: (property_identifier) @font-lock-type-face)
(variable_declarator
name: (identifier) @font-lock-variable-name-face)
(variable_declarator
name: (identifier) @font-lock-variable-name-face)
(for_in_statement
left: (identifier) @font-lock-variable-name-face)
(for_in_statement
left: (identifier) @font-lock-variable-name-face)
(arrow_function
parameters:
[(_ (identifier) @font-lock-variable-name-face)
(_ (_ (identifier) @font-lock-variable-name-face))
(_ (_ (_ (identifier) @font-lock-variable-name-face)))]))
(arrow_function
parameters:
[(_ (identifier) @font-lock-variable-name-face)
(_ (_ (identifier) @font-lock-variable-name-face))
(_ (_ (_ (identifier) @font-lock-variable-name-face)))]))
:language language
:feature 'property
`((property_signature
name: (property_identifier) @font-lock-property-name-face)
(public_field_definition
name: (property_identifier) @font-lock-property-name-face)
:language language
:feature 'property
`((property_signature
name: (property_identifier) @font-lock-property-name-face)
(public_field_definition
name: (property_identifier) @font-lock-property-name-face)
(pair key: (property_identifier) @font-lock-property-use-face)
(pair key: (property_identifier) @font-lock-property-use-face)
((shorthand_property_identifier) @font-lock-property-use-face))
((shorthand_property_identifier) @font-lock-property-use-face))
:language language
:feature 'expression
'((assignment_expression
left: [(identifier) @font-lock-function-name-face
(member_expression
property: (property_identifier) @font-lock-function-name-face)]
right: [(function) (arrow_function)]))
:language language
:feature 'expression
`((assignment_expression
left: [(identifier) @font-lock-function-name-face
(member_expression
property: (property_identifier) @font-lock-function-name-face)]
right: [(,func-exp) (arrow_function)]))
:language language
:feature 'function
'((call_expression
function:
[(identifier) @font-lock-function-call-face
(member_expression
property: (property_identifier) @font-lock-function-call-face)]))
:language language
:feature 'function
'((call_expression
function:
[(identifier) @font-lock-function-call-face
(member_expression
property: (property_identifier) @font-lock-function-call-face)]))
:language language
:feature 'pattern
`((pair_pattern
key: (property_identifier) @font-lock-property-use-face
value: [(identifier) @font-lock-variable-name-face
(assignment_pattern left: (identifier) @font-lock-variable-name-face)])
:language language
:feature 'pattern
`((pair_pattern
key: (property_identifier) @font-lock-property-use-face
value: [(identifier) @font-lock-variable-name-face
(assignment_pattern left: (identifier) @font-lock-variable-name-face)])
(array_pattern (identifier) @font-lock-variable-name-face)
(array_pattern (identifier) @font-lock-variable-name-face)
((shorthand_property_identifier_pattern) @font-lock-variable-name-face))
((shorthand_property_identifier_pattern) @font-lock-variable-name-face))
:language language
:feature 'jsx
(append (tsx-ts-mode--font-lock-compatibility-bb1f97b language)
`((jsx_attribute (property_identifier) @typescript-ts-jsx-attribute-face)))
:language language
:feature 'jsx
(append (tsx-ts-mode--font-lock-compatibility-bb1f97b language)
`((jsx_attribute (property_identifier) @typescript-ts-jsx-attribute-face)))
:language language
:feature 'number
`((number) @font-lock-number-face
((identifier) @font-lock-number-face
(:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face)))
:language language
:feature 'number
`((number) @font-lock-number-face
((identifier) @font-lock-number-face
(:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face)))
:language language
:feature 'operator
`([,@typescript-ts-mode--operators] @font-lock-operator-face
(ternary_expression ["?" ":"] @font-lock-operator-face))
:language language
:feature 'operator
`([,@typescript-ts-mode--operators] @font-lock-operator-face
(ternary_expression ["?" ":"] @font-lock-operator-face))
:language language
:feature 'bracket
'((["(" ")" "[" "]" "{" "}"]) @font-lock-bracket-face)
:language language
:feature 'bracket
'((["(" ")" "[" "]" "{" "}"]) @font-lock-bracket-face)
:language language
:feature 'delimiter
'((["," "." ";" ":"]) @font-lock-delimiter-face)
:language language
:feature 'delimiter
'((["," "." ";" ":"]) @font-lock-delimiter-face)
:language language
:feature 'escape-sequence
:override t
'((escape_sequence) @font-lock-escape-face)))
:language language
:feature 'escape-sequence
:override t
'((escape_sequence) @font-lock-escape-face))))
(defvar typescript-ts-mode--sentence-nodes
'("import_statement"