public void Scan() { _ElementType = LanguageElementType.Unknown; _ElementsFound = 0; _TopNode = null; CodeRush.Source.IterateNodesInSelection(NodeIterator); }
private static bool elementIsLocal(IMemberElement element) { LanguageElementType elementType = element.ElementType; return((elementType == LanguageElementType.Variable) || (elementType == LanguageElementType.InitializedVariable) || (elementType == LanguageElementType.ImplicitVariable) || (elementType == LanguageElementType.Parameter) || (elementType == LanguageElementType.Const)); }
private static bool elementIsNested(IMemberElement element) { LanguageElementType elementType = element.ElementType; //if we are on a static field (or a constant that is not local), the element type is Variable, so we have to check if its a local variable //or not (if it's not, we have to treat the element as a nested element) if ((elementType == LanguageElementType.Variable) && (element is IFieldElement) && !(element as IFieldElement).IsLocal) { return(true); } return((elementType == LanguageElementType.Property) || (elementType == LanguageElementType.Method)); }
private static bool elementTypeIsSupported(LanguageElementType elementType) { return((elementType == LanguageElementType.Class) || (elementType == LanguageElementType.Interface) || (elementType == LanguageElementType.Method) || (elementType == LanguageElementType.Property) || (elementType == LanguageElementType.Struct) || (elementType == LanguageElementType.Variable) || (elementType == LanguageElementType.Parameter) || (elementType == LanguageElementType.Const) || (elementType == LanguageElementType.InitializedVariable) || (elementType == LanguageElementType.ObjectCreationExpression) || (elementType == LanguageElementType.ImplicitVariable)); }
private Member GetActiveMember(LanguageElement element) { if (element == null) { return(null); } Member member = element as Member; if (member != null) { LanguageElementType type = member.ElementType; if (((type == LanguageElementType.Method) || (type == LanguageElementType.Property)) || (type == LanguageElementType.Event)) { return(member); } } return(element.GetParent(LanguageElementType.Method, new LanguageElementType[] { LanguageElementType.Property, LanguageElementType.Event }) as Member); }
private void NodeIterator(NodeIterationEventArgs ea) { if (_TopNode == null) { _TopNode = ea.LanguageElement; _ElementType = _TopNode.ElementType; _ElementsFound++; } else if (_TopNode.IsSibling(ea.LanguageElement)) { if (IsComment(_TopNode.ElementType)) { // Prioritize any other element type over comments. _TopNode = ea.LanguageElement; _ElementType = _TopNode.ElementType; } else if (_ElementType != ea.LanguageElement.ElementType && !IsComment(ea.LanguageElement.ElementType)) _ElementType = LanguageElementType.Unknown; // Different element types within the range. _ElementsFound++; } }
public void CheckCodeIssue( CheckCodeIssuesEventArgs eventArg ) { var types = new LanguageElementType[] { LanguageElementType.MethodCall }; var elementFilter = new ElementTypeFilter( types ); var enumerable = eventArg.GetEnumerable( eventArg.Scope, elementFilter ); foreach ( var element in enumerable ) { IMethodCallStatement methodCall = element as IMethodCallStatement; if ( methodCall == null ) continue; IMethodElement methodDeclaration = methodCall.GetDeclaration() as IMethodElement; if ( methodDeclaration == null ) continue; if ( methodDeclaration.MethodType == MethodTypeEnum.Function ) { eventArg.AddHint( methodCall.FirstNameRange, "Return value is not used" ); } } }
private void QueueAdd(TextDocument activeTextDocument, TypeDeclaration activeType, MultiSelect multiSelect, LanguageElementType elementType) { string codeToGenerate = GetCode(multiSelect, elementType); if (codeToGenerate == String.Empty) return; // TODO: Change RelativeLocation.After, DefaultLocation.Bottom parameters to instead reference fields populated from the MultiSelect options. SourcePoint insertionPoint = GetInsertionPoint(activeType, elementType, RelativeLocation.After, DefaultLocation.Bottom); activeTextDocument.QueueInsert(insertionPoint, codeToGenerate); }
private SourcePoint GetInsertionPoint(TypeDeclaration activeType, LanguageElementType elementType, RelativeLocation relativeLocation, DefaultLocation defaultLocation) { LanguageElementType[] elementTypes; if (elementType == LanguageElementType.Variable) { elementTypes = new LanguageElementType[2]; elementTypes[0] = LanguageElementType.Variable; elementTypes[1] = LanguageElementType.InitializedVariable; } else { elementTypes = new LanguageElementType[1]; elementTypes[0] = elementType; } ElementEnumerable elementEnumerable = new ElementEnumerable(activeType, elementTypes); LanguageElement lastElement = null; foreach (LanguageElement element in elementEnumerable) { if (relativeLocation == RelativeLocation.Before) return element.GetFullBlockCutRange().Top; else // RelativeLocation.After... lastElement = element; } if (lastElement != null) return lastElement.GetFullBlockCutRange().Bottom; if (defaultLocation == DefaultLocation.Top) return activeType.BlockCodeRange.Top; else // Bottom... return activeType.BlockCodeRange.Bottom; }
private string GetCode(MultiSelect multiSelect, LanguageElementType elementType) { string result = String.Empty; MultiSelectEnumerator allElements = new MultiSelectEnumerator(multiSelect, elementType); while (allElements.MoveNext()) { PartialSelection partialSelection = allElements.Current as PartialSelection; if (partialSelection != null) { result += partialSelection.Text; partialSelection.Generated = true; // Prevents this from coming in later when LanguageElementType.Unknown is passed in. } } return result; }
private LanguageElement FindNthElement(NodeList nodes, int count, LanguageElementType elementType) { LanguageElement lastElementFound = null; if (nodes == null) return null; int numFound = 0; foreach (LanguageElement element in nodes) { if (element.ElementType == elementType) { numFound++; if (numFound == count) return element; lastElementFound = element; } } return lastElementFound; }
private static bool elementTypeIsSupported(LanguageElementType elementType) { return (elementType == LanguageElementType.Class) || (elementType == LanguageElementType.Interface) || (elementType == LanguageElementType.Method) || (elementType == LanguageElementType.Property) || (elementType == LanguageElementType.Struct) || (elementType == LanguageElementType.Variable) || (elementType == LanguageElementType.Parameter) || (elementType == LanguageElementType.Const) || (elementType == LanguageElementType.InitializedVariable) || (elementType == LanguageElementType.ObjectCreationExpression) || (elementType == LanguageElementType.ImplicitVariable); }
private static bool elementIsReference(LanguageElementType elementType) { return (elementType == LanguageElementType.TypeReferenceExpression) || (elementType == LanguageElementType.ElementReferenceExpression) || (elementType == LanguageElementType.MethodReferenceExpression); }
private static bool elementIsReference(LanguageElementType elementType) { return((elementType == LanguageElementType.TypeReferenceExpression) || (elementType == LanguageElementType.ElementReferenceExpression) || (elementType == LanguageElementType.MethodReferenceExpression)); }
public static bool IsComment(LanguageElementType elementType) { return elementType == LanguageElementType.Comment || elementType == LanguageElementType.XmlDocComment; }
public MultiSelectEnumerator(MultiSelect multiSelect, LanguageElementType elementType) { _MultiSelect = multiSelect; _ElementType = elementType; Reset(); }
public static LanguageElement FindParentByElementType(this LanguageElement current, LanguageElementType parentType) { return current.GetParents().FirstOrDefault(p => p.ElementType == parentType); }
public TypeInRangeFilter(LanguageElementType languageElementType, SourceRange selectRange) { _languageElementType = languageElementType; _selectRange = selectRange; }