mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-11 08:30:45 -08:00
Fix fontification TypeScript of import-statements (bug#61081)
Currently typescript-ts-mode and tsx-ts-mode handles imports with
aliases incorrectly.
Consider the following case:
import { someFunc as someAlias } from "module";
In this case the entire import ("someFunc as someAlias") will be
highlighted as a variable name. "as" is also highlighted as a
variable, rather than a reserved keyword.
To be consistent with how we otherwise do things, we should only
highlight the variable which is new and/or introduced, in this case
"someAlias".
Attached is a patch which fontifies import-declarations somewhat more
correctly.
The following cases have been tested and all fontify properly:
import gnu from "fsf"; // highlights gnu
import { gnu2 } from "fsf2"; // highlights gnu2
import { gnu as gnu3 } from "fsf3"; // highlights gnu3
import * as gnu4 from "fsf4"; // highlights gnu4
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Tweak import_clause rules to
adhere to the comment above.
This commit is contained in:
parent
752c526585
commit
fd145499bb
1 changed files with 11 additions and 1 deletions
|
|
@ -196,8 +196,18 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
||||||
(catch_clause
|
(catch_clause
|
||||||
parameter: (identifier) @font-lock-variable-name-face)
|
parameter: (identifier) @font-lock-variable-name-face)
|
||||||
|
|
||||||
|
;; full module imports
|
||||||
(import_clause (identifier) @font-lock-variable-name-face)
|
(import_clause (identifier) @font-lock-variable-name-face)
|
||||||
(import_clause (named_imports (import_specifier (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)))
|
||||||
|
|
||||||
:language language
|
:language language
|
||||||
:feature 'identifier
|
:feature 'identifier
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue