UNPKG

@mapbox/jsxtreme-markdown

Version:
38 lines (27 loc) 686 B
'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 }; }