選択行をソート
選択範囲内の行をソートするUserScriptを書いたよ~!
選択範囲の1行目と同じ or 1行目より浅いインデントの行だけソートするよ。
つまりこんなふうにインデントが深い行の順番はそのまま。
1行目がインデントされてなければ、インデントされてない行だけをソートする。
しっかり行を選択して実行するのがポイント。行の途中から選択しちゃうと悲しいことになる。
チェックボックスで始まる行をソートすると、未完[_]が上に、完了[x]が下になるよ。
詳しくはこっちを見てね→チェックボックスになるタグ & チェックボックスになるタグ 2
https://gyazo.com/e556c70e961f0259b6cecee58798c95c
ちなみに上のタスクの書き方はTodo.txtに影響されてます。
日本語の紹介記事もいっぱいあるし、Scrapboxとの相性もいいです。おすすめ!
code:script.js
scrapbox.PopupMenu.addButton({
title: 'ソート',
onClick: text => {
const re = /^(\s*)/
const b = re.exec(text)1.length
const lines = text.split(/\n/)
let sorting = [], chLines = []
for (var i = 0; i < lines.length; i++) {
const line = linesi
while (linesi + 1 && b < re.exec(linesi + 1)1.length)
chLines.push(lines++i)
if (0 < chLines.length) chLines.unshift('')
sorting.push(line + chLines.join('@n@'))
chLines = []
}
return sorting.sort().join('\n').replace(/@n@/g, '\n')
}
})
初出 2017-10-12