branch: elpa/kotlin-mode commit 99499e1500034b5fd5fdce9bfef367d90c61b5ce Merge: d92c3b7734 487e46f110 Author: Gregg Hernandez <greggory...@gmail.com> Commit: GitHub <nore...@github.com>
Merge pull request #70 from lem102/indentation-quick-fix quick fix for indentation --- kotlin-mode.el | 58 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/kotlin-mode.el b/kotlin-mode.el index df5b3a31f4..f494a26c27 100644 --- a/kotlin-mode.el +++ b/kotlin-mode.el @@ -577,36 +577,40 @@ fun foo() { (defun kotlin-mode--indent-line () "Indent current line as kotlin code." (interactive) - (beginning-of-line) - (if (bobp) - (kotlin-mode--beginning-of-buffer-indent) - (let* ((bracket-counter (make-instance 'kotlin-mode--bracket-counter)) - ;; Find bracket-based indentation first - (cur-indent - (progn - (kotlin-mode--count-leading-close-brackets bracket-counter) - (save-excursion - (kotlin-mode--prev-line) - (end-of-line) - (kotlin-mode--count-trailing-open-brackets bracket-counter) - (kotlin-mode--count-to-line-start bracket-counter) - (while (and (not (kotlin-mode--finished bracket-counter)) - (not (bobp))) + (save-excursion + (beginning-of-line) + (if (bobp) + (kotlin-mode--beginning-of-buffer-indent) + (let* ((bracket-counter (make-instance 'kotlin-mode--bracket-counter)) + ;; Find bracket-based indentation first + (cur-indent + (progn + (kotlin-mode--count-leading-close-brackets bracket-counter) + (save-excursion (kotlin-mode--prev-line) (end-of-line) - (kotlin-mode--count-to-line-start bracket-counter)) - (oref bracket-counter indent))))) - - (cond - ((kotlin-mode--line-continuation) - ;; Add extra indentation if the line continues the previous one - (cl-incf cur-indent kotlin-tab-width)) + (kotlin-mode--count-trailing-open-brackets bracket-counter) + (kotlin-mode--count-to-line-start bracket-counter) + (while (and (not (kotlin-mode--finished bracket-counter)) + (not (bobp))) + (kotlin-mode--prev-line) + (end-of-line) + (kotlin-mode--count-to-line-start bracket-counter)) + (oref bracket-counter indent))))) - ((kotlin-mode--in-comment-block) - ;; Add one space of extra indentation if inside a comment block - (cl-incf cur-indent))) - - (indent-line-to cur-indent)))) + (cond + ((kotlin-mode--line-continuation) + ;; Add extra indentation if the line continues the previous one + (cl-incf cur-indent kotlin-tab-width)) + + ((kotlin-mode--in-comment-block) + ;; Add one space of extra indentation if inside a comment block + (cl-incf cur-indent))) + + (indent-line-to cur-indent)))) + ;; bol < point < indentation-start + (when (<= (point-at-bol) (point) (save-excursion (back-to-indentation) (point))) + (back-to-indentation))) (defun kotlin-mode--beginning-of-buffer-indent () (indent-line-to 0))