doomemacs/modules/lang/javascript
Henrik Lissner c05822ab39
bump: :lang
Emacs-Kotlin-Mode-Maintainers/kotlin-mode@876cc27dc1 -> Emacs-Kotlin-Mode-Maintainers/kotlin-mode@3e0c34087b
FStarLang/fstar-mode.el@3afbf04e4e -> FStarLang/fstar-mode.el@c95c2a61a6
Fanael/edit-indirect@7fffd87ac3 -> Fanael/edit-indirect@e3d86416bc
Fuco1/sphinx-mode@b5ac514e21 -> Fuco1/sphinx-mode@9d4075c106
Groovy-Emacs-Modes/groovy-emacs-modes@84f89b68ec -> Groovy-Emacs-Modes/groovy-emacs-modes@bf732d367b
NixOS/nix-mode@8e20de5ba7 -> NixOS/nix-mode@20ee8d8890
OCamlPro/ocp-indent@9e26c0a269 -> OCamlPro/ocp-indent@7c4d434132
ProofGeneral/PG@df19c7ba0e -> ProofGeneral/PG@e1e29acb04
Raku/raku-mode@eaac071f17 -> Raku/raku-mode@977b14a7c1
Sarcasm/irony-mode@5063d6b16d -> Sarcasm/irony-mode@870d1576fb
agda/agda@2816605bfd -> agda/agda@2816605bfd
amake/flutter.el@81c524a43c -> amake/flutter.el@08138f8c95
ananthakumaran/exunit.el@5bb115f327 -> ananthakumaran/exunit.el@0715c2dc2d
ananthakumaran/tide@28137ed904 -> ananthakumaran/tide@b93e555858
asok/projectile-rails@30828afbfa -> asok/projectile-rails@772f4766b5
asok/rake@9c204334b0 -> asok/rake@452ea0caca
brotzeit/rustic@f4b5c288af -> brotzeit/rustic@6eec971387
cdominik/cdlatex@f215b70c5c -> cdominik/cdlatex@8e963c6853
clojure-emacs/cider@36277802a4 -> clojure-emacs/cider@86dd3fee9d
codesuki/add-node-modules-path@7d9be65b3b -> codesuki/add-node-modules-path@63f047fd84
crystal-lang-tools/emacs-crystal-mode@15998140b0 -> crystal-lang-tools/emacs-crystal-mode@96a8058205
cython/cython@5b325c9860 -> cython/cython@fdea2d6bed
diml/utop@c87b8b2817 -> diml/utop@5d72a0ab34
dominikh/go-mode.el@32cbd78c0a -> dominikh/go-mode.el@3273fcece5
elixir-editors/emacs-elixir@6bbc1e5ac4 -> elixir-editors/emacs-elixir@e0d0466d83
emacs-csharp/csharp-mode@9917e1b97d -> emacs-csharp/csharp-mode@856ecbc0a7
emacs-ess/ESS@a7ce81bb76 -> emacs-ess/ESS@39eba28300
emacs-geiser/geiser@c1cc4da1ed -> emacs-geiser/geiser@9507e81a07
emacs-geiser/guile@cfd9116dcb -> emacs-geiser/guile@c641fcc50b
emacs-lsp/lsp-dart@813d3c92db -> emacs-lsp/lsp-dart@fda433671f
emacs-lsp/lsp-haskell@4e62cf897d -> emacs-lsp/lsp-haskell@7cf64944ab
emacs-lsp/lsp-java@ce03cb6574 -> emacs-lsp/lsp-java@0968038b9a
emacs-lsp/lsp-metals@695291761b -> emacs-lsp/lsp-metals@b7f77de694
emacs-lsp/lsp-pyright@d428dbcf18 -> emacs-lsp/lsp-pyright@3598bc7c47
emacs-php/php-mode@535aec8173 -> emacs-php/php-mode@5f26bec865
emacs-php/phpactor.el@272217fbb6 -> emacs-php/phpactor.el@34195f1533
emacs-straight/auctex@3b0a080ae5 -> emacs-straight/auctex@830e40a063
emacs-straight/csv-mode@8da54e8b4e -> emacs-straight/csv-mode@43f6106f0d
emacs-typescript/typescript.el@e824162051 -> emacs-typescript/typescript.el@88f317f0b6
erlang/otp@c1ab4b5424 -> erlang/otp@9ba9f6e60d
ethereum/emacs-solidity@6f7bd1641e -> ethereum/emacs-solidity@20fb77e089
factor/factor@7b451bb813 -> factor/factor@1aeafdb87b
fsharp/emacs-fsharp-mode@c90d762c06 -> fsharp/emacs-fsharp-mode@b3aa4c53fc
fxbois/web-mode@61f057a6ba -> fxbois/web-mode@efa853e5cf
godotengine/emacs-gdscript-mode@b7bfa6a3b2 -> godotengine/emacs-gdscript-mode@4badcf6a0c
greghendershott/racket-mode@a879a8d67b -> greghendershott/racket-mode@af9b760e7b
hakimel/reveal.js@918ee5610a -> hakimel/reveal.js@e281b3234e
haskell/haskell-mode@8402caa341 -> haskell/haskell-mode@cb573c8db5
hhvm/hack-mode@4c1c2b0939 -> hhvm/hack-mode@a522f61c08
technomancy/fennel-mode@47152970a9 -> https://git.sr.ht/~technomancy/fennel-mode@50ef3c6246f3
hvesalai/emacs-sbt-mode@e29464a82b -> hvesalai/emacs-sbt-mode@9fe1e8807c
hylang/hy-mode@5253533ddb -> hylang/hy-mode@df814865a1
idris-hackers/idris-mode@3cc9361b4c -> idris-hackers/idris-mode@65d6db1b75
iyefrat/evil-tex@aa0ddf8e76 -> iyefrat/evil-tex@0fa85c3fc8
jcollard/elm-mode@f2e2d0053f -> jcollard/elm-mode@d4e434fa18
joaotavora/sly@2e00c3bd4b -> joaotavora/sly@4513c382f0
jorgenschaefer/emacs-buttercup@1de6be465c -> jorgenschaefer/emacs-buttercup@f5cbf97e10
joshwnj/json-mode@0e819e519a -> joshwnj/json-mode@eedb456003
jrblevin/markdown-mode@541bd7b48a -> jrblevin/markdown-mode@521658eb32
jschaf/powershell.el@d1b3f95669 -> jschaf/powershell.el@ce1f0ae0b2
jwiegley/emacs-async@5d365ffc6a -> jwiegley/emacs-async@c78bab7506
leanprover/lean-mode@bf32bb9793 -> leanprover/lean-mode@c1c68cc946
ledger/ledger-mode@19b84dc766 -> ledger/ledger-mode@b55384d9cd
necaris/conda.el@7a34e06931 -> necaris/conda.el@9c28d7a853
nonsequitur/inf-ruby@03dd9c9d4e -> nonsequitur/inf-ruby@dbf4386bac
ocaml-ppx/ocamlformat@22a3707da3 -> ocaml-ppx/ocamlformat@9324ea439a
ocaml/dune@4d0a47edd5 -> ocaml/dune@4bc7629a5e
ocaml/merlin@e4791e2298 -> ocaml/merlin@5d59c70659
ocaml/tuareg@00faf47a7c -> ocaml/tuareg@04f5ab6be9
osv/company-web@f0cc9187c9 -> osv/company-web@863fb84b81
pashky/restclient.el@176d9cb655 -> pashky/restclient.el@9e2cfa8652
pezra/rspec-mode@92ef785010 -> pezra/rspec-mode@4215ff1f2d
polymode/polymode@54888d6c15 -> polymode/polymode@2094c92403
seagle0128/grip-mode@9220a560b4 -> seagle0128/grip-mode@6b427143a8
sebasmonia/sharper@08277b6c30 -> sebasmonia/sharper@96edd4a1db
stan-dev/stan-mode@9bb858b9f1 -> stan-dev/stan-mode@150bbbe5fd
swift-emacs/swift-mode@800efe2910 -> swift-emacs/swift-mode@0d1ef0ef18
tpapp/julia-repl@e90b1ed2cc -> tpapp/julia-repl@6c1d63511f
wbolster/emacs-python-pytest@b603c5c7f2 -> wbolster/emacs-python-pytest@ea53891a21
yoshiki/yaml-mode@63b637f846 -> yoshiki/yaml-mode@535273d5a1
ziglang/zig-mode@aba01b6199 -> ziglang/zig-mode@aa20d630b8

- Refactors the :lang rust module to reflect changes upstream, in
  rustic (thanks to #6154).

Close: #6154
Fix: #6070
2022-03-31 21:09:38 +02:00
..
autoload.el Guard skewer-*-mode checks in bound-and-true-p #3252 2020-05-31 22:34:42 -04:00
config.el bump: :core 2022-03-30 17:49:35 +02:00
doctor.el Add :tools lsp checks for +lsp flag 2019-04-24 18:16:05 -04:00
packages.el bump: :lang 2022-03-31 21:09:38 +02:00
README.org docs(javascript): fix tide-rename-symbol binding 2021-10-03 12:47:39 +02: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 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