「アウトラインのノードレベルを上げる」の版間の差分
タブと空行の除去 |
with文を使用しないソースコードに修正 |
||
| 27行目: | 27行目: | ||
reg = new RegExp("^\\" + NdMkr + "+"); | reg = new RegExp("^\\" + NdMkr + "+"); | ||
var sel = document.selection; | |||
//カーソル位置を保持 | |||
pos = sel.GetActivePos(); | |||
//ノード行先頭にカーソルがある場合、取り漏らすためカーソルを移動 | |||
sel.EndOfLine(false,mePosLogical); | |||
//カーソル手前に存在する先頭がノード記号である行から、旧ノード名を取得 | |||
//先頭n文字がノードの深さを示している想定 | |||
if (sel.Find("^\\"+ NdMkr , meFindPrevious | meFindReplaceRegExp) > 0){ | |||
sel.SelectLine(); | |||
ndNmOld = sel.Text; | |||
//深さ2以上の時のみ、動作。 | |||
if(ndNmOld.match(reg)[0].length > 1 ){ | |||
//旧ノード名の先頭1文字を削除し、新ノード名とする(深さを1減らしレベルを上げる) | |||
ndNmNew = ndNmOld.slice(1) ; | |||
//選択中の旧ノード名文字列を削除し、新ノード名を追記する。 | |||
sel.Delete(); | |||
document.Write(ndNmNew); | |||
//ノード記号を削除した分カーソル位置を巻き戻す | |||
pos --; | |||
} | } | ||
} | } | ||
//カーソル位置の復帰 | |||
sel.SetActivePos (pos, false); | |||
document.HighlightFind = false; | document.HighlightFind = false; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
スポンサーリンク