[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode 04d0065 08/62: Added syntax coloring for new
From: |
Christian Johansson |
Subject: |
[elpa] externals/phps-mode 04d0065 08/62: Added syntax coloring for new tokens |
Date: |
Tue, 20 Apr 2021 10:56:13 -0400 (EDT) |
branch: externals/phps-mode
commit 04d00656a8aea4fe8b7647abad61daadd8aca402
Author: Christian Johansson <christian@mediastrategi.se>
Commit: Christian Johansson <christian@mediastrategi.se>
Added syntax coloring for new tokens
---
phps-mode-lex-analyzer.el | 9 ++++++++-
phps-mode-lexer.el | 47 +++++++++++++++++++++++++++++++++--------------
2 files changed, 41 insertions(+), 15 deletions(-)
diff --git a/phps-mode-lex-analyzer.el b/phps-mode-lex-analyzer.el
index 7b283cc..bf7fe35 100644
--- a/phps-mode-lex-analyzer.el
+++ b/phps-mode-lex-analyzer.el
@@ -138,7 +138,10 @@
((or
(equal token-name 'T_VARIABLE)
- (equal token-name 'T_STRING_VARNAME))
+ (equal token-name 'T_STRING_VARNAME)
+ (equal token-name 'T_NAME_RELATIVE)
+ (equal token-name 'T_NAME_QUALIFIED)
+ (equal token-name 'T_NAME_FULLY_QUALIFIED))
(list 'font-lock-face 'font-lock-variable-name-face))
((equal token-name 'T_COMMENT)
@@ -147,6 +150,9 @@
((equal token-name 'T_DOC_COMMENT)
(list 'font-lock-face 'font-lock-doc-face))
+ ((equal token-name 'T_ATTRIBUTE)
+ (list 'font-lock-face 'font-lock-doc-face))
+
((equal token-name 'T_INLINE_HTML)
;; NOTE T_INLINE_HTML is missing by purpose here to distinguish those
areas from other entities
nil)
@@ -164,6 +170,7 @@
(equal token-name 'T_DOLLAR_OPEN_CURLY_BRACES)
(equal token-name 'T_CURLY_OPEN)
(equal token-name 'T_OBJECT_OPERATOR)
+ (equal token-name 'T_NULLSAFE_OBJECT_OPERATOR)
(equal token-name 'T_PAAMAYIM_NEKUDOTAYIM)
(equal token-name 'T_NS_SEPARATOR)
(equal token-name 'T_EXIT)
diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el
index 15ff33b..5cb76a9 100644
--- a/phps-mode-lexer.el
+++ b/phps-mode-lexer.el
@@ -103,7 +103,7 @@
;; VARIABLES
-;; TODO Fiture out way to use this
+;; TODO Figure out way to use this
(defvar-local phps-mode-lexer--expected nil
"Flag whether something is expected or not.")
@@ -231,7 +231,22 @@
(setq start (match-beginning 0)))
(unless end
(setq end (match-end 0)))
- (phps-mode-lexer--emit-token token start end))
+ (phps-mode-lexer--emit-token
+ token
+ start
+ end))
+
+(defun phps-mode-lexer--return-token-with-str (token offset &optional start
end)
+ "Return TOKEN at OFFSET with START and END."
+ (unless start
+ (setq start (match-beginning 0)))
+ (unless end
+ (setq end (match-end 0)))
+ (phps-mode-lexer--return-token token (+ start offset) (+ end offset)))
+
+(defun phps-mode-lexer--return-token-with-val (token &optional start end)
+ "Return TOKEN with START and END."
+ (phps-mode-lexer--return-token token start end))
(defun phps-mode-lexer--return-or-skip-token (token &optional start end)
"Return TOKEN with START and END but only in parse-mode."
@@ -399,7 +414,6 @@
(phps-mode-lexer--return-token-with-ident 'T_ENDFOR))
;; TODO Fix return_token_with_indent function
- ;; TODO New attribute token
;; TODO New function begin_nesting
(phps-mode-lexer--match-macro
@@ -487,7 +501,6 @@
(phps-mode-lexer--yy-push-state 'ST_LOOKING_FOR_PROPERTY)
(phps-mode-lexer--return-token-with-ident 'T_OBJECT_OPERATOR))
- ;; TODO New token below
(phps-mode-lexer--match-macro
(and ST_IN_SCRIPTING (looking-at "?->"))
(phps-mode-lexer--yy-push-state 'ST_LOOKING_FOR_PROPERTY)
@@ -503,7 +516,6 @@
(and ST_LOOKING_FOR_PROPERTY (looking-at "->"))
(phps-mode-lexer--return-token 'T_OBJECT_OPERATOR))
- ;; TODO New token below
(phps-mode-lexer--match-macro
(and ST_LOOKING_FOR_PROPERTY (looking-at "?->"))
(phps-mode-lexer--return-token 'T_NULLSAFE_OBJECT_OPERATOR))
@@ -1067,7 +1079,11 @@
"[a-zA-Z_\x80-\xff]")))
(phps-mode-lexer--yyless 3)
(phps-mode-lexer--yy-push-state 'ST_LOOKING_FOR_PROPERTY)
- (phps-mode-lexer--return-token-with-str 'T_VARIABLE 1 (match-beginning
0) (- (match-end 0) 3)))
+ (phps-mode-lexer--return-token-with-str
+ 'T_VARIABLE
+ 1
+ (match-beginning 0)
+ (- (match-end 0) 3)))
(phps-mode-lexer--match-macro
(and (or ST_DOUBLE_QUOTES ST_HEREDOC ST_BACKQUOTE)
@@ -1079,7 +1095,11 @@
"[a-zA-Z_\x80-\xff]")))
(phps-mode-lexer--yyless 4)
(phps-mode-lexer--yy-push-state 'ST_LOOKING_FOR_PROPERTY)
- (phps-mode-lexer--return-token-with-str 'T_VARIABLE 1 (match-beginning
0) (- (match-end 0) 4)))
+ (phps-mode-lexer--return-token-with-str
+ 'T_VARIABLE
+ 1
+ (match-beginning 0)
+ (- (match-end 0) 4)))
;; A [ always designates a variable offset, regardless of what follows
(phps-mode-lexer--match-macro
@@ -1092,7 +1112,10 @@
(phps-mode-lexer--yyless 1)
(phps-mode-lexer--yy-push-state 'ST_VAR_OFFSET)
(phps-mode-lexer--return-token-with-str
- 'T_VARIABLE 1 (match-beginning 0) (- (match-end 0) 1)))
+ 'T_VARIABLE
+ 1
+ (match-beginning 0)
+ (- (match-end 0) 1)))
(phps-mode-lexer--match-macro
(and (or ST_IN_SCRIPTING ST_DOUBLE_QUOTES ST_HEREDOC ST_BACKQUOTE
ST_VAR_OFFSET)
@@ -1105,7 +1128,7 @@
(phps-mode-lexer--match-macro
(and ST_VAR_OFFSET (looking-at "\\]"))
(phps-mode-lexer--yy-pop-state)
- (phps-mode-lexer--return-token-with-str "]" 1 (match-beginning 0)
(match-end 0)))
+ (phps-mode-lexer--return-token-with-str "]" 1))
(phps-mode-lexer--match-macro
(and ST_VAR_OFFSET
@@ -1126,7 +1149,6 @@
(phps-mode-lexer--yy-pop-state)
(phps-mode-lexer--return-token-with-val 'T_ENCAPSED_AND_WHITESPACE))
- ;; TODO New token below
(phps-mode-lexer--match-macro
(and ST_IN_SCRIPTING
(looking-at
@@ -1140,7 +1162,6 @@
'T_NAME_RELATIVE
(1- (length "namespace\\"))))
- ;; TODO New token below
(phps-mode-lexer--match-macro
(and
ST_IN_SCRIPTING
@@ -1154,7 +1175,6 @@
'T_NAME_QUALIFIED
0))
- ;; TODO New token below
(phps-mode-lexer--match-macro
(and
ST_IN_SCRIPTING
@@ -1518,8 +1538,7 @@
(phps-mode-lexer--return-token-with-val
'T_ENCAPSED_AND_WHITESPACE
old-start
- start)
- )
+ start))
))
(progn
- [elpa] externals/phps-mode updated (a8dcba3 -> 209055b), Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 8647f09 01/62: Started on adding support for PHP 8.0 lex analyzer, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 846b3b0 03/62: More work on PHP 8.0 lex analyzer, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 83c7648 04/62: More work on PHP 8 lex analyzer, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode a1aa0a2 05/62: More work on PHP 8.0 lex analyzer, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 60a33b3 06/62: More work on PHP 8.0 lex analyzer, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 111335b 11/62: Added TODO item, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode fbea5d9 07/62: Improved naming in lex analyzer, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 79bbd0c 10/62: Fixed a regex issue, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode de5fea6 12/62: Added new token and lex analyzer functions, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 04d0065 08/62: Added syntax coloring for new tokens,
Christian Johansson <=
- [elpa] externals/phps-mode c56268f 13/62: Implement new lex-analyzer function, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 11313cc 15/62: Removed unnecessary code, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode cd7ebb7 17/62: Removed unnecessary comment, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 09d0bca 18/62: Passing old unit tests for lexer simple tokens, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode ae7a460 21/62: Added another new test for PHP 8.0 lex analysis, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode d8ac01b 24/62: Removed verbose errors on integration-test, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode ad3e37b 28/62: Passed lexer and integration unit tests, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 08329be 30/62: Fixed support for bookkeeping of superglobals $GLOBALS and $_ENV, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 9172bf2 35/62: Improved incremental lex-analyzer, Christian Johansson, 2021/04/20
- [elpa] externals/phps-mode 490826c 45/62: Implemented the YACC grammar, Christian Johansson, 2021/04/20