Exemple #1
0
        private static string TryGetIndentFromStatement(
            [NotNull] ISecondaryRangeTranslator rangeTranslator,
            [NotNull] ITreeNode currentNode
            )
        {
            if (!(currentNode is IStatement))
            {
                return(null);
            }
            var token      = currentNode.GetFirstTokenIn();
            var tokenRange = token.GetDocumentRange();

            if (!tokenRange.IsValid())
            {
                return(null);
            }
            if (tokenRange.TextRange.EndOffset >= rangeTranslator.OriginalFile.GetTextLength())
            {
                return(null);
            }
            var generatedTokenRange = new TreeTextRange(token.GetTreeStartOffset());
            var originalTokenRange  = rangeTranslator.GeneratedToOriginal(generatedTokenRange);
            var t4Element           = rangeTranslator.OriginalFile.FindNodeAt(originalTokenRange);
            var otherCodeBlock      = t4Element?.GetParentOfType <IT4CodeBlock>();

            if (otherCodeBlock == null)
            {
                return(null);
            }
            return(tokenRange.GetIndentFromDocumentRange());
        }
Exemple #2
0
        private static string CalculateRelativeIndentInTransformText(
            [NotNull] ITreeNode node,
            [NotNull] ISecondaryRangeTranslator rangeTranslator
            )
        {
            var firstToken          = node.GetFirstTokenIn();
            var generatedTreeRange1 = new TreeTextRange(firstToken.GetTreeStartOffset());
            var originalRange       = rangeTranslator.GeneratedToOriginal(generatedTreeRange1);

            if (!originalRange.IsValid())
            {
                return(null);
            }
            var t4Element = rangeTranslator.OriginalFile.FindNodeAt(originalRange);

            return(t4Element?.GetLineIndentFromOriginalNode(n =>
                                                            n is IT4Token token && token.GetTokenType() == T4TokenNodeTypes.RAW_CODE, originalRange.StartOffset));
        }