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

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

[elpa] externals/phps-mode e1b7160 053/405: (newline-and-indent) now wor


From: Stefan Monnier
Subject: [elpa] externals/phps-mode e1b7160 053/405: (newline-and-indent) now working
Date: Sat, 13 Jul 2019 09:59:41 -0400 (EDT)

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

    (newline-and-indent) now working
---
 phps-functions.el | 97 +++++++++++++++++++++++++++----------------------------
 1 file changed, 48 insertions(+), 49 deletions(-)

diff --git a/phps-functions.el b/phps-functions.el
index 0990be5..85efa86 100644
--- a/phps-functions.el
+++ b/phps-functions.el
@@ -41,58 +41,57 @@
 
 (autoload 'phps-mode/lexer-get-point-data "phps-lexer")
 
-;; TODO Should also format white-space inside the line, i.e. after function 
declarations
+;; TODO Should also format white-space inside the line, i.e. after function 
declarations?
+;; TODO Should indent doc blocks with 1 space
 (defun phps-mode/indent-line ()
   "Indent line."
   (let ((data (phps-mode/lexer-get-point-data)))
-    (save-excursion
-      (beginning-of-line)
-      (let* ((start (nth 0 data))
-             (end (nth 1 data))
-             (in-scripting (nth 0 start)))
-
-        ;; Are we in scripting?
-        (when in-scripting
-          (let ((start-bracket-level (nth 1 start))
-                (start-parenthesis-level (nth 2 start))
-                (start-token-number (nth 4 start))
-                (end-bracket-level (nth 1 end))
-                (end-parenthesis-level (nth 2 end))
-                (end-token-number (nth 4 end)))
-            (let* ((indent-start (+ start-bracket-level 
start-parenthesis-level))
-                   (indent-end (+ end-bracket-level end-parenthesis-level))
-                   (indent-level indent-start))
-              ;; (message "indent-start %s, indent-end %s" indent-start 
indent-end)
-              (when (and
-                     (boundp 'phps-mode/lexer-tokens)
-                     (> indent-start indent-end))
-                (let ((token-number start-token-number)
-                      (valid-tokens t))
-                  ;; (message "token start %s, token end %s" 
start-token-number end-token-number)
-                  (while (and valid-tokens
-                              (<= token-number end-token-number))
-                    (let ((token (car (nth token-number 
phps-mode/lexer-tokens)))
-                          (token-start (car (cdr (nth token-number 
phps-mode/lexer-tokens)))))
-                      (when (and valid-tokens
-                                 (>= token-start (point))
-                                 (not (or
-                                       (string= token "{")
-                                       (string= token "}")
-                                       (string= token "(")
-                                       (string= token ")")
-                                       (string= token "[")
-                                       (string= token "]")
-                                       (string= token ";")
-                                       (eq token 'T_CLOSE_TAG))))
-                        ;; (message "Token %s - %s in %s was invalid" token 
token-number phps-mode/lexer-tokens)
-                        (setq valid-tokens nil)))
-                    (setq token-number (+ token-number 1)))
-                  (when valid-tokens
-                    ;; (message "Tokens was valid, decreasing indent %s - %s" 
(line-beginning-position) (line-end-position))
-                    (setq indent-level (- indent-level (- indent-start 
indent-end))))))
-              ;; (message "inside scripting, start: %s, end: %s, indenting to 
column %s " start end indent-level)
-              (indent-line-to (* indent-level tab-width))
-              (phps-mode/run-incremental-lex))))))))
+    (let* ((start (nth 0 data))
+           (end (nth 1 data))
+           (in-scripting (nth 0 start)))
+
+      ;; Are we in scripting?
+      (when in-scripting
+        (let ((start-bracket-level (nth 1 start))
+              (start-parenthesis-level (nth 2 start))
+              (start-token-number (nth 4 start))
+              (end-bracket-level (nth 1 end))
+              (end-parenthesis-level (nth 2 end))
+              (end-token-number (nth 4 end)))
+          (let* ((indent-start (+ start-bracket-level start-parenthesis-level))
+                 (indent-end (+ end-bracket-level end-parenthesis-level))
+                 (indent-level indent-start))
+            ;; (message "indent-start %s, indent-end %s" indent-start 
indent-end)
+            (when (and
+                   (boundp 'phps-mode/lexer-tokens)
+                   (> indent-start indent-end))
+              (let ((token-number start-token-number)
+                    (valid-tokens t))
+                ;; (message "token start %s, token end %s" start-token-number 
end-token-number)
+                (while (and valid-tokens
+                            (<= token-number end-token-number))
+                  (let ((token (car (nth token-number phps-mode/lexer-tokens)))
+                        (token-start (car (cdr (nth token-number 
phps-mode/lexer-tokens)))))
+                    (when (and valid-tokens
+                               (>= token-start (point))
+                               (not (or
+                                     (string= token "{")
+                                     (string= token "}")
+                                     (string= token "(")
+                                     (string= token ")")
+                                     (string= token "[")
+                                     (string= token "]")
+                                     (string= token ";")
+                                     (eq token 'T_CLOSE_TAG))))
+                      ;; (message "Token %s - %s in %s was invalid" token 
token-number phps-mode/lexer-tokens)
+                      (setq valid-tokens nil)))
+                  (setq token-number (+ token-number 1)))
+                (when valid-tokens
+                  ;; (message "Tokens was valid, decreasing indent %s - %s" 
(line-beginning-position) (line-end-position))
+                  (setq indent-level (- indent-level (- indent-start 
indent-end))))))
+            ;; (message "inside scripting, start: %s, end: %s, indenting to 
column %s " start end indent-level)
+            (indent-line-to (* indent-level tab-width))
+            (phps-mode/run-incremental-lex)))))))
 
 ;; TODO Implement this
 (defun phps-mode/indent-region ()



reply via email to

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