Galooshi / emacs-import-js

Emacs plugin for ImportJS
MIT License
40 stars 9 forks source link
emacs emacs-plugin importjs javascript

MELPA

Running ImportJS in Emacs

  1. Install the importjs binary:
    • npm install import-js -g
  2. Configure ImportJS
  3. Install import-js.el for Emacs
    • Install via MELPA
    • Alternatively, Copy plugins/import-js.el into your Emacs load-path and add (require 'import-js) to your config. You will also need to install grizzl
  4. Run the import-js daemon
    • (M-x) run-import-js
    • The daemon will use watchman if installed to improve performance
  5. Import a file!

    • You can use something like (M-x) import-js-import with your cursor over the desired module
    • It will be helpful to bind import-js-import to an easy-to-use binding, such as:
    (define-prefix-command 'my-keymap)
    (global-set-key (kbd "s-a") 'my-keymap)
    (define-key my-keymap (kbd "a u") 'import-js-import)
  6. Go directly to a file
    • The ImportJS goto interface allows us to jump to a package
    • (M-x) import-js-goto will jump to the appropriate file found by ImportJS
    • This should also be bound to something useful: (global-set-key (kbd "<f4>") 'import-js-goto)
  7. Fix your imports
    • Optionally, you can configure ImportJS to fix your imports for you, adding unknown variables and removing unused imports. ImportJS uses eslint to find these variables.
    • eslint must be in your PATH.
    • eslint plugins must be installed for that specific version of eslint (if eslint is a global eslint, you may need to install the plugins globally)
    • Run with (M-x) import-js-fix
    • You can also configure import-js-fix to run on save: (add-hook 'after-save-hook 'import-js-fix)

Note on Node v6.1.0

I've had issues running import-js in Emacs on Node v6.1.0. Node >= v6.2.0 seems to work as expected.