private boolean isIgnored(JvmType type, ITextRegion refRegion) {
   IParseResult parseResult = getResource().getParseResult();
   if (parseResult == null) {
     return false;
   }
   String completeText = parseResult.getRootNode().getText();
   CharSequence refText =
       completeText.subSequence(
           refRegion.getOffset(), refRegion.getOffset() + refRegion.getLength());
   return type.getQualifiedName().equals(refText);
 }
 protected void highlightSpecialIdentifiers(
     ILeafNode leafNode, IHighlightedPositionAcceptor acceptor, TerminalRule idRule) {
   ITextRegion leafRegion = leafNode.getTextRegion();
   if (idLengthsToHighlight.get(leafRegion.getLength())) {
     EObject element = leafNode.getGrammarElement();
     if (element == idRule
         || (element instanceof RuleCall && ((RuleCall) element).getRule() == idRule)) {
       String text = leafNode.getText();
       String highlightingID = highlightedIdentifiers.get(text);
       if (highlightingID != null) {
         acceptor.addPosition(leafRegion.getOffset(), leafRegion.getLength(), highlightingID);
       }
     }
   }
 }
 protected void addSectionToAppend(IAcceptor<ReplaceRegion> acceptor) {
   StringBuilder importDeclarationsToAppend = getImportDeclarationsToAppend();
   if (importDeclarationsToAppend.length() == 0) return;
   importRegion = regionUtil.addLeadingWhitespace(importRegion, resource);
   importRegion = regionUtil.addTrailingSingleWhitespace(importRegion, lineSeparator, resource);
   int insertOffset = importRegion.getOffset() + importRegion.getLength();
   if (insertOffset != 0 && originalImportDeclarations.isEmpty())
     importDeclarationsToAppend.insert(0, lineSeparator);
   importDeclarationsToAppend.append(lineSeparator);
   int insertLength = -importRegion.getLength();
   insertLength += regionUtil.addTrailingWhitespace(importRegion, resource).getLength();
   ReplaceRegion appendDeclarations =
       new ReplaceRegion(
           new TextRegion(insertOffset, insertLength), importDeclarationsToAppend.toString());
   acceptor.accept(appendDeclarations);
 }
 @Override
 protected ITextRegion getLocationOfCrossReference(
     EObject owner, EReference reference, int indexInList, boolean isSignificant) {
   if (owner instanceof XMemberFeatureCall
       && reference == XbasePackage.Literals.XABSTRACT_FEATURE_CALL__FEATURE
       && ((XMemberFeatureCall) owner).isTypeLiteral()) {
     List<INode> featureNodes = NodeModelUtils.findNodesForFeature(owner, reference);
     ITextRegion result = ITextRegion.EMPTY_REGION;
     if (!featureNodes.isEmpty()) {
       INode featureNode = featureNodes.get(0);
       result = result.merge(toZeroBasedRegion(featureNode.getTextRegionWithLineInformation()));
       List<INode> targetNodes =
           NodeModelUtils.findNodesForFeature(
               owner, XbasePackage.Literals.XMEMBER_FEATURE_CALL__MEMBER_CALL_TARGET);
       if (!targetNodes.isEmpty()) {
         INode targetNode = targetNodes.get(0);
         result = result.merge(toZeroBasedRegion(targetNode.getTextRegionWithLineInformation()));
       }
       return result;
     }
   }
   return super.getLocationOfCrossReference(owner, reference, indexInList, isSignificant);
 }
 @Override
 public TextRange getRangeToHighlightInElement() {
   final ArrayList<?> _cacheKey = CollectionLiterals.newArrayList();
   final TextRange _result;
   synchronized (_createCache_getRangeToHighlightInElement) {
     if (_createCache_getRangeToHighlightInElement.containsKey(_cacheKey)) {
       return _createCache_getRangeToHighlightInElement.get(_cacheKey);
     }
     TextRange _xblockexpression = null;
     {
       ICrossReferenceDescription _crossReferenceDescription = this.getCrossReferenceDescription();
       final ITextRegion textRegion = _crossReferenceDescription.getTextRegion();
       int _offset = textRegion.getOffset();
       TextRange _textRange = this.myElement.getTextRange();
       int _startOffset = _textRange.getStartOffset();
       int startOffset = (_offset - _startOffset);
       TextRange _xifexpression = null;
       if ((startOffset < 0)) {
         _xifexpression = this.getRangeInElement();
       } else {
         TextRange _xblockexpression_1 = null;
         {
           int _length = textRegion.getLength();
           final int endOffset = (startOffset + _length);
           _xblockexpression_1 = new TextRange(startOffset, endOffset);
         }
         _xifexpression = _xblockexpression_1;
       }
       _xblockexpression = _xifexpression;
     }
     _result = _xblockexpression;
     _createCache_getRangeToHighlightInElement.put(_cacheKey, _result);
   }
   _init_getRangeToHighlightInElement(_result);
   return _result;
 }
 protected void highlightNumberLiterals(
     XNumberLiteral literal, IHighlightedPositionAcceptor acceptor) {
   ICompositeNode node = NodeModelUtils.findActualNodeFor(literal);
   ITextRegion textRegion = node.getTextRegion();
   acceptor.addPosition(textRegion.getOffset(), textRegion.getLength(), NUMBER_ID);
 }