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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/phps-mode 7160da6: Improved re-scan feature and road-ma


From: Christian Johansson
Subject: [elpa] externals/phps-mode 7160da6: Improved re-scan feature and road-map document
Date: Tue, 10 Dec 2019 01:24:47 -0500 (EST)

branch: externals/phps-mode
commit 7160da611d599a509569326f36f4387553902668
Author: Christian Johansson <address@hidden>
Commit: Christian Johansson <address@hidden>

    Improved re-scan feature and road-map document
---
 README.md    |  5 ++++-
 phps-mode.el | 37 +++++++++++++++++++++++--------------
 2 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/README.md b/README.md
index cbcbc91..0838614 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,10 @@ This mode does not require PHP installed on your computer 
because it has a built
 
 ## Roadmap
 
-* Wisent Parser support
+* 1. Refactor lexer to separate buffer, error handling and error presentation
+* 2. Wisent Parser support
+* 3. Improved token-blind indentation
+* 4. Other enhancements
 
 ## Keymap
 
diff --git a/phps-mode.el b/phps-mode.el
index 83bd3b7..957f7da 100644
--- a/phps-mode.el
+++ b/phps-mode.el
@@ -6,7 +6,7 @@
 ;; Maintainer: Christian Johansson <address@hidden>
 ;; Created: 3 Mar 2018
 ;; Modified: 10 Dec 2019
-;; Version: 0.3.22
+;; Version: 0.3.23
 ;; Keywords: tools, convenience
 ;; URL: https://github.com/cjohansson/emacs-phps-mode
 
@@ -61,12 +61,19 @@
 
 (defvar phps-mode-map
   (let ((map (make-sparse-keymap)))
-    (define-key map (kbd "C-c C-r") #'phps-mode-lexer-run)
+    (define-key map (kbd "C-c C-r") #'phps-mode-rescan-buffer)
     (define-key map (kbd "C-c C-f") #'phps-mode-format-buffer)
     map)
   "Keymap for `phps-mode'.")
 
 ;;;###autoload
+(defun phps-mode-rescan-buffer ()
+  "Re-scan buffer."
+  (interactive)
+  (phps-mode-reset-local-variables)
+  (phps-mode-lexer-run))
+
+;;;###autoload
 (defun phps-mode-flycheck-setup ()
   "Setup `flycheck' for `phps-mode'."
   ;; Add support for flycheck PHP checkers: PHP, PHPMD and PHPCS here
@@ -142,6 +149,19 @@
         (delete-region (point-min) (point-max))
         (insert new-buffer-contents)))))
 
+(defun phps-mode-reset-local-variables ()
+  "Reset local variables."
+  (setq-local phps-mode-functions-allow-after-change t)
+  (setq-local phps-mode-analyzer-change-min nil)
+  (setq-local phps-mode-functions-idle-timer nil)
+  (setq-local phps-mode-functions-lines-indent nil)
+  (setq-local phps-mode-functions-imenu nil)
+  (setq-local phps-mode-functions-processed-buffer nil)
+  (setq-local phps-mode-lexer-buffer-length nil)
+  (setq-local phps-mode-lexer-buffer-contents nil)
+  (setq-local phps-mode-lexer-tokens nil)
+  (setq-local phps-mode-lexer-states nil))
+
 (define-derived-mode phps-mode prog-mode "PHPs"
   "Major mode for PHP with Semantic integration."
 
@@ -182,18 +202,7 @@
     ;; All PHP files MUST end with a non-blank line, terminated with a single 
LF.
     (setq require-final-newline t))
 
-  ;; Reset buffer-local variables
-  (setq-local phps-mode-functions-allow-after-change t)
-  (setq-local phps-mode-analyzer-change-min nil)
-  (setq-local phps-mode-functions-idle-timer nil)
-  (setq-local phps-mode-functions-lines-indent nil)
-  (setq-local phps-mode-functions-imenu nil)
-  (setq-local phps-mode-functions-processed-buffer nil)
-  (setq-local phps-mode-lexer-buffer-length nil)
-  (setq-local phps-mode-lexer-buffer-contents nil)
-  (setq-local phps-mode-lexer-tokens nil)
-  (setq-local phps-mode-lexer-states nil)
-  (setq-local phps-mode-functions-allow-after-change t)
+  (phps-mode-reset-local-variables)
 
   ;; Make (comment-region) and (uncomment-region) work
   (setq-local comment-region-function #'phps-mode-functions-comment-region)



reply via email to

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