scrapbox-editor-indent-line
機能
Scrapboxでtabによるインデント・アンインデントがアウトライナーライクな動きになる。
カーソルが行頭にない状態でも、tabで現在行をインデントする。
tabを押すとインデント。
shift+tab を押すとアンインデント。
前提
補足
以下の場合はタブキーはScrapbox標準の動作となる。
コードブロックの中
テーブルの中
ページ名サジェスト表示中
code: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でセル移動ができず、インデントしてしまうのに気がついた。
table:テスト
a1 b1 c1
a3 b3 c3
Scrapboxのテーブル内でリンクが使えるようになった!! カーソルがテーブルにある時に以前と同じようにtabでセル移動できるようにした。
code:diff
- if ($('tr.cursor-line').length != 0) return;
+ if ($('.cursor-line .code-block').length != 0) return;