| '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 |
| |
| while (character === tab || character === space) { |
| size = character === tab ? tabSize : spaceSize |
| |
| indent += size |
| |
| if (size > 1) { |
| indent = Math.floor(indent / size) * size |
| } |
| |
| stops[indent] = index |
| character = value.charAt(++index) |
| } |
| |
| return {indent: indent, stops: stops} |
| } |