diff --git a/core/core-editor.el b/core/core-editor.el index 7bce01d82..1acbf7c6c 100644 --- a/core/core-editor.el +++ b/core/core-editor.el @@ -121,6 +121,7 @@ enable multiple minor modes for the same regexp.") (use-package json-mode :mode "\\.js\\(on\\|hintrc\\)$") (use-package dockerfile-mode :mode "/Dockerfile$" :config + (define-docset! dockerfile-mode "docker") (define-builder! dockerfile-mode dockerfile-build-buffer "Dockerfile")) ;; Plugins ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/core/core-os-linux.el b/core/core-os-linux.el index e46f15a9d..62cebacd6 100644 --- a/core/core-os-linux.el +++ b/core/core-os-linux.el @@ -4,5 +4,8 @@ (interactive) (error "Not yet implemented")) +(defun define-docset! (&rest _) + (message "No docset function defined!")) + (provide 'core-os-linux) ;;; core-os-linux.el ends here diff --git a/core/core-os-osx.el b/core/core-os-osx.el index 231eb067e..250244aad 100644 --- a/core/core-os-osx.el +++ b/core/core-os-osx.el @@ -44,17 +44,10 @@ ;; OSX Related Plugins ;;;;;;;;;;;;;;;;; (use-package dash-at-point - :commands (dash-at-point dash-at-point-with-docset narf/dash-at-pt narf:dash) - :config - (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")) + :commands (dash-at-point dash-at-point-with-docset dash-at-point-run-search dash-at-point-guess-docset) + :init + (defmacro define-docset! (mode docset) + `(add-hook! ,mode (setq dash-at-point-docset ,docset)))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/modules/module-java.el b/modules/module-java.el index 74ee7a660..d06c68d97 100644 --- a/modules/module-java.el +++ b/modules/module-java.el @@ -1,5 +1,7 @@ ;;; module-java.el --- the poster child for carpal tunnel +(define-docset! java-mode "java,droid,javafx,grails,groovy,playjava,spring,cvj,processing,javadoc") + (use-package eclim :functions (eclim--project-dir eclim--project-name) :commands (eclim-mode global-eclim-mode) diff --git a/modules/module-js.el b/modules/module-js.el index 606cd698b..f920fc650 100644 --- a/modules/module-js.el +++ b/modules/module-js.el @@ -5,6 +5,7 @@ :interpreter "node" :init (define-repl! js2-mode nodejs-repl) + (define-docset! js2-mode "js,javascript,nodejs,angularjs") :config (setq-default js2-skip-preprocessor-directives t diff --git a/modules/module-lisp.el b/modules/module-lisp.el index 155779710..47f44f9a3 100644 --- a/modules/module-lisp.el +++ b/modules/module-lisp.el @@ -57,7 +57,7 @@ (regexp-opt '("λ" "in" "map" "after" "exmap" "shut-up" "add-hook" "associate" "open-with" "define-repl" "define-builder" "narf-space-setup" "define-env-command" - "define-text-object" "add-yas-minor-mode" + "define-text-object" "add-yas-minor-mode" "define-docset" "define-org-link!" "define-company-backend")) "!\\)") (1 font-lock-keyword-face append)))) diff --git a/modules/module-php.el b/modules/module-php.el index d498947ec..ddc678914 100644 --- a/modules/module-php.el +++ b/modules/module-php.el @@ -3,13 +3,15 @@ (use-package php-mode :mode "\\.\\(php\\|inc\\)$" :init + (define-docset! php-mode "php,laravel") + (define-company-backend! php-mode '(php-extras-company)) + (add-hook! php-mode 'flycheck-mode) (setq php-template-compatibility nil php-extras-eldoc-functions-file (concat narf-temp-dir "php-extras-eldoc-functions")) :config (require 'php-extras) (defun php-extras-company-setup ()) ;; company will set up itself - (define-company-backend! php-mode '(php-extras-company)) (unless (file-exists-p (concat php-extras-eldoc-functions-file ".el")) (async-start `(lambda () diff --git a/modules/module-python.el b/modules/module-python.el index 13de3b13a..cee534f9e 100644 --- a/modules/module-python.el +++ b/modules/module-python.el @@ -5,6 +5,7 @@ :interpreter ("python" . python-mode) :commands python-mode :init + (define-repl! python-mode "py,py3,python") (add-hook! python-mode '(emr-initialize narf|flycheck-enable-maybe)) (setq-default python-indent-offset 4 diff --git a/modules/module-ruby.el b/modules/module-ruby.el index f6ba6ad8c..bb06fb269 100644 --- a/modules/module-ruby.el +++ b/modules/module-ruby.el @@ -9,9 +9,10 @@ :interpreter "ruby" :init (add-hook! ruby-mode 'flycheck-mode) - :config - (define-builder! ruby-mode "rake %s" "Rakefile") + (define-docset! ruby-mode "rb,ruby,rubygem") + (define-builder! ruby-mode "rake %s" "Rakefile") (define-env-command! ruby-mode "ruby --version | cut -d' ' -f2") + :config ;; Formatting (setq ruby-indent-level 2 ruby-deep-indent-paren t) diff --git a/modules/module-web.el b/modules/module-web.el index 315ed86fe..e9ef625cd 100644 --- a/modules/module-web.el +++ b/modules/module-web.el @@ -12,6 +12,7 @@ :preface (require 'css-mode) :init + (define-docset! scss-mode "sass,bourbon") (add-hook! scss-mode '(hs-minor-mode narf|hl-line-off)) (setq-default css-indent-offset 2) (setq scss-compile-at-save nil)