「スネークケース ⇔ キャメルケースの変換」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
MSY-07 (トーク | 投稿記録)
空行の除去
MSY-07 (トーク | 投稿記録)
SyntaxHighlightにcopyの追加
 
(同じ利用者による、間の6版が非表示)
2行目: 2行目:
スネークケースとキャメルケースを相互変換するためのマクロです。
スネークケースとキャメルケースを相互変換するためのマクロです。


== スネークケースをキャメルケースに変換 ==
== ソースコード ==
<syntaxhighlight lang="javascript">
=== スネークケースをキャメルケースに変換 ===
<syntaxhighlight lang="javascript" copy>
#title="スネークケースをキャメルケースに変換"
#title="スネークケースをキャメルケースに変換"
/**
/**
36行目: 37行目:
</syntaxhighlight>
</syntaxhighlight>


== キャメルケースをスネークケースに変換 ==
=== キャメルケースをスネークケースに変換 ===
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript" copy>
#title="キャメルケースをスネークケースに変換"
#title="キャメルケースをスネークケースに変換"
/**
/**
70行目: 71行目:
</syntaxhighlight>
</syntaxhighlight>


== スネークケース ⇔ キャメルケースのトグル変換 ==
=== スネークケース ⇔ キャメルケースのトグル変換 ===
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript" copy>
#title="スネークケース ⇔ キャメルケースのトグル変換"
#title="スネークケース ⇔ キャメルケースのトグル変換"
/**
/**
112行目: 113行目:
</syntaxhighlight>
</syntaxhighlight>


== 更新履歴 ==
== 変更履歴 ==
* 2019/03/03 初版
* 1.0.1 (2020-06-23)
* 2020/06/23 トグル変換マクロを追加
** トグル変換マクロを追加
* 1.0.0 (2019-03-03)
** 初版

2025年6月30日 (月) 00:31時点における最新版

概要[編集]

スネークケースとキャメルケースを相互変換するためのマクロです。

ソースコード[編集]

スネークケースをキャメルケースに変換[編集]

#title="スネークケースをキャメルケースに変換"
/**
 * スネークケースをキャメルケースに変換するためのマクロ
 */

// カーソル位置とウィンドウ位置を保存
var pointX = document.selection.GetActivePointX(mePosLogical);
var pointY = document.selection.GetActivePointY(mePosLogical);
var scrollX = window.ScrollX;
var scrollY = window.ScrollY;

// テキストを選択していない場合は全選択
if (document.selection.Text == "") {
	document.selection.SelectAll();
}
// 選択中のテキストを取得
var selectionText = document.selection.Text;

// キャメルケースに置換
selectionText = selectionText.replace(/(_)([a-z])/g, function(s) {
	return s.slice(1).toUpperCase();
});

// 置換後の文字列を設定
document.selection.Text = selectionText;

// カーソル位置とウィンドウ位置を復元
document.selection.SetActivePoint(mePosLogical, pointX, pointY, false);
window.ScrollX = scrollX;
window.ScrollY = scrollY;

キャメルケースをスネークケースに変換[編集]

#title="キャメルケースをスネークケースに変換"
/**
 * キャメルケースをスネークケースに変換するためのマクロ
 */

// カーソル位置とウィンドウ位置を保存
var pointX = document.selection.GetActivePointX(mePosLogical);
var pointY = document.selection.GetActivePointY(mePosLogical);
var scrollX = window.ScrollX;
var scrollY = window.ScrollY;

// テキストを選択していない場合は全選択
if (document.selection.Text == "") {
	document.selection.SelectAll();
}
// 選択中のテキストを取得
var selectionText = document.selection.Text;

// キャメルケースに置換
selectionText = selectionText.replace(/([A-Z])/g, function(s) {
	return '_' + s.toLowerCase();
});

// 置換後の文字列を設定
document.selection.Text = selectionText;

// カーソル位置とウィンドウ位置を復元
document.selection.SetActivePoint(mePosLogical, pointX, pointY, false);
window.ScrollX = scrollX;
window.ScrollY = scrollY;

スネークケース ⇔ キャメルケースのトグル変換[編集]

#title="スネークケース ⇔ キャメルケースのトグル変換"
/**
 * スネークケース ⇔ キャメルケースをトグル変換するためのマクロ
 */

// カーソル位置とウィンドウ位置を保存
var pointX = document.selection.GetActivePointX(mePosLogical);
var pointY = document.selection.GetActivePointY(mePosLogical);
var scrollX = window.ScrollX;
var scrollY = window.ScrollY;

// テキストを選択していない場合は全選択
if (document.selection.Text == "") {
	document.selection.SelectAll();
}
// 選択中のテキストを取得
var selectionText = document.selection.Text;

// キャメルケースに置換
replaceText = selectionText.replace(/(_)([a-z])/g, function(s) {
	return s.slice(1).toUpperCase();
});

// キャメルケースに置換後、元のテキストと同じならスネークケースに置換
if (selectionText == replaceText) {
	// キャメルケースに置換
	replaceText = selectionText.replace(/([A-Z])/g, function(s) {
		return '_' + s.toLowerCase();
	});
}

// 置換後の文字列を設定
document.selection.Text = replaceText;

// カーソル位置とウィンドウ位置を復元
document.selection.SetActivePoint(mePosLogical, pointX, pointY, false);
window.ScrollX = scrollX;
window.ScrollY = scrollY;

変更履歴[編集]

  • 1.0.1 (2020-06-23)
    • トグル変換マクロを追加
  • 1.0.0 (2019-03-03)
    • 初版
スポンサーリンク