概要
文字列をキャメルケースに変換するプラグインを作成
内容
仕様
・頭文字を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
実行前
複数選択中
実行後