                   :config
                   (flycheck-yamllint-setup)))))
 
-;; JavaScript
-(use-package rjsx-mode
-  :mode ("\\.js[x]?\\'")
-  :config
-
-  (add-hook 'js-mode-hook
-            #'(lambda ()
-                (my-load-flycheck)
-
-                (use-package eslintd-fix
-                  :functions eslintd-fix
-                  :config
-                  (eslintd-fix-mode 1)
-                  (bind-keys :map rjsx-mode-map
-                             ("C-c C-f" . eslintd-fix)))
-
-                (use-package tern
-                  :config
-                  (tern-mode 1)
-                  (unbind-key "C-c C-r" tern-mode-keymap))
-
-                (my-load-company)
-                (use-package company-tern
-                  :config
-                  (add-to-list 'company-backends 'company-tern))
-
-                (define-key js-mode-map [menu-bar] nil)))
-
+;; Javascript
+(add-hook 'js-mode-hook
+          #'(lambda ()
+              ;; Make sure the keyword list in js-mode is up to date
+              ;; (font-lock-add-keywords
+              ;;  nil
+              ;;  '(("\\_<import\\_>" "\\_<as\\_>")
+              ;;    ("\\_<for\\_>" "\\_<of\\_>")))
+
+              (my-load-flycheck)
+
+              (use-package eslintd-fix
+                :functions eslintd-fix
+                :config
+                (eslintd-fix-mode 1)
+                (bind-keys :map js-mode-map
+                           ("C-c C-f" . eslintd-fix)))
+
+              (use-package tern
+                :config
+                (tern-mode 1)
+                (unbind-key "C-c C-r" tern-mode-keymap))
+
+              (my-load-company)
+              (use-package company-tern
+                :config
+                (add-to-list 'company-backends 'company-tern))
+
+              (use-package js-doc
+                :after yasnippet
+                :config
+                (bind-keys :map js-mode-map
+                           ("C-c d" . js-doc-insert-file-doc)
+                           ("C-c f" . js-doc-insert-function-doc-snippet)))
+
+              (define-key js-mode-map [menu-bar] nil)))
+
+(use-package js2-mode
+  :config
   (add-hook 'js2-mode-hook
             #'(lambda ()
                 (use-package xref-js2

                (my-load-company)
                (use-package company-go
                  :config
                  (set (make-local-variable 'company-backends) '(company-go)))))
  (add-hook 'go-mode-hook #'(lambda () (use-package go-eldoc :config (go-eldoc-setup)))))

;; Web stuff


                (when (and (string-equal "tsx" (file-name-extension buffer-file-name))
                           (featurep 'tide))
                  (flycheck-add-mode 'typescript-tslint 'web-mode)
                  (tide-setup)
                  (tide-hl-identifier-mode 1)))))

(use-package emmet-mode
  :after web-mode
  :config
