branch: externals/phps-mode commit e5f93fc5f3199f1085aa12e10a82acd2a47f6c7e Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Fixed issue with syntax coloring when using narrow functions --- phps-mode-lex-analyzer.el | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/phps-mode-lex-analyzer.el b/phps-mode-lex-analyzer.el index 39e7e03271..b1a1d919f0 100644 --- a/phps-mode-lex-analyzer.el +++ b/phps-mode-lex-analyzer.el @@ -241,7 +241,9 @@ ALLOW-CACHE-READ and ALLOW-CACHE-WRITE." (timer-finished-syntax-coloring) (timer-elapsed-syntax-coloring) (timer-elapsed) - (timer-end)) + (timer-end) + (narrowed-point-min (point-min)) + (narrowed-point-max (point-max))) (when force-synchronous (setq async nil)) (let ((current-time (current-time))) @@ -313,13 +315,16 @@ ALLOW-CACHE-READ and ALLOW-CACHE-WRITE." (dolist (token phps-mode-lex-analyzer--tokens) (let ((start (car (cdr token))) (end (cdr (cdr token)))) - (let ((token-syntax-color - (phps-mode-lex-analyzer--get-token-syntax-color token))) - (when token-syntax-color - (phps-mode-lex-analyzer--set-region-syntax-color - start - end - (list 'font-lock-face token-syntax-color)))))) + (when (and + (>= start narrowed-point-min) + (<= end narrowed-point-max)) + (let ((token-syntax-color + (phps-mode-lex-analyzer--get-token-syntax-color token))) + (when token-syntax-color + (phps-mode-lex-analyzer--set-region-syntax-color + start + end + (list 'font-lock-face token-syntax-color))))))) (let ((current-time (current-time))) (setq @@ -545,11 +550,17 @@ ALLOW-CACHE-READ and ALLOW-CACHE-WRITE." (dolist (token phps-mode-lex-analyzer--tokens) (let ((start (car (cdr token))) (end (cdr (cdr token)))) + (when (and + (>= start incremental-start-new-buffer) + (<= end point-max)) ;; Apply syntax color on token (let ((token-syntax-color (phps-mode-lex-analyzer--get-token-syntax-color token))) (when token-syntax-color - (phps-mode-lex-analyzer--set-region-syntax-color start end (list 'font-lock-face token-syntax-color)))))) + (phps-mode-lex-analyzer--set-region-syntax-color + start + end + (list 'font-lock-face token-syntax-color))))))) (let ((current-time (current-time))) (setq