atomエディタは最初からスニペットが使えます。
cmd+,でsettingsを開いて左サイドバーの検索窓に[language]と入力すると、言語別に登録済のスニペットが見られます。
ここではCoffeeScriptのスニペットをまとめてみたいと思います。
基本
Subheader
/3
←このキーを入力した後でTabキーを押すと
↓この様に変換されます。(以下も同じ)
#
# -------------------------
コメントでサブヘッダーを挿入する用?
Key-value pair
:
"key": value
{:と入力した後でTabると幸せになれるかも。
ちなみにTabを押すたびにkey(""込み)-key(""内部)-valueと選択範囲を移動できます。
require
req
sys = require "sys"
node.jsではrequireはよく使うので必修。
Function
fun
(args) ->
# body...
Function (bound)
bfun
(args) =>
# body...
注記
CoffeeScript 言語リファレンス - sappari wiki http://memo.sappari.org/coffeescript/coffeescript-langref
Class
cla
class ClassName extends Ancestor
constructor: (args) ->
# body...
制御構文
IF
if
if condition
# body...
If .. Else
ife
if condition
# body...
else
# body...
Else if
elif
else if condition
# body...
Ternary If (三項演算子)
ifte
if condition then value else other
注記
if a then val = b else val = c
という式は
val = if a then b else c
と同義である。
しかしCoffeeScriptで
val = a ? b : c
と書いてしまうと
val = typeof a !== "undefined" && a !== null ? a : {
b: c
};
上記のようにコンパイルされてしまうので注意。
Unless
unl
action unless condition
注記
Unlessは以下の様なjsにコンパイルされる。
conditionが偽ならactionを読み込む。
val = 1 unless condition
if (!condition) {
val = 1;
}
Comprehension
fora
for name in array
# body...
for in は配列を回す
comprehension
foro
for key, value of Object
# body...
for ofは連想配列を回す
Range comprehension (inclusive)
forr
for name in [start..finish] by step
# body...
startが1、finishが10とした場合、1-10のRangeになります。
Range comprehension (exclusive)
forrex
for name in [start...finish] by step
# body...
startが1、finishが10とした場合、1-9のRangeになります。
Switch
swi
switch object
when value
# body...
注記
CoffeeScriptのSwitchはbreakが不要です。
thenを使えば一行で条件と処理を書けます。
またdefaultのかわりにelseを使います。
switch object
when 1 then a()
when 2
b()
else
c()
switch (object) {
case 1:
a();
break;
case 2:
b();
break;
default:
c();
}
Array(配列)
Point array
pt
[, ]
Range array
ra
[[, ], [, ]]
コンソール出力
log
log
console.log
error
error
console.error
warn
warn
console.warn
errorやwarnは知りませんでした。そんなのあるんですね。
######consoleオブジェクトが持つlog以外の便利メソッド18
Mocha用関数
Describe
de
describe "description", ->
body
Expectation
ex
expect().to
It block
it
it "", ->
#Jasmine用
After each
af
afterEach ->
Before each
be
beforeEach ->
Create Jasmine spy
spy
jasmine.createSpy("description")
CoffeeScriptの復習も兼ねて書いてみましたが、間違いがあったらご指摘お願いします。