@@ -2549,6 +2549,108 @@ before DELIM-OPEN."
2549
2549
map)
2550
2550
" Keymap for `clojure-ts-mode' refactoring commands." )
2551
2551
2552
+ ; ;; Bug reporting
2553
+ (defconst clojure-ts-mode-report-bug-url " https://github.com/clojure-emacs/clojure-ts-mode/issues/new"
2554
+ " The URL to report a `clojure-ts-mode' issue." )
2555
+
2556
+ (defun clojure-ts-mode-report-bug ()
2557
+ " Report a bug in your default browser."
2558
+ (interactive )
2559
+ (browse-url clojure-ts-mode-report-bug-url))
2560
+
2561
+ ; ; Clojure guides
2562
+ (defconst clojure-ts-guides-base-url " https://clojure.org/guides/"
2563
+ " The base URL for official Clojure guides." )
2564
+
2565
+ (defconst clojure-ts-guides '((" Getting Started" . " getting_started" )
2566
+ (" Install Clojure" . " install_clojure" )
2567
+ (" Editors" . " editors" )
2568
+ (" Structural Editing" . " structural_editing" )
2569
+ (" REPL Programming" . " repl/introduction" )
2570
+ (" Learn Clojure" . " learn/clojure" )
2571
+ (" FAQ" . " faq" )
2572
+ (" spec" . " spec" )
2573
+ (" Reading Clojure Characters" . " weird_characters" )
2574
+ (" Destructuring" . " destructuring" )
2575
+ (" Threading Macros" . " threading_macros" )
2576
+ (" Equality" . " equality" )
2577
+ (" Comparators" . " comparators" )
2578
+ (" Reader Conditionals" . " reader_conditionals" )
2579
+ (" Higher Order Functions" . " higher_order_functions" )
2580
+ (" Dev Startup Time" . " dev_startup_time" )
2581
+ (" Deps and CLI" . " deps_and_cli" )
2582
+ (" tools.build" . " tools_build" )
2583
+ (" core.async Walkthrough" . " async_walkthrough" )
2584
+ (" Go Block Best Practices" . " core_async_go" )
2585
+ (" test.check" . " test_check_beginner" ))
2586
+ " A list of all official Clojure guides." )
2587
+
2588
+ (defun clojure-ts-view-guide ()
2589
+ " Open a Clojure guide in your default browser.
2590
+
2591
+ The command will prompt you to select one of the available guides."
2592
+ (interactive )
2593
+ (let ((guide (completing-read " Select a guide: " (mapcar #'car clojure-ts-guides))))
2594
+ (when guide
2595
+ (let ((guide-url (concat clojure-ts-guides-base-url (cdr (assoc guide clojure-ts-guides)))))
2596
+ (browse-url guide-url)))))
2597
+
2598
+ (defconst clojure-ts-reference-base-url " https://clojure.org/reference/"
2599
+ " The base URL for the official Clojure reference." )
2600
+
2601
+ (defconst clojure-ts-reference-sections '((" The Reader" . " reader" )
2602
+ (" The REPL and main" . " repl_and_main" )
2603
+ (" Evaluation" . " evaluation" )
2604
+ (" Special Forms" . " special_forms" )
2605
+ (" Macros" . " macros" )
2606
+ (" Other Functions" . " other_functions" )
2607
+ (" Data Structures" . " data_structures" )
2608
+ (" Datatypes" . " datatypes" )
2609
+ (" Sequences" . " sequences" )
2610
+ (" Transients" . " transients" )
2611
+ (" Transducers" . " transducers" )
2612
+ (" Multimethods and Hierarchies" . " multimethods" )
2613
+ (" Protocols" . " protocols" )
2614
+ (" Metadata" . " metadata" )
2615
+ (" Namespaces" . " namespaces" )
2616
+ (" Libs" . " libs" )
2617
+ (" Vars and Environments" . " vars" )
2618
+ (" Refs and Transactions" . " refs" )
2619
+ (" Agents" . " agents" )
2620
+ (" Atoms" . " atoms" )
2621
+ (" Reducers" . " reducers" )
2622
+ (" Java Interop" . " java_interop" )
2623
+ (" Compilation and Class Generation" . " compilation" )
2624
+ (" Other Libraries" . " other_libraries" )
2625
+ (" Differences with Lisps" . " lisps" )
2626
+ (" Deps and CLI" . " deps_and_cli" )))
2627
+
2628
+ (defun clojure-ts-view-reference-section ()
2629
+ " Open a Clojure reference section in your default browser.
2630
+
2631
+ The command will prompt you to select one of the available sections."
2632
+ (interactive )
2633
+ (let ((section (completing-read " Select a reference section: " (mapcar #'car clojure-ts-reference-sections))))
2634
+ (when section
2635
+ (let ((section-url (concat clojure-ts-reference-base-url (cdr (assoc section clojure-ts-reference-sections)))))
2636
+ (browse-url section-url)))))
2637
+
2638
+ (defconst clojure-ts-cheatsheet-url " https://clojure.org/api/cheatsheet"
2639
+ " The URL of the official Clojure cheatsheet." )
2640
+
2641
+ (defun clojure-ts-view-cheatsheet ()
2642
+ " Open the Clojure cheatsheet in your default browser."
2643
+ (interactive )
2644
+ (browse-url clojure-ts-cheatsheet-url))
2645
+
2646
+ (defconst clojure-ts-style-guide-url " https://guide.clojure.style"
2647
+ " The URL of the Clojure style guide." )
2648
+
2649
+ (defun clojure-ts-view-style-guide ()
2650
+ " Open the Clojure style guide in your default browser."
2651
+ (interactive )
2652
+ (browse-url clojure-ts-style-guide-url))
2653
+
2552
2654
(defvar clojure-ts-mode-map
2553
2655
(let ((map (make-sparse-keymap )))
2554
2656
; ;(set-keymap-parent map clojure-mode-map)
@@ -2576,7 +2678,14 @@ before DELIM-OPEN."
2576
2678
" --"
2577
2679
[" Unwind once" clojure-ts-unwind]
2578
2680
[" Fully unwind a threading macro" clojure-ts-unwind-all])
2579
- [" Version" clojure-mode-display-version]))
2681
+ (" Documentation"
2682
+ [" View a Clojure guide" clojure-ts-view-guide]
2683
+ [" View a Clojure reference section" clojure-ts-view-reference-section]
2684
+ [" View the Clojure cheatsheet" clojure-ts-view-cheatsheet]
2685
+ [" View the Clojure style guide" clojure-ts-view-style-guide])
2686
+ " --"
2687
+ [" Report a clojure-mode bug" clojure-ts-mode-report-bug]
2688
+ [" Version" clojure-ts-mode-display-version]))
2580
2689
map)
2581
2690
" Keymap for `clojure-ts-mode' ." )
2582
2691
0 commit comments