From ec9c12e17ef81b85dab9057439570c300549b7cc Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 24 May 2016 22:09:50 -0400 Subject: [PATCH] def-docset --- core/core-helm.el | 6 ++---- core/defuns/macros-dash.el | 8 ++++++++ modules/module-cc.el | 4 ++-- modules/module-crystal.el | 1 + modules/module-css.el | 4 ++-- modules/module-data.el | 2 +- modules/module-go.el | 1 + modules/module-haskell.el | 1 + modules/module-java.el | 3 +-- modules/module-js.el | 5 ++++- modules/module-julia.el | 4 +++- modules/module-lua.el | 1 + modules/module-php.el | 2 +- modules/module-processing.el | 1 + modules/module-python.el | 9 ++++++--- modules/module-ruby.el | 2 +- modules/module-rust.el | 3 ++- modules/module-scala.el | 2 +- modules/module-swift.el | 3 ++- modules/module-text.el | 1 + 20 files changed, 42 insertions(+), 21 deletions(-) create mode 100644 core/defuns/macros-dash.el diff --git a/core/core-helm.el b/core/core-helm.el index d9cd9041e..9bd1ed8c1 100644 --- a/core/core-helm.el +++ b/core/core-helm.el @@ -75,12 +75,10 @@ (use-package helm-dash :when (not IS-WINDOWS) - :commands (helm-dash helm-dash-at-point helm-dash-install-docset def-docset!) + :commands (helm-dash helm-dash-at-point helm-dash-install-docset) :config (setq helm-dash-browser-func 'doom/dash-open - helm-dash-candidate-format "%d → %n (%t)") - (defmacro def-docset! (mode docsets) - `(add-hook! ,mode (setq-local helm-dash-docsets ',docsets)))) + helm-dash-candidate-format "%d → %n (%t)")) (use-package helm-tags :commands (helm-tags-get-tag-file helm-etags-select)) diff --git a/core/defuns/macros-dash.el b/core/defuns/macros-dash.el new file mode 100644 index 000000000..b06aa3dee --- /dev/null +++ b/core/defuns/macros-dash.el @@ -0,0 +1,8 @@ +;;; macros-dash.el + +;;;###autoload +(defmacro def-docset! (mode docsets) + `(add-hook! ,mode (setq-local helm-dash-docsets ',docsets))) + +(provide 'macros-dash) +;;; macros-dash.el ends here diff --git a/modules/module-cc.el b/modules/module-cc.el index 006415fd2..19e815f5f 100644 --- a/modules/module-cc.el +++ b/modules/module-cc.el @@ -24,8 +24,8 @@ :config (def-electric! (c-mode c++-mode objc-mode) :chars (?\n ?\})) (def-company-backend! (c-mode c++-mode objc-mode) (irony-c-headers irony)) - (def-docset! c-mode "c,sdl,glib,gl2,gl3,gl4,manpages") - (def-docset! c++-mode "cpp,sdl,net,boost,qt,cvcpp,cocos2dx,c,manpages") + (def-docset! c-mode ("C" "org.libsdl.sdl20")) + (def-docset! c++-mode ("C++" "C" "Boost" "Qt_4" "Qt_5" "Cocos2D" "Cocos2D-X" "org.libsdl.sdl20")) (setq c-tab-always-indent nil c-electric-flag nil) diff --git a/modules/module-crystal.el b/modules/module-crystal.el index 76aefa8e3..bc5f3ff12 100644 --- a/modules/module-crystal.el +++ b/modules/module-crystal.el @@ -4,6 +4,7 @@ :mode "\\.cr$" :interpreter "crystal" :config + (def-docset! crystal-mode ("crystal")) (after! quickrun (quickrun-add-command "crystal" '((:command . "crystal") diff --git a/modules/module-css.el b/modules/module-css.el index 3bd882568..72bb277cf 100644 --- a/modules/module-css.el +++ b/modules/module-css.el @@ -37,7 +37,7 @@ :config (def-builder! sass-mode doom/sass-build) (def-company-backend! sass-mode (css yasnippet)) - (def-docset! sass-mode "sass,bourbon") + (def-docset! sass-mode ("CSS" "Sass" "Bourbon")) (push '("sass" "css") projectile-other-file-alist)) (use-package scss-mode @@ -45,7 +45,7 @@ :config (def-builder! scss-mode doom/scss-build) (def-company-backend! scss-mode (css yasnippet)) - (def-docset! scss-mode "sass,bourbon") + (def-docset! scss-mode ("CSS" "Sass" "Bourbon")) (push '("scss" "css") projectile-other-file-alist) (setq scss-compile-at-save nil)) diff --git a/modules/module-data.el b/modules/module-data.el index f96a58736..0f1097f58 100644 --- a/modules/module-data.el +++ b/modules/module-data.el @@ -16,7 +16,7 @@ (use-package dockerfile-mode :mode "/Dockerfile$" :config - (def-docset! dockerfile-mode "docker") + (def-docset! dockerfile-mode ("Docker")) (def-builder! dockerfile-mode dockerfile-build-buffer "Dockerfile")) ;; For ROM hacking or debugging diff --git a/modules/module-go.el b/modules/module-go.el index 268063c6d..66ffa3b5d 100644 --- a/modules/module-go.el +++ b/modules/module-go.el @@ -9,6 +9,7 @@ :config (def-builder! go-mode "go build") (def-company-backend! go-mode (go yasnippet)) + (def-docset! go-mode ("Go")) (def-repl! go-mode gorepl-run) (map! :map go-mode-map :n "gd" 'godef-jump diff --git a/modules/module-haskell.el b/modules/module-haskell.el index 95c530fbc..9868da13f 100644 --- a/modules/module-haskell.el +++ b/modules/module-haskell.el @@ -9,6 +9,7 @@ :init (add-hook! haskell-mode '(interactive-haskell-mode flycheck-mode)) :config + (def-docset! haskell-mode ("Haskell")) (def-popup! "*debug:haskell*" :size 20) (def-repl! haskell-mode switch-to-haskell) (push ".hi" completion-ignored-extensions)) diff --git a/modules/module-java.el b/modules/module-java.el index d3fd7ca06..5ed453f32 100644 --- a/modules/module-java.el +++ b/modules/module-java.el @@ -1,8 +1,7 @@ ;;; module-java.el --- the poster child for carpal tunnel (after! c-initialization - (def-docset! java-mode - "java,droid,javafx,grails,groovy,playjava,spring,cvj,processing,javadoc")) + (def-docset! java-mode ("Java" "Android" "JavaFX"))) (use-package eclim :functions (eclim--project-dir eclim--project-name) diff --git a/modules/module-js.el b/modules/module-js.el index d665f7438..13925710b 100644 --- a/modules/module-js.el +++ b/modules/module-js.el @@ -6,8 +6,11 @@ :init (add-hook 'js2-mode-hook 'tern-mode) :config (def-repl! js2-mode nodejs-repl) - (def-docset! js2-mode "js,javascript,nodejs,angularjs,express,jquery,mongoose") (def-company-backend! js2-mode (tern yasnippet)) + (def-docset! js2-mode + ("JavaScript" "jQuery" "jQuery_Mobile" "jQuery_UI" "AngularJS" "BackboneJS" + "D3JS" "EmberJS" "ExtJS" "KnockoutJS" "MarionetteJS" "MomentJS" "NodeJS" + "PrototypeJS" "RequireJS" "SailsJS" "UnderscoreJS" "VueJS" "ZeptoJS")) (def-electric! js2-mode :chars (?\} ?\) ?.) :words ("||" "&&")) (setq-default js2-skip-preprocessor-directives t diff --git a/modules/module-julia.el b/modules/module-julia.el index f5a03b119..bb22e4ecc 100644 --- a/modules/module-julia.el +++ b/modules/module-julia.el @@ -3,7 +3,9 @@ (use-package julia-mode :mode "\\.jl$" :interpreter "julia" - :config (def-repl! julia-mode doom/julia-repl)) + :config + (def-docset! julia-mode ("Julia")) + (def-repl! julia-mode doom/julia-repl)) (provide 'module-julia) ;;; module-julia.el ends here diff --git a/modules/module-lua.el b/modules/module-lua.el index 9d739ea20..69ded8a90 100644 --- a/modules/module-lua.el +++ b/modules/module-lua.el @@ -6,6 +6,7 @@ :init (add-hook 'lua-mode-hook 'flycheck-mode) :config (def-company-backend! lua-mode (lua yasnippet)) + (def-docset! lua-mode ("Lua_5.2" "Lua_5.3")) (def-electric! lua-mode :words ("else" "end")) (def-repl! lua-mode doom/inf-lua) (sp-with-modes '(lua-mode) diff --git a/modules/module-php.el b/modules/module-php.el index fd0121e5a..edd09a164 100644 --- a/modules/module-php.el +++ b/modules/module-php.el @@ -14,7 +14,7 @@ :config (def-repl! php-mode php-boris) - (def-docset! php-mode "php,laravel") + (def-docset! php-mode ("PHP" "Laravel" "PHPUnit")) (def-company-backend! php-mode '(php-extras-company company-yasnippet)) (map! :map php-mode-map (:localleader :nv ";" 'doom/append-semicolon)) diff --git a/modules/module-processing.el b/modules/module-processing.el index 5e065a671..f25e0107e 100644 --- a/modules/module-processing.el +++ b/modules/module-processing.el @@ -9,6 +9,7 @@ :config (def-builder! processing-mode processing-sketch-build) + (def-docset! processing-mode ("Processing")) (def-popup! "*processing-compilation*" :align below :size 10 :noselect t) (setq processing-location "/usr/local/bin/processing-java" processing-application-dir "/Applications/Processing.app" diff --git a/modules/module-python.el b/modules/module-python.el index 0963b54e2..908093133 100644 --- a/modules/module-python.el +++ b/modules/module-python.el @@ -21,10 +21,13 @@ :config (def-company-backend! python-mode (anaconda)) - (def-docset! python-mode "py,py3,python") - (def-version-cmd! python-mode "python --version 2>&1 | cut -d' ' -f2") + (def-docset! python-mode ("OpenCV_Python")) (def-repl! python-mode doom/inf-python) - (define-key python-mode-map (kbd "DEL") nil)) ; interferes with smartparens + (def-version-cmd! python-mode "python --version 2>&1 | cut -d' ' -f2") + (define-key python-mode-map (kbd "DEL") nil) ; interferes with smartparens + (add-hook 'doom-env-version-hook + (lambda (v) (when (eq major-mode 'python-mode) + (push (if (string-prefix-p "2" v) "Python_2" "Python_3") helm-dash-docsets))))) (use-package anaconda-mode :after python diff --git a/modules/module-ruby.el b/modules/module-ruby.el index fd95fd4ab..be844ec7f 100644 --- a/modules/module-ruby.el +++ b/modules/module-ruby.el @@ -8,7 +8,7 @@ :config (def-builder! ruby-mode "rake %s" "Rakefile") (def-company-backend! ruby-mode (dabbrev-code)) - (def-docset! ruby-mode "rb,ruby,rubygem") + (def-docset! ruby-mode ("Ruby_2" "Ruby_on_Rails_5")) (def-electric! ruby-mode :words ("else" "end" "elseif")) (def-repl! ruby-mode inf-ruby) (def-version-cmd! ruby-mode "ruby --version | cut -d' ' -f2") diff --git a/modules/module-rust.el b/modules/module-rust.el index fadac567e..46244941c 100644 --- a/modules/module-rust.el +++ b/modules/module-rust.el @@ -5,7 +5,8 @@ :init (add-hook 'rust-mode-hook 'flycheck-mode) :config (def-builder! rust-mode "cargo run" "Cargo.toml") - (def-builder! toml-mode "cargo run" "Cargo.toml")) + (def-builder! toml-mode "cargo run" "Cargo.toml") + (def-docset! rust-mode ("Rust"))) (use-package flycheck-rust :after rust-mode) diff --git a/modules/module-scala.el b/modules/module-scala.el index d5885678b..065ab2353 100644 --- a/modules/module-scala.el +++ b/modules/module-scala.el @@ -5,7 +5,7 @@ :init (add-hook 'scala-mode-hook 'turn-on-eldoc-mode) :config (def-company-backend! scala-mode '(ensime-company (company-yasnippet))) - (def-docset! scala-mode "scala")) + (def-docset! scala-mode ("Scala"))) (use-package sbt-mode :after scala-mode) diff --git a/modules/module-swift.el b/modules/module-swift.el index 9ace0e70e..97e9fbeb2 100644 --- a/modules/module-swift.el +++ b/modules/module-swift.el @@ -6,7 +6,8 @@ :init (add-hook 'swift-mode-hook 'flycheck-mode) :config (def-company-backend! swift-mode (sourcekit yasnippet)) - (def-repl! swift-mode swift-mode-run-repl) + (def-docset! swift-mode ("Swift")) + (def-repl! swift-mode swift-mode-run-repl) ; TODO test this (after! flycheck (push 'swift flycheck-checkers))) (use-package company-sourcekit diff --git a/modules/module-text.el b/modules/module-text.el index 2bd617cf2..4884e4b10 100644 --- a/modules/module-text.el +++ b/modules/module-text.el @@ -12,6 +12,7 @@ markdown-gfm-additional-languages '("sh")) :config + (def-docset! markdown-mode ("Markdown")) (map! :map markdown-mode-map "" nil "" nil