43 lines
1.2 KiB
Plaintext
43 lines
1.2 KiB
Plaintext
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.SemanticTokensBuilder = void 0;
|
|
class SemanticTokensBuilder {
|
|
constructor() {
|
|
this.initialize();
|
|
}
|
|
initialize() {
|
|
this._id = Date.now();
|
|
this._prevLine = 0;
|
|
this._prevChar = 0;
|
|
this._data = [];
|
|
this._dataLen = 0;
|
|
}
|
|
push(line, char, length, tokenType, tokenModifiers) {
|
|
let pushLine = line;
|
|
let pushChar = char;
|
|
if (this._dataLen > 0) {
|
|
pushLine -= this._prevLine;
|
|
if (pushLine === 0) {
|
|
pushChar -= this._prevChar;
|
|
}
|
|
}
|
|
this._data[this._dataLen++] = pushLine;
|
|
this._data[this._dataLen++] = pushChar;
|
|
this._data[this._dataLen++] = length;
|
|
this._data[this._dataLen++] = tokenType;
|
|
this._data[this._dataLen++] = tokenModifiers;
|
|
this._prevLine = line;
|
|
this._prevChar = char;
|
|
}
|
|
get id() {
|
|
return this._id.toString();
|
|
}
|
|
build() {
|
|
return {
|
|
resultId: this.id,
|
|
data: this._data,
|
|
};
|
|
}
|
|
}
|
|
exports.SemanticTokensBuilder = SemanticTokensBuilder;
|
|
//# sourceMappingURL=SemanticTokensBuilder.js.map |