@@ -127,6 +127,99 @@ Suggested values are:
127127 " Return the path where Dash's docsets are stored."
128128 (expand-file-name helm-dash-docsets-path))
129129
130+
131+ (defun helm-dash-check-mode-docsets-alist (&optional silentp )
132+ (dolist (mode-docsets helm-dash-mode-docsets-alist)
133+ (setf (cdr mode-docsets)
134+ (let (ret)
135+ (dolist (docset (cdr mode-docsets))
136+ (if (helm-dash-docset-path docset)
137+ (push docset ret)
138+ (let ((docset-n (mapconcat #'identity (split-string docset) " _" )))
139+ (if (helm-dash-docset-path docset-n)
140+ (push docset-n ret)
141+ (unless silentp
142+ (message " [helm-dash] Warning: Can not find %s docset! " docset))))))
143+ ret))))
144+
145+ (let ((js-cd '(" JavaScript" " jQuery" " Bootstrap_4" " React" " Lo-Dash" " BackboneJS" " RequireJS" " EmberJS"
146+ " MongoDB" " NodeJS" " Meteor" " MooTools" " jQuery_UI" " jQuery_Mobile" ))
147+ (c-cd '(" OpenGL_4" " OpenGL_3" " OpenGL_2" ))
148+ (css-cd '(" CSS" " Bootstrap_4" ))
149+ (ja-cd '(" Java_SE8" " Java_EE7" " JavaFX" " Akka" ))
150+ (erl-cd '(" Erlang" ))
151+ (pl-cd '(" Perl" ))
152+ (conf-cd '(" Nginx" " Apache_HTTP_Server" )))
153+ (defcustom helm-dash-mode-docsets-alist
154+ `((js-mode . , js-cd ) (js2-mode . , js-cd )
155+ (coffee-mode . (" CoffeeScript" ,@js-cd ))
156+ (typescript-mode . (" TypeScript" ,@js-cd ))
157+
158+ ,@(let (ret)
159+ (dolist (cf-m '(conf-mode conf-javaprop-mode conf-ppd-mode conf-colon-mode conf-space-mode
160+ conf-unix-mode conf-windows-mode conf-xdefaults-mode))
161+ (push (cons cf-m conf-cd) ret))
162+ ret)
163+ (sh-mode . (" Bash" " Vagrant" " Ansible" " Chef" ))
164+ (tcl-mode . (" Tcl" ))
165+ (dockerfile-mode . (" Docker" ))
166+
167+ (css-mode . , css-cd )
168+ (less-css-mode . (" Less" ,@css-cd ))
169+ (sass-mode . (" Sass" ,@css-cd ))
170+
171+ (html-mode . (" HTML" ,@css-cd ))
172+ (haml-mode . (" Haml" " HTML" ,@css-cd ))
173+ (markdown-mode . (" Markdown" " HTML" ,@css-cd ))
174+ (jinja2-mode . (" Jinja" " HTML" ,@css-cd ))
175+ (latex-mode . (" LaTeX" ))
176+
177+ (c-mode . (" C" " GLib" ,@c-cd " OpenCV_C" ))
178+ (c++-mode . (" C++" " Qt_5" " Boost" ,@c-cd " OpenCV_C++" ))
179+ (rust-mode . (" Rust" ))
180+
181+ (cmake-mode . (" CMake" ))
182+
183+ (java-mode . (,@ja-cd " Android" " OpenCV_Java" " Spring_Framework" ))
184+ (scala-mode . (" Scala" " Play_Scala" ,@ja-cd ))
185+ (clojure-mode . (" Clojure" ,@ja-cd ))
186+
187+ (csharp-mode . (" Mono" " Unity_3D" " NET_Framework" ))
188+ (swift-mode . (" Swift" ))
189+ (go-mode . (" Go" ))
190+
191+ (php-mode . (" PHP" " Laravel" " Yii" " Symfony" ))
192+ (ruby-mode . (" Ruby" " Ruby_on_Rails_5" ))
193+ (python-mode . (" Python_3" " Django" " SQLAlchemy" " Flask" " Jinja" " NumPy" " SciPy" " OpenCV_Python" ))
194+ (perl-mode . , pl-cd )(cperl-mode . , pl-cd )
195+ (lua-mode . (" Lua_5.1" ))
196+
197+ (sql-mode . (" PostgreSQL" " MySQL" ))
198+
199+ (erlang-mode . , erl-cd )
200+ (elixir-mode . (" Elixir" ,@erl-cd ))
201+
202+ (emacs-lisp-mode . (" Emacs_Lisp" ))
203+ (lisp-mode . (" Common_Lisp" ))
204+ (racket-mode . (" Racket" ))
205+ (ess-mode . (" R" ))
206+
207+ (haskell-mode . (" Haskell" ))
208+ (ocaml-mode . (" OCaml" )))
209+ " What docsets to activate for a major-mode."
210+ :group 'helm-dash
211+ :type '(alist :key-type (symbol :tag " Mode" ) :value-type (repeat :tag " Docsets" string))
212+ :set #' (lambda (sym val )
213+ (set-default sym val)
214+ (helm-dash-check-mode-docsets-alist))))
215+
216+ ;;;### autoload
217+ (defun helm-dash-set-apropriate-major-mode-docsets ()
218+ (let ((docsets (cdr (assoc major-mode helm-dash-mode-docsets-alist))))
219+ (when docsets
220+ (setq-local helm-dash-docsets docsets))))
221+
222+
130223(defun helm-dash-sql (db-path sql )
131224 " Run the sql command, parse the results and display errors"
132225 (helm-dash-parse-sql-results
0 commit comments