[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phps-mode ced201d 322/405: Updated syntax colouring for
From: |
Stefan Monnier |
Subject: |
[elpa] externals/phps-mode ced201d 322/405: Updated syntax colouring for namespace, class, function and constant names |
Date: |
Sat, 13 Jul 2019 10:00:41 -0400 (EDT) |
branch: externals/phps-mode
commit ced201df9844b22c358ca77d1c60131d57998038
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>
Updated syntax colouring for namespace, class, function and constant names
---
phps-mode-functions.el | 8 ++++----
phps-mode-lexer.el | 38 +++++++++++++++++++++++++++-----------
2 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/phps-mode-functions.el b/phps-mode-functions.el
index b3ae09b..d902626 100644
--- a/phps-mode-functions.el
+++ b/phps-mode-functions.el
@@ -755,7 +755,7 @@
)))))))
-(defun phps-mode-functions-after-change (start stop _length)
+(defun phps-mode-functions-after-change (start _stop _length)
"Track buffer change from START to STOP with length LENGTH."
(when (string= major-mode "phps-mode")
@@ -763,17 +763,17 @@
(when (and (not phps-mode-functions-buffer-changes-start)
(boundp 'phps-mode-idle-interval)
phps-mode-idle-interval)
- (message "Enqueued incremental lexer")
+ ;; (message "Enqueued incremental lexer")
(run-with-idle-timer phps-mode-idle-interval nil
#'phps-mode-lexer-run-incremental))
;; When point of change is not set or when start of new changes precedes
old change - update the point
(when (or (not phps-mode-functions-buffer-changes-start)
(< start phps-mode-functions-buffer-changes-start))
(setq phps-mode-functions-buffer-changes-start start)
- (message "Setting start of changes to: %s-%s"
phps-mode-functions-buffer-changes-start stop))
+ ;; (message "Setting start of changes to: %s-%s"
phps-mode-functions-buffer-changes-start stop))
;; (message "phps-mode-functions-after-change %s %s %s" start stop length)
- ))
+ )))
(defun phps-mode-functions-imenu-create-index ()
"Get Imenu for current buffer."
diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el
index 1a52fae..ab461da 100644
--- a/phps-mode-lexer.el
+++ b/phps-mode-lexer.el
@@ -131,6 +131,9 @@
(defconst phps-mode-lexer-ST_VAR_OFFSET 9
"Flag whether we are looking for variable offset or not.")
+(defvar phps-mode-lexer-COLOR_SYNTAX-previous-token nil
+ "Store previous token for color-syntax.")
+
;; REGULAR EXPRESSIONS
@@ -208,17 +211,29 @@
"Syntax coloring for TOKEN from START to END."
;; Syntax coloring
;; see
https://www.gnu.org/software/emacs/manual/html_node/elisp/Faces-for-Font-Lock.html#Faces-for-Font-Lock
+ ;; (message "Color token %s %s %s" token start end)
(cond
+ ((and
+ phps-mode-lexer-COLOR_SYNTAX-previous-token
+ (string= phps-mode-lexer-COLOR_SYNTAX-previous-token 'T_CONST)
+ (string= token 'T_STRING))
+ (overlay-put (make-overlay start end) 'font-lock-face
'font-lock-constant-face))
+
+ ((and
+ phps-mode-lexer-COLOR_SYNTAX-previous-token
+ (or (string= phps-mode-lexer-COLOR_SYNTAX-previous-token 'T_NAMESPACE)
+ (string= phps-mode-lexer-COLOR_SYNTAX-previous-token 'T_CLASS)
+ (string= phps-mode-lexer-COLOR_SYNTAX-previous-token 'T_FUNCTION))
+ (string= token 'T_STRING))
+ (overlay-put (make-overlay start end) 'font-lock-face
'font-lock-function-name-face))
+
((or
(string= token 'T_STRING)
(string= token 'T_VARIABLE)
(string= token 'T_STRING_VARNAME))
(overlay-put (make-overlay start end) 'font-lock-face
'font-lock-variable-name-face))
- ((or (string= token 'T_FUNCTION))
- (overlay-put (make-overlay start end) 'font-lock-face
'font-lock-function-name-face))
-
((string= token 'T_INLINE_HTML)
(overlay-put (make-overlay start end) 'font-lock-face
'font-lock-comment-delimiter-face))
@@ -238,10 +253,6 @@
(overlay-put (make-overlay start end) 'font-lock-face
'font-lock-string-face))
((or
- (string= token 'T_CONST))
- (overlay-put (make-overlay start end) 'font-lock-face
'font-lock-constant-face))
-
- ((or
(string= token "?")
(string= token "!")
(string= token "<")
@@ -276,6 +287,8 @@
(string= token 'T_WHILE)
(string= token 'T_ENDWHILE)
(string= token 'T_DO)
+ (string= token 'T_FUNCTION)
+ (string= token 'T_CONST)
(string= token 'T_FOREACH)
(string= token 'T_ENDFOREACH)
(string= token 'T_FOR)
@@ -391,7 +404,9 @@
((string= token 'T_ERROR)
(overlay-put (make-overlay start end) 'font-lock-face
'font-lock-warning-face))
- ))
+ )
+
+ (setq phps-mode-lexer-COLOR_SYNTAX-previous-token token))
(defun phps-mode-lexer-RETURN_TOKEN (token start end)
"Push TOKEN to list with START and END."
@@ -1597,7 +1612,8 @@
(defun phps-mode-lexer-setup (start end)
"Just prepare other lexers for lexing region START to END."
- (message "phps-mode-lexer-setup %s %s" start end)
+ ;; (message "phps-mode-lexer-setup %s %s" start end)
+ (setq phps-mode-lexer-COLOR_SYNTAX-previous-token nil)
;; Flag that buffer has not been processed
(when (and (boundp 'phps-mode-functions-processed-buffer)
@@ -1615,7 +1631,7 @@
(defun phps-mode-lexer-run ()
"Run lexer."
(interactive)
- (message "Running lexer")
+ ;; (message "Running lexer")
(setq phps-mode-lexer-tokens (semantic-lex-buffer)))
(defun phps-mode-lexer-move-states (start diff)
@@ -1666,7 +1682,7 @@
(defun phps-mode-lexer-run-incremental ()
"Run incremental lexer based on
`(phps-mode-functions-get-buffer-changes-start)'."
- (message "Running incremental lexer")
+ ;; (message "Running incremental lexer")
(when (and (phps-mode-functions-get-buffer-changes-start)
phps-mode-lexer-states)
(let ((state nil)
- [elpa] externals/phps-mode 6d834c1 312/405: Added support for (comment-region) and (uncomment-region), (continued)
- [elpa] externals/phps-mode 6d834c1 312/405: Added support for (comment-region) and (uncomment-region), Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode b1d2820 309/405: Fixed issue with indentation of square bracket arrays in assignments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 3bc2411 317/405: Moved syntax-table tests to own file, using local electric-pair-mode in PHPs buffers, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c2b8a16 335/405: Passes new test for concatenated string inside function arguments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode b4e416a 336/405: (comment-region) tests working with custom function, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode ad53b6c 330/405: Fixed warning when expected integer was nil, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c8c5b62 337/405: Made custom functions for (comment-region) and (uncomment-region), Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 7e22fdb 323/405: Added failing incremental indentation test, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a45b39a 339/405: Added two failing indentation tests for concatenated equal assignment and double arrow multi-line array declaration, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 3e1ff06 332/405: Added integration-tests for syntax colouring and update goals, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode ced201d 322/405: Updated syntax colouring for namespace, class, function and constant names,
Stefan Monnier <=
- [elpa] externals/phps-mode 8298a6a 325/405: Colorized strings after namespace separator, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a30e5ff 331/405: Run incremental lexer when processing file if buffer change, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode e9475f7 321/405: Merge branch 'master' of https://github.com/cjohansson/emacs-phps-mode, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 55b3087 333/405: Optimized lexer calling, do not call when using (indent-line), Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode a309998 326/405: Integration tests passes with new function, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode c37b234 334/405: Added failing test for indent in concatenated string inside function arguments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 8109c1a 328/405: (uncomment-region) working, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 9e62157 338/405: (comment-region) and (uncomment-region) now handles part of lines as well as full lines, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode 091ab21 340/405: Passes new unit test for indentation of concatenated equal and multiplication equal assignments, Stefan Monnier, 2019/07/13
- [elpa] externals/phps-mode d27af61 327/405: Fixed bug with incremental lexer were states are missing, Stefan Monnier, 2019/07/13