Movatterモバイル変換


[0]ホーム

URL:


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

Visual Studio Code snippet extension for JavaScript and TypeScript

License

NotificationsYou must be signed in to change notification settings

t7yang/vscode-hyper-javascript-snippets

Repository files navigation

VersionDownloadsRating

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 MarketplaceHyper JavaScript Snippets.

Advantages

  1. Easy Learn - related snippets shared a same namespace or pattern, like everyfor loop prefix start withfo, 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

  • UsePrettier to help you formating your code.
  • Disable built-in snippets withControl Snippets or hiding with built-in commandInsert 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 offeditor.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 everyfor loop snippets prefix are start withfo, all assignment snippets shared*a pattern.

Declarations

PrefixDescBody
vavar assignmentvar $1 = $0
lalet assignment (ES2015)let $1 = $0
caconst assignment (ES2015)const $1 = $0
vadvar destructuring assignment (ES2015)var ${0:dest} = $1
ladlet destructuring assignment (ES2015)let ${0:dest} = $1
cadconst destructuring assignment (ES2015)const ${0:dest} = $1

Conditional

PrefixDescBody
ifif statementif ($1) $0
elelse statementelse $0
ifelif/else statementif ($1) $2 else $0
elifelse if statementelse if ($1) $0
terternary operator$1 ? $2 : $0
swswitch caseswitch ($1) {$2}$0
caseswitch's casecase $1 : $0

Statement

PrefixDescBody
fofor loopfor ($1 ; $2 ; $3) $0
foifor in loopfor (const $1 in $2) $0
foffor of loop (ES2015)for (const $1 of $2) $0
foafor await of loop (ES2018)for await (const $1 of $2) $0
whwhile loopwhile ($1) $0
tctry/catchtry {$1} catch $2 {$0}
tftry/finallytry {$1} finally {$0}
tcftry/catch/finallytry {$1} catch $2 {$3} finally {$0}

Functions

PrefixDescBody
ffunctionfunction ($1) {$0}
ffunction (TypeScript)function ($1)$2 {$0}
fnnamed/generator functionfunction $1($2) {$0}
fnnamed/generator function (TypeScript)function $1($2)$3 {$0}
faasync functionasync function ($1) {$0}
faasync function (TypeScript)async function ($1)$2 {$0}
fnaasync named/generator functionasync function $1($2) {$0}
fnaasync named/generator function (TypeScript)async function $1($2)$3 {$0}
afarrow function (ES2015)($1) => $0
afaasync arrow function (ES2015)async ($1) => $0
ararrow function with return type (ES2015, TypeScript)($1)$2 => $0
araasync arrow function with return type (ES2015, TypeScript)async ($1)$2 => $0
aggeneric/generator arrow function (ES2015, TypeScript)$1($2)$3 => $0
agaasync generic/generator arrow function (ES2015, TypeScript)async $1($2)$3 => $0
iifeimmediately-invoked function expression (IIFE)($2)($1)$0
pdparameter destructuring with type (TypeScript)${0:param} : ${1:type}

Iterables

PrefixDescBody
seqsequence of 0..n[...Array(${1:length}).keys()]$0

Objects

PrefixDescBody
olobject literal{ $1: $0 }

Classes

PrefixDescBody
csclass (ES2015)class ${1:name} {
  $0
}
cseclass extends (ES2015)class ${1:name} extends ${2:base} {
  $0
}
cstclass constructor (ES2015)constructor($1) {$0}
csmmethod (ES2015)${1:name}($2) {$0}
csmaasync method (ES2015)async ${1:name}($2) {$0}
gtergetter (ES2015)get ${1:property}() {$0}
stersetter (ES2015)set ${1:property}(${2:value}) {$0}
gsgetter and setter (ES2015)get ${1:property}() {$0}

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

Types

PrefixDescBody
toftypeoftypeof ${1:source} === $0
iofinstanceof${1:source} instanceof ${0:Class}

Promises

PrefixDescBody
prPromise (ES2015)new Promise($0)
prsPromise resolve (ES2015)Promise.resolve($1)$0
prjPromise reject (ES2015)Promise.reject($1)$0
praPromise all (ES2015)Promise.all($1)$0
prasPromise all settled (ES2020)Promise.allSettled($1)$0
prnPromise any (ES2021)Promise.any($1)$0
prtPromise type (TypeScript)Promise<$0>

ES2015 Modules

PrefixDescBody
expexport (ES2015)deprecated: export $0
expdexport default (ES2015)deprecated: export default $0
expasexport as (ES2015)deprecated: export { $1 as $2 };$0
expfexport from (ES2015)deprecated: export ${2:name} from '$1';$0
expafexport all from (ES2015)deprecated: export *$2 from '$1';$0
exexport (ES2015)export $0
exdexport default (ES2015)export default $0
exasexport as (ES2015)export { $1 as $2 };$0
exfexport from (ES2015)export ${2:name} from '$1';$0
exafexport all from (ES2015)export *$2 from '$1';$0
imimport (ES2015)import$0
immimport.meta (ES2015)import.meta$0
imuimport.meta.url (ES2015)import.meta.url$0
impimport module (ES2015)import ${2:name} from '$1'$3;$0
imdimport module dynamically (ES2020)import($1)$0
imfimport file (ES2015)import '$1';$0
impasimport module as (ES2015)import ${2:*} as ${3:name} from '$1'$3;$0

Node.js

PrefixDescBody
cbNode.js style callback(err, ${1:response}) => {$0}
rerequirerequire(${1:path})$0
reqrequire assignmentconst ${2:name} = require('$1');$0
emexports.memberexports.$1 = $2;$0
memodule.exportsmodule.exports = $1$0
onevent handleron('${1:event}', ${2:callback});$0

Console

PrefixDescBody
clconsole.logconsole.log($1)$0
claconsole.assertconsole.assert($1)$0
clclconsole.clearconsole.clear($1)$0
clcconsole.countconsole.count($1)$0
clcrconsole.countResetconsole.countReset($1)$0
cldconsole.debugconsole.debug($1)$0
cldiconsole.dirconsole.dir($1)$0
cldxconsole.dirxmlconsole.dirxml($1)$0
cleconsole.errorconsole.error($1)$0
clgconsole.groupconsole.group($1)
$0
console.groupEnd($1)
clgcconsole.groupCollapsedconsole.groupCollapsed($1)
$0
console.groupEnd($1)
cliconsole.infoconsole.info($1)$0
cltbconsole.tableconsole.table($1)$0
cltconsole.timeconsole.time('$1')
$0
console.timeEnd('$1')
cltlconsole.timeLogconsole.timeLog($1)$0
cltrconsole.traceconsole.trace($1)$0
clwconsole.warnconsole.warn($1)$0

Timers

PrefixDescBody
settsetTimeoutsetTimeout(${2:callback}, ${1:delay})$0
setinsetIntervalsetInterval(${2:callback}, ${1:delay})$0
setimsetImmediate (node.js)setImmediate(${1:callback}$2)$0
ntprocess nextTick (node.js)process.nextTick($1);$0

Miscellaneous

PrefixDescBody
usinsert 'use strict' statement'use strict';

TypeScript (Data Types)

PrefixDescBody
typtype (TypeScript)type ${1:name} = $0
intinterface (TypeScript)interface ${1:name} {$2}$0
enuenum (TypeScript)enum ${1:name} {$2}$0
encconst enum (TypeScript)const enum ${1:name} {$2}$0
modmodule (TypeScript)module ${1:name} {$2}$0
namnamespace (TypeScript)namespace ${1:name} {$2}$0

Only intypescript andtypescriptreact file type.

About

Visual Studio Code snippet extension for JavaScript and TypeScript

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp