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


emmetで数値のインクリメント/デクリメントのショートカットがあって便利!と思ったのですが、0.01単位は用意されておらず、カスタマイズできる方法を調べました。同様に100単位についても追加しています。
(Brackets以外のエディタでの方法は未調査です。)
※18/8/11追記
この方法で変更した後、emmetをアップデートするとおそらく変更がリセットされるので、その際はまた手動でカスタマイズする必要がありそうです。そのときには記述方法が変わってこの方法が使えなくなる可能性もあるかと思いますのでご了承ください。

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


設定方法

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

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

②Bracketsを開いてメニューの「ヘルプ」→「拡張機能のフォルダーを開く」。

③jsを変更する_1。
設定方法②で開いたフォルダから以下のファイルを開き、
user/brackets-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。
設定方法②で開いたフォルダから以下のファイルを開き、
user/brackets-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);」
に変更して保存する。

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

⑥更にショートカットを設定したい場合。
※18/8/11追記
「user/brackets-emmet/keymap.json」を変更する方法を記載していましたが、ユーザーキーマップで変更した方が良いようです!
メニューの「デバッグ」→「ユーザーキーマップ」を開いて、
以下のように0.01、100についての項目を足して、お好みのショートカットを設定して下さい(「io.emmet」を付けないと動かないようです。)。

"Cmd-Alt-Up" : "io.emmet.increment_number_by_001",

例えばこんな感じ。

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

以下、以前に記載していた方法です。
user/brackets-emmet/keymap.json
の19行目辺りの

"increment_number_by_01": "(設定されたショートカット)",
"decrement_number_by_01": "(設定されたショートカット)",
"increment_number_by_1": "(設定されたショートカット)",
"decrement_number_by_1": "(設定されたショートカット)",
"increment_number_by_10": "(設定されたショートカット)",
"decrement_number_by_10": "(設定されたショートカット)",
に、以下のように0.01、100についての項目を足して、お好みのショートカットを設定して下さい。
"increment_number_by_001": "(設定したいショートカット)",
"decrement_number_by_001": "(設定したいショートカット)",
"increment_number_by_100": "(設定したいショートカット)",
"decrement_number_by_100": "(設定したいショートカット)",

例えばこんな感じ。