branch: externals/matlab-mode
commit 66919ef44b978f5bd1233b40d898d6c3ff58773d
Author: John Ciolfi <[email protected]>
Commit: John Ciolfi <[email protected]>

    matlab-ts-mode--ei: minor optimization to not call (pos-eol) as frequently
---
 matlab-ts-mode--ei.el | 37 +++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/matlab-ts-mode--ei.el b/matlab-ts-mode--ei.el
index bc30020e1f..577bdf06b7 100644
--- a/matlab-ts-mode--ei.el
+++ b/matlab-ts-mode--ei.el
@@ -315,7 +315,7 @@ Assumes point is at of current node or beginning of line.
 Returns (NODE . MODIFIED-NODE-TYPE) where MODIFIED-NODE-TYPE
 is used in `matlab-ts-mode--ei-spacing'"
   ;; Move point to first non-whitespace char
-  (let ((pt-eol (pos-eol)))
+  (let ((eol-pt (pos-eol)))
 
     (let ((node (treesit-node-at (point))))
 
@@ -344,7 +344,7 @@ is used in `matlab-ts-mode--ei-spacing'"
 
       ;; Move to next non-whitespace character to get next node
       (when (looking-at "[ \t]")
-        (when (not (re-search-forward "[^ \t]" pt-eol t))
+        (when (not (re-search-forward "[^ \t]" eol-pt t))
           (cl-return-from matlab-ts-mode--ei-move-to-and-get-node))
         (backward-char)
         (setq node (treesit-node-at (point))))
@@ -360,12 +360,12 @@ is used in `matlab-ts-mode--ei-spacing'"
 
       ;; Don't go past end-of-line point
       (when (or (equal "\n" (treesit-node-type node))
-                (> (treesit-node-start node) pt-eol)
+                (> (treesit-node-start node) eol-pt)
                 ;; When we get to EOL and in error context, node start will be 
on an earlier line
                 ;;           x = [
                 ;;  TAB>           1  ,   2  ;
                 (< (treesit-node-start node) (pos-bol)))
-        (goto-char pt-eol)
+        (goto-char eol-pt)
         (setq node nil))
 
       (when node
@@ -388,9 +388,10 @@ whitespace."
 
   ;; xxx this needs to use new-line-node-types ... how?
   (matlab-ts-mode--ei-fast-back-to-indentation)
-  (let (curr-line-node-types)
+  (let (curr-line-node-types
+        (eol-pt (pos-eol)))
     (cl-loop
-     while (< (point) (pos-eol))
+     while (< (point) eol-pt)
      do
      (let* ((pair (matlab-ts-mode--ei-move-to-and-get-node))
             (node (or (car pair)
@@ -400,13 +401,16 @@ whitespace."
              (matlab-ts-mode--ei-update-line-node-types curr-line-node-types
                                                         node node-type))
        (let ((node-end (treesit-node-end node)))
-         (if (< node-end (pos-eol))
+         (if (< node-end eol-pt)
              (goto-char node-end)
-           (goto-char (pos-eol))))))
+           (goto-char eol-pt)))))
 
     (when (not (string= curr-line-node-types orig-line-node-types))
       (error "Assert: line-node-types mismatch new: \"%s\" !EQ orig: \"%s\" at 
line %d in %s"
-             curr-line-node-types orig-line-node-types (line-number-at-pos 
(point)) (buffer-name)))))
+             curr-line-node-types
+             orig-line-node-types
+             (line-number-at-pos (point))
+             (buffer-name)))))
 
 (defun matlab-ts-mode--ei-concat-line (ei-line node extra-chars &optional 
n-spaces-to-append)
   "Return concat EI-LINE with NODE text.
@@ -415,7 +419,8 @@ EXTRA-CHARS are appended to EL-LINE.
 N-SPACES-TO-APPEND is the number of spaces to append between nodes."
 
   (let* ((node-end (treesit-node-end node))
-         (last-pt (if (< node-end (pos-eol)) node-end (pos-eol))))
+         (eol-pt (pos-eol))
+         (last-pt (if (< node-end eol-pt) node-end eol-pt)))
     (concat ei-line
             (buffer-substring (treesit-node-start node) last-pt)
             extra-chars
@@ -426,7 +431,7 @@ N-SPACES-TO-APPEND is the number of spaces to append 
between nodes."
                 ;;    end
                 ;; TopTester: electric_indent_xr_switch.m
                 (when (and (treesit-parent-until node (rx bos "ERROR" eos))
-                           (< last-pt (pos-eol)))
+                           (< last-pt eol-pt))
                   (save-excursion
                     (let ((inhibit-field-text-motion t)) (end-of-line))
                     (when (re-search-backward "[^ \t]" (pos-bol) t)
@@ -548,11 +553,11 @@ or nil."
            line-node-types
            next2-pair ;; used when we have: (NODE-RE (NEXT-NODE-RE 
NEXT2-NODE-RE) N-SPACES-BETWEEN)
            next2-n-spaces-between
-           (pt-eol (pos-eol)))
+           (eol-pt (pos-eol)))
 
       (cl-loop
-       while (and (< (point) pt-eol)
-                  (< (treesit-node-end node) pt-eol))
+       while (and (< (point) eol-pt)
+                  (< (treesit-node-end node) eol-pt))
        do
        (let* ((next-pair (progn
                            (goto-char (treesit-node-end node))
@@ -634,8 +639,8 @@ or nil."
                                                                            
node node-type)))
         (let ((extra-chars (matlab-ts-mode--ei-node-extra-chars
                             node
-                            (min (treesit-node-end node) pt-eol)
-                            pt-eol)))
+                            (min (treesit-node-end node) eol-pt)
+                            eol-pt)))
           (setq ei-line (matlab-ts-mode--ei-concat-line ei-line node 
extra-chars))))
 
       (list ei-line pt-offset line-node-types first-node))))

Reply via email to