Make highlighter create separate ruleset elements

This commit is contained in:
MrOtherGuy
2021-06-18 10:42:04 +03:00
parent f958ec293a
commit a7a306f2a6
2 changed files with 14 additions and 3 deletions

View File

@@ -266,7 +266,16 @@ const Highlighter = new(function(){
clearCodeBlock();
let node = document.createElement("div");
function createNewRuleset(){
let ruleset = document.createElement("span");
ruleset.className = "ruleset";
node.appendChild(ruleset);
return ruleset
}
let rulesetUnderConstruction = createNewRuleset();
function createElementFromToken(type,c){
if(token.length === 0 && !c){
return
@@ -275,6 +284,8 @@ const Highlighter = new(function(){
switch(type){
case "selector":
// This isn't exactly correct, but it works because parser treats \r\n sequences that follow a closed comment as "selector"
rulesetUnderConstruction = createNewRuleset();
let parts = token.split(/([\.#:\[]\w[\w-_"'=\]]*|\s\w[\w-_"'=\]]*)/);
for(let part of parts){
@@ -341,7 +352,7 @@ const Highlighter = new(function(){
n.className = (`token ${type}`);
token = "";
node.appendChild(n);
rulesetUnderConstruction.appendChild(n);
return
}