indentUtils.js 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. export function getSpaceCnt(str, tabSize) {
  6. let spacesCnt = 0;
  7. for (let i = 0; i < str.length; i++) {
  8. if (str.charAt(i) === '\t') {
  9. spacesCnt += tabSize;
  10. }
  11. else {
  12. spacesCnt++;
  13. }
  14. }
  15. return spacesCnt;
  16. }
  17. export function generateIndent(spacesCnt, tabSize, insertSpaces) {
  18. spacesCnt = spacesCnt < 0 ? 0 : spacesCnt;
  19. let result = '';
  20. if (!insertSpaces) {
  21. let tabsCnt = Math.floor(spacesCnt / tabSize);
  22. spacesCnt = spacesCnt % tabSize;
  23. for (let i = 0; i < tabsCnt; i++) {
  24. result += '\t';
  25. }
  26. }
  27. for (let i = 0; i < spacesCnt; i++) {
  28. result += ' ';
  29. }
  30. return result;
  31. }