diff options
| author | Eli Zaretskii | 2024-02-17 04:54:48 -0500 |
|---|---|---|
| committer | Eli Zaretskii | 2024-02-17 04:54:48 -0500 |
| commit | e6dae47d718dfd2167554a1adfe28c5c744b9b2b (patch) | |
| tree | 791cace9e56677914e95ed0288c9ff117a28c68d | |
| parent | d85461ac61c5ea99ea194f99c771de1efdabbef4 (diff) | |
| parent | 45f9af61b8ecbe500de915f63de53e9c598184b9 (diff) | |
| download | emacs-e6dae47d718dfd2167554a1adfe28c5c744b9b2b.tar.gz emacs-e6dae47d718dfd2167554a1adfe28c5c744b9b2b.zip | |
Merge from origin/emacs-29
45f9af61b8e Remove references to phst@google.com.
7256690a3ca * BUGS: Note how to report critical security issues.
1035669b38b Add cross-reference to ELisp manual Caveats
61a14507627 Improve directory prompt used by package-vc-checkout
0c7c8210cb6 Minor Tramp doc adaption
df243f785d4 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ...
17a395e04c6 ;; Fix typo in the Tramp documentation
614b244a7fa * Improve reproducibility of inferred values by native comp
9f9da26e0dc Handle typescript ts grammar breaking change for function...
717d8c4285f Don't quote 't' in doc strings
| -rw-r--r-- | .mailmap | 3 | ||||
| -rw-r--r-- | BUGS | 4 | ||||
| -rw-r--r-- | doc/lispref/intro.texi | 6 | ||||
| -rw-r--r-- | doc/misc/tramp.texi | 6 | ||||
| -rw-r--r-- | lisp/emacs-lisp/comp-cstr.el | 2 | ||||
| -rw-r--r-- | lisp/emacs-lisp/package-vc.el | 4 | ||||
| -rw-r--r-- | lisp/net/tramp.el | 6 | ||||
| -rw-r--r-- | lisp/outline.el | 4 | ||||
| -rw-r--r-- | lisp/progmodes/typescript-ts-mode.el | 362 |
9 files changed, 208 insertions, 189 deletions
| @@ -146,8 +146,7 @@ Philip Kaludercic <philipk@posteo.net> | |||
| 146 | Philip Kaludercic <philipk@posteo.net> <philip.kaludercic@fau.de> | 146 | Philip Kaludercic <philipk@posteo.net> <philip.kaludercic@fau.de> |
| 147 | Philip Kaludercic <philipk@posteo.net> <philip@icterid> | 147 | Philip Kaludercic <philipk@posteo.net> <philip@icterid> |
| 148 | Philip Kaludercic <philipk@posteo.net> <philip@warpmail.net> | 148 | Philip Kaludercic <philipk@posteo.net> <philip@warpmail.net> |
| 149 | Philipp Stephani <phst@google.com> | 149 | Philipp Stephani <p.stephani2@gmail.com> |
| 150 | Philipp Stephani <phst@google.com> Philipp Stephani <p.stephani2@gmail.com> | ||
| 151 | Phillip Lord <phillip.lord@russet.org.uk> <phillip.lord@newcastle.ac.uk> | 150 | Phillip Lord <phillip.lord@russet.org.uk> <phillip.lord@newcastle.ac.uk> |
| 152 | Pierre Lorenzon <devel@pollock-nageoire.net> | 151 | Pierre Lorenzon <devel@pollock-nageoire.net> |
| 153 | Pieter van Oostrum <pieter@vanoostrum.org> <pieter-l@vanoostrum.org> | 152 | Pieter van Oostrum <pieter@vanoostrum.org> <pieter-l@vanoostrum.org> |
| @@ -21,6 +21,10 @@ If necessary, you can read the manual without an info program: | |||
| 21 | 21 | ||
| 22 | cat info/emacs* | more "+/^File: emacs.*, Node: Bugs," | 22 | cat info/emacs* | more "+/^File: emacs.*, Node: Bugs," |
| 23 | 23 | ||
| 24 | If you think you may have found a critical security issue that needs | ||
| 25 | to be communicated privately, please contact the GNU Emacs maintainers | ||
| 26 | directly. See admin/MAINTAINERS for their contact details. | ||
| 27 | |||
| 24 | 28 | ||
| 25 | Please first check the file etc/PROBLEMS (e.g. with C-h C-p in Emacs) to | 29 | Please first check the file etc/PROBLEMS (e.g. with C-h C-p in Emacs) to |
| 26 | make sure it isn't a known issue. | 30 | make sure it isn't a known issue. |
diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi index 2062ae64866..486125acb0d 100644 --- a/doc/lispref/intro.texi +++ b/doc/lispref/intro.texi | |||
| @@ -89,9 +89,9 @@ you are criticizing. | |||
| 89 | 89 | ||
| 90 | @cindex bugs | 90 | @cindex bugs |
| 91 | @cindex suggestions | 91 | @cindex suggestions |
| 92 | Please send comments and corrections using @kbd{M-x | 92 | Please send comments and corrections using @kbd{M-x report-emacs-bug}. |
| 93 | report-emacs-bug}. If you wish to contribute new code (or send a | 93 | For more details, @xref{Bugs,, Reporting Bugs, emacs, The GNU Emacs |
| 94 | patch to fix a problem), use @kbd{M-x submit-emacs-patch}. | 94 | Manual}. |
| 95 | 95 | ||
| 96 | @node Lisp History | 96 | @node Lisp History |
| 97 | @section Lisp History | 97 | @section Lisp History |
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 90824024c03..affd760730b 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -525,7 +525,7 @@ is used as the group to change to. The default host name is the same. | |||
| 525 | @cindex @option{doas} method | 525 | @cindex @option{doas} method |
| 526 | 526 | ||
| 527 | If the @option{su}, @option{sudo} or @option{doas} option should be | 527 | If the @option{su}, @option{sudo} or @option{doas} option should be |
| 528 | performed on another host, it can be comnbined with a leading | 528 | performed on another host, it can be combined with a leading |
| 529 | @option{ssh} or @option{plink} option. That means that @value{tramp} | 529 | @option{ssh} or @option{plink} option. That means that @value{tramp} |
| 530 | connects first to the other host with non-administrative credentials, | 530 | connects first to the other host with non-administrative credentials, |
| 531 | and changes to administrative credentials on that host afterwards. In | 531 | and changes to administrative credentials on that host afterwards. In |
| @@ -5243,8 +5243,8 @@ the additional handshaking messages for them. This requires at least | |||
| 5243 | nitrokey, or titankey. | 5243 | nitrokey, or titankey. |
| 5244 | @c @uref{https://docs.fedoraproject.org/en-US/quick-docs/using-yubikeys/} | 5244 | @c @uref{https://docs.fedoraproject.org/en-US/quick-docs/using-yubikeys/} |
| 5245 | 5245 | ||
| 5246 | @strong{Note} that there are reports on problems of handling yubikey | 5246 | @strong{Note} that there are reports on problems of handling FIDO2 |
| 5247 | residential keys by @command{ssh-agent}. As workaround, you might | 5247 | (residential) keys by @command{ssh-agent}. As workaround, you might |
| 5248 | disable @command{ssh-agent} for such keys. | 5248 | disable @command{ssh-agent} for such keys. |
| 5249 | 5249 | ||
| 5250 | @item | 5250 | @item |
diff --git a/lisp/emacs-lisp/comp-cstr.el b/lisp/emacs-lisp/comp-cstr.el index 2984bedb1dd..0bc97e51592 100644 --- a/lisp/emacs-lisp/comp-cstr.el +++ b/lisp/emacs-lisp/comp-cstr.el | |||
| @@ -249,6 +249,8 @@ Return them as multiple value." | |||
| 249 | t) | 249 | t) |
| 250 | ((and (not (symbolp x)) (symbolp y)) | 250 | ((and (not (symbolp x)) (symbolp y)) |
| 251 | nil) | 251 | nil) |
| 252 | ((or (consp x) (consp y) | ||
| 253 | nil)) | ||
| 252 | (t | 254 | (t |
| 253 | (< (sxhash-equal x) | 255 | (< (sxhash-equal x) |
| 254 | (sxhash-equal y))))))) | 256 | (sxhash-equal y))))))) |
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el index 37980c28b02..ef056c7909b 100644 --- a/lisp/emacs-lisp/package-vc.el +++ b/lisp/emacs-lisp/package-vc.el | |||
| @@ -939,8 +939,8 @@ for the last released version of the package." | |||
| 939 | (interactive | 939 | (interactive |
| 940 | (let* ((name (package-vc--read-package-name "Fetch package source: "))) | 940 | (let* ((name (package-vc--read-package-name "Fetch package source: "))) |
| 941 | (list (cadr (assoc name package-archive-contents #'string=)) | 941 | (list (cadr (assoc name package-archive-contents #'string=)) |
| 942 | (read-file-name "Clone into new or empty directory: " nil nil t nil | 942 | (read-directory-name "Clone into new or empty directory: " nil nil |
| 943 | (lambda (dir) (or (not (file-exists-p dir)) | 943 | (lambda (dir) (or (not (file-exists-p dir)) |
| 944 | (directory-empty-p dir)))) | 944 | (directory-empty-p dir)))) |
| 945 | (and current-prefix-arg :last-release)))) | 945 | (and current-prefix-arg :last-release)))) |
| 946 | (package-vc--archives-initialize) | 946 | (package-vc--archives-initialize) |
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index ae59915b1e8..2efee2344d2 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -745,9 +745,8 @@ The regexp should match at end of buffer." | |||
| 745 | 745 | ||
| 746 | ;; A security key requires the user physically to touch the device | 746 | ;; A security key requires the user physically to touch the device |
| 747 | ;; with their finger. We must tell it to the user. | 747 | ;; with their finger. We must tell it to the user. |
| 748 | ;; Added in OpenSSH 8.2. I've tested it with yubikey. Nitrokey and | 748 | ;; Added in OpenSSH 8.2. I've tested it with Nitrokey, Titankey, and |
| 749 | ;; Titankey, which have also passed the tests, do not show such a | 749 | ;; Yubikey. |
| 750 | ;; message. | ||
| 751 | (defcustom tramp-security-key-confirm-regexp | 750 | (defcustom tramp-security-key-confirm-regexp |
| 752 | (rx bol (* "\r") "Confirm user presence for key " (* nonl) (* (any "\r\n"))) | 751 | (rx bol (* "\r") "Confirm user presence for key " (* nonl) (* (any "\r\n"))) |
| 753 | "Regular expression matching security key confirmation message. | 752 | "Regular expression matching security key confirmation message. |
| @@ -770,6 +769,7 @@ The regexp should match at end of buffer." | |||
| 770 | :version "28.1" | 769 | :version "28.1" |
| 771 | :type 'regexp) | 770 | :type 'regexp) |
| 772 | 771 | ||
| 772 | ;; Needed only for FIDO2 (residential) keys. Tested with Nitrokey and Yubikey. | ||
| 773 | (defcustom tramp-security-key-pin-regexp | 773 | (defcustom tramp-security-key-pin-regexp |
| 774 | (rx bol (* "\r") (group "Enter PIN for " (* nonl)) (* (any "\r\n"))) | 774 | (rx bol (* "\r") (group "Enter PIN for " (* nonl)) (* (any "\r\n"))) |
| 775 | "Regular expression matching security key PIN prompt. | 775 | "Regular expression matching security key PIN prompt. |
diff --git a/lisp/outline.el b/lisp/outline.el index 5ac0f0707f1..40a75701cbf 100644 --- a/lisp/outline.el +++ b/lisp/outline.el | |||
| @@ -318,8 +318,8 @@ Using the value `insert' is not recommended in editable | |||
| 318 | buffers because it modifies them. | 318 | buffers because it modifies them. |
| 319 | When the value is `in-margins', then clickable buttons are | 319 | When the value is `in-margins', then clickable buttons are |
| 320 | displayed in the margins before the headings. | 320 | displayed in the margins before the headings. |
| 321 | When the value is `t', clickable buttons are displayed | 321 | When the value is t, clickable buttons are displayed |
| 322 | in the buffer before the headings. The values `t' and | 322 | in the buffer before the headings. The values t and |
| 323 | `in-margins' can be used in editing buffers because they | 323 | `in-margins' can be used in editing buffers because they |
| 324 | don't modify the buffer." | 324 | don't modify the buffer." |
| 325 | ;; The value `insert' is not intended to be customizable. | 325 | ;; The value `insert' is not intended to be customizable. |
diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el index e9c6afff440..9ee9432e4ee 100644 --- a/lisp/progmodes/typescript-ts-mode.el +++ b/lisp/progmodes/typescript-ts-mode.el | |||
| @@ -199,183 +199,197 @@ Argument LANGUAGE is either `typescript' or `tsx'." | |||
| 199 | [(nested_identifier (identifier)) (identifier)] | 199 | [(nested_identifier (identifier)) (identifier)] |
| 200 | @typescript-ts-jsx-tag-face))))) | 200 | @typescript-ts-jsx-tag-face))))) |
| 201 | 201 | ||
| 202 | (defun tsx-ts-mode--font-lock-compatibility-function-expression (language) | ||
| 203 | "Handle tree-sitter grammar breaking change for `function' expression. | ||
| 204 | |||
| 205 | LANGUAGE can be `typescript' or `tsx'. Starting from version 0.20.4 of the | ||
| 206 | typescript/tsx grammar, `function' becomes `function_expression'." | ||
| 207 | (condition-case nil | ||
| 208 | (progn (treesit-query-capture language '((function_expression) @cap)) | ||
| 209 | ;; New version of the grammar | ||
| 210 | 'function_expression) | ||
| 211 | (treesit-query-error | ||
| 212 | ;; Old version of the grammar | ||
| 213 | 'function))) | ||
| 214 | |||
| 202 | (defun typescript-ts-mode--font-lock-settings (language) | 215 | (defun typescript-ts-mode--font-lock-settings (language) |
| 203 | "Tree-sitter font-lock settings. | 216 | "Tree-sitter font-lock settings. |
| 204 | Argument LANGUAGE is either `typescript' or `tsx'." | 217 | Argument LANGUAGE is either `typescript' or `tsx'." |
| 205 | (treesit-font-lock-rules | 218 | (let ((func-exp (tsx-ts-mode--font-lock-compatibility-function-expression language))) |
| 206 | :language language | 219 | (treesit-font-lock-rules |
| 207 | :feature 'comment | 220 | :language language |
| 208 | `([(comment) (hash_bang_line)] @font-lock-comment-face) | 221 | :feature 'comment |
| 209 | 222 | `([(comment) (hash_bang_line)] @font-lock-comment-face) | |
| 210 | :language language | 223 | |
| 211 | :feature 'constant | 224 | :language language |
| 212 | `(((identifier) @font-lock-constant-face | 225 | :feature 'constant |
| 213 | (:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face)) | 226 | `(((identifier) @font-lock-constant-face |
| 214 | [(true) (false) (null)] @font-lock-constant-face) | 227 | (:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face)) |
| 215 | 228 | [(true) (false) (null)] @font-lock-constant-face) | |
| 216 | :language language | 229 | |
| 217 | :feature 'keyword | 230 | :language language |
| 218 | `([,@typescript-ts-mode--keywords] @font-lock-keyword-face | 231 | :feature 'keyword |
| 219 | [(this) (super)] @font-lock-keyword-face) | 232 | `([,@typescript-ts-mode--keywords] @font-lock-keyword-face |
| 220 | 233 | [(this) (super)] @font-lock-keyword-face) | |
| 221 | :language language | 234 | |
| 222 | :feature 'string | 235 | :language language |
| 223 | `((regex pattern: (regex_pattern)) @font-lock-regexp-face | 236 | :feature 'string |
| 224 | (string) @font-lock-string-face | 237 | `((regex pattern: (regex_pattern)) @font-lock-regexp-face |
| 225 | (template_string) @js--fontify-template-string | 238 | (string) @font-lock-string-face |
| 226 | (template_substitution ["${" "}"] @font-lock-misc-punctuation-face)) | 239 | (template_string) @js--fontify-template-string |
| 227 | 240 | (template_substitution ["${" "}"] @font-lock-misc-punctuation-face)) | |
| 228 | :language language | 241 | |
| 229 | :override t ;; for functions assigned to variables | 242 | :language language |
| 230 | :feature 'declaration | 243 | :override t ;; for functions assigned to variables |
| 231 | `((function | 244 | :feature 'declaration |
| 232 | name: (identifier) @font-lock-function-name-face) | 245 | `((,func-exp |
| 233 | (function_declaration | 246 | name: (identifier) @font-lock-function-name-face) |
| 234 | name: (identifier) @font-lock-function-name-face) | 247 | (function_declaration |
| 235 | (function_signature | 248 | name: (identifier) @font-lock-function-name-face) |
| 236 | name: (identifier) @font-lock-function-name-face) | 249 | (function_signature |
| 237 | 250 | name: (identifier) @font-lock-function-name-face) | |
| 238 | (method_definition | 251 | |
| 239 | name: (property_identifier) @font-lock-function-name-face) | 252 | (method_definition |
| 240 | (method_signature | 253 | name: (property_identifier) @font-lock-function-name-face) |
| 241 | name: (property_identifier) @font-lock-function-name-face) | 254 | (method_signature |
| 242 | (required_parameter (identifier) @font-lock-variable-name-face) | 255 | name: (property_identifier) @font-lock-function-name-face) |
| 243 | (optional_parameter (identifier) @font-lock-variable-name-face) | 256 | (required_parameter (identifier) @font-lock-variable-name-face) |
| 244 | 257 | (optional_parameter (identifier) @font-lock-variable-name-face) | |
| 245 | (variable_declarator | 258 | |
| 246 | name: (identifier) @font-lock-function-name-face | 259 | (variable_declarator |
| 247 | value: [(function) (arrow_function)]) | 260 | name: (identifier) @font-lock-function-name-face |
| 248 | 261 | value: [(,func-exp) (arrow_function)]) | |
| 249 | (variable_declarator | 262 | |
| 250 | name: (identifier) @font-lock-variable-name-face) | 263 | (variable_declarator |
| 251 | 264 | name: (identifier) @font-lock-variable-name-face) | |
| 252 | (enum_declaration (identifier) @font-lock-type-face) | 265 | |
| 253 | 266 | (enum_declaration (identifier) @font-lock-type-face) | |
| 254 | (extends_clause value: (identifier) @font-lock-type-face) | 267 | |
| 255 | ;; extends React.Component<T> | 268 | (extends_clause value: (identifier) @font-lock-type-face) |
| 256 | (extends_clause value: (member_expression | 269 | ;; extends React.Component<T> |
| 257 | object: (identifier) @font-lock-type-face | 270 | (extends_clause value: (member_expression |
| 258 | property: (property_identifier) @font-lock-type-face)) | 271 | object: (identifier) @font-lock-type-face |
| 259 | 272 | property: (property_identifier) @font-lock-type-face)) | |
| 260 | (arrow_function | 273 | |
| 261 | parameter: (identifier) @font-lock-variable-name-face) | 274 | (arrow_function |
| 262 | 275 | parameter: (identifier) @font-lock-variable-name-face) | |
| 263 | (variable_declarator | 276 | |
| 264 | name: (array_pattern | 277 | (variable_declarator |
| 265 | (identifier) | 278 | name: (array_pattern |
| 266 | (identifier) @font-lock-function-name-face) | 279 | (identifier) |
| 267 | value: (array (number) (function))) | 280 | (identifier) @font-lock-function-name-face) |
| 268 | 281 | value: (array (number) (,func-exp))) | |
| 269 | (catch_clause | 282 | |
| 270 | parameter: (identifier) @font-lock-variable-name-face) | 283 | (catch_clause |
| 271 | 284 | parameter: (identifier) @font-lock-variable-name-face) | |
| 272 | ;; full module imports | 285 | |
| 273 | (import_clause (identifier) @font-lock-variable-name-face) | 286 | ;; full module imports |
| 274 | ;; named imports with aliasing | 287 | (import_clause (identifier) @font-lock-variable-name-face) |
| 275 | (import_clause (named_imports (import_specifier | 288 | ;; named imports with aliasing |
| 276 | alias: (identifier) @font-lock-variable-name-face))) | 289 | (import_clause (named_imports (import_specifier |
| 277 | ;; named imports without aliasing | 290 | alias: (identifier) @font-lock-variable-name-face))) |
| 278 | (import_clause (named_imports (import_specifier | 291 | ;; named imports without aliasing |
| 279 | !alias | 292 | (import_clause (named_imports (import_specifier |
| 280 | name: (identifier) @font-lock-variable-name-face))) | 293 | !alias |
| 281 | 294 | name: (identifier) @font-lock-variable-name-face))) | |
| 282 | ;; full namespace import (* as alias) | 295 | |
| 283 | (import_clause (namespace_import (identifier) @font-lock-variable-name-face))) | 296 | ;; full namespace import (* as alias) |
| 284 | 297 | (import_clause (namespace_import (identifier) @font-lock-variable-name-face))) | |
| 285 | :language language | 298 | |
| 286 | :feature 'identifier | 299 | :language language |
| 287 | `((nested_type_identifier | 300 | :feature 'identifier |
| 288 | module: (identifier) @font-lock-type-face) | 301 | `((nested_type_identifier |
| 289 | 302 | module: (identifier) @font-lock-type-face) | |
| 290 | (type_identifier) @font-lock-type-face | 303 | |
| 291 | 304 | (type_identifier) @font-lock-type-face | |
| 292 | (predefined_type) @font-lock-type-face | 305 | |
| 293 | 306 | (predefined_type) @font-lock-type-face | |
| 294 | (new_expression | 307 | |
| 295 | constructor: (identifier) @font-lock-type-face) | 308 | (new_expression |
| 296 | 309 | constructor: (identifier) @font-lock-type-face) | |
| 297 | (enum_body (property_identifier) @font-lock-type-face) | 310 | |
| 298 | 311 | (enum_body (property_identifier) @font-lock-type-face) | |
| 299 | (enum_assignment name: (property_identifier) @font-lock-type-face) | 312 | |
| 300 | 313 | (enum_assignment name: (property_identifier) @font-lock-type-face) | |
| 301 | (variable_declarator | 314 | |
| 302 | name: (identifier) @font-lock-variable-name-face) | 315 | (variable_declarator |
| 303 | 316 | name: (identifier) @font-lock-variable-name-face) | |
| 304 | (for_in_statement | 317 | |
| 305 | left: (identifier) @font-lock-variable-name-face) | 318 | (for_in_statement |
| 306 | 319 | left: (identifier) @font-lock-variable-name-face) | |
| 307 | (arrow_function | 320 | |
| 308 | parameters: | 321 | (arrow_function |
| 309 | [(_ (identifier) @font-lock-variable-name-face) | 322 | parameters: |
| 310 | (_ (_ (identifier) @font-lock-variable-name-face)) | 323 | [(_ (identifier) @font-lock-variable-name-face) |
| 311 | (_ (_ (_ (identifier) @font-lock-variable-name-face)))])) | 324 | (_ (_ (identifier) @font-lock-variable-name-face)) |
| 312 | 325 | (_ (_ (_ (identifier) @font-lock-variable-name-face)))])) | |
| 313 | :language language | 326 | |
| 314 | :feature 'property | 327 | :language language |
| 315 | `((property_signature | 328 | :feature 'property |
| 316 | name: (property_identifier) @font-lock-property-name-face) | 329 | `((property_signature |
| 317 | (public_field_definition | 330 | name: (property_identifier) @font-lock-property-name-face) |
| 318 | name: (property_identifier) @font-lock-property-name-face) | 331 | (public_field_definition |
| 319 | 332 | name: (property_identifier) @font-lock-property-name-face) | |
| 320 | (pair key: (property_identifier) @font-lock-property-use-face) | 333 | |
| 321 | 334 | (pair key: (property_identifier) @font-lock-property-use-face) | |
| 322 | ((shorthand_property_identifier) @font-lock-property-use-face)) | 335 | |
| 323 | 336 | ((shorthand_property_identifier) @font-lock-property-use-face)) | |
| 324 | :language language | 337 | |
| 325 | :feature 'expression | 338 | :language language |
| 326 | '((assignment_expression | 339 | :feature 'expression |
| 327 | left: [(identifier) @font-lock-function-name-face | 340 | `((assignment_expression |
| 328 | (member_expression | 341 | left: [(identifier) @font-lock-function-name-face |
| 329 | property: (property_identifier) @font-lock-function-name-face)] | 342 | (member_expression |
| 330 | right: [(function) (arrow_function)])) | 343 | property: (property_identifier) @font-lock-function-name-face)] |
| 331 | 344 | right: [(,func-exp) (arrow_function)])) | |
| 332 | :language language | 345 | |
| 333 | :feature 'function | 346 | :language language |
| 334 | '((call_expression | 347 | :feature 'function |
| 335 | function: | 348 | '((call_expression |
| 336 | [(identifier) @font-lock-function-call-face | 349 | function: |
| 337 | (member_expression | 350 | [(identifier) @font-lock-function-call-face |
| 338 | property: (property_identifier) @font-lock-function-call-face)])) | 351 | (member_expression |
| 339 | 352 | property: (property_identifier) @font-lock-function-call-face)])) | |
| 340 | :language language | 353 | |
| 341 | :feature 'pattern | 354 | :language language |
| 342 | `((pair_pattern | 355 | :feature 'pattern |
| 343 | key: (property_identifier) @font-lock-property-use-face | 356 | `((pair_pattern |
| 344 | value: [(identifier) @font-lock-variable-name-face | 357 | key: (property_identifier) @font-lock-property-use-face |
| 345 | (assignment_pattern left: (identifier) @font-lock-variable-name-face)]) | 358 | value: [(identifier) @font-lock-variable-name-face |
| 346 | 359 | (assignment_pattern left: (identifier) @font-lock-variable-name-face)]) | |
| 347 | (array_pattern (identifier) @font-lock-variable-name-face) | 360 | |
| 348 | 361 | (array_pattern (identifier) @font-lock-variable-name-face) | |
| 349 | ((shorthand_property_identifier_pattern) @font-lock-variable-name-face)) | 362 | |
| 350 | 363 | ((shorthand_property_identifier_pattern) @font-lock-variable-name-face)) | |
| 351 | :language language | 364 | |
| 352 | :feature 'jsx | 365 | :language language |
| 353 | (append (tsx-ts-mode--font-lock-compatibility-bb1f97b language) | 366 | :feature 'jsx |
| 354 | `((jsx_attribute (property_identifier) @typescript-ts-jsx-attribute-face))) | 367 | (append (tsx-ts-mode--font-lock-compatibility-bb1f97b language) |
| 355 | 368 | `((jsx_attribute (property_identifier) @typescript-ts-jsx-attribute-face))) | |
| 356 | :language language | 369 | |
| 357 | :feature 'number | 370 | :language language |
| 358 | `((number) @font-lock-number-face | 371 | :feature 'number |
| 359 | ((identifier) @font-lock-number-face | 372 | `((number) @font-lock-number-face |
| 360 | (:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face))) | 373 | ((identifier) @font-lock-number-face |
| 361 | 374 | (:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face))) | |
| 362 | :language language | 375 | |
| 363 | :feature 'operator | 376 | :language language |
| 364 | `([,@typescript-ts-mode--operators] @font-lock-operator-face | 377 | :feature 'operator |
| 365 | (ternary_expression ["?" ":"] @font-lock-operator-face)) | 378 | `([,@typescript-ts-mode--operators] @font-lock-operator-face |
| 366 | 379 | (ternary_expression ["?" ":"] @font-lock-operator-face)) | |
| 367 | :language language | 380 | |
| 368 | :feature 'bracket | 381 | :language language |
| 369 | '((["(" ")" "[" "]" "{" "}"]) @font-lock-bracket-face) | 382 | :feature 'bracket |
| 370 | 383 | '((["(" ")" "[" "]" "{" "}"]) @font-lock-bracket-face) | |
| 371 | :language language | 384 | |
| 372 | :feature 'delimiter | 385 | :language language |
| 373 | '((["," "." ";" ":"]) @font-lock-delimiter-face) | 386 | :feature 'delimiter |
| 374 | 387 | '((["," "." ";" ":"]) @font-lock-delimiter-face) | |
| 375 | :language language | 388 | |
| 376 | :feature 'escape-sequence | 389 | :language language |
| 377 | :override t | 390 | :feature 'escape-sequence |
| 378 | '((escape_sequence) @font-lock-escape-face))) | 391 | :override t |
| 392 | '((escape_sequence) @font-lock-escape-face)))) | ||
| 379 | 393 | ||
| 380 | (defvar typescript-ts-mode--sentence-nodes | 394 | (defvar typescript-ts-mode--sentence-nodes |
| 381 | '("import_statement" | 395 | '("import_statement" |