branch: externals/phps-mode commit 7688cd726aca4bcd6178a5c11932169305c54cc4 Author: Christian Johansson <christ...@cvj.se> Commit: Christian Johansson <christ...@cvj.se>
Got incremental lexer working after renaming again --- phps-mode-functions.el | 20 ++++++++++++-------- phps-mode-lexer.el | 14 +++++++------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/phps-mode-functions.el b/phps-mode-functions.el index cea1ff5..788781c 100644 --- a/phps-mode-functions.el +++ b/phps-mode-functions.el @@ -50,12 +50,12 @@ (let ((start-curly-bracket-level (nth 1 start)) (start-round-bracket-level (nth 2 start)) (start-square-bracket-level (nth 3 start)) - (start-inline-function-level (nth 4 start)) + (_start-inline-function-level (nth 4 start)) (start-token-number (nth 5 start)) (end-curly-bracket-level (nth 1 end)) (end-round-bracket-level (nth 2 end)) (end-square-bracket-level (nth 3 end)) - (end-inline-function-level (nth 4 end)) + (_end-inline-function-level (nth 4 end)) (end-token-number (nth 5 end)) (in-doc-comment (nth 6 start))) (let* ((indent-start (+ start-curly-bracket-level start-round-bracket-level start-square-bracket-level)) @@ -174,19 +174,23 @@ ))))))))) ;; TODO Fix flycheck error here -(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") + + ;; If we haven't scheduled incremental lexer before - do it (when (and (not phps-mode-functions-buffer-changes-start) - (boundp 'phps-mode-idle-interval)) - ;; (run-with-idle-timer phps-mode-idle-interval nil #'phps-mode-lexer-run) - ;; TODO Maybe use incremental lexer once it's working - (run-with-idle-timer phps-mode-idle-interval nil #'phps-mode-lexer-run-incremental) - ) + (boundp 'phps-mode-idle-interval) + phps-mode-idle-interval) + ;; (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)) ;; (message "Setting start of changes from %s to %s" phps-mode-functions-buffer-changes-start start) (setq phps-mode-functions-buffer-changes-start start)) + ;; (message "phps-mode-functions-after-change %s %s %s" start stop length) )) diff --git a/phps-mode-lexer.el b/phps-mode-lexer.el index 8b0079a..3fd2a42 100644 --- a/phps-mode-lexer.el +++ b/phps-mode-lexer.el @@ -380,7 +380,7 @@ (semantic-lex-token token start end))) ;; TODO Figure out what this does -(defun phps-mode-lexer-SKIP_TOKEN (token start end) +(defun phps-mode-lexer-SKIP_TOKEN (_token _start _end) "Skip TOKEN to list with START and END." ) @@ -793,7 +793,7 @@ ((looking-at (concat "/\\*\\*" phps-mode-lexer-WHITESPACE)) (let* ((start (match-beginning 0)) (end (match-end 0)) - (data (buffer-substring-no-properties start end))) + (_data (buffer-substring-no-properties start end))) (let ((string-start (search-forward "*/" nil t)) position) (if string-start @@ -1326,14 +1326,14 @@ ANY_CHAR' (defun phps-mode-lexer-run-incremental () "Run incremental lexer based on `phps-mode-lexer-buffer-changes--start'." - (when (and (boundp 'phps-mode-lexer-buffer-changes--start) - phps-mode-lexer-buffer-changes--start + (when (and (boundp 'phps-mode-functions-buffer-changes-start) + phps-mode-functions-buffer-changes-start phps-mode-lexer-states) (let ((state nil) (state-stack nil) (new-states '()) (states (nreverse phps-mode-lexer-states)) - (change-start phps-mode-lexer-buffer-changes--start) + (change-start phps-mode-functions-buffer-changes-start) (previous-token-start nil) (tokens phps-mode-lexer-tokens)) ;; (message "Looking for state to rewind to for %s in stack %s" change-start states) @@ -1368,7 +1368,7 @@ ANY_CHAR' ;; Delete all overlays from point of change to end of buffer (dolist (overlay (overlays-in previous-token-start (point-max))) - (delete-overlay overlay)) + (delete-overlay overlay)) (let* ((new-tokens (semantic-lex previous-token-start (point-max))) (appended-tokens (append old-tokens new-tokens))) @@ -1385,7 +1385,7 @@ ANY_CHAR' )) ;; (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))) - (setq phps-mode-lexer-buffer-changes--start nil))) + (setq phps-mode-functions-buffer-changes-start nil))) (define-lex phps-mode-lexer-tags-lexer "Lexer that handles PHP buffers."