branch: externals/phpinspect
commit 4c5a70d4afec104ab9492549c37c32f591e2ac24
Author: Hugo Thunnissen <de...@hugot.nl>
Commit: Hugo Thunnissen <de...@hugot.nl>

    Make buffer re-parse non-interruptible + add interactive function to view 
tree
---
 phpinspect-buffer.el | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/phpinspect-buffer.el b/phpinspect-buffer.el
index f540ca33a3..cea7aa4f91 100644
--- a/phpinspect-buffer.el
+++ b/phpinspect-buffer.el
@@ -46,7 +46,7 @@ emacs buffer."
   (edit-tracker (phpinspect-make-edtrack)
                 :type phpinspect-edtrack))
 
-(cl-defmethod phpinspect-buffer-parse ((buffer phpinspect-buffer))
+(cl-defmethod phpinspect-buffer-parse ((buffer phpinspect-buffer) &optional 
no-interrupt)
   "Parse the PHP code in the the emacs buffer that this object is
 linked with."
   (if (or (not (phpinspect-buffer-tree buffer))
@@ -55,7 +55,7 @@ linked with."
         (let* ((map (phpinspect-make-bmap))
                (buffer-map (phpinspect-buffer-map buffer))
                (ctx (phpinspect-make-pctx
-                     :interrupt-predicate #'input-pending-p
+                     :interrupt-predicate (unless no-interrupt 
#'input-pending-p)
                      :bmap map
                      :incremental t
                      :previous-bmap buffer-map
@@ -77,7 +77,7 @@ linked with."
   (setf (phpinspect-buffer-tree buffer) nil)
   (setf (phpinspect-buffer-map buffer) (phpinspect-make-bmap))
   (phpinspect-edtrack-clear (phpinspect-buffer-edit-tracker buffer))
-  (phpinspect-buffer-parse buffer))
+  (phpinspect-buffer-parse buffer 'no-interrupt))
 
 (defsubst phpinspect-buffer-parse-map (buffer)
   (phpinspect-buffer-parse buffer)
@@ -117,5 +117,12 @@ use."
                  (phpinspect-bmap-make-location-resolver 
(phpinspect-buffer-map buffer)))
                token))))
 
+(defun phpinspect-display-buffer-tree ()
+  (interactive)
+  (when phpinspect-current-buffer
+    (let ((buffer phpinspect-current-buffer))
+    (pop-to-buffer (generate-new-buffer "phpinspect-buffer-tree"))
+    (insert (pp-to-string (phpinspect-buffer-tree buffer)))
+    (read-only-mode))))
 
 (provide 'phpinspect-buffer)

Reply via email to