类org.eclipse.lsp4j.ReferenceContext源码实例Demo

下面列出了怎么用org.eclipse.lsp4j.ReferenceContext的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: lemminx   文件: AbstractReferenceParticipant.java
@Override
public void findReference(DOMDocument document, Position position, ReferenceContext context,
		List<Location> locations, CancelChecker cancelChecker) {
	if (!match(document)) {
		return;
	}
	try {
		int offset = document.offsetAt(position);
		DOMNode node = document.findNodeAt(offset);
		if (node != null) {
			findReferences(node, position, offset, context, locations, cancelChecker);
		}
	} catch (BadLocationException e) {

	}
}
 
源代码2 项目: lemminx   文件: XMLAssert.java
public static void testReferencesFor(String value, String fileURI, Location... expected)
		throws BadLocationException {
	int offset = value.indexOf('|');
	value = value.substring(0, offset) + value.substring(offset + 1);

	TextDocument document = new TextDocument(value, fileURI != null ? fileURI : "test://test/test.xml");
	Position position = document.positionAt(offset);

	XMLLanguageService xmlLanguageService = new XMLLanguageService();

	ContentModelSettings settings = new ContentModelSettings();
	settings.setUseCache(false);
	xmlLanguageService.doSave(new SettingsSaveContext(settings));

	DOMDocument xmlDocument = DOMParser.getInstance().parse(document,
			xmlLanguageService.getResolverExtensionManager());
	xmlLanguageService.setDocumentProvider((uri) -> xmlDocument);

	List<? extends Location> actual = xmlLanguageService.findReferences(xmlDocument, position,
			new ReferenceContext(), () -> {
			});
	assertLocation(actual, expected);

}
 
源代码3 项目: eclipse.jdt.ls   文件: ReferencesHandlerTest.java
@Test
public void testReference(){
	URI uri = project.getFile("src/java/Foo2.java").getRawLocationURI();
	String fileURI = ResourceUtils.fixURI(uri);

	ReferenceParams param = new ReferenceParams();
	param.setPosition(new Position(5,16));
	param.setContext(new ReferenceContext(true));
	param.setTextDocument( new TextDocumentIdentifier(fileURI));
	List<Location> references =  handler.findReferences(param, monitor);
	assertNotNull("findReferences should not return null",references);
	assertEquals(1, references.size());
	Location l = references.get(0);
	String refereeUri = ResourceUtils.fixURI(project.getFile("src/java/Foo3.java").getRawLocationURI());
	assertEquals(refereeUri, l.getUri());
}
 
源代码4 项目: lemminx   文件: XMLReference.java
public List<? extends Location> findReferences(DOMDocument document, Position position, ReferenceContext context,
		CancelChecker cancelChecker) {
	List<Location> locations = new ArrayList<>();
	for (IReferenceParticipant participant : extensionsRegistry.getReferenceParticipants()) {
		participant.findReference(document, position, context, locations, cancelChecker);
	}
	return locations;
}
 
源代码5 项目: lemminx   文件: DTDReferenceParticipant.java
@Override
protected void findReferences(DOMNode node, Position position, int offset, ReferenceContext context,
		List<Location> locations, CancelChecker cancelChecker) {
	// DTD reference works only when references is done on an <!ELEMENT name
	if (!node.isDTDElementDecl()) {
		return;
	}
	DTDElementDecl elementDecl = (DTDElementDecl) node;
	if (!elementDecl.isInNameParameter(offset)) {
		return;
	}
	DTDUtils.searchDTDOriginElementDecls(elementDecl,
			(origin, target) -> locations.add(XMLPositionUtility.createLocation(origin)), cancelChecker);
}
 
源代码6 项目: lemminx   文件: XSDReferenceParticipant.java
@Override
protected void findReferences(DOMNode node, Position position, int offset, ReferenceContext context,
		List<Location> locations, CancelChecker cancelChecker) {
	DOMAttr attr = node.findAttrAt(offset);
	if (attr != null) {
		node = attr;
	}
	XSDUtils.searchXSOriginAttributes(node,
			(origin, target) -> locations.add(XMLPositionUtility.createLocation(origin.getNodeAttrValue())),
			cancelChecker);
}
 
源代码7 项目: corrosion   文件: ImplementationsSearchQuery.java
@Override public IStatus run(IProgressMonitor monitor) {
	startTime = System.currentTimeMillis();
	// Cancel last references future if needed.
	if (references != null) {
		references.cancel(true);
	}
	AbstractTextSearchResult textResult = (AbstractTextSearchResult) getSearchResult();
	textResult.removeAll();

	try {
		// Execute LSP "references" service
		ReferenceParams params = new ReferenceParams();
		params.setContext(new ReferenceContext(true));
		params.setTextDocument(new TextDocumentIdentifier(info.getFileUri().toString()));
		params.setPosition(position);
		info.getInitializedLanguageClient().thenCompose(languageServer -> ((RLSServerInterface) languageServer).implementations(params)).thenAccept(locs -> {
			// Loop for each LSP Location and convert it to Match search.
			for (Location loc : locs) {
				Match match = toMatch(loc);
				result.addMatch(match);
			}
		});
		return Status.OK_STATUS;
	} catch (Exception ex) {
		return new Status(IStatus.ERROR, LanguageServerPlugin.getDefault().getBundle().getSymbolicName(), ex.getMessage(), ex);
	}
}
 
源代码8 项目: eclipse.jdt.ls   文件: ReferencesHandlerTest.java
@Test
public void testEmpty(){
	ReferenceParams param = new ReferenceParams();
	param.setPosition(new Position(1, 1));
	param.setContext(new ReferenceContext(false));
	param.setTextDocument( new TextDocumentIdentifier("/foo/bar"));
	List<Location> references =  handler.findReferences(param, monitor);
	assertNotNull(references);
	assertTrue("references are not empty", references.isEmpty());
}
 
源代码9 项目: lemminx   文件: XMLLanguageService.java
public List<? extends Location> findReferences(DOMDocument xmlDocument, Position position, ReferenceContext context,
		CancelChecker cancelChecker) {
	return reference.findReferences(xmlDocument, position, context, cancelChecker);
}
 
源代码10 项目: lsp4j   文件: ReferenceParams.java
public ReferenceParams(@NonNull final TextDocumentIdentifier textDocument, @NonNull final Position position, @NonNull final ReferenceContext context) {
  super(textDocument, position);
  this.context = Preconditions.<ReferenceContext>checkNotNull(context, "context");
}
 
源代码11 项目: lsp4j   文件: ReferenceParams.java
@Deprecated
public ReferenceParams(@NonNull final ReferenceContext context) {
  this.context = Preconditions.<ReferenceContext>checkNotNull(context, "context");
}
 
源代码12 项目: lsp4j   文件: ReferenceParams.java
@Pure
@NonNull
public ReferenceContext getContext() {
  return this.context;
}
 
源代码13 项目: lsp4j   文件: ReferenceParams.java
public void setContext(@NonNull final ReferenceContext context) {
  this.context = Preconditions.checkNotNull(context, "context");
}
 
源代码14 项目: lemminx   文件: AbstractReferenceParticipant.java
/**
 * Find the references
 * 
 * @param node
 * @param position
 * @param offset
 * @param locations
 * @param cancelChecker
 */
protected abstract void findReferences(DOMNode node, Position position, int offset, ReferenceContext context,
		List<Location> locations, CancelChecker cancelChecker);
 
源代码15 项目: lemminx   文件: IReferenceParticipant.java
void findReference(DOMDocument document, Position position, ReferenceContext context, List<Location> locations, CancelChecker cancelChecker); 
 类所在包
 同包方法