outdent on ol

outdent-ol-on-click
John McLear 2020-06-06 21:27:29 +00:00
parent 2cd3dccc4d
commit 58f9d8805a
1 changed files with 28 additions and 5 deletions

View File

@ -5166,6 +5166,16 @@ function Ace2Inner(){
var t = '';
var level = 0;
var listType = /([a-z]+)([0-9]+)/.exec(getLineListType(n));
var togglineOn = false;
// Used to outdent if ol is removed
if(allLinesAreList){
togglingOn = false;
}else{
togglingOn = true;
}
if (listType)
{
t = listType[1];
@ -5173,14 +5183,27 @@ function Ace2Inner(){
}
var t = getLineListType(n);
// if already a list, deindent
if (allLinesAreList && level != 1) { level = level - 1; }
// if already indented, then add a level of indentation to the list
else if (t && !allLinesAreList) { level = level + 1; }
if(t === listType) togglingOn = false;
if(togglingOn){
mods.push([n, allLinesAreList ? 'indent' + level : (t ? type + level : type + '1')]);
}
if(!togglingOn){
// scrap the entire indentation and list type
if(level === 1){ // if outdending but are the first item in the list then outdent
setLineListType(n, ''); // outdent
}
// else change to indented not bullet
if(level > 1){
setLineListType(n, ''); // remove bullet
let newLevel = level+1;
setLineListType(n, "indent"+level); // outdent
}
}
}
_.each(mods, function(mod){
setLineListType(mod[0], mod[1]);
});