@@ -1411,6 +1411,8 @@ under point, prompts for a var."
1411
1411
(interactive " P" )
1412
1412
(cider-read-symbol-name " Symbol: " 'cider-doc-lookup query))
1413
1413
1414
+ (defconst cider-grimoire-url " http://grimoire.arrdem.com/" )
1415
+
1414
1416
(defun cider-grimoire-replace-special (name )
1415
1417
" Convert the dashes in NAME to a grimoire friendly format."
1416
1418
(->> name
@@ -1422,12 +1424,12 @@ under point, prompts for a var."
1422
1424
(defun cider-grimoire-url (name ns clojure-version )
1423
1425
" Generate a grimoire url from NAME, NS and CLOJURE-VERSION."
1424
1426
(let ((clojure-version (concat (substring clojure-version 0 4 ) " 0" ))
1425
- (base-url " http:// grimoire.arrdem.com/ " ))
1427
+ (base-url cider- grimoire-url ))
1426
1428
(if name
1427
1429
(concat base-url clojure-version " /" ns " /" (cider-grimoire-replace-special name) " /" )
1428
1430
(concat base-url clojure-version " /" ns " /" ))))
1429
1431
1430
- (defun cider-grimoire-lookup (symbol )
1432
+ (defun cider-grimoire-web- lookup (symbol )
1431
1433
" Look up the grimoire documentation for SYMBOL."
1432
1434
(-if-let (var-info (cider-var-info symbol))
1433
1435
(let ((name (cider-get-var-attr var-info " name" ))
@@ -1436,9 +1438,38 @@ under point, prompts for a var."
1436
1438
(browse-url (cider-grimoire-url name ns (cider--clojure-version))))
1437
1439
(message " Symbol %s not resolved " symbol)))
1438
1440
1439
- (defun cider-grimoire (query )
1441
+ (defun cider-grimoire-web (query )
1440
1442
" Open the grimoire documentation for QUERY in the default web browser."
1441
1443
(interactive " P" )
1444
+ (cider-read-symbol-name " Symbol: " 'cider-grimoire-web-lookup query))
1445
+
1446
+ (defun cider-grimoire-lookup (symbol )
1447
+ " Look up the grimoire documentation for SYMBOL."
1448
+ (-if-let (var-info (cider-var-info symbol))
1449
+ (let ((name (cider-get-var-attr var-info " name" ))
1450
+ (ns (cider-get-var-attr var-info " ns" ))
1451
+ (url-request-method " GET" )
1452
+ (url-request-extra-headers `((" Content-Type" . " text/plain" ))))
1453
+ ; ; TODO: add a whitelist of supported namespaces
1454
+ (url-retrieve (cider-grimoire-url name ns (cider--clojure-version))
1455
+ (lambda (status )
1456
+ (goto-char (point-min ))
1457
+ (re-search-forward " ^$" )
1458
+ (delete-region (point-min ) (point ))
1459
+ (delete-blank-lines )
1460
+ (text-mode )
1461
+ (cider-popup-buffer-mode +1 )
1462
+ (read-only-mode +1 )
1463
+ (pop-to-buffer (current-buffer ))
1464
+ (goto-char (point-min ))
1465
+ (when (get-buffer " *cider grimoire*" )
1466
+ (kill-buffer " *cider grimoire*" ))
1467
+ (rename-buffer " *cider grimoire*" ))))
1468
+ (message " Symbol %s not resolved " symbol)))
1469
+
1470
+ (defun cider-grimoire (query )
1471
+ " Open the grimoire documentation for QUERY in a popup buffer."
1472
+ (interactive " P" )
1442
1473
(cider-read-symbol-name " Symbol: " 'cider-grimoire-lookup query))
1443
1474
1444
1475
(defun cider-apropos-doc (button )
0 commit comments