branch: externals/phps-mode
commit 94492c4780ec9df2b678569b2292bf4518e867f4
Author: Christian Johansson <[email protected]>
Commit: Christian Johansson <[email protected]>
Added changes tracking to functions from lexer
---
phps-functions.el | 16 ++++++++++++++++
phps-lexer.el | 13 -------------
phps-test-functions.el | 6 ++++--
3 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/phps-functions.el b/phps-functions.el
index 54e021c..bcd50ce 100644
--- a/phps-functions.el
+++ b/phps-functions.el
@@ -36,6 +36,9 @@
;;; Code:
+(defvar phps-mode/buffer-changes--start nil
+ "Start of buffer changes, nil if none.")
+
(autoload 'phps-mode/lexer-get-point-data "phps-lexer")
(defun phps-mode/indent-line ()
@@ -93,6 +96,15 @@
"Indent region."
)
+;; TODO This function should track between what min and max region a specific
buffer has been modified and then re-run lexer for that region when editor is
idle, maybe use (buffer-name))
+;; maybe use 'auto-save-hook for this
+(defun phps-mode/after-change-functions (start stop length)
+ "Track buffer change from START to STOP with length LENGTH."
+ (when (string= major-mode "phps-mode")
+ (setq phps-mode/buffer-changes--start start)
+ (message "phps-mode/after-change-functions %s %s %s" start stop length)
+ ))
+
(defun phps-mode/functions-init ()
"PHP specific init-cleanup routines."
@@ -109,6 +121,10 @@
)
+ (set (make-local-variable 'phps-mode/buffer-changes--start) nil)
+
+ (add-hook 'after-change-functions #'phps-mode/after-change-functions)
+
;; (set (make-local-variable 'indent-line-function)
#'phps-mode/indent-region)
)
diff --git a/phps-lexer.el b/phps-lexer.el
index 42ab914..37e1c56 100644
--- a/phps-lexer.el
+++ b/phps-lexer.el
@@ -47,9 +47,6 @@
(defvar phps-mode/lexer-tokens nil
"Last lexer tokens.")
-(defvar phps-mode/buffer-changes--start nil
- "Start of buffer changes, nil if none.")
-
;; SETTINGS
@@ -1335,15 +1332,6 @@ ANY_CHAR'
(setq phps-mode/buffer-changes--start nil)
(phps-mode/BEGIN phps-mode/ST_INITIAL)))
-;; TODO This function should track between what min and max region a specific
buffer has been modified and then re-run lexer for that region when editor is
idle, maybe use (buffer-name))
-;; maybe use 'auto-save-hook for this
-(defun phps-mode/after-change-functions (start stop length)
- "Track buffer change from START to STOP with length LENGTH."
- (when (string= major-mode "phps-mode")
- (setq phps-mode/buffer-changes--start start)
- (message "phps-mode/after-change-functions %s %s %s" start stop length)
- ))
-
(defun phps-mode/lex--RUN ()
"Run lexer."
(interactive)
@@ -1371,7 +1359,6 @@ ANY_CHAR'
(setq semantic-lex-syntax-table phps-mode/syntax-table))
(setq semantic-lex-analyzer #'phps-mode/tags-lexer)
(add-hook 'semantic-lex-reset-functions #'phps-mode/lex--SETUP)
- (add-hook 'after-change-functions #'phps-mode/after-change-functions)
(phps-mode/lex--RUN))
(provide 'phps-mode/lexer)
diff --git a/phps-test-functions.el b/phps-test-functions.el
index 644f916..9635bc0 100644
--- a/phps-test-functions.el
+++ b/phps-test-functions.el
@@ -40,7 +40,7 @@
(autoload 'phps-mode/with-test-buffer "phps-test")
(autoload 'should "ert")
-(defun phps-mode/test-indentation ()
+(defun phps-mode/test-indent-line ()
"Test for indentation."
(phps-mode/with-test-buffer
@@ -99,9 +99,11 @@
)
+;; TODO Add tests for all examples here: https://www.php-fig.org/psr/psr-2/
+
(defun phps-mod/test-functions ()
"Run test for functions."
- (phps-mode/test-indentation))
+ (phps-mode/test-indent-line))
(phps-mod/test-functions)