diff --git a/core/core-os-osx.el b/core/core-os-osx.el index 732b537f3..231eb067e 100644 --- a/core/core-os-osx.el +++ b/core/core-os-osx.el @@ -44,12 +44,17 @@ ;; OSX Related Plugins ;;;;;;;;;;;;;;;;; (use-package dash-at-point - :commands (dash-at-point dash-at-point-with-docset) + :commands (dash-at-point dash-at-point-with-docset narf/dash-at-pt narf:dash) :config - (mapc (lambda (r) (add-to-list 'dash-at-point-mode-alist r)) - `((java-mode . "java,droid,javafx,grails,groovy,playjava,spring,cvj,processing,javadoc") - (scss-mode . ,(cdr (assoc 'sass-mode dash-at-point-mode-alist))) - ))) + (defmacro define-dash-docset! (mode docset) + `(add-hook! ,mode (setq dash-at-point-docset ,docset))) + + (define-dash-docset! scss-mode "sass") + (define-dash-docset! java-mode "java,droid,javafx,grails,groovy,playjava,spring,cvj,processing,javadoc") + (define-dash-docset! js2-mode "js,javascript,nodejs,angularjs") + (define-dash-docset! python-mode "py,py3,python") + (define-dash-docset! php-mode "php,laravel") + (define-dash-docset! ruby-mode "rb,ruby,rubygem")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/core/defuns/defuns-dash.el b/core/defuns/defuns-dash.el new file mode 100644 index 000000000..aff439251 --- /dev/null +++ b/core/defuns/defuns-dash.el @@ -0,0 +1,25 @@ +;;; defuns-dash.el --- Dash.app integration + +;;;###autoload +(defun narf/dash-at-pt () + (interactive) + (if (evil-visual-state-p) + (dash-at-point-run-search (buffer-substring-no-properties (region-beginning) (region-end)) + (dash-at-point-guess-docset)) + (dash-at-point))) + +;;;###autoload (autoload 'narf:dash "defuns-dash" nil t) +(evil-define-command narf:dash (bang input) + (interactive "") + (let ((docset (unless bang (dash-at-point-guess-docset))) + (query input)) + (when (evil-visual-state-p) + (setq query (concat (buffer-substring-no-properties (region-beginning) (region-end)) + " " query))) + (when (or (not query) (string-empty-p query)) + (setq query (thing-at-point 'symbol))) + (dash-at-point-run-search query docset))) + + +(provide 'defuns-dash) +;;; defuns-dash.el ends here