branch: externals/osm
commit 151c3f01769fe989314c5b6b2a44b94f1c521ae3
Author: Daniel Mendler <[email protected]>
Commit: Daniel Mendler <[email protected]>
osm-delete: Support hiding files
---
osm.el | 42 +++++++++++++++++++++++++-----------------
1 file changed, 25 insertions(+), 17 deletions(-)
diff --git a/osm.el b/osm.el
index c52e84c746..5be817bdd1 100644
--- a/osm.el
+++ b/osm.el
@@ -180,8 +180,7 @@ the domain name and the :user to the string \"apikey\"."
(osm-bookmark . "#f80")
(osm-home . "#80f")
(osm-track . "#00e")
- (osm-file-poi . "#88f")
- (osm-file-track . "#88f"))
+ (osm-file . "#88f"))
"Colors of pins."
:type '(alist :key-type symbol :value-type string))
@@ -897,7 +896,7 @@ Local per buffer since the overlays depend on the zoom
level.")
(unless (json-available-p)
(push "libjansson" req))
(when req
- (warn "Osm: Please compile Emacs with the required libraries, %s needed
to proceed"
+ (warn "osm: Please compile Emacs with the required libraries, %s needed
to proceed"
(string-join req ", ")))))
(define-derived-mode osm-mode special-mode "Osm"
@@ -977,9 +976,12 @@ Local per buffer since the overlays depend on the zoom
level.")
(funcall fun 'osm-bookmark lat lon zoom (car bm))))
(dolist (file osm--files)
(when-let ((start (caaadr file)))
- (funcall fun 'osm-file-track (car start) (cdr start) 10 (car file)))
+ (funcall fun 'osm-file (car start) (cdr start) 10
+ (propertize (car file) 'osm-file (car file))))
(cl-loop for (lat lon name) in (cddr file) do
- (funcall fun 'osm-file-poi lat lon 15 name)))
+ (funcall fun 'osm-file lat lon 15
+ (propertize (format "%s [%s]" name (car file))
+ 'osm-file (car file)))))
(cl-loop for (lat lon name) in osm--track do
(funcall fun 'osm-track lat lon 15 name)))
@@ -1627,19 +1629,23 @@ When called interactively, call the function
`osm-home'."
"Delete selected pin (bookmark or way point)."
(interactive nil osm-mode)
(osm--barf-unless-osm)
- (pcase (caddr osm--pin)
- ('nil nil)
- ('osm-bookmark (osm-bookmark-delete (cadddr osm--pin)))
- ('osm-track (osm--track-delete))
- (_ (setq osm--pin nil) (osm--update))))
+ (pcase-let ((`(,_lat ,_lon ,id ,name) osm--pin))
+ (pcase id
+ ('nil nil)
+ ('osm-bookmark (osm-bookmark-delete name))
+ ('osm-track (osm--track-delete))
+ ('osm-file (setq osm--pin nil)
+ (osm-hide (get-text-property 0 'osm-file name)))
+ (_ (setq osm--pin nil) (osm--update)))))
(defun osm-rename ()
"Rename selected pin (bookmark or way point)."
(interactive nil osm-mode)
(osm--barf-unless-osm)
- (pcase (caddr osm--pin)
- ('osm-bookmark (osm-bookmark-rename (cadddr osm--pin)))
- ('osm-track (osm--track-rename))))
+ (pcase-let ((`(,_lat ,_lon ,id ,name) osm--pin))
+ (pcase id
+ ('osm-bookmark (osm-bookmark-rename name))
+ ('osm-track (osm--track-rename)))))
;;;###autoload
(defun osm-jump ()
@@ -1772,9 +1778,11 @@ See `osm-search-server' and `osm-search-language' for
customization."
(defun osm-route ()
"Fetch a route between two locations."
(interactive)
- (let* ((from (osm--search-select (osm--search-read "Route from: ") nil))
- (to (osm--search-select (osm--search-read "Route to: ") nil))
- (by (completing-read "By: " '("car" "bike" "foot") nil t nil t))
+ (let* ((from-name (osm--search-read "Route from: "))
+ (from (osm--search-select from-name nil))
+ (to-name (osm--search-read "Route to: "))
+ (to (osm--search-select to-name nil))
+ (by (completing-read "Go by: " '("car" "bike" "foot") nil t nil t))
(data
(progn
;; TODO make this configurable, use `format-spec' for url params
@@ -1787,7 +1795,7 @@ See `osm-search-server' and `osm-search-language' for
customization."
(error "No route available")))
(waypoints (alist-get 'waypoints data)))
(osm--add-file
- (format "By %s: %s ⟶ %s" by (car from) (car to))
+ (format "%s ⟶ %s (%s)" from-name to-name by)
(list (mapcar (lambda (x) (cons (cadr x) (car x))) coords))
(mapcar (lambda (x)
(let ((l (alist-get 'location x)))