emacs-elpa-diffs
[Top][All Lists]
Advanced

[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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]