summaryrefslogtreecommitdiffstats
path: root/emacs/.emacs.d/site-lisp/oni-editing.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.emacs.d/site-lisp/oni-editing.el')
-rw-r--r--emacs/.emacs.d/site-lisp/oni-editing.el28
1 files changed, 28 insertions, 0 deletions
diff --git a/emacs/.emacs.d/site-lisp/oni-editing.el b/emacs/.emacs.d/site-lisp/oni-editing.el
index 315750d..8e19562 100644
--- a/emacs/.emacs.d/site-lisp/oni-editing.el
+++ b/emacs/.emacs.d/site-lisp/oni-editing.el
@@ -24,6 +24,15 @@
;;; Code:
+;;;###autoload
+(defun oni:move-beginning-of-dwim ()
+ "Move to beginning of line either after indentation or before."
+ (interactive)
+ (let ((start (point)))
+ (back-to-indentation)
+ (if (= start (point))
+ (move-beginning-of-line 1))))
+
(defun oni:change-number-at-point (change-func)
"Use CHANGE-FUNC to change the number at `point'."
(let ((num (number-to-string (funcall change-func (number-at-point))))
@@ -52,6 +61,25 @@
(oni:change-prev-case num 'down))
;;;###autoload
+(defun oni:move-end-of-dwim ()
+ "Move to end of line, either before any comments or after."
+ (interactive)
+ (let ((start (point))
+ (eolpos (line-end-position)))
+ (beginning-of-line)
+ (if (and comment-start
+ (not (looking-at (regexp-quote comment-start)))
+ (comment-search-forward eolpos t))
+ (progn
+ (search-backward-regexp (concat "[^ \t" comment-start "]"))
+ (forward-char)
+
+ (when (or (bolp)
+ (= start (point)))
+ (end-of-line)))
+ (end-of-line))))
+
+;;;###autoload
(defun oni:increase-number-at-point ()
"Take the number at `point' and replace it with it increased by 1."
(interactive)