Action Directory / Todolist

Install

Extract and jump to Todo item.

Shared by Nobuhito SATO

Script

var text = editor.getText().replace("\r\n", "\n").split("\n");
var prev_headers = [];
var headers = [];
var list = [];
var position = 0;
for (var i in text) {
    if (/^(#+)\s(.*)/.test(text[i])) {
        var level = RegExp.$1;
        var header = RegExp.$2;
        var count = level.length - 1;
        if (headers.length > count) {
            prev_headers = headers;
            headers = [];
            for (var j=0; j<count; j++) {
                headers.push(prev_headers[j]);
            }
        }
        headers.push(header);
    }
    if (/^\s{0,}\-\s\[\s\]\s(.*)/.test(text[i])) {
        list.push(RegExp.$1 + "|" + position + "|" + headers.join('/'));
    }
    position = position + text[i].length + 1;
}
ui.list('TODO', list, function(selectedValues) {
    if (selectedValues != undefined) {
        editor.setSelectedRange(selectedValues);
    }
});