Emmetで100、0.01単位のインクリメント/デクリメントを追加する方法(Atom編)


前回の記事
「Emmetで100、0.01単位のインクリメント/デクリメントを追加する方法(Brackets編)」のAtom編です。

Emmetで100、0.01単位のインクリメント/デクリメントを追加する方法(Brackets編)


メニュー、ショートカットキー設定以外はBracketsとほぼ同じ方法で追加できました!
この方法で変更した後、emmetをアップデートするとおそらく変更がリセットされるので、その際はまた手動でカスタマイズする必要がありそうです。そのときには記述方法が変わってこの方法が使えなくなる可能性もあるかと思いますのでご了承ください。

※以下の環境で動作を確認しています。
MacOS Sierra
Atomバージョン1.28.2
Emmetバージョン2.4.3
※こちらの設定により発生したいかなる問題にも責任を追う事ができません。自己責任でお願い致します。
元のフォルダを取っておくなどしてから試すことをおすすめ致します。


設定方法

※ショートカット設定も含めると8手順程で設定できます。

①Atomに拡張機能「Emmet」を入れておく。

②Atomを開いてメニューの「Atom」→「環境設定」を選択。

③「設定」の左メニューの一番下の「設定フォルダを開く」をクリック。
※日本語化していない場合「Settings」等かと思います。

④jsを変更する_1。
設定方法③で左のProjectフォルダに出てくる「.atom」フォルダから以下のファイルを開き、
/packages/emmet/node_modules/emmet/lib/action/incrementDecrement.js

1. 36行目辺りの

increment10Action: function(editor) {
return this.incrementNumber(editor, 10);
},
の下に

increment100Action: function(editor) {
return this.incrementNumber(editor, 100);
},

increment001Action: function(editor) {
return this.incrementNumber(editor, .01);
},

を追加して保存する。

2. 48行目辺りの

decrement10Action: function(editor) {
return this.incrementNumber(editor, -10);
},
の下に
decrement100Action: function(editor) {
return this.incrementNumber(editor, -100);
},

decrement001Action: function(editor) {
return this.incrementNumber(editor, -.01);
},

を追加して保存する。

⑤jsを変更する_2。
設定方法③で左のProjectフォルダに出てくる「.atom」フォルダから以下のファイルを開き、
/packages/emmet/node_modules/emmet/lib/action/main.js
97行目辺りの

[1, -1, 10, -10, 0.1, -0.1].forEach(function(num) {

[1, -1, 10, -10, 0.1, -0.1, 100, -100, 0.01, -0.01].forEach(function(num) {
に変更(「, 100, -100, 0.01, -0.01」を追加)、
99行目辺りの
var suffix = String(Math.abs(num)).replace('.', '').substring(0, 2);

「.substring(0, 2);」

「.substring(0, 3);」
に変更して保存する。

⑥メニューに追加する。
設定方法③で左のProjectフォルダに出てくる「.atom」フォルダから以下のファイルを開き、
/packages/emmet/menus/emmet.json
48行目辺りの

{
"label": "Decrement number by 0.1",
"command": "emmet:decrement-number-by-01"
},
の下に
{
"label": "Increment number by 0.01",
"command": "emmet:increment-number-by-001"
},
{
"label": "Decrement number by 0.01",
"command": "emmet:decrement-number-by-001"
},
{
"label": "Increment number by 100",
"command": "emmet:increment-number-by-100"
},
{
"label": "Decrement number by 100",
"command": "emmet:decrement-number-by-100"
}
を追加して保存する。

⑦Atomを再起動し、メニューの「パッケージ」→「Emmet」→「Numbers」を開く。
0.01、100単位が増えていて使用可能になっていますので試してみて下さい。

⑧更にショートカットを設定したい場合。
メニュー「Atom」→「キーマップ…」を開いて、
以下のように0.01、100についての項目を足して、お好みのショートカットを設定して下さい(「emmet:」を付けないと動かないようです。)。

'cmd-shift-up': 'emmet:increment-number-by-001'

例えばこんな感じ。

変更を保存してAtomを再起動し、メニューの「パッケージ」→「Emmet」→「Numbers」を開いてショートカットが表示されていれば設定できています。
表示されていない場合、Atomで設定できないショートカットの可能性があるので変更して下さい。