doomemacs/modules/lang/javascript
Henrik Lissner 2e86cceb3f
Bump :lang
200ok-ch/counsel-jq@104c77b -> 200ok-ch/counsel-jq@f5bfed8
Andersbakken/rtags@e6c7005 -> Andersbakken/rtags@63a7d9b
FStarLang/fstar-mode.el@5670fc0 -> FStarLang/fstar-mode.el@3afbf04
Kungsgeten/org-brain@6e3d861) -> Kungsgeten/org-brain@1ae4fd4)
NixOS/nix-mode@bb0b49e -> NixOS/nix-mode@e32c6bf
OVYA/php-cs-fixer@95eace9 -> OVYA/php-cs-fixer@c5b5d8a
ProofGeneral/PG@0fdb1ae -> ProofGeneral/PG@702f5b9
Sarcasm/irony-mode@1e1aaba -> Sarcasm/irony-mode@76fd37f
abicky/nodejs-repl.el@f5ce3d5 -> abicky/nodejs-repl.el@3b84105
agda/agda@08191e6 -> agda/agda@5070bd8
amake/flutter.el@78b3c57 -> amake/flutter.el@696228a
ananthakumaran/tide@ac5f070 -> ananthakumaran/tide@a43a37b
arnested/php-extras@81ebd7c -> arnested/php-extras@d410c5a
borkdude/flycheck-clj-kondo@152df7f -> borkdude/flycheck-clj-kondo@a558bda
brotzeit/rustic@7c9d55b -> brotzeit/rustic@91ad5db
chachi/cuda-mode@9ae9eac -> chachi/cuda-mode@7f59351
clojure-emacs/cider@f1c2a79 -> clojure-emacs/cider@ef47c1d
clojure-emacs/clojure-mode@75c2889 -> clojure-emacs/clojure-mode@53ef8ac
cpitclaudel/company-coq@b096cb5 -> cpitclaudel/company-coq@4da7b41
cython/cython@ba6cbed -> cython/cython@21b4e53
dgutov/robe@082da38 -> dgutov/robe@f04dcc7
dominikh/go-mode.el@d17d210 -> dominikh/go-mode.el@fdf46fe
dominikh/go-mode.el@d17d210 -> dominikh/go-mode.el@fdf46fe
elixir-editors/emacs-elixir@01b3324 -> elixir-editors/emacs-elixir@b78e7f7
emacs-ess/ESS@a694b26 -> emacs-ess/ESS@d013616
emacs-lsp/lsp-dart@c1ff5ce -> emacs-lsp/lsp-dart@b81b1ec
emacs-lsp/lsp-java@3f1ed17 -> emacs-lsp/lsp-java@f43b00a
emacs-lsp/lsp-metals@e42c0b2) -> emacs-lsp/lsp-metals@31dafff)
emacs-lsp/lsp-pyright@ccd0007 -> emacs-lsp/lsp-pyright@d9e7d3c
emacs-lsp/lsp-python-ms@a0c56f4 -> emacs-lsp/lsp-python-ms@c4ebc7a
emacs-php/php-mode@f4c7c69 -> emacs-php/php-mode@7e5722c
emacs-straight/adaptive-wrap@319db64 -> emacs-straight/adaptive-wrap@8f60ee7
emacs-straight/csv-mode@6353374 -> emacs-straight/csv-mode@eb3ec00
emacs-straight/org-mode@a88806b -> emacs-straight/org-mode@7c8dce7
emacs-straight/rainbow-mode@fdff98b -> emacs-straight/rainbow-mode@949166c
emacs-straight/sml-mode@60b01d7 -> emacs-straight/sml-mode@0338e97
emacs-typescript/typescript.el@e6f68ab -> emacs-typescript/typescript.el@54f14c4
erlang/otp@8efb945 -> erlang/otp@8fc0641
factor/factor@c6e15bd -> factor/factor@94a922a
felipeochoa/rjsx-mode@0061587 -> felipeochoa/rjsx-mode@b697fe4
fsharp/emacs-fsharp-mode@68dfc22 -> fsharp/emacs-fsharp-mode@13fbf4c
fxbois/web-mode@b4b0a85 -> fxbois/web-mode@890e837
galaunay/poetry.el@eb238d9 -> galaunay/poetry.el@d5163fe
godotengine/emacs-gdscript-mode@55a6637 -> godotengine/emacs-gdscript-mode@75fe658
greghendershott/racket-mode@0ca8b26 -> greghendershott/racket-mode@3563081
haskell/haskell-mode@e726776 -> haskell/haskell-mode@0d39c84
hlissner/evil-org-mode@658dadf) -> hlissner/evil-org-mode@a9706da)
hvesalai/emacs-sbt-mode@4358ed8 -> hvesalai/emacs-sbt-mode@7b121fc
hvesalai/emacs-scala-mode@1d08e88 -> hvesalai/emacs-scala-mode@9d3b56e
hylang/hy-mode@7256844 -> hylang/hy-mode@5253533
joaotavora/sly@fce4f9b -> joaotavora/sly@68561f1
jorgenschaefer/emacs-buttercup@cccdedf -> jorgenschaefer/emacs-buttercup@2f24a44
jorgenschaefer/pyvenv@861998b -> jorgenschaefer/pyvenv@0bf4b87
josteink/csharp-mode@f46d656 -> josteink/csharp-mode@4916829
jrblevin/markdown-mode@152eae2 -> jrblevin/markdown-mode@dcad557
kaushalmodi/ox-hugo@1909c6e) -> kaushalmodi/ox-hugo@f24c9bd)
nim-lang/nim-mode@16a245e -> nim-lang/nim-mode@d832d6b
ocaml-ppx/ocamlformat@1dec6c3 -> ocaml-ppx/ocamlformat@860266b
ocaml/dune@f967df6 -> ocaml/dune@4d097cd
ocaml/merlin@06833e9 -> ocaml/merlin@28193d5
oer/org-re-reveal@2035217 -> oer/org-re-reveal@0062756
org-roam/org-roam@d913447) -> org-roam/org-roam@be95b42)
rexim/org-cliplink@82402ca -> rexim/org-cliplink@13e0940
salmanebah/opencl-mode@55cb49c -> salmanebah/opencl-mode@15091ef
senny/rvm.el@6897576) -> senny/rvm.el@b2498a4)
skuro/plantuml-mode@5889166 -> skuro/plantuml-mode@ea45a13
swift-emacs/swift-mode@e65a80a -> swift-emacs/swift-mode@0bc8d8d
technomancy/fennel-mode@7a8824a -> technomancy/fennel-mode@fa56106
wbolster/emacs-python-pytest@a2f88b1 -> wbolster/emacs-python-pytest@4a1c4c8
xuchunyang/elisp-demos@3cca496 -> xuchunyang/elisp-demos@ed9578d
yoshiki/yaml-mode@68fecb5 -> yoshiki/yaml-mode@fc5e1c5

Fixes #4237
2020-12-05 16:37:59 -05:00
..
autoload.el Guard skewer-*-mode checks in bound-and-true-p #3252 2020-05-31 22:34:42 -04:00
config.el Bump :lang javascript 2020-09-01 13:53:07 +03:00
doctor.el Add :tools lsp checks for +lsp flag 2019-04-24 18:16:05 -04:00
packages.el Bump :lang 2020-12-05 16:37:59 -05:00
README.org Remove eslintd-fix package 2020-04-23 23:56:17 -04:00

lang/javascript

Description

This module adds JavaScript and TypeScript support.

  • Code completion (tide)
  • REPL support (nodejs-repl)
  • Refactoring commands (js2-refactor)
  • Syntax checking (flycheck)
  • Browser code injection with skewer-mode
  • Coffeescript & JSX support
  • Jump-to-definitions and references support (xref)

Module Flags

  • +lsp Enables LangServer support for this module. You must have :tools lsp enabled for this to work, as well as the langserver (e.g. typescript-language-server) installed on your system.

Prerequisites

Many of this modules' plugins require node and either npm or yarn installed.

MacOS

brew install node

Arch Linux

sudo pacman --needed --noconfirm -S nodejs npm

openSUSE

sudo zypper install nodejs npm

Troubleshooting

tide-sort-completions-by-kind isn't respected

The :completion company module uses company-prescient to sort completion by frecency, which overrules specialized sorting provided by some company backends (like company-tide).

Appendix

Commands

JS2-mode

command key / ex command description
+javascript/open-repl :repl Open the NodeJS REPL (or send the current selection to it)
+javascript/skewer-this-buffer SPC m S Attaches a browser to the current buffer

Tide

command key / ex command description
tide-restart-server SPC m R Restart tide server
tide-reformat SPC m f Reformat region
tide-rename-symbol SPC m r s Rename symbol at point
tide-organize-imports SPC m r o i Organize imports

Refactoring (js2-refactor-mode)

command key / ex command description
js2r-expand-node-at-point SPC m r e e Expand bracketed list according to node type at point
js2r-contract-node-at-point SPC m r c c Contract bracketed list according to node type at point
js2r-extract-function SPC m r e f Extracts the marked expressions out into a new named function.
js2r-extract-method SPC m r e m Extracts the marked expressions out into a new named method in an object literal.
js2r-toggle-function-expression-and-declaration SPC m r t f Toggle between function name() {} and var name = function ();
js2r-toggle-arrow-function-and-expression SPC m r t a Toggle between function expression to arrow function.
js2r-toggle-function-async SPC m r t s Toggle between an async and a regular function.
js2r-introduce-parameter SPC m r i p Changes the marked expression to a parameter in a local function.
js2r-localize-parameter SPC m r l p Changes a parameter to a local var in a local function.
js2r-wrap-buffer-in-iife SPC m r w i Wraps the entire buffer in an immediately invoked function expression
js2r-inject-global-in-iife SPC m r i g Creates a shortcut for a marked global by injecting it in the wrapping immediately invoked function expression
js2r-add-to-globals-annotation SPC m r a g Creates a *global * annotation if it is missing, and adds the var at point to it.
js2r-extract-var SPC m r e v Takes a marked expression and replaces it with a var.
js2r-extract-let SPC m r e l Similar to extract-var but uses a let-statement.
js2r-extract-const SPC m r e c Similar to extract-var but uses a const-statement.
js2r-inline-var SPC m r i v Replaces all instances of a variable with its initial value.
js2r-rename-var SPC m r r v Renames the variable on point and all occurrences in its lexical scope.
js2r-var-to-this SPC m r v t Changes local var a to be this.a instead.
js2r-arguments-to-object SPC m r a o Replaces arguments to a function call with an object literal of named arguments.
js2r-ternary-to-if SPC m r 3 i Converts ternary operator to if-statement.
js2r-split-var-declaration SPC m r s v Splits a var with multiple vars declared, into several var statements.
js2r-split-string SPC m r s s Splits a string.
js2r-string-to-template SPC m r s t Converts a string into a template string.
js2r-unwrap SPC m r u w Replaces the parent statement with the selected region.
js2r-log-this SPC m r l t Adds a console.log() statement for what is at point (or region). With a prefix argument, use JSON pretty-printing.
js2r-debug-this SPC m r d t Adds a debug() statement for what is at point (or region).
js2r-forward-slurp SPC m r s l Moves the next statement into current function, if-statement, for-loop or while-loop.
js2r-forward-barf SPC m r b a Moves the last child out of current function, if-statement, for-loop or while-loop.
js2r-kill SPC m r k Kills to the end of the line, but does not cross semantic boundaries.

skewer-mode

general
command key / ex command description
skewer-eval-last-expression SPC m s E Evaluate last expression
skewer-eval-defun SPC m s e Evaluate function definition at point
skewer-load-buffer SPC m s f Load buffer into REPL
css
command key / ex command description
skewer-css-eval-current-declaration SPC m s e Evaluate declaration at point
skewer-css-eval-current-rule SPC m s r Evaluate rule at point
skewer-css-eval-buffer SPC m s b Evaluate buffer
skewer-css-clear-all SPC m s c Clear all rules
html
command key / ex command description
skewer-html-eval-tag SPC m s e Evaluate tag at point

npm-mode

command key / ex command description
npm-mode-npm-init SPC m n n Initialize npm project
npm-mode-npm-install SPC m n i Install npm package
npm-mode-npm-install-save SPC m n s Install npm package and save to package.json
npm-mode-npm-install-save-dev SPC m n d Install npm package and save to package.json as a dev dependency
npm-mode-npm-uninstall SPC m n u Uninstall npm package
npm-mode-npm-list SPC m n l List npm packages
npm-mode-npm-run SPC m n r Run npm task
npm-mode-visit-project-file SPC m n v Find file in npm project