├── README.md └── editor plugins ├── ➡️缩进.js └── ⬅️缩进.js /README.md: -------------------------------------------------------------------------------- 1 | # JSBox-scripts 2 | A repo for some JSBox scripts 3 | 在这里存放一些 JSBox 脚本 4 | 5 | ## editor plugins 6 | 编辑器插件脚本 7 | ### ⬅️/➡️缩进 8 | 如题,方便加减缩进,相当于cmd/ctrl + [] 9 | 10 | 把代码复制到 JSBox 的编辑器插件里使用 11 | 12 | 修改开头的 number_of_spaces 常量就可以修改空格数量,默认为2 13 | -------------------------------------------------------------------------------- /editor plugins/➡️缩进.js: -------------------------------------------------------------------------------- 1 | const number_of_spaces = 2 2 | 3 | var range = $editor.selectedRange 4 | while (!$editor.selectedText.startsWith("\n")) { 5 | range.location = range.location - 1 6 | range.length = range.length + 1 7 | $editor.selectedRange = range 8 | } 9 | range.location = range.location + 1 10 | range.length = range.length - 1 11 | $editor.selectedRange = range 12 | while (!$editor.selectedText.endsWith("\n")) { 13 | range.length = range.length + 1 14 | $editor.selectedRange = range 15 | } 16 | range.length = range.length - 1 17 | $editor.selectedRange = range 18 | 19 | var text = $editor.selectedText.split("\n") 20 | $editor.selectedText = text.map(s => "".padEnd(number_of_spaces) + s).join("\n") 21 | range.length = range.length + text.length * number_of_spaces 22 | $editor.selectedRange = range 23 | -------------------------------------------------------------------------------- /editor plugins/⬅️缩进.js: -------------------------------------------------------------------------------- 1 | const number_of_spaces = 2 2 | 3 | var range = $editor.selectedRange 4 | while (!$editor.selectedText.startsWith("\n")) { 5 | range.location = range.location - 1 6 | range.length = range.length + 1 7 | $editor.selectedRange = range 8 | } 9 | range.location = range.location + 1 10 | range.length = range.length - 1 11 | $editor.selectedRange = range 12 | while (!$editor.selectedText.endsWith("\n")) { 13 | range.length = range.length + 1 14 | $editor.selectedRange = range 15 | } 16 | range.length = range.length - 1 17 | $editor.selectedRange = range 18 | var lengthChange = 0 19 | $editor.selectedText = $editor.selectedText.split("\n").map(s => { 20 | let es= countSpace(s) % number_of_spaces 21 | if (es != 0) { 22 | let p = number_of_spaces - es 23 | s = "".padEnd(p) + s 24 | lengthChange += p 25 | } 26 | for (var i = 0;i < number_of_spaces;i++) { 27 | s = shiftSpace(s) 28 | } 29 | return s 30 | }).join("\n") 31 | range.length = range.length + lengthChange 32 | $editor.selectedRange = range 33 | 34 | function shiftSpace(s) { 35 | if(s.startsWith(" ")) { 36 | s = s.replace(" ","") 37 | lengthChange-- 38 | } 39 | return s 40 | } 41 | 42 | function countSpace(s) { 43 | let n = 0 44 | let f = true 45 | s.split("").forEach(c => { 46 | if (f) { 47 | if (c == " ") { 48 | n++ 49 | } else { 50 | f = false 51 | } 52 | } 53 | }) 54 | return n 55 | } 56 | --------------------------------------------------------------------------------