underscore形式の名前をCamelCaseに変換する
Atomのfind-and-replaceは正規表現が使えますが、JavaScript仕様なので、置換文字に\u(小文字を大文字に変える)などのメタ文字が使えません。
JavaScriptのreplaceは置換文字列引数に関数を与えることができ、それでなんでも変換できるようになっていますが、find-and-replaceには文字列しか渡せないので、表題である「underscore形式の名前をCamelCaseに変換する」ことができません。
なので、init.coffeeに簡単なコマンドを追加しました。
atom.commands.add 'atom-text-editor', 'my-tools:underscore-to-camelcase', -> return unless editor = atom.workspace.getActiveTextEditor() editor.buffer.replace /_[a-z]/, (str) -> str[1].toUpperCase()
これで、コマンドパレット(shift-cmd-p)からmy-tools:underscore-to-camelcaseを実行すれば、名前を変換してくれます。
逆変換は本来もっとややこしい気もしますが、あまりこだわらない単純な実装なら、以下のような感じ。
atom.commands.add 'atom-text-editor', 'my-tools:camelcase-to-underscore', -> return unless editor = atom.workspace.getActiveTextEditor() editor.buffer.replace /[a-z][A-Z]/, (str) -> str[0] + '_' + str[1].toLowerCase()