1

keymap.csonJavaScript ソースのインデントが少し異なるようにファイルを更新しようとしています。caseのインデントとdefaultステートメントを削除したくありませんswitch

デフォルトでは、Atom は次のようにフォーマットします。

switch(x) {
case 1:
    //stuff
case 2:
    //stuff
default:
    //stuff
}

私は自分の case ステートメントを 1 回インデントする (そしてもう一度インデントする//stuff) のが好きです。

だから私はキーマップを編集して、このようにフォーマットするようにしようとしています:

switch(x) {
    case 1:
        //stuff
    case 2:
        //stuff
    default:
        //stuff
}

残念ながら、私が何をしようとしても、「ケース」の後にスペースバーを押すとすぐにインデントの減少を止めることができません。

Keymaps Documentationから、次の coffeescript をkeymap.csonファイルに入れると、デフォルトの動作が無効になり、新しい動作 (|case|default正規表現の 2 行目から省略される) を追加する必要があるように見えますが、なぜ機能しないのかわかりません:

'.source.js':
    'editor':
        'decreaseIndentPattern': 'unset!'

'.source.js':
  'editor':
    'decreaseIndentPattern': '(?x)
        ^(.*\\*/)?\\s*(\\}|\\))
      | ^\\s* else \\s*$
      '

元のキーマップはlanguage-javascript パッケージ hereにあると思います。

4

1 に答える 1

0

これはおそらく技術的にはキーマップではないため、 でオーバーライドできないと判断しましたkeymap.cson。私が最終的に行ったことは、 language-javascript リポジトリをフォークし、変更を加え、元のlanguage-javascriptパッケージをアンインストールし、代わりにカスタム フォークをインストールすることでした。

代わりに実行時にこれを更新する方法があるかどうかを知りたいです。このソリューションでは、フォークをアップストリームの変更で手動で最新の状態に保つ必要があります。

編集: この特定の変更の単なる更新であり、実際にはPR #36 を介しlanguage-javascriptて公式パッケージに受け入れられました。

于 2014-06-24T15:58:10.020 に答える