branch: externals/phps-mode commit d27af6190843443142a33af404820c899f65bf76 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Fixed bug with incremental lexer were states are missing --- phps-mode-lexer.el | 6 +++--- phps-mode-test-integration.el | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el index 992fcc3..6da9ffa 100644 --- a/phps-mode-lexer.el +++ b/phps-mode-lexer.el @@ -1684,7 +1684,7 @@ (defun phps-mode-lexer-run-incremental () "Run incremental lexer based on `(phps-mode-functions-get-buffer-changes-start)'." ;; (message "Running incremental lexer") - (when (and (phps-mode-functions-get-buffer-changes-start) + (when (and (> (phps-mode-functions-get-buffer-changes-start) 1) phps-mode-lexer-states) (let ((state nil) (state-stack nil) @@ -1694,7 +1694,6 @@ (previous-token-start nil) (previous-token-end nil) (tokens phps-mode-lexer-tokens)) - ;; (message "Looking for state to rewind to for %s in stack %s" change-start states) ;; Find state and state stack before point of change ;; also determine were previous token to change starts @@ -1744,7 +1743,8 @@ )) ;; (display-warning "phps-mode" (format "Found no state to rewind to for %s in stack %s, buffer point max: %s" change-start states (point-max))) - (phps-mode-lexer-run)))) + ))) + (phps-mode-lexer-run) (phps-mode-functions-reset-buffer-changes-start)) (define-lex phps-mode-lexer-lex diff --git a/phps-mode-test-integration.el b/phps-mode-test-integration.el index 2c80f8b..7d8d7ef 100644 --- a/phps-mode-test-integration.el +++ b/phps-mode-test-integration.el @@ -69,6 +69,15 @@ (execute-kbd-macro (kbd "<backspace>")) (should (equal (phps-mode-functions-get-buffer-changes-start) 55))) + (phps-mode-test-incremental-vs-intial-buffer + "" + "Integration-test 3 for function-oriented PHP" + + ;; Make changes + (goto-char 1) + (insert "<?php\nfunction myFunctionA()\n{\n echo 'my second statement';\n}\n") + (should (equal (phps-mode-functions-get-buffer-changes-start) 1))) + ) (defun phps-mode-test-integration ()