diff --git a/src/vs/workbench/contrib/void/browser/editCodeService.ts b/src/vs/workbench/contrib/void/browser/editCodeService.ts index 2b4d2eae..f81b0858 100644 --- a/src/vs/workbench/contrib/void/browser/editCodeService.ts +++ b/src/vs/workbench/contrib/void/browser/editCodeService.ts @@ -72,6 +72,21 @@ registerColor('void.sweepIdxBG', configOfBG(sweepIdxBG), '', true); const numLinesOfStr = (str: string) => str.split('\n').length + +export const getLengthOfTextPx = ({ tabWidth, spaceWidth, content }: { tabWidth: number, spaceWidth: number, content: string }) => { + let lengthOfTextPx = 0; + for (const char of content) { + if (char === '\t') { + lengthOfTextPx += tabWidth + } else { + lengthOfTextPx += spaceWidth; + } + } + + return lengthOfTextPx +} + + const getLeadingWhitespacePx = (editor: ICodeEditor, startLine: number): number => { const model = editor.getModel(); @@ -95,16 +110,14 @@ const getLeadingWhitespacePx = (editor: ICodeEditor, startLine: number): number const spaceWidth = editor.getOption(EditorOption.fontInfo).spaceWidth; const tabWidth = numSpacesInTab * spaceWidth; - let paddingLeft = 0; - for (const char of leadingWhitespace) { - if (char === '\t') { - paddingLeft += tabWidth - } else if (char === ' ') { - paddingLeft += spaceWidth; - } - } + const leftWhitespacePx = getLengthOfTextPx({ + tabWidth, + spaceWidth, + content: leadingWhitespace + }); - return paddingLeft; + + return leftWhitespacePx; };