branch: master
commit f130121d34993c4c15323b49684d561baaa992e4
Merge: fa419df 6d22df2
Author: Dmitry Gutov <[email protected]>
Commit: Dmitry Gutov <[email protected]>
Merge pull request #328 from XeCycle/iname-color
Colorize imported names as variables
---
js2-mode.el | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/js2-mode.el b/js2-mode.el
index ed0ff68..00be32c 100644
--- a/js2-mode.el
+++ b/js2-mode.el
@@ -8599,7 +8599,7 @@ imports or a namespace import that follows it.
(js2-define-symbol
js2-LET (js2-name-node-name name-node) name-node t))))))
((= (js2-peek-token) js2-NAME)
- (let ((binding (js2-maybe-parse-export-binding)))
+ (let ((binding (js2-maybe-parse-export-binding t)))
(let ((node-name (js2-export-binding-node-local-name binding)))
(js2-define-symbol js2-LET (js2-name-node-name node-name) node-name
t))
(setf (js2-import-clause-node-default-binding clause) binding)
@@ -8680,7 +8680,7 @@ The current token must be js2-MUL."
js2-LC. Return a lisp list of js2-export-binding-node"
(let ((bindings (list)))
(while
- (let ((binding (js2-maybe-parse-export-binding)))
+ (let ((binding (js2-maybe-parse-export-binding import-p)))
(when binding
(push binding bindings))
(js2-match-token js2-COMMA)))
@@ -8689,7 +8689,7 @@ js2-LC. Return a lisp list of js2-export-binding-node"
"msg.mod.rc.after.export.spec.list"))
(reverse bindings))))
-(defun js2-maybe-parse-export-binding ()
+(defun js2-maybe-parse-export-binding (&optional import-p)
"Attempt to parse a binding expression found inside an import/export
statement.
This can take the form of either as single js2-NAME token as in 'foo' or as in
a
rebinding expression 'bar as foo'. If it matches, it will return an instance of
@@ -8722,6 +8722,9 @@ consumes no tokens."
node
(js2-export-binding-node-local-name node)
(js2-export-binding-node-extern-name node))
+ (if import-p
+ (js2-set-face (js2-current-token-beg)
(js2-current-token-end)
+ 'font-lock-variable-name-face 'record))
node)
(js2-unget-token)
nil))
@@ -8737,6 +8740,9 @@ consumes no tokens."
(when is-reserved-name
(js2-report-error "msg.mod.as.after.reserved.word" extern-name))
(js2-node-add-children node name-node)
+ (if import-p
+ (js2-set-face (js2-current-token-beg) (js2-current-token-end)
+ 'font-lock-variable-name-face 'record))
node))
nil)))