 ;;; lang/javascript/config.el -*- lexical-binding: t; -*-
 
-(defvar +javascript-docsets
-  '("JavaScript"
+(after! (:any js2-mode rjsx-mode web-mode)
+  (set-docsets! '(js2-mode rjsx-mode) "JavaScript"
     "AngularJS" "Backbone" "BackboneJS" "Bootstrap" "D3JS" "EmberJS" "Express"
     "ExtJS" "JQuery" "JQuery_Mobile" "JQuery_UI" "KnockoutJS" "Lo-Dash"
     "MarionetteJS" "MomentJS" "NodeJS" "PrototypeJS" "React" "RequireJS"
     "SailsJS" "UnderscoreJS" "VueJS" "ZeptoJS")
-  "A list of dash docsets to use for Javascript modes (`js2-mode' and
-`rjsx-mode'). These are used by `+lookup/in-docsets'.")
-
-(after! (:any js2-mode rjsx-mode web-mode)
+
   (set-pretty-symbols! '(js2-mode rjsx-mode web-mode)
     ;; Functional
     :def "function"


  (set-electric! 'js2-mode :chars '(?\} ?\) ?. ?:))
  (set-repl-handler! 'js2-mode #'+javascript/repl)
  (set-docsets! 'js2-mode +javascript-docsets)

  (map! :map js2-mode-map
        :localleader

  (add-to-list 'magic-mode-alist '(+javascript-jsx-file-p . rjsx-mode))
  :config
  (set-electric! 'rjsx-mode :chars '(?\} ?\) ?. ?>))
  (when (featurep! :feature syntax-checker)
    (add-hook! 'rjsx-mode-hook
      ;; jshint doesn't know how to deal with jsx
