scrapbox-editor-indent-line
機能
Scrapboxでtabによるインデント・アンインデントがアウトライナーライクな動きになる。
カーソルが行頭にない状態でも、tabで現在行をインデントする。
tab
を押すとインデント。
shift+tab
を押すとアンインデント。
前提
補足
以下の場合はタブキーはScrapbox標準の動作となる。
コードブロックの中
テーブルの中
ページ名サジェスト表示中
script.js(() => {
$('#text-input').on('keydown', e => {
if (e.keyCode != 0x09) return true;
if ($('.cursor-line .code-block').length != 0) return true;
if ($('.cursor-line .table-block').length != 0) return true;
if ($('.popup-menu').length != 0) return true;
let keydown = document.createEvent('Events');
keydown.initEvent('keydown', true, true);
keydown.keyCode = e.which = (e.shiftKey ? 37 : 39);
keydown.ctrlKey = true;
$('#text-input')[0].dispatchEvent(keydown);
return false;
});
})();
カーソルがテーブルにある時にtabでセル移動ができず、インデントしてしまうのに気がついた。
Scrapboxの
テーブル内でリンクが使えるようになった!!
カーソルがテーブルにある時に以前と同じようにtabでセル移動できるようにした。
diff- if ($('tr.cursor-line').length != 0) return;
+ if ($('.cursor-line .code-block').length != 0) return;