AtomでCamelCaseをsnake_caseに変換する

目的

CamelCaseで書かれている変数名をsnake_caseに変換したい

  • 変換前 abcDef AbcDef
  • 変換後 abc_def abc_def

方法

  • メニューから Atom > Init Script
  • init.coffeeに下記のコードを登録して保存する
atom.commands.add 'atom-text-editor', 'markdown:snake-case', ->
  return unless editor = atom.workspace.getActiveTextEditor()

  selection = editor.getLastSelection()
  converted = ""
  for ch, idx in selection.getText()
    if /[A-Z]/.test(ch)
      if idx != 0
        converted += "_"
      converted += ch.toLowerCase()
    else
      converted += ch

  selection.insertText(converted)
  • 目的のファイルを新しいウィンドウで開き直す
  • 目的のCamelCaseの部分を選択する
  • コマンドパレットを開いてsnake caseを検索して実行する