140
141
export function _tokenizeToString(text: string, languageIdCodec: ILanguageIdCodec, tokenizationSupport: IReducedTokenizationSupport): string {
143
>
const lines = strings.splitLines(text);
144
>
let currentState = tokenizationSupport.getInitialState();
145
>
for (let i = 0, len = lines.length; i < len; i++) {
146
>
const line = lines[i];
147
>
148
>
if (i > 0) {
149
result += `<br/>`;
150
}
152
>
const tokenizationResult = tokenizationSupport.tokenizeEncoded(line, true, currentState);
153
>
LineTokens.convertToEndOffset(tokenizationResult.tokens, line.length);
154
>
const lineTokens = new LineTokens(tokenizationResult.tokens, line, languageIdCodec);
155
>
const viewLineTokens = lineTokens.inflate();
156
>
157
>
let startOffset = 0;
158
>
for (let j = 0, lenJ = viewLineTokens.getCount(); j < lenJ; j++) {
159
>
const type = viewLineTokens.getClassName(j);
160
>
const endIndex = viewLineTokens.getEndOffset(j);
161
>
result += `<span class="${type}">${strings.escape(line.substring(startOffset, endIndex))}</span>`;
162
>
startOffset = endIndex;
163
>
}
164
>
165
>
currentState = tokenizationResult.endState;
166
>
}
167
>
168
>
result += `</div>`;
169
>
return result;
170
>
}