internal static void TestOptionStringValue(int level, JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue param, String caller) { if (!CanVisitFurther(param)) { return; } VisitElement(level, param, caller); }
internal static void TestOptionDefinition(int level, JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition param, String caller) { if (!CanVisitFurther(param)) { return; } VisitElement(level, param, caller); { JetBrains.ReSharper.Psi.Tree.ITokenNode child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionIdentifierValue; TestTokenNode(level + 1, (JetBrains.ReSharper.Psi.Tree.ITokenNode)child, "OptionIdentifierValue"); } { JetBrains.ReSharper.Psi.Tree.ITokenNode child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionIntegerValue; TestTokenNode(level + 1, (JetBrains.ReSharper.Psi.Tree.ITokenNode)child, "OptionIntegerValue"); } { JetBrains.ReSharper.PsiPlugin.Tree.IOptionName child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionName; TestOptionName(level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IOptionName)child, "OptionName"); } { JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue child = ((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)param).OptionStringValue; TestOptionStringValue(level + 1, (JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)child, "OptionStringValue"); } }
public static JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition GetByOptionStringValue(JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue param) { if (param == null) { return(null); } TreeElement current = (TreeElement)param; if (current.parent is JetBrains.ReSharper.PsiPlugin.Tree.Impl.OptionDefinition) { if (current.parent.GetChildRole(current) != JetBrains.ReSharper.PsiPlugin.Tree.Impl.OptionDefinition.PSI_OPTION_STRING_VALUE) { return(null); } current = current.parent; } else { return(null); } return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionDefinition)current); }
public virtual void VisitOptionStringValue([JetBrains.Annotations.NotNull] JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue optionStringValueParam, TContext context) { VisitNode(optionStringValueParam, context); }
public virtual JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue SetOptionStringValue(JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue param) { using (JetBrains.Application.WriteLockCookie.Create(this.IsPhysical())) { TreeElement current = null, next = GetNextFilteredChild(current), result = null; next = GetNextFilteredChild(current); if (next == null) { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_NAME) { current = next; } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } next = GetNextFilteredChild(current); if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.EQ) { next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.EQ) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } next = GetNextFilteredChild(current); if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER) { next = GetNextFilteredChild(current); if (next == null) { if (param == null) { return(null); } result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER) { if (param != null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { if (param == null) { return(null); } result = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); current = next; } } } else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_STRING_VALUE) { next = GetNextFilteredChild(current); if (next == null) { if (param == null) { return(null); } result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_STRING_VALUE) { if (param != null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { if (param == null) { return(null); } result = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); current = next; } } } else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.INTEGER_LITERAL) { next = GetNextFilteredChild(current); if (next == null) { if (param == null) { return(null); } result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.INTEGER_LITERAL) { if (param != null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { if (param == null) { return(null); } result = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); current = next; } } } else { next = GetNextFilteredChild(current); if (next == null) { if (param == null) { return(null); } result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER) { if (param != null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { if (param == null) { return(null); } result = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); current = next; } } } } else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.COLON) { next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.COLON) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } next = GetNextFilteredChild(current); if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.PLUS) { next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.PLUS) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.RULE_NAME) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } } else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.LPARENTH) { next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.LPARENTH) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.STRING_LITERAL) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.RULE_NAME) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } while (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.SEMICOLON) { next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.SEMICOLON) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.STRING_LITERAL) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.RULE_NAME) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } } next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.RPARENTH) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } } else { // in case we have multiple lookahead elements and we've failed to find any return(null); } } else { next = GetNextFilteredChild(current); if (next == null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, TreeElementFactory.CreateErrorElement(string.Empty)); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.EQ) { if (param != null) { current = next; } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } } next = GetNextFilteredChild(current); if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER) { next = GetNextFilteredChild(current); if (next == null) { if (param == null) { return(null); } result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER) { if (param != null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { if (param == null) { return(null); } result = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); current = next; } } } else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_STRING_VALUE) { next = GetNextFilteredChild(current); if (next == null) { if (param == null) { return(null); } result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.ElementType.OPTION_STRING_VALUE) { if (param != null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { if (param == null) { return(null); } result = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); current = next; } } } else if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.INTEGER_LITERAL) { next = GetNextFilteredChild(current); if (next == null) { if (param == null) { return(null); } result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.INTEGER_LITERAL) { if (param != null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { if (param == null) { return(null); } result = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); current = next; } } } else { next = GetNextFilteredChild(current); if (next == null) { if (param == null) { return(null); } result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildAfter(this, current, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { if (next.NodeType == JetBrains.ReSharper.PsiPlugin.Tree.Impl.TokenType.IDENTIFIER) { if (param != null) { result = current = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); } else { current = GetNextFilteredChild(next); JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.DeleteChild(next); } } else { if (param == null) { return(null); } result = (TreeElement)JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.AddChildBefore(next, (JetBrains.ReSharper.Psi.Tree.ITreeNode)param); current = next; } } } } return((JetBrains.ReSharper.PsiPlugin.Tree.IOptionStringValue)result); } }