Tbpgr Blog

Recruiting Operations tbpgr(てぃーびー) のブログ

Sublime Text2 | 文字列をキャメルケースに変換するプラグインを作成

概要

文字列をキャメルケースに変換するプラグインを作成

内容

仕様
・頭文字をcapitalizeするかどうか設定で選べるようにする。
・capitalize設定を省略した場合はcapitalizeなしをデフォルトにする
・区切り文字はアンダースコア,半角スペースになっているものをキャメルケースへの変換対象とする

変換前 変換後 capitalize有無
hoge hoge false
hoge_hoge hogeHoge false
hoge hoge hogeHoge false
hoge Hoge true
hoge_hoge HogeHoge true
hoge hoge HogeHoge true
空文字 空文字 --
None None --

複数選択していた場合はすべてが処理対象

サンプルコード

# -*- coding: utf-8 -*-
import sublime, sublime_plugin
from string_utils import *
 
class ToCamelCommand(sublime_plugin.TextCommand):
  def run(self, edit, **kwargs):
    is_capitalize = False
    if kwargs["capitalize"] is not None:
      is_capitalize = bool(kwargs["capitalize"])

    for region in self.view.sel():
      if not region.empty():
        ret = StringUtils.to_camel(self.view.substr(region), is_capitalize)
        self.view.replace(edit, region, ret)

※string_utilsの部分は下記記事を参照
Python | 文字列をキャメルケースに変換
http://d.hatena.ne.jp/tbpg/20130624/1372079506

キーバインド設定

{ "keys": ["ctrl+shift+c"], "command": "to_camel", "args": {"capitalize": false }},
{ "keys": ["ctrl+alt+shift+c"], "command": "to_camel", "args": {"capitalize": true }}

実行例

capitalize false

実行前

複数選択中

実行後