[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/osm 81cfa86e99: Support address search links
From: |
ELPA Syncer |
Subject: |
[elpa] externals/osm 81cfa86e99: Support address search links |
Date: |
Sun, 20 Mar 2022 16:57:50 -0400 (EDT) |
branch: externals/osm
commit 81cfa86e99d1945b2a35a01231e8c0076a73cfa6
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Support address search links
---
README.org | 2 ++
osm-ol.el | 23 ++++++++++++-----------
osm.el | 22 ++++++++++++++--------
3 files changed, 28 insertions(+), 19 deletions(-)
diff --git a/README.org b/README.org
index 700b0a9234..a07ce3f5c6 100644
--- a/README.org
+++ b/README.org
@@ -76,6 +76,7 @@ buffers in Emacs. Furthermore you can open Org links in
arbitary buffers with
- [[osm:cyclosm:55.686875255964424,12.569732666015625,12][København, Danmark,
55.69° 12.57° CyclOSM]]
- [[osm:stamen-watercolor:40.72956780913898,-73.97918701171875,12][New York,
United States, 40.73° -73.98° Stamen Watercolor]]
- [[osm:opentopomap:27.961656050984658,86.89224243164062,13][Mount Everest,
27.96° 86.89° OpenTopoMap]]
+- Address link: <osm:Tour Eiffel, Av. Gustave Eiffel, Paris>
**** Elisp link examples
@@ -89,6 +90,7 @@ Elisp s-expressions they can be easily manipulated
programatically.
(osm 55.686875 12.569733 12 cyclosm "København, Københavns Kommune, Region
Hovedstaden, 1357, Danmark")
(osm 40.729568 -73.979187 12 stamen-watercolor "New York County, New York,
United States")
(osm 27.961656 86.892242 13 opentopomap "Khumjung, Khumbupasanglahmu,
सोलुखुम्बु, Province #1, Nepal")
+ (osm "Tour Eiffel, Av. Gustave Eiffel, Paris") ;; Address link
#+end_src
* Commands and Key Bindings
diff --git a/osm-ol.el b/osm-ol.el
index 6309a25027..3b406ad592 100644
--- a/osm-ol.el
+++ b/osm-ol.el
@@ -27,6 +27,7 @@
;; Only load osm on demand
(autoload 'osm--goto "osm")
+(autoload 'osm-search "osm")
(declare-function osm--org-link-data "osm")
(org-link-set-parameters
@@ -37,17 +38,17 @@
(defun osm-ol-open (link _)
"Open osm LINK."
(save-match-data
- (unless (string-match
- "\\`\\(?:\\([^:]+\\):\\)?\\([^,]+\\),\\([^,]+\\),\\([^,]+\\)\\'"
- link)
- (error "Invalid osm link"))
- (osm--goto
- (string-to-number (match-string 2 link))
- (string-to-number (match-string 3 link))
- (string-to-number (match-string 4 link))
- (and (match-end 1) (intern (match-string 1 link)))
- 'osm-link
- "Org Link")))
+ (cond
+ ((string-match
+ "\\`\\(?:\\([^:]+\\):\\)?\\([0-9.-]+\\),\\([0-9.-]+\\),\\([0-9]+\\)\\'"
link)
+ (osm--goto
+ (string-to-number (match-string 2 link))
+ (string-to-number (match-string 3 link))
+ (string-to-number (match-string 4 link))
+ (and (match-end 1) (intern (match-string 1 link)))
+ 'osm-link
+ "Org Link"))
+ (t (osm-search link)))))
(defun osm-ol-store ()
"Store osm link."
diff --git a/osm.el b/osm.el
index 9192a43bb6..98aa259b52 100644
--- a/osm.el
+++ b/osm.el
@@ -1217,14 +1217,20 @@ Optionally place transient pin with ID and HELP."
nil)
;;;###autoload
-(defmacro osm (lat lon zoom &optional server comment)
- "Go to LAT/LON/ZOOM.
-Optionally specify a SERVER and a COMMENT."
- (ignore comment)
- (when (stringp server) (setq server nil)) ;; Ignore comment
- `(progn
- (osm--goto ,lat ,lon ,zoom ,(and server (symbolp server) `',server)
'osm-link "Elisp Link")
- '(osm ,lat ,lon ,zoom ,@(and server (symbolp server) (list server)))))
+(defmacro osm (&rest link)
+ "Go to LINK."
+ (pcase link
+ (`(,lat ,lon ,zoom . ,server)
+ (setq server (car server))
+ (unless (and server (symbolp server)) (setq server nil)) ;; Ignore comment
+ `(progn
+ (osm--goto ,lat ,lon ,zoom ',server 'osm-link "Elisp Link")
+ '(osm ,lat ,lon ,zoom ,@(and server (list server)))))
+ ((and `(,search) (guard (stringp search)))
+ `(progn
+ (osm-search ,search)
+ '(osm ,search)))
+ (_ (error "Invalid osm link"))))
;;;###autoload
(defun osm-bookmark-jump (bm)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/osm 81cfa86e99: Support address search links,
ELPA Syncer <=