雪国の技術的な夏

プログラミング的な話や特定のツール設定の話など。 ※ただし変態に限る。

TODO:[sakura editor]マクロ:キーワードヘルプ編集用文字列への相互変換

導入方法はググレカス


TODO;記事としての見た目は使い方が慣れてきたら補正する予定。



[動作環境]
sakura:Ver2.0.5.0
2.0.5.1
OS:Windows7
Windows10

[ソース]






・chKhpToLines.js

////////////////////////////////////////////////////////////////////////////////
// [説明]
//   .khp用に"\n"がついてるのを改行コードとして変換する
// [用途]
//   khp用の一行を編集するときに視覚的にするために
// [その他]
//   -
// 
////////////////////////////////////////////////////////////////////////////////


// 選択文字情報取得
var beginLine = Editor.GetSelectLineFrom();										// 選択開始行番号
var endLine = Editor.GetSelectLineTo();											// 選択終了行番号
var lineCount = (0<beginLine || 0<endLine) ? (endLine - beginLine + 1):(-1);	// 選択されている行数

// 1行以上ある場合
if(0 < lineCount)
{
	var result = ''; // 結果格納用
	for(var i = beginLine; i <= endLine; i++)
	{
		// 行の内容を取得
		var lineContent = Editor.GetLineStr(i);
		// 改行コードごとに分割(TODO:※連続改行ができないぽ)
		var arrLine = lineContent.split(/(\\n|\\r|\\r\\n)/);
		
		// スペースで区切り、バイナリ表示に整形
		for(var j = 0; j < arrLine.length; j++)
		{
			// 取得データに改行をつけていく
			result += arrLine[j];
			result += "\r\n";
		}
	}
	Editor.InsText(result);
}



・chLinesToKhp.js

////////////////////////////////////////////////////////////////////////////////
// [説明]
//   複数行のテキストを.khp用に"\n"を付ける
// [用途]
//   khp用の一行をWeb説明から落とす時に簡単に作りたい
// [その他]
//   -
// 
////////////////////////////////////////////////////////////////////////////////


// 選択文字情報取得
var beginLine = Editor.GetSelectLineFrom();										// 選択開始行番号
var endLine = Editor.GetSelectLineTo();											// 選択終了行番号
var lineCount = (0<beginLine || 0<endLine) ? (endLine - beginLine + 1):(-1);	// 選択されている行数

// 1行以上ある場合
if(0 < lineCount)
{
	var result = ''; // 結果格納用
	for(var i = beginLine; i <= endLine; i++)
	{
		// 行の内容を取得
		var lineContent = Editor.GetLineStr(i);
		// 右側空白除外
		lineContent = lineContent.replace(/\s+$/, '');
		
		if(i != endLine)
		{
			// 一行ごとに改行文字挿入
			result += lineContent + "\\n";
		}
		else
		{
			// 最後の行は改行要らぬ
			result += lineContent;
		}
		
	}
	Editor.InsText(result);
}