forked from tdamdouni/Pythonista
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathshiftleftTAB.js
More file actions
39 lines (32 loc) · 952 Bytes
/
shiftleftTAB.js
File metadata and controls
39 lines (32 loc) · 952 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Outdent lines by removing initial tabs
var indentChar = '\t';
var lnRange = getSelectedLineRange();
var ln = getTextInRange(lnRange[0],lnRange[1]);
var selRange = getSelectedRange();
var lines = ln.split('\n');
var charsRemoved = 0;
var firstLineIndent = true;
for (var ix=0; ix < lines.length; ix++) {
if (lines[ix].length > 0) {
if (lines[ix].indexOf(indentChar) == 0) {
lines[ix] = lines[ix].slice(indentChar.length,lines[ix].length-indentChar.length+1);
charsRemoved = charsRemoved + indentChar.length;
}
else {
if (ix == 0) {
firstLineIndent = false;
}
}
}
}
setTextInRange(lnRange[0],lnRange[1],lines.join("\n"));
var startAdj = 0;
if (firstLineIndent) {
startAdj = indentChar.length;
}
if (lnRange[0] < selRange[0]) {
setSelectedRange(selRange[0]-startAdj,selRange[1]-charsRemoved+indentChar.length);
}
else {
setSelectedRange(selRange[0]-startAdj,selRange[1]-charsRemoved);
}