1234567891011121314151617181920212223242526272829303132333435363738 |
- "use strict";
- exports.__esModule = true;
- var block_value_1 = require("../factories/block-value");
- var get_point_text_1 = require("../utils/get-point-text");
- var content_1 = require("./content");
- var Chomping;
- (function (Chomping) {
- Chomping["CLIP"] = "clip";
- Chomping["STRIP"] = "strip";
- Chomping["KEEP"] = "keep";
- })(Chomping || (Chomping = {}));
- function transformAstBlockValue(blockValue, context) {
- var cstNode = blockValue.cstNode;
- var indicatorLength = 1;
- var chompingLength = cstNode.chomping === "CLIP" ? 0 : 1;
- var headerLength = cstNode.header.origEnd - cstNode.header.origStart;
- var hasExplicitBlockIndent = headerLength - indicatorLength - chompingLength !== 0;
- var position = context.transformRange({
- origStart: cstNode.header.origStart,
- origEnd: cstNode.valueRange.origEnd
- });
- var indicatorComment = null;
- var content = content_1.transformContent(blockValue, context, function (comment) {
- var isIndicatorComment = position.start.offset < comment.position.start.offset &&
- comment.position.end.offset < position.end.offset;
- if (!isIndicatorComment) {
- return false;
- }
- // istanbul ignore next
- if (indicatorComment) {
- throw new Error("Unexpected multiple indicator comments at " + get_point_text_1.getPointText(comment.position.start));
- }
- indicatorComment = comment;
- return true;
- });
- return block_value_1.createBlockValue(position, content, Chomping[cstNode.chomping], hasExplicitBlockIndent ? cstNode.blockIndent : null, cstNode.strValue, indicatorComment);
- }
- exports.transformAstBlockValue = transformAstBlockValue;
|