From e663fac39adb0f11e8eb513acedd20f9fe0c4d40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jostein=20Kj=C3=B8nigsen?= Date: Thu, 26 Jan 2023 20:32:18 +0100 Subject: [PATCH 2/2] js-ts-mode: fix errors in fontification of import-statements. Currently js-ts-mode handles imports with aliases incorrectly. 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/js.el | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index b5c912b8b0d..05d69c314bb 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -3546,9 +3546,18 @@ js--treesit-font-lock-settings (identifier) @font-lock-function-name-face) value: (array (number) (function))) + ;; full module imports (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 'javascript :feature 'property -- 2.39.1