public override IEnumerable <string> VisitPsiExpression(IPsiExpression psiExpressionParam, PsiFmtStageContext context) { if (context.RightChild is IChoiceTail) { return(new[] { "\r\n" }); } return(new[] { " " }); }
public override string VisitPsiExpression(IPsiExpression psiExpressionParam, FormattingStageContext context) { string parentIndent = GetParentIndent(context.Parent); if (context.RightChild is IChoiceTail) { return(parentIndent); } if (context.Parent is ParenExpression) { return(parentIndent + StandartIndent); } return(myIndentCache.GetNodeIndent(psiExpressionParam)); }
public override void VisitPsiExpression(IPsiExpression psiExpression, IHighlightingConsumer consumer) { ITreeNode child = psiExpression.FirstChild; IList <ISequence> list = new List <ISequence>(); while (child != null) { if (child is ISequence) { list.Add(child as ISequence); } if (child is IChoiceTail) { list.Add((child as IChoiceTail).Sequence); } child = child.NextSibling; } if (list.Count > 1) { ISequence[] sequences = list.ToArray(); var isRepeated = new bool[sequences.Count()]; for (int i = 0; i < sequences.Count() - 1; ++i) { if (!isRepeated[i]) { ISequence sequence1 = sequences[i]; for (int j = i + 1; j < sequences.Count(); ++j) { ISequence sequence2 = sequences[j]; if (PsiTreeUtil.EqualsElements(sequence1, sequence2)) { if (!isRepeated[i]) { consumer.AddHighlighting(new RepeatedChoiceWarning(sequence1), File); isRepeated[i] = true; } consumer.AddHighlighting(new RepeatedChoiceWarning(sequence2), File); isRepeated[j] = true; } } } } } base.VisitPsiExpression(psiExpression, consumer); }
public override void VisitPsiExpression(IPsiExpression psiExpression, IHighlightingConsumer consumer) { ITreeNode child = psiExpression.FirstChild; IList<ISequence> list = new List<ISequence>(); while (child != null) { if (child is ISequence) { list.Add(child as ISequence); } if (child is IChoiceTail) { list.Add((child as IChoiceTail).Sequence); } child = child.NextSibling; } if (list.Count > 1) { ISequence[] sequences = list.ToArray(); var isRepeated = new bool[sequences.Count()]; for (int i = 0 ; i < sequences.Count() - 1 ; ++i) { if (!isRepeated[i]) { ISequence sequence1 = sequences[i]; for (int j = i + 1 ; j < sequences.Count() ; ++j) { ISequence sequence2 = sequences[j]; if (PsiTreeUtil.EqualsElements(sequence1, sequence2)) { if (!isRepeated[i]) { consumer.AddHighlighting(new RepeatedChoiceWarning(sequence1), File); isRepeated[i] = true; } consumer.AddHighlighting(new RepeatedChoiceWarning(sequence2), File); isRepeated[j] = true; } } } } } base.VisitPsiExpression(psiExpression, consumer); }