regexp support
This commit is contained in:
parent
4fada029ce
commit
7bec5e52be
2 changed files with 32 additions and 0 deletions
|
@ -132,6 +132,35 @@ const elements = [
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// regexp
|
||||||
|
code => {
|
||||||
|
if (code[0] != '/') return null;
|
||||||
|
let regexp = '';
|
||||||
|
let thisIsNotARegexp = false;
|
||||||
|
for (let i = 1; i < code.length; i++) {
|
||||||
|
const char = code[i];
|
||||||
|
if (char == '\\') {
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
} else if (char == '/') {
|
||||||
|
break;
|
||||||
|
} else if (char == '\n' || i == (code.length - 1)) {
|
||||||
|
thisIsNotARegexp = true;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
regexp += char;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (thisIsNotARegexp) return null;
|
||||||
|
if (regexp[0] == ' ' && regexp[regexp.length - 1] == ' ') return null;
|
||||||
|
|
||||||
|
return {
|
||||||
|
html: `<span class="regexp">/${escape(regexp)}/</span>`,
|
||||||
|
next: regexp.length + 2
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
// extract vars
|
// extract vars
|
||||||
(code, i, source, vars) => {
|
(code, i, source, vars) => {
|
||||||
const prev = source[i - 1];
|
const prev = source[i - 1];
|
||||||
|
|
|
@ -117,6 +117,9 @@ pre > code
|
||||||
.string
|
.string
|
||||||
color #e96900
|
color #e96900
|
||||||
|
|
||||||
|
.regexp
|
||||||
|
color #e9003f
|
||||||
|
|
||||||
.keyword
|
.keyword
|
||||||
color #2973b7
|
color #2973b7
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue