• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java ITextRegion类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.eclipse.xtext.util.ITextRegion的典型用法代码示例。如果您正苦于以下问题:Java ITextRegion类的具体用法?Java ITextRegion怎么用?Java ITextRegion使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



ITextRegion类属于org.eclipse.xtext.util包,在下文中一共展示了ITextRegion类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: computeCommentFolding

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
@Override
protected void computeCommentFolding(IXtextDocument xtextDocument,
		IFoldingRegionAcceptor<ITextRegion> foldingRegionAcceptor, ITypedRegion typedRegion,
		boolean initiallyFolded) {

	String text;
	try {
		text = xtextDocument.get(typedRegion.getOffset(), typedRegion.getLength());
		int lines = Strings.countLines(text);
		if (shouldCreateCommentFolding(lines)) {
			boolean collapse = shouldCollapse(typedRegion, lines);
			super.computeCommentFolding(xtextDocument, foldingRegionAcceptor, typedRegion, collapse);
		}
	} catch (BadLocationException e) {
		log.error(e, e);
	}

}
 
开发者ID:Yakindu,项目名称:solidity-ide,代码行数:19,代码来源:SolidityFoldingRegionProvider.java


示例2: checkNoJavaStyleTypeCasting

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
protected void checkNoJavaStyleTypeCasting(INode node) {
	BidiTreeIterator<INode> iterator = node.getAsTreeIterable().reverse().iterator();
	ILeafNode child = getFirstLeafNode(iterator);
	if (child != null && child.getGrammarElement() == grammarAccess.getXParenthesizedExpressionAccess().getRightParenthesisKeyword_2()) {
		INode expressionNode = getNode(iterator, grammarAccess.getXParenthesizedExpressionAccess().getXExpressionParserRuleCall_1());
		EObject semanticObject = NodeModelUtils.findActualSemanticObjectFor(expressionNode);
		if (semanticObject instanceof XFeatureCall || semanticObject instanceof XMemberFeatureCall) {
			XAbstractFeatureCall featureCall = (XAbstractFeatureCall) semanticObject;
			if (featureCall.isTypeLiteral()) {
				ICompositeNode parenthesizedNode = child.getParent();
				ITextRegion parenthesizedRegion = parenthesizedNode.getTextRegion();
				addIssue("Use 'as' keyword for type casting.", featureCall, parenthesizedRegion.getOffset(), parenthesizedRegion.getLength(), JAVA_STYLE_TYPE_CAST);
			}
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:17,代码来源:XbaseValidator.java


示例3: getSignificantTextRegion

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
@Override
public ITextRegion getSignificantTextRegion(EObject element) {
	if (element instanceof XAbstractFeatureCall) {
		XAbstractFeatureCall typeLiteral = typeLiteralHelper.getRootTypeLiteral((XAbstractFeatureCall) element);
		if (typeLiteral != null) {
			if (typeLiteral instanceof XMemberFeatureCall) {
				XAbstractFeatureCall target = (XAbstractFeatureCall) ((XMemberFeatureCall) typeLiteral).getMemberCallTarget();
				if (target.isTypeLiteral()) {
					return super.getSignificantTextRegion(typeLiteral);
				}
			}
			INode node = NodeModelUtils.findActualNodeFor(typeLiteral);
			if (node != null) {
				return toZeroBasedRegion(node.getTextRegionWithLineInformation());
			}
		}
	}
	return super.getSignificantTextRegion(element);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:20,代码来源:XbaseLocationInFileProvider.java


示例4: isModified

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
@Override
public boolean isModified(ITextRegion region) {
	int offset = region.getOffset();
	int endOffset = offset + region.getLength();
	for (RewriteAction action : rewrites) {
		int rwOffset = action.originalFirst.getOffset();
		int rwEndOffset = action.originalLast.getEndOffset();
		if (rwOffset <= offset && offset < rwEndOffset) {
			return true;
		}
		if (rwOffset < endOffset && endOffset <= rwEndOffset) {
			return true;
		}
	}
	return false;
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:17,代码来源:StringBasedTextRegionAccessDiffBuilder.java


示例5: shouldInclude

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
protected boolean shouldInclude(final AbstractTraceRegion region, final ILocationData location) {
  SourceRelativeURI _elvis = null;
  SourceRelativeURI _srcRelativePath = location.getSrcRelativePath();
  if (_srcRelativePath != null) {
    _elvis = _srcRelativePath;
  } else {
    SourceRelativeURI _associatedSrcRelativePath = region.getAssociatedSrcRelativePath();
    _elvis = _associatedSrcRelativePath;
  }
  final ITextRegion frame = this.getRemoteFrame(_elvis);
  if ((frame == null)) {
    return true;
  } else {
    return frame.contains(location);
  }
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:17,代码来源:AbstractTraceRegionToString.java


示例6: format

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
@Override
public IFormattedRegion format(ICompositeNode root, int offset, int length) {
	String indent = getIndentation(root, offset);
	TokenStringBuffer buf = new TokenStringBuffer();
	ITokenStream out = offset == 0 ? buf : new FilterFirstWhitespaceStream(buf);
	ITokenStream fmt;
	if (formatter instanceof IFormatterExtension) {
		EObject semanticElement = NodeModelUtils.findActualSemanticObjectFor(root);
		if (semanticElement != null)
			fmt = ((IFormatterExtension) formatter).createFormatterStream(semanticElement, indent, out, false);
		else {
			// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=380406
			ITextRegion rootRegion = root.getTextRegion();
			return new FormattedRegion(rootRegion.getOffset(), rootRegion.getLength(), root.getText());
		}
	} else
		fmt = formatter.createFormatterStream(indent, out, false);
	try {
		ITextRegion range = nodeModelStreamer.feedTokenStream(fmt, root, offset, length);
		return new FormattedRegion(range.getOffset(), range.getLength(), buf.toString());
	} catch (IOException e) {
		// this should never happen since TokenStringBuffer doesn't throw IOEs.
		throw new RuntimeException(e);
	}
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:26,代码来源:DefaultNodeModelFormatter.java


示例7: traceSignificant

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
public ITreeAppendable traceSignificant(final ITreeAppendable appendable, final EObject source, final boolean useForDebugging) {
  ITreeAppendable _xifexpression = null;
  if ((appendable instanceof TreeAppendable)) {
    _xifexpression = ((TreeAppendable)appendable).trace(source, ILocationInFileProviderExtension.RegionDescription.SIGNIFICANT, useForDebugging);
  } else {
    ITreeAppendable _xblockexpression = null;
    {
      ITextRegion _significantTextRegion = this.locationProvider.getSignificantTextRegion(source);
      final ITextRegionWithLineInformation it = ((ITextRegionWithLineInformation) _significantTextRegion);
      ITreeAppendable _xifexpression_1 = null;
      if (((it != null) && (it != ITextRegion.EMPTY_REGION))) {
        int _offset = it.getOffset();
        int _length = it.getLength();
        int _lineNumber = it.getLineNumber();
        int _endLineNumber = it.getEndLineNumber();
        LocationData _locationData = new LocationData(_offset, _length, _lineNumber, _endLineNumber, null);
        _xifexpression_1 = appendable.trace(_locationData, useForDebugging);
      } else {
        _xifexpression_1 = appendable;
      }
      _xblockexpression = _xifexpression_1;
    }
    _xifexpression = _xblockexpression;
  }
  return _xifexpression;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:27,代码来源:TreeAppendableUtil.java


示例8: isDocumentHighlightAvailableFor

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
/**
 * Returns with {@code true} if the AST element selected from the resource
 * can provide document highlights, otherwise returns with {@code false}.
 * 
 * <p>
 * Clients may override this method to change the default behavior.
 * 
 * @param selectedElemnt
 *            the selected element resolved via the offset from the
 *            resource. Can be {@code null}.
 * @param resource
 *            the resource for the document.
 * @param offset
 *            the offset of the selection.
 * 
 * @return {@code true} if the document highlight is available for the
 *         selected element, otherwise {@code false}.
 *
 */
protected boolean isDocumentHighlightAvailableFor(final EObject selectedElemnt, final XtextResource resource,
		final int offset) {

	if (selectedElemnt == null || !getSelectedElementFilter().apply(selectedElemnt)) {
		return false;
	}

	final EObject containedElement = offsetHelper.resolveContainedElementAt(resource, offset);
	// Special handling to avoid such cases when the selection is not
	// exactly on the desired element.
	if (selectedElemnt == containedElement) {
		final ITextRegion region = locationInFileProvider.getSignificantTextRegion(containedElement);
		return !isNullOrEmpty(region)
				// Region is comparable to a selection in an editor,
				// therefore the end position is exclusive.
				&& (region.contains(offset) || (region.getOffset() + region.getLength()) == offset);
	}

	return true;
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:40,代码来源:DefaultDocumentHighlightService.java


示例9: getLocationOfContainmentReference

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
/**
 * @since 2.3
 */
protected ITextRegion getLocationOfContainmentReference(final EObject owner, EReference feature,
		final int indexInList, RegionDescription query) {
	Object referencedElement = null;
	if(feature.isMany()) {
		List<?> values = (List<?>) owner.eGet(feature);
		if(indexInList >= values.size())
			referencedElement = owner;
		else
			referencedElement = values.get(indexInList);
	}
	else {
		referencedElement = owner.eGet(feature);
	}
	return getTextRegion((EObject) referencedElement, query);
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:19,代码来源:DefaultLocationInFileProvider.java


示例10: testTokenRegionContainsRegion

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
@Test 
	public void testTokenRegionContainsRegion() throws Exception {
		String modelAsString = "a1 / /* comment */ b2";
		List<CommonToken> tokens = getTokens(modelAsString);
		for(int length=0; length < modelAsString.length(); ++length) {
			for(int offset = 0; offset + length < modelAsString.length(); ++offset) {
				ITextRegion tokenRegion = tokenRegionProvider.getTokenRegion(modelAsString, new TextRegion(offset, length));
//				System.out.println(offset + ":" + length + " -> " + tokenRegion);
				CommonToken firstToken = findTokenStartingAt(tokenRegion.getOffset(), tokens);
				assertTrue(firstToken.getStartIndex() <= offset);
				if(tokenRegion.getLength() != 0) {
					CommonToken lastToken = findTokenStopingAt(tokenRegion.getOffset() + tokenRegion.getLength()-1, tokens);
					assertTrue(lastToken.getStopIndex() >= offset + length -1);
				}
			}
		}
	}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:18,代码来源:TokenRegionProviderTest.java


示例11: isInRequestedRange

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
protected boolean isInRequestedRange(EObject obj) {
	Collection<ITextRegion> regions = request.getRegions();
	if (regions.isEmpty())
		return true;
	ITextRegionAccess access = request.getTextRegionAccess();
	IEObjectRegion objRegion = access.regionForEObject(obj);
	if (objRegion == null)
		return false;
	IHiddenRegion previousHidden = objRegion.getPreviousHiddenRegion();
	IHiddenRegion nextHidden = objRegion.getNextHiddenRegion();
	int objOffset = previousHidden != null ? previousHidden.getOffset() : 0;
	int objEnd = nextHidden != null ? nextHidden.getEndOffset() : access.regionForRootEObject().getEndOffset();
	for (ITextRegion region : regions) {
		int regionOffset = region.getOffset();
		int regionEnd = regionOffset + region.getLength();
		if (regionOffset <= objEnd && regionEnd >= objOffset)
			return true;
	}
	return false;
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:21,代码来源:AbstractFormatter2.java


示例12: format2

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
protected List<ITextReplacement> format2(final XtextResource resource, final ITextRegion selection, final ITypedPreferenceValues preferences) {
  final FormatterRequest request = this.formatterRequestProvider.get();
  request.setAllowIdentityEdits(false);
  request.setFormatUndefinedHiddenRegionsOnly(false);
  if ((selection != null)) {
    request.setRegions(Collections.<ITextRegion>unmodifiableList(CollectionLiterals.<ITextRegion>newArrayList(selection)));
  }
  if ((preferences != null)) {
    request.setPreferences(preferences);
  }
  final ITextRegionAccess regionAccess = this.regionBuilder.forNodeModel(resource).create();
  request.setTextRegionAccess(regionAccess);
  final IFormatter2 formatter2 = this.formatter2Provider.get();
  final List<ITextReplacement> replacements = formatter2.format(request);
  return replacements;
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:17,代码来源:FormattingService.java


示例13: computeObjectFolding

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
@Override
protected void computeObjectFolding(EObject eObject, IFoldingRegionAcceptor<ITextRegion> foldingRegionAcceptor,
		boolean initiallyFolded) {
	if (FOLDING_TYPES.contains(eObject.eClass())) {
		super.computeObjectFolding(eObject, foldingRegionAcceptor, initiallyFolded);
	}
}
 
开发者ID:Yakindu,项目名称:solidity-ide,代码行数:8,代码来源:SolidityFoldingRegionProvider.java


示例14: add

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
protected void add(final Map<SourceRelativeURI, AbstractTraceRegionToString.File> files, final SourceRelativeURI uri, final ITextRegion it, final AbstractTraceRegionToString.RegionHandle region, final AbstractTraceRegionToString.LocationHandle location) {
  AbstractTraceRegionToString.File file = files.get(uri);
  if ((file == null)) {
    AbstractTraceRegionToString.File _file = new AbstractTraceRegionToString.File(uri);
    AbstractTraceRegionToString.File _file_1 = file = _file;
    files.put(uri, _file_1);
  }
  this.add(file, it, region, location);
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:10,代码来源:AbstractTraceRegionToString.java


示例15: trace

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
@Override
public ITreeAppendable trace(EObject object, EStructuralFeature feature, int indexInList) {
	ITextRegion textRegion = locationProvider.getFullTextRegion(object, feature, indexInList);
	if (!(textRegion instanceof ITextRegionWithLineInformation)) {
		if (log.isDebugEnabled())
			log.debug("location provider returned text region without line information. Synthesized dummy data.", new Exception());
		textRegion = new TextRegionWithLineInformation(textRegion.getOffset(), textRegion.getLength(), 0, 0);
	} 
	if (textRegion == ITextRegion.EMPTY_REGION) {
		return this;
	}
	ILocationData newData = createLocationData(traceURIConverter, object, (ITextRegionWithLineInformation) textRegion);
	return trace(Collections.singleton(newData), false);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:15,代码来源:TreeAppendable.java


示例16: isIgnored

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
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);
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:10,代码来源:ImportedTypesCollector.java


示例17: rewrite

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
public List<ReplaceRegion> rewrite() {
	removeObsoleteStaticImports();
	final List<ReplaceRegion> replaceRegions = newArrayList();
	if (isSort) {
		List<XImportDeclaration> allImportDeclarations = newArrayList();
		allImportDeclarations.addAll(originalImportDeclarations);
		allImportDeclarations.addAll(addedImportDeclarations);
		allImportDeclarations.removeAll(removedImportDeclarations);
		String newImportSection = serializeImports(allImportDeclarations);
		importRegion = regionUtil.addLeadingWhitespace(importRegion, resource);
		importRegion = regionUtil.addTrailingWhitespace(importRegion, resource);
		return singletonList(new ReplaceRegion(importRegion, newImportSection));
	} else {
		for (XImportDeclaration removedImportDeclaration : removedImportDeclarations) {
			ICompositeNode node = NodeModelUtils.findActualNodeFor(removedImportDeclaration);
			if (node != null) {
				ITextRegion textRegion = node.getTextRegion();
				textRegion = regionUtil.addTrailingSingleWhitespace(textRegion, lineSeparator, resource);
				replaceRegions.add(new ReplaceRegion(textRegion, ""));
			}
		}
		addSectionToAppend(new IAcceptor<ReplaceRegion>() {
			@Override
			public void accept(ReplaceRegion t) {
				replaceRegions.add(t);
			}
		});
	}
	return replaceRegions;
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:31,代码来源:RewritableImportSection.java


示例18: acceptPreferredType

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
protected void acceptPreferredType(EObject owner, EReference referenceToTypeOrMember) {
	ITextRegion refRegion = locationInFileProvider.getFullTextRegion(owner, referenceToTypeOrMember, 0);
	if (refRegion.getLength() > 0) {
		IParseResult parseResult = resource.getParseResult();
		if(parseResult != null) {
			String completeText = parseResult.getRootNode().getText();
			String refText = completeText.substring(refRegion.getOffset(), refRegion.getOffset() + refRegion.getLength());
			PreferredType preferredType = findPreferredType(owner, referenceToTypeOrMember, refText);
			if (preferredType != null) {
				if (preferredType.referencedType != null) {
					acceptType(preferredType.referencedType, preferredType.usedType, refRegion);
				} else {
					String suffix = refText.substring(preferredType.unresolvedTypeName.length());
					if (owner instanceof XFeatureCall) {
						XFeatureCall featureCall = (XFeatureCall) owner; 
						if (typeLiteralHelper.isPotentialTypeLiteral(featureCall, null)) {
							XAbstractFeatureCall root = typeLiteralHelper.getRootTypeLiteral(featureCall);
							if (root != null) {
								ITextRegion region = locationInFileProvider.getSignificantTextRegion(root);
								if (region.getOffset() == refRegion.getOffset()) {
									suffix = completeText.substring(region.getOffset(), region.getOffset() + region.getLength());
									suffix = suffix.substring(preferredType.unresolvedTypeName.length());
									refRegion = region;
								}
							}
						}
					}
					acceptUnresolvedType(preferredType.unresolvedTypeName, suffix, refRegion);
				}
			}
		}
	}
}
 
开发者ID:eclipse,项目名称:xtext-extras,代码行数:34,代码来源:TypeUsageCollector.java


示例19: testBug486454

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
@Test 
public void testBug486454() throws Exception {
	String model = "t";
	ITextRegion tokenRegion = tokenRegionProvider.getTokenRegion(model, new TextRegion(1, 0));
	assertEquals(0, tokenRegion.getOffset());
	assertEquals(1, tokenRegion.getLength());
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:8,代码来源:TokenRegionProviderTest.java


示例20: feedTokenStream

import org.eclipse.xtext.util.ITextRegion; //导入依赖的package包/类
@Override
public ITextRegion feedTokenStream(ITokenStream out, ICompositeNode in, int offset, int length) throws IOException {
	List<INode> nodes = getLeafs(in, offset, offset + length);
	if (nodes.isEmpty())
		return new TextRegion(in.getOffset(), 0);
	if (out instanceof ITokenStreamExtension)
		((ITokenStreamExtension) out).init(findRootRuleForRegion(nodes.get(0)));
	boolean lastIsTokenOrComment = false;
	for (INode node : nodes) {
		boolean currentIsTokenOrComment = tokenUtil.isCommentNode(node) || tokenUtil.isToken(node);
		if (lastIsTokenOrComment && currentIsTokenOrComment)
			writeHiddenEmpty(out);
		lastIsTokenOrComment = currentIsTokenOrComment;
		if (node instanceof ILeafNode) {
			ILeafNode leaf = (ILeafNode) node;
			if (leaf.isHidden())
				writeHidden(out, leaf);
			else
				writeSemantic(out, leaf);
		} else if (node instanceof ICompositeNode)
			writeSemantic(out, (ICompositeNode) node);
	}
	out.flush();
	int rStart = nodes.get(0).getOffset();
	int rLength = nodes.get(nodes.size() - 1).getEndOffset() - rStart;
	return new TextRegion(rStart, rLength);
}
 
开发者ID:eclipse,项目名称:xtext-core,代码行数:28,代码来源:NodeModelStreamer.java



注:本文中的org.eclipse.xtext.util.ITextRegion类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java RenewDelegationTokenResponseProto类代码示例发布时间:2022-05-22
下一篇:
Java TestStringSetGenerator类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap