12345678910111213141516171819202122232425262728293031323334353637 |
- 'use strict'
- module.exports = indentation
- var tab = '\t'
- var space = ' '
- var spaceSize = 1
- var tabSize = 4
- // Gets indentation information for a line.
- function indentation(value) {
- var index = 0
- var indent = 0
- var character = value.charAt(index)
- var stops = {}
- var size
- var lastIndent = 0
- while (character === tab || character === space) {
- size = character === tab ? tabSize : spaceSize
- indent += size
- if (size > 1) {
- indent = Math.floor(indent / size) * size
- }
- while (lastIndent < indent) {
- stops[++lastIndent] = index
- }
- character = value.charAt(++index)
- }
- return {indent: indent, stops: stops}
- }
|