Merge pull request #231 from jtlebi/origin/shift-tab
(de)indent behaviour enhancement
This commit is contained in:
commit
9e509677dc
|
@ -32,6 +32,23 @@ ul.list-bullet6 { list-style-type: square; }
|
||||||
ul.list-bullet7 { list-style-type: disc; }
|
ul.list-bullet7 { list-style-type: disc; }
|
||||||
ul.list-bullet8 { list-style-type: circle; }
|
ul.list-bullet8 { list-style-type: circle; }
|
||||||
|
|
||||||
|
ul.list-indent1 { margin-left: 1.5em; }
|
||||||
|
ul.list-indent2 { margin-left: 3em; }
|
||||||
|
ul.list-indent3 { margin-left: 4.5em; }
|
||||||
|
ul.list-indent4 { margin-left: 6em; }
|
||||||
|
ul.list-indent5 { margin-left: 7.5em; }
|
||||||
|
ul.list-indent6 { margin-left: 9em; }
|
||||||
|
ul.list-indent7 { margin-left: 10.5em; }
|
||||||
|
ul.list-indent8 { margin-left: 12em; }
|
||||||
|
|
||||||
|
ul.list-indent1 { list-style-type: none; }
|
||||||
|
ul.list-indent2 { list-style-type: none; }
|
||||||
|
ul.list-indent3 { list-style-type: none; }
|
||||||
|
ul.list-indent4 { list-style-type: none; }
|
||||||
|
ul.list-indent5 { list-style-type: none; }
|
||||||
|
ul.list-indent6 { list-style-type: none; }
|
||||||
|
ul.list-indent7 { list-style-type: none; }
|
||||||
|
ul.list-indent8 { list-style-type: none; }
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
|
@ -3534,7 +3534,8 @@ function OUTER(gscope)
|
||||||
|
|
||||||
function doIndentOutdent(isOut)
|
function doIndentOutdent(isOut)
|
||||||
{
|
{
|
||||||
if (!(rep.selStart && rep.selEnd))
|
if (!(rep.selStart && rep.selEnd) ||
|
||||||
|
((rep.selStart[0] == rep.selEnd[0]) && (rep.selStart[1] == rep.selEnd[1]) && rep.selEnd[1] > 1))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -3544,25 +3545,25 @@ function OUTER(gscope)
|
||||||
lastLine = Math.max(firstLine, rep.selEnd[0] - ((rep.selEnd[1] == 0) ? 1 : 0));
|
lastLine = Math.max(firstLine, rep.selEnd[0] - ((rep.selEnd[1] == 0) ? 1 : 0));
|
||||||
|
|
||||||
var mods = [];
|
var mods = [];
|
||||||
var foundLists = false;
|
|
||||||
for (var n = firstLine; n <= lastLine; n++)
|
for (var n = firstLine; n <= lastLine; n++)
|
||||||
{
|
{
|
||||||
var listType = getLineListType(n);
|
var listType = getLineListType(n);
|
||||||
|
var t = 'indent';
|
||||||
|
var level = 0;
|
||||||
if (listType)
|
if (listType)
|
||||||
{
|
{
|
||||||
listType = /([a-z]+)([12345678])/.exec(listType);
|
listType = /([a-z]+)([12345678])/.exec(listType);
|
||||||
if (listType)
|
if (listType)
|
||||||
{
|
{
|
||||||
foundLists = true;
|
t = listType[1];
|
||||||
var t = listType[1];
|
level = Number(listType[2]);
|
||||||
var level = Number(listType[2]);
|
|
||||||
var newLevel = Math.max(1, Math.min(MAX_LIST_LEVEL, level + (isOut ? -1 : 1)));
|
|
||||||
if (level != newLevel)
|
|
||||||
{
|
|
||||||
mods.push([n, t + newLevel]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
var newLevel = Math.max(0, Math.min(MAX_LIST_LEVEL, level + (isOut ? -1 : 1)));
|
||||||
|
if (level != newLevel)
|
||||||
|
{
|
||||||
|
mods.push([n, (newLevel > 0) ? t + newLevel : '']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mods.length > 0)
|
if (mods.length > 0)
|
||||||
|
@ -3570,7 +3571,7 @@ function OUTER(gscope)
|
||||||
setLineListTypes(mods);
|
setLineListTypes(mods);
|
||||||
}
|
}
|
||||||
|
|
||||||
return foundLists;
|
return true;
|
||||||
}
|
}
|
||||||
editorInfo.ace_doIndentOutdent = doIndentOutdent;
|
editorInfo.ace_doIndentOutdent = doIndentOutdent;
|
||||||
|
|
||||||
|
@ -5231,7 +5232,8 @@ function OUTER(gscope)
|
||||||
var allLinesAreList = true;
|
var allLinesAreList = true;
|
||||||
for (var n = firstLine; n <= lastLine; n++)
|
for (var n = firstLine; n <= lastLine; n++)
|
||||||
{
|
{
|
||||||
if (!getLineListType(n))
|
var listType = getLineListType(n);
|
||||||
|
if (!listType || listType.slice(0, 'bullet'.length) != 'bullet')
|
||||||
{
|
{
|
||||||
allLinesAreList = false;
|
allLinesAreList = false;
|
||||||
break;
|
break;
|
||||||
|
@ -5241,8 +5243,16 @@ function OUTER(gscope)
|
||||||
var mods = [];
|
var mods = [];
|
||||||
for (var n = firstLine; n <= lastLine; n++)
|
for (var n = firstLine; n <= lastLine; n++)
|
||||||
{
|
{
|
||||||
|
var t = '';
|
||||||
|
var level = 0;
|
||||||
|
var listType = /([a-z]+)([12345678])/.exec(getLineListType(n));
|
||||||
|
if (listType)
|
||||||
|
{
|
||||||
|
t = listType[1];
|
||||||
|
level = Number(listType[2]);
|
||||||
|
}
|
||||||
var t = getLineListType(n);
|
var t = getLineListType(n);
|
||||||
mods.push([n, allLinesAreList ? '' : (t ? t : 'bullet1')]);
|
mods.push([n, allLinesAreList ? 'indent' + level : (t ? 'bullet' + level : 'bullet1')]);
|
||||||
}
|
}
|
||||||
setLineListTypes(mods);
|
setLineListTypes(mods);
|
||||||
}
|
}
|
||||||
|
|
|
@ -473,7 +473,7 @@ function makeContentCollector(collectStyles, browser, apool, domInterface, class
|
||||||
if (tname == "ul")
|
if (tname == "ul")
|
||||||
{
|
{
|
||||||
var type;
|
var type;
|
||||||
var rr = cls && /(?:^| )list-(bullet[12345678])\b/.exec(cls);
|
var rr = cls && /(?:^| )list-([a-z]+[12345678])\b/.exec(cls);
|
||||||
type = rr && rr[1] || "bullet" + String(Math.min(_MAX_LIST_LEVEL, (state.listNesting || 0) + 1));
|
type = rr && rr[1] || "bullet" + String(Math.min(_MAX_LIST_LEVEL, (state.listNesting || 0) + 1));
|
||||||
oldListTypeOrNull = (_enterList(state, type) || 'none');
|
oldListTypeOrNull = (_enterList(state, type) || 'none');
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,12 +50,12 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li onClick="window.pad&&pad.editbarClick('indent');return false;" >
|
<li onClick="window.pad&&pad.editbarClick('indent');return false;" >
|
||||||
<a title="Indent List">
|
<a title="Indent">
|
||||||
<div class="buttonicon" style="background-position:0px -52px"></div>
|
<div class="buttonicon" style="background-position:0px -52px"></div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li onClick="window.pad&&pad.editbarClick('outdent');return false;" >
|
<li onClick="window.pad&&pad.editbarClick('outdent');return false;" >
|
||||||
<a title="Unindent List">
|
<a title="Unindent">
|
||||||
<div class="buttonicon" style="background-position:0px -134px"></div>
|
<div class="buttonicon" style="background-position:0px -134px"></div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
Loading…
Reference in New Issue