Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

t7yang/vscode-hyper-javascript-snippets

Repository files navigation

Hyper JavaScript Snippets (Visual Studio Code)

Version Downloads Rating

Introduction

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.

Advantages

  1. Easy Learn - related snippets shared a same namespace or pattern, like every for loop prefix start with fo, all assignment snippet share *a pattern.
  2. Composable - No semicolon (point-free friendly), no newline, no placeholder, small snippet, the very end tabstop as possible, make composing snippets friendly.
  3. Avoid conflict - Try to avoid snippet's prefix conflict with variable name and built-in snippet's prefix.

Suggestions

  • Use Prettier to help you formating your code.
  • Disable built-in snippets with Control Snippets or hiding with built-in command Insert Snippet.
  • Set "editor.snippetSuggestions": "top".
  • Set "editor.formatOnSave": true,.
  • Set "editor.suggest.snippetsPreventQuickSuggestions": false,.

Known issues

  • Moving cursor on snippet content break tab stop (intented), but okey on user input content 😩.
    • 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.

FAQ

How to remember so many snippets prefix for new user?

Related snippets shared a same namespace, like for every for loop snippets prefix are start with fo, all assignment snippets shared *a pattern.

Declarations

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ドル

Conditional

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ドル) {2ドル}0ドル
case switch's case case 1ドル : 0ドル

Statement

Prefix Desc Body
fo for loop for (1ドル ; 2ドル ; 3ドル) 0ドル
foi for in loop for (const 1ドル in 2ドル) 0ドル
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ドル}

Functions

Prefix Desc Body
f function function (1ドル) {0ドル}
f function (TypeScript) function (1ドル)2ドル {0ドル}
fn named/generator function function 1ドル(2ドル) {0ドル}
fn named/generator function (TypeScript) function 1ドル(2ドル)3ドル {0ドル}
fa async function async function (1ドル) {0ドル}
fa async function (TypeScript) async function (1ドル)2ドル {0ドル}
fna async named/generator function async function 1ドル(2ドル) {0ドル}
fna async named/generator function (TypeScript) async function 1ドル(2ドル)3ドル {0ドル}
af arrow function (ES2015) (1ドル) => 0ドル
afa async arrow function (ES2015) async (1ドル) => 0ドル
ar arrow function with return type (ES2015, TypeScript) (1ドル)2ドル => 0ドル
ara async arrow function with return type (ES2015, TypeScript) async (1ドル)2ドル => 0ドル
ag generic/generator arrow function (ES2015, TypeScript) 1ドル(2ドル)3ドル => 0ドル
aga async generic/generator arrow function (ES2015, TypeScript) async 1ドル(2ドル)3ドル => 0ドル
iife immediately-invoked function expression (IIFE) (2ドル)(1ドル)0ドル
pd parameter destructuring with type (TypeScript) ${0:param} : ${1:type}

Iterables

Prefix Desc Body
seq sequence of 0..n [...Array(${1:length}).keys()]0ドル

Objects

Prefix Desc Body
ol object literal { 1ドル: 0ドル }

Classes

Prefix Desc Body
cs class (ES2015) class ${1:name} {
0ドル
}
cse class extends (ES2015) class ${1:name} extends ${2:base} {
0ドル
}
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ドル}

set ${1:property}(${2:value}) {}

Types

Prefix Desc Body
tof typeof typeof ${1:source} === 0ドル
iof instanceof ${1:source} instanceof ${0:Class}

Promises

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ドル
prn Promise any (ES2021) Promise.any(1ドル)0ドル
prt Promise type (TypeScript) Promise<0ドル>

ES2015 Modules

Prefix Desc Body
exp export (ES2015) deprecated: export 0ドル
expd export default (ES2015) deprecated: export default 0ドル
expas export as (ES2015) deprecated: export { 1ドル as 2ドル };0ドル
expf export from (ES2015) deprecated: export ${2:name} from '1ドル';0ドル
expaf export all from (ES2015) deprecated: export *2ドル from '1ドル';0ドル
ex export (ES2015) export 0ドル
exd export default (ES2015) export default 0ドル
exas export as (ES2015) export { 1ドル as 2ドル };0ドル
exf export from (ES2015) export ${2:name} from '1ドル';0ドル
exaf export all from (ES2015) export *2ドル from '1ドル';0ドル
im import (ES2015) import0ドル
imm import.meta (ES2015) import.meta0ドル
imu import.meta.url (ES2015) import.meta.url0ドル
imp import module (ES2015) import ${2:name} from '1ドル'3ドル;0ドル
imd import module dynamically (ES2020) import(1ドル)0ドル
imf import file (ES2015) import '1ドル';0ドル
impas import module as (ES2015) import ${2:*} as ${3:name} from '1ドル'3ドル;0ドル

Node.js

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ドル

Console

Prefix Desc Body
cl console.log console.log(1ドル)0ドル
cla console.assert console.assert(1ドル)0ドル
clcl console.clear console.clear(1ドル)0ドル
clc console.count console.count(1ドル)0ドル
clcr console.countReset console.countReset(1ドル)0ドル
cld console.debug console.debug(1ドル)0ドル
cldi console.dir console.dir(1ドル)0ドル
cldx console.dirxml console.dirxml(1ドル)0ドル
cle console.error console.error(1ドル)0ドル
clg console.group console.group(1ドル)
0ドル
console.groupEnd(1ドル)
clgc console.groupCollapsed console.groupCollapsed(1ドル)
0ドル
console.groupEnd(1ドル)
cli console.info console.info(1ドル)0ドル
cltb console.table console.table(1ドル)0ドル
clt console.time console.time('1ドル')
0ドル
console.timeEnd('1ドル')
cltl console.timeLog console.timeLog(1ドル)0ドル
cltr console.trace console.trace(1ドル)0ドル
clw console.warn console.warn(1ドル)0ドル

Timers

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ドル

Miscellaneous

Prefix Desc Body
us insert 'use strict' statement 'use strict';

TypeScript (Data Types)

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 and typescriptreact file type.

Packages

No packages published

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /