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