diff --git a/modules/tools/lookup/README.org b/modules/tools/lookup/README.org index 5c51aeb78..b4ecf508e 100644 --- a/modules/tools/lookup/README.org +++ b/modules/tools/lookup/README.org @@ -40,6 +40,7 @@ or synonyms. + ~+dictionary~ Enable word definition and thesaurus lookup functionality. + ~+offline~ Install and prefer offline dictionary/thesaurus. + ~+docsets~ Enable integration with Dash.app docsets. + + ~+xwidget~ Enable integration with [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Embedded-WebKit-Widgets.html][Embedded Webkit Widgets]]. ** Plugins + [[https://github.com/jacktasia/dumb-jump][dumb-jump]] diff --git a/modules/tools/lookup/config.el b/modules/tools/lookup/config.el index 6381956a2..25f310e3b 100644 --- a/modules/tools/lookup/config.el +++ b/modules/tools/lookup/config.el @@ -178,6 +178,26 @@ See https://github.com/magit/ghub/issues/81" (let ((gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")) (funcall orig-fn url))) + ;; Dash docset + Xwidget integration + (when (and (featurep! :tools lookup +xwidget) (display-graphic-p)) + (setq dash-docs-browser-func #'xwidget-webkit-browse-url) + + (set-popup-rule! "^\\*xwidget" :vslot -11 :size 0.35 :select nil) + + (defun +xwidget--webkit-goto-url-a (&rest _) + (pop-to-buffer xwidget-webkit-last-session-buffer)) + (advice-add #'xwidget-webkit-goto-url :after #'+xwidget--webkit-goto-url-a) + + (defun +xwidget--webkit-new-session-a (orig-fun &rest args) + (save-window-excursion + (apply orig-fun args)) + (pop-to-buffer xwidget-webkit-last-session-buffer)) + (advice-add #'xwidget-webkit-new-session :around #'+xwidget--webkit-new-session-a) + + (when (featurep! :editor evil +everywhere) + (add-transient-hook! 'xwidget-webkit-mode-hook + (+evil-collection-init 'xwidget)))) + (cond ((featurep! :completion helm) (require 'helm-dash nil t)) ((featurep! :completion ivy)