Path: blob/main/src/vs/editor/contrib/indentation/common/indentUtils.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45export function getSpaceCnt(str: string, tabSize: number) {6let spacesCnt = 0;78for (let i = 0; i < str.length; i++) {9if (str.charAt(i) === '\t') {10spacesCnt += tabSize;11} else {12spacesCnt++;13}14}1516return spacesCnt;17}1819export function generateIndent(spacesCnt: number, tabSize: number, insertSpaces: boolean) {20spacesCnt = spacesCnt < 0 ? 0 : spacesCnt;2122let result = '';23if (!insertSpaces) {24const tabsCnt = Math.floor(spacesCnt / tabSize);25spacesCnt = spacesCnt % tabSize;26for (let i = 0; i < tabsCnt; i++) {27result += '\t';28}29}3031for (let i = 0; i < spacesCnt; i++) {32result += ' ';33}3435return result;36}3738