Better positioning after indentation.

This commit is contained in:
Tommy Olofsson
2015-07-08 23:17:15 +02:00
parent 43273c8fad
commit 75da27eeda

View File

@@ -270,9 +270,19 @@
)) ))
ind))) ind)))
(defun indent-and-position (col)
(progn
(save-excursion
(indent-line-to col))
(when (< (current-column) col)
(move-to-column col))))
(defun krl-indent-line () (defun krl-indent-line ()
"Indent current line as KRL." "Indent current line as KRL."
(interactive) (interactive)
(let ((ind nil))
(save-excursion (save-excursion
(progn (progn
(beginning-of-line) (beginning-of-line)
@@ -283,25 +293,25 @@
(cond ((looking-at krl-indent-regex-toplevel-block-open) (cond ((looking-at krl-indent-regex-toplevel-block-open)
(progn (progn
;(message "toplevel open") ;(message "toplevel open")
(indent-line-to 0))) (setq ind 0)))
((looking-at krl-indent-regex-toplevel-block-close) ((looking-at krl-indent-regex-toplevel-block-close)
(progn (progn
;(message "toplevel close") ;(message "toplevel close")
(indent-line-to 0))) (setq ind 0)))
((looking-at "^ *&") ((looking-at "^ *&")
(progn (progn
;(message "&") ;(message "&")
;; HMI editor crud. ;; HMI editor crud.
(indent-line-to 0))) (setq ind 0)))
((looking-at krl-indent-regex-nested-block-close) ((looking-at krl-indent-regex-nested-block-close)
(progn (progn
;(message "nested close") ;(message "nested close")
(indent-line-to (krl-indent-of-matching)))) (setq ind (krl-indent-of-matching))))
((looking-at krl-indent-regex-nested-block-middle) ((looking-at krl-indent-regex-nested-block-middle)
(progn (progn
;(message "annoying stuff") ;(message "annoying stuff")
;; (indent-line-to (krl-indent-of-block-opener)))) ;; (indent-line-to (krl-indent-of-block-opener))))
(indent-line-to (krl-indent-of-matching)))) (setq ind (krl-indent-of-matching))))
(t (t
(progn (progn
;(message "other") ;(message "other")
@@ -310,8 +320,9 @@
(let ((hinted-indent (krl-find-hinted-indent))) (let ((hinted-indent (krl-find-hinted-indent)))
(when (not hinted-indent) (when (not hinted-indent)
(setq hinted-indent 0)) (setq hinted-indent 0))
(indent-line-to hinted-indent)))) (setq ind hinted-indent))))
))))))) ))))))
(indent-and-position ind)))
(defun krl-mode () (defun krl-mode ()