summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2013-08-07 15:55:48 +0200
committerGravatar Tom Willemse2013-08-07 22:07:38 +0200
commit89d2b34ede2e9d3c5b8294950ac979af3591c816 (patch)
treee7989f2e2224d8b11714af6c7584ed4114fad2da
parente5122febe89668170639e9648233811fd8cef3b4 (diff)
downloaddesktop-registry-89d2b34ede2e9d3c5b8294950ac979af3591c816.tar.gz
desktop-registry-89d2b34ede2e9d3c5b8294950ac979af3591c816.zip
Enable use of current desktop as default
When asking the user for a desktop it is now easy to specify that the default should be the current desktop. - desktop-registry.el (desktop-registry-current-desktop): Add optional DEFAULT parameter which specifies the return value when `desktop-dirname' is `nil', instead of previously an empty string. (desktop-registry--completing-read): Add optional DEFAULT-CURRENT parameter which specifies that the current desktop should be the default when asking for a desktop. (desktop-registry-remove-desktop): (desktop-registry-rename-desktop): Use the current desktop as default when asking the user to select a desktop.
-rw-r--r--README.org2
-rw-r--r--desktop-registry.el19
2 files changed, 12 insertions, 9 deletions
diff --git a/README.org b/README.org
index 04b7a78..545cf7b 100644
--- a/README.org
+++ b/README.org
@@ -40,5 +40,5 @@ to fix that.
#+BEGIN_SRC emacs-lisp
(add-to-list 'org-capture-templates
'("t" "Task" entry nil
- "* TODO %? :%(desktop-registry-current-desktop):"))
+ "* TODO %? :%(desktop-registry-current-desktop \"\"):"))
#+END_SRC
diff --git a/desktop-registry.el b/desktop-registry.el
index a937b0d..978ef4e 100644
--- a/desktop-registry.el
+++ b/desktop-registry.el
@@ -49,16 +49,16 @@
(directory-file-name (expand-file-name dir)))
;;;###autoload
-(defun desktop-registry-current-desktop ()
+(defun desktop-registry-current-desktop (&optional default)
"Get the name of the currently loaded desktop.
-Returns an empty string when `desktop-dirname' is nil."
+Returns DEFAULT when `desktop-dirname' is nil."
(if desktop-dirname
(let ((canonical
(desktop-registry--canonicalize-dir desktop-dirname)))
(car (cl-find-if (lambda (d) (equal (cdr d) canonical))
desktop-registry-registry)))
- ""))
+ default))
;;;###autoload
(defun desktop-registry-add-directory (dir)
@@ -79,16 +79,19 @@ Returns an empty string when `desktop-dirname' is nil."
(error "No desktop loaded"))
(desktop-registry-add-directory desktop-dirname))
-(defun desktop-registry--completing-read (&optional prompt)
+(defun desktop-registry--completing-read (&optional prompt
+ default-current)
"Ask the user to pick a desktop directory."
- (let ((prompt (or prompt "Desktop: ")))
+ (let ((prompt (or prompt "Desktop: "))
+ (default (and default-current
+ (desktop-registry-current-desktop))))
(completing-read prompt desktop-registry-registry nil nil nil
- 'desktop-registry--history)))
+ 'desktop-registry--history default)))
;;;###autoload
(defun desktop-registry-remove-desktop (desktop)
"Remove DESKTOP from the desktop registry."
- (interactive (list (desktop-registry--completing-read "Remove: ")))
+ (interactive (list (desktop-registry--completing-read "Remove: " t)))
(let ((spec (assoc desktop desktop-registry-registry)))
(if spec
(customize-save-variable
@@ -99,7 +102,7 @@ Returns an empty string when `desktop-dirname' is nil."
;;;###autoload
(defun desktop-registry-rename-desktop (old new)
"Rename DESKTOP."
- (interactive (list (desktop-registry--completing-read "Rename: ")
+ (interactive (list (desktop-registry--completing-read "Rename: " t)
(read-string "to: ")))
(let ((spec (assoc old desktop-registry-registry)))
(if (not spec)