src/vs/editor/contrib/inlineCompletions/ghostTextWidget.ts/DecorationsWidget/renderSingleLineText
class DecorationsWidget:	private renderSingleLineText(text: string, lineStart: string, tabSize: number, renderWhitespace: boolean): string {
		const newLine = lineStart + text;
		const visibleColumnsByColumns = CursorColumns.visibleColumnsByColumns(newLine, tabSize);

		let contentText = '';
		let curCol = lineStart.length + 1;
		for (const c of text) {
			if (c === '\t') {
				const width = visibleColumnsByColumns[curCol + 1] - visibleColumnsByColumns[curCol];
				if (renderWhitespace) {
					contentText += '→';
					for (let i = 1; i < width; i++) {
						contentText += '\xa0';
					}
				} else {
					for (let i = 0; i < width; i++) {
						contentText += '\xa0';
					}
				}
			} else if (c === ' ') {
				if (renderWhitespace) {
					contentText += '·';
				} else {
					contentText += '\xa0';
				}
			} else {
				contentText += c;
			}
			curCol += 1;
		}

		return contentText;
	}