From bab92365cd3ddbb6c19103c9160621f8e0965e02 Mon Sep 17 00:00:00 2001 From: tastytea Date: Sun, 8 Mar 2020 12:02:52 +0100 Subject: [PATCH] Refactor register-quicknav--jump-to-register. Shorten validity-check and index correction, update/add comments. --- README.md | 2 +- register-quicknav.el | 21 +++++++++------------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 8a5d672..a402223 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # register-quicknav - Quickly jump to next/previous register *Author:* tastytea
-*Version:* 0.3.0
+*Version:* 0.3.1
*URL:* [https://schlomp.space/tastytea/register-quicknav](https://schlomp.space/tastytea/register-quicknav)
This package is built on top of `register.el` and allows you to quickly jump diff --git a/register-quicknav.el b/register-quicknav.el index c8f15aa..ca4901a 100644 --- a/register-quicknav.el +++ b/register-quicknav.el @@ -3,7 +3,7 @@ ;; Copyright (C) 2020 tastytea ;; Author: tastytea -;; Version: 0.3.0 +;; Version: 0.3.1 ;; Package-Requires: ((emacs "24.3")) ;; Keywords: convenience ;; URL: https://schlomp.space/tastytea/register-quicknav @@ -155,30 +155,27 @@ Works on markers and file-queries." (if next (cl-incf index) (cl-decf index))) - ;; Try to find the position register closest to point. (dolist (register register-list) (when (register-quicknav--is-current-buffer? register) (let ((register-pos (register-quicknav--position register))) (if next - (when (and (not stop-searching) (> register-pos (point))) + (when (and (not stop-searching) + (> register-pos (point))) (setq index (cl-position register register-list) stop-searching t)) (when (< register-pos (point)) (setq index (cl-position register register-list))))))) - - ;; Check if index is valid, correct it if not, jump to register with index. (if index - (progn - (when (or (> index (- (length register-list) 1)) (< index 0)) - (setq index nil)) - (if next - (when (or (eq index nil) (eq index (length register-list))) - (setq index 0)) - (when (eq index nil) + (progn ; If index is invalid, set it to first or last register. + (when (or (>= index (length register-list)) + (< index 0)) + (if next + (setq index 0) (setq index (- (length register-list) 1)))) (register-to-point (car (nth index register-list))) (register-quicknav--last-register (nth index register-list))) + ;; No suitable register found, jump to first or last register. (register-to-point (car (car register-list))) (register-quicknav--last-register (car register-list)))))