Hyper JavaScript Snippets is a snippets collection for JavaScript and TypeScript. The snippets follow some rules to make it more friendly to intellisense, point-free-style programming etc. Prettier is highly recommanded to work with this extension.
Install from VSCode Extension Marketplace Hyper JavaScript Snippets.
- Cursor to the end - more easy to go next and let developer decide ending semicolon.
- No semicolon - for point-free friendly, except some snippets than surely end up with a semicolon. (👎 Standard JS Style)
- No newline - except few "big structure" snippets (like for loop).
- No placeholder - except something break without a placeholder (like import module).
- Use Prettier to help you formating your code.
- Set
"editor.snippetSuggestions": "top"
. - Set
"editor.formatOnSave": true,
. - Set
"editor.suggest.snippetsPreventQuickSuggestions": false,
.
- Moving cursor when typing in active snippet break tab stop (intented), but sometime okey 😩.
- Can not use "choice" to provide selection, affect: destrucring assignment...
- There is no intenllisense / autocomplete hint when typing in active snippet (VSCode default).
- Affect: No more autocomplete hint including any snippet, object methods, or global function .
- Turn off
editor.suggest.snippetsPreventQuickSuggestions
help a bit.
- Can not correctly generate paired bracket when there is a character right beside cursor.
- A space added before
:
, affect:sw
,case
,pd
, etc.
- A space added before
Prefix | Desc | Body |
---|---|---|
va |
var assignment | var ${1} = ${0} |
la |
let assignment (ES2015) | let ${1} = ${0} |
ca |
const assignment (ES2015) | const ${1} = ${0} |
vad |
var destructuring assignment (ES2015) | var ${0:dest} = ${1} |
lad |
let destructuring assignment (ES2015) | let ${0:dest} = ${1} |
cad |
const destructuring assignment (ES2015) | const ${0:dest} = ${1} |
Prefix | Desc | Body |
---|---|---|
if |
if statement | if (${1}) ${0} |
el |
else statement | else ${0} |
ifel |
if/else statement | if (${1}) ${2} else ${0} |
elif |
else if statement | else if (${1}) ${0} |
ter |
ternary operator | ${1} ? ${2} : ${0} |
sw |
switch case | switch (${1}) { |
case |
switch's case | case ${1} : ${0} |
Prefix | Desc | Body |
---|---|---|
fo |
for loop | for (${1} ; ${2} ; ${3}) ${0} |
foi |
for in loop | for (const ${1} in ${2}) { |
fof |
for of loop (ES2015) | for (const ${1} of ${2}) ${0} |
foa |
for await of loop (ES2018) | for await (const ${1} of ${2}) ${0} |
wh |
while loop | while (${1}) ${0} |
tc |
try/catch | try {${1}} catch ${2} {${0}} |
tf |
try/finally | try {${1}} finally {${0}} |
tcf |
try/catch/finally | try {${1}} catch ${2} {${3}} finally {${0}} |
Prefix | Desc | Body |
---|---|---|
f |
function | function ${1} {${0}} |
fa |
async function | async function ${1} {${0}} |
af |
arrow function (ES2015) | ${1} => ${0} |
afa |
async arrow function (ES2015) | async ${1} => ${0} |
iife |
immediately-invoked function expression (IIFE) | (${2})(${1})${0} |
pd |
parameter destructuring with type (TypeScript) | ${0:param} : ${1:type} |
Prefix | Desc | Body |
---|---|---|
seq |
sequence of 0..n | [...Array(${1:length}).keys()]${0} |
Prefix | Desc | Body |
---|---|---|
ol |
object literal | { ${1}: ${0} } |
Prefix | Desc | Body |
---|---|---|
cs |
class (ES2015) | class ${1:name} { |
cse |
class extends (ES2015) | class ${1:name} extends ${2:base} { |
cst |
class constructor (ES2015) | constructor(${1}) {${0}} |
csm |
method (ES2015) | ${1:name}(${2}) {${0}} |
csma |
async method (ES2015) | async ${1:name}(${2}) {${0}} |
gter |
getter (ES2015) | get ${1:property}() {${0}} |
ster |
setter (ES2015) | set ${1:property}(${2:value}) {${0}} |
gs |
getter and setter (ES2015) | get ${1:property}() {${0}} |
Prefix | Desc | Body |
---|---|---|
tof |
typeof | typeof ${1:source} === ${0} |
iof |
instanceof | ${1:source} instanceof ${0:Class} |
Prefix | Desc | Body |
---|---|---|
pr |
Promise (ES2015) | new Promise(${0}) |
prs |
Promise resolve (ES2015) | Promise.resolve(${1})${0} |
prj |
Promise reject (ES2015) | Promise.reject(${1})${0} |
pra |
Promise all (ES2015) | Promise.all(${1})${0} |
pras |
Promise all settled (ES2020) | Promise.allSettled(${1})${0} |
pran |
Promise any (ES2021) | Promise.any(${1})${0} |
prt |
Promise type (TypeScript) | Promise<${0}> |
Prefix | Desc | Body |
---|---|---|
exp |
export (ES2015) | export ${0} |
expd |
export default (ES2015) | export default ${0} |
expas |
export as (ES2015) | export { ${1} as ${2} };${0} |
expf |
export from (ES2015) | export ${2:name} from '${1}';${0} |
expaf |
export all from (ES2015) | export *${2} from '${1}';${0} |
imp |
import module (ES2015) | import ${2:name} from '${1}';${0} |
impf |
import file (ES2015) | import '${1}';${0} |
impas |
import module as (ES2015) | import ${2:*} as ${3:name} from '${1}';${0} |
Prefix | Desc | Body |
---|---|---|
cb |
Node.js style callback | (err, ${1:response}) => {${0}} |
re |
require | require(${1:path})${0} |
req |
require assignment | const ${2:name} = require('${1}');${0} |
em |
exports.member | exports.${1} = ${2};${0} |
me |
module.exports | module.exports = ${1}${0} |
on |
event handler | on('${1:event}', ${2:callback});${0} |
Prefix | Desc | Body |
---|---|---|
cl |
console.log | console.log(${1})${0} |
ce |
console.error | console.error(${1})${0} |
cw |
console.warn | console.warn(${1})${0} |
cd |
console.dir | console.dir(${1})${0} |
ct |
console.time | console.time('${1}') |
Prefix | Desc | Body |
---|---|---|
sett |
setTimeout | setTimeout(${2:callback}, ${1:delay})${0} |
setin |
setInterval | setInterval(${2:callback}, ${1:delay})${0} |
setim |
setImmediate (node.js) | setImmediate(${1:callback}${2})${0} |
nt |
process nextTick (node.js) | process.nextTick(${1});${0} |
Prefix | Desc | Body |
---|---|---|
us |
insert 'use strict' statement | 'use strict'; |
Prefix | Desc | Body |
---|---|---|
typ |
type (TypeScript) | type ${1:name} = ${0} |
int |
interface (TypeScript) | interface ${1:name} {${2}}${0} |
enu |
enum (TypeScript) | enum ${1:name} {${2}}${0} |
enc |
const enum (TypeScript) | const enum ${1:name} {${2}}${0} |
mod |
module (TypeScript) | module ${1:name} {${2}}${0} |
nam |
namespace (TypeScript) | namespace ${1:name} {${2}}${0} |
Only in
typescript
andtypescriptreact
file type.