You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
837 B
28 lines
837 B
2 years ago
|
function emptyScalarPosition(offset, before, pos) {
|
||
|
if (before) {
|
||
|
if (pos === null)
|
||
|
pos = before.length;
|
||
|
for (let i = pos - 1; i >= 0; --i) {
|
||
|
let st = before[i];
|
||
|
switch (st.type) {
|
||
|
case 'space':
|
||
|
case 'comment':
|
||
|
case 'newline':
|
||
|
offset -= st.source.length;
|
||
|
continue;
|
||
|
}
|
||
|
// Technically, an empty scalar is immediately after the last non-empty
|
||
|
// node, but it's more useful to place it after any whitespace.
|
||
|
st = before[++i];
|
||
|
while (st?.type === 'space') {
|
||
|
offset += st.source.length;
|
||
|
st = before[++i];
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
return offset;
|
||
|
}
|
||
|
|
||
|
export { emptyScalarPosition };
|