62 lines
1.2 KiB
JavaScript
62 lines
1.2 KiB
JavaScript
import _ from 'lodash';
|
|
|
|
export default {
|
|
type: 'escape',
|
|
|
|
_render() {
|
|
return this.renderLabel(this.label)
|
|
.tap(label => {
|
|
label.select('rect').attr({
|
|
rx: 3,
|
|
ry: 3
|
|
});
|
|
});
|
|
},
|
|
|
|
setup() {
|
|
this.code = this.properties.esc.properties.code.textValue;
|
|
this.arg = this.properties.esc.properties.arg.textValue;
|
|
this.label = _.result(this, this.code);
|
|
},
|
|
|
|
// Escape code mappings
|
|
b: 'word boundary',
|
|
B: 'non-word boundary',
|
|
d: 'digit',
|
|
D: 'non-digit',
|
|
f: 'form feed',
|
|
n: 'line feed',
|
|
r: 'carriage return',
|
|
s: 'white space',
|
|
S: 'non-white space',
|
|
t: 'tab',
|
|
v: 'vertical tab',
|
|
w: 'word',
|
|
W: 'non-word',
|
|
1: 'Back reference (group = 1)',
|
|
2: 'Back reference (group = 2)',
|
|
3: 'Back reference (group = 3)',
|
|
4: 'Back reference (group = 4)',
|
|
5: 'Back reference (group = 5)',
|
|
6: 'Back reference (group = 6)',
|
|
7: 'Back reference (group = 7)',
|
|
8: 'Back reference (group = 8)',
|
|
9: 'Back reference (group = 9)',
|
|
0() {
|
|
if (this.arg) {
|
|
return `octal: ${this.arg}`;
|
|
} else {
|
|
return 'null';
|
|
}
|
|
},
|
|
c() {
|
|
return `ctrl-${this.arg}`;
|
|
},
|
|
x() {
|
|
return `0x${this.arg.toUpperCase()}`;
|
|
},
|
|
u() {
|
|
return `U+${this.arg.toUpperCase()}`;
|
|
}
|
|
};
|