Skip to content

Commit 7783ad9

Browse files
committed
Add a command to view official Clojure guides
1 parent 61414aa commit 7783ad9

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
### New features.
66

77
* New interactive command `clojure-mode-report-bug`.
8+
* New interactive command `clojure-view-guide`.
89

910
## 5.5.2 (2016-08-03)
1011

clojure-mode.el

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,8 @@ Out-of-the box clojure-mode understands lein, boot and gradle."
248248
["Unwind once" clojure-unwind]
249249
["Fully unwind a threading macro" clojure-unwind-all])
250250
"--"
251+
["View a Clojure guide" clojure-view-guide]
252+
"--"
251253
["Report a clojure-mode bug" clojure-mode-report-bug]
252254
["Clojure-mode version" clojure-mode-display-version]))
253255
map)
@@ -290,6 +292,28 @@ CIDER provides a more complex version which does classpath analysis.")
290292
(interactive)
291293
(browse-url clojure-mode-report-bug-url))
292294

295+
(defconst clojure-guides-base-url "https://clojure.org/guides/"
296+
"The base URL for official Clojure guides.")
297+
298+
(defconst clojure-guides '(("Getting Started" . "getting_started")
299+
("FAQ" . "faq")
300+
("spec" . "spec")
301+
("Destructuring" . "destructuring")
302+
("Threading Macros" . "threading_macros")
303+
("Comparators" . "comparators")
304+
("Reader Conditionals" . "reader_conditionals"))
305+
"A list of all official Clojure guides.")
306+
307+
(defun clojure-view-guide ()
308+
"Open a Clojure guide in your default browser.
309+
310+
The command will prompt you to select one of the available guides."
311+
(interactive)
312+
(let ((guide (completing-read "Select a guide: " (mapcar #'car clojure-guides))))
313+
(when guide
314+
(let ((guide-url (concat clojure-guides-base-url (cdr (assoc guide clojure-guides)))))
315+
(browse-url guide-url)))))
316+
293317
(defun clojure-space-for-delimiter-p (endp delim)
294318
"Prevent paredit from inserting useless spaces.
295319
See `paredit-space-for-delimiter-predicates' for the meaning of

0 commit comments

Comments
 (0)