下面列出了怎么用org.eclipse.lsp4j.CodeLensParams的API类实例代码及写法,或者点击链接到github查看源代码。
@Test
@SuppressWarnings("unchecked")
public void testGetCodeLensSymbolsForClass() throws Exception {
Preferences implementationsCodeLenses = Preferences.createFrom(Collections.singletonMap(Preferences.IMPLEMENTATIONS_CODE_LENS_ENABLED_KEY, "true"));
Mockito.reset(preferenceManager);
when(preferenceManager.getPreferences()).thenReturn(implementationsCodeLenses);
handler = new CodeLensHandler(preferenceManager);
String uriString = ClassFileUtil.getURI(project, "java.lang.Runnable");
String payload = createCodeLensSymbolRequest(new URI(uriString));
CodeLensParams codeLensParams = getParams(payload);
String uri = codeLensParams.getTextDocument().getUri();
assertFalse(uri.isEmpty());
List<CodeLens> lenses = handler.getCodeLensSymbols(uri, monitor);
assertEquals("Found " + lenses, 2, lenses.size());
List<Object> data = (List<Object>) lenses.get(0).getData();
assertTrue("Unexpected type " + data, data.contains(CodeLensHandler.REFERENCES_TYPE));
data = (List<Object>) lenses.get(1).getData();
assertTrue("Unexpected type " + data, data.contains(CodeLensHandler.IMPLEMENTATION_TYPE));
}
@Test
public void testDisableCodeLensSymbols() throws Exception {
Preferences noCodeLenses = Preferences.createFrom(Collections.singletonMap(Preferences.REFERENCES_CODE_LENS_ENABLED_KEY, "false"));
Mockito.reset(preferenceManager);
when(preferenceManager.getPreferences()).thenReturn(noCodeLenses);
handler = new CodeLensHandler(preferenceManager);
String payload = createCodeLensSymbolsRequest("src/java/IFoo.java");
CodeLensParams codeLensParams = getParams(payload);
String uri = codeLensParams.getTextDocument().getUri();
assertFalse(uri.isEmpty());
//when
List<CodeLens> result = handler.getCodeLensSymbols(uri, monitor);
//then
assertEquals(0, result.size());
}
@Test
public void testEnableImplementationsCodeLensSymbols() throws Exception {
Preferences implementationsCodeLenses = Preferences.createFrom(Collections.singletonMap(Preferences.IMPLEMENTATIONS_CODE_LENS_ENABLED_KEY, "true"));
Mockito.reset(preferenceManager);
when(preferenceManager.getPreferences()).thenReturn(implementationsCodeLenses);
handler = new CodeLensHandler(preferenceManager);
String payload = createCodeLensSymbolsRequest("src/java/IFoo.java");
CodeLensParams codeLensParams = getParams(payload);
String uri = codeLensParams.getTextDocument().getUri();
assertFalse(uri.isEmpty());
//when
List<CodeLens> result = handler.getCodeLensSymbols(uri, monitor);
//then
assertEquals(2, result.size());
CodeLens lens = result.get(1);
@SuppressWarnings("unchecked")
List<Object> data = (List<Object>) lens.getData();
String type = (String) data.get(2);
assertEquals(type, "implementations");
}
@Test
public void testDisableImplementationsCodeLensSymbols() throws Exception {
Preferences noImplementationsCodeLenses = Preferences.createFrom(Collections.singletonMap(Preferences.IMPLEMENTATIONS_CODE_LENS_ENABLED_KEY, "false"));
Mockito.reset(preferenceManager);
when(preferenceManager.getPreferences()).thenReturn(noImplementationsCodeLenses);
Preferences noReferencesCodeLenses = Preferences.createFrom(Collections.singletonMap(Preferences.REFERENCES_CODE_LENS_ENABLED_KEY, "false"));
Mockito.reset(preferenceManager);
when(preferenceManager.getPreferences()).thenReturn(noReferencesCodeLenses);
handler = new CodeLensHandler(preferenceManager);
String payload = createCodeLensSymbolsRequest("src/java/IFoo.java");
CodeLensParams codeLensParams = getParams(payload);
String uri = codeLensParams.getTextDocument().getUri();
assertFalse(uri.isEmpty());
//when
List<CodeLens> result = handler.getCodeLensSymbols(uri, monitor);
//then
assertEquals(0, result.size());
}
@Override
public CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params) {
if (!sharedSettings.getCodeLensSettings().isEnabled()) {
return CompletableFuture.completedFuture(Collections.emptyList());
}
return computeDOMAsync(params.getTextDocument(), (cancelChecker, xmlDocument) -> {
return getXMLLanguageService().getCodeLens(xmlDocument, sharedSettings.getCodeLensSettings(),
cancelChecker);
});
}
@Override
public CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params) {
URI uri = getURI(params.getTextDocument());
return openFilesManager.runInOpenFileContext(uri, "codeLens", (ofc, ci) -> {
return codeLens(ofc, params, ci);
});
}
/**
* Compute the code lenses.
*/
protected List<? extends CodeLens> codeLens(OpenFileContext ofc, CodeLensParams params,
CancelIndicator cancelIndicator) {
URI uri = ofc.getURI();
ICodeLensService codeLensService = getService(uri, ICodeLensService.class);
if ((codeLensService == null)) {
return Collections.emptyList();
}
XtextResource res = ofc.getResource();
XDocument doc = ofc.getDocument();
List<? extends CodeLens> result = codeLensService.computeCodeLenses(doc, res, params, cancelIndicator);
installURI(result, uri.toString());
return result;
}
@Override
public CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params) {
logInfo(">> document/codeLens");
CodeLensHandler handler = new CodeLensHandler(preferenceManager);
return computeAsync((monitor) -> {
waitForLifecycleJobs(monitor);
return handler.getCodeLensSymbols(params.getTextDocument().getUri(), monitor);
});
}
@Test
public void testGetCodeLensSymbols() throws Exception {
String payload = createCodeLensSymbolsRequest("src/java/Foo.java");
CodeLensParams codeLensParams = getParams(payload);
String uri = codeLensParams.getTextDocument().getUri();
assertFalse(uri.isEmpty());
//when
List<CodeLens> result = handler.getCodeLensSymbols(uri, monitor);
//then
assertEquals("Found " + result, 3, result.size());
CodeLens cl = result.get(0);
Range r = cl.getRange();
//CodeLens on main method
assertRange(7, 20, 24, r);
cl = result.get(1);
r = cl.getRange();
// CodeLens on foo method
assertRange(14, 13, 16, r);
cl = result.get(2);
r = cl.getRange();
//CodeLens on Foo type
assertRange(5, 13, 16, r);
}
@Test
public void testGetCodeLenseBoundaries() {
List<CodeLens> result = handler.getCodeLensSymbols(null, monitor);
assertNotNull(result);
assertEquals(0, result.size());
String payload = createCodeLensSymbolsRequest("src/java/Missing.java");
CodeLensParams codeLensParams = getParams(payload);
String uri = codeLensParams.getTextDocument().getUri();
result = handler.getCodeLensSymbols(uri, monitor);
assertEquals(0, result.size());
}
@Test
public void testIgnoreLombokCodeLensSymbols() throws Exception {
String payload = createCodeLensSymbolsRequest("src/java/Bar.java");
CodeLensParams codeLensParams = getParams(payload);
String uri = codeLensParams.getTextDocument().getUri();
assertFalse(uri.isEmpty());
//when
List<CodeLens> result = handler.getCodeLensSymbols(uri, monitor);
//then
assertEquals("Found " + result, 4, result.size());
//CodeLens on constructor
CodeLens cl = result.get(0);
assertRange(7, 11, 14, cl.getRange());
//CodeLens on somethingFromJPAModelGen
cl = result.get(1);
assertRange(16, 16, 40, cl.getRange());
// CodeLens on foo
cl = result.get(2);
assertRange(22, 16, 19, cl.getRange());
//CodeLens on Bar type
cl = result.get(3);
assertRange(5, 13, 16, cl.getRange());
}
@Override
public List<? extends CodeLens> computeCodeLenses(Document document, XtextResource resource, CodeLensParams params,
CancelIndicator indicator) {
CodeLens codeLens = new CodeLens();
Command command = new Command();
command.setCommand("do.this");
command.setTitle("Do Awesome Stuff");
command.setArguments(Lists.newArrayList("foo", Integer.valueOf(1), Boolean.valueOf(true)));
codeLens.setCommand(command);
Position _position = new Position(1, 2);
codeLens.setData(_position);
return Lists.newArrayList(codeLens);
}
/**
* Compute the code lenses. Executed in a read request.
* @since 2.20
*/
protected List<? extends CodeLens> codeLens(CodeLensParams params, CancelIndicator cancelIndicator) {
URI uri = getURI(params.getTextDocument());
ICodeLensService codeLensService = getService(uri, ICodeLensService.class);
if (codeLensService == null) {
return Collections.emptyList();
}
return workspaceManager.doRead(uri, (document, resource) -> {
List<? extends CodeLens> result = codeLensService.computeCodeLenses(document, resource, params,
cancelIndicator);
installURI(result, uri.toString());
return result;
});
}
@Override
public CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params) {
LOGGER.info("codeLens: {}", params.getTextDocument());
return CompletableFuture.completedFuture(Collections.emptyList());
}
@Override
public CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams arg0) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params) {
LOGGER.debug("codeLens: {}", params.getTextDocument());
return CompletableFuture.completedFuture(Collections.emptyList());
}
/**
* This feature is not implemented at this time.
*/
@Override
public CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params)
{
return CompletableFuture.completedFuture(Collections.emptyList());
}
@Override
public CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params) {
return requestManager.runRead((cancelIndicator) -> codeLens(params, cancelIndicator));
}
/**
* Compute code lenses for the given context.
*/
List<? extends CodeLens> computeCodeLenses(Document document, XtextResource resource, CodeLensParams params, CancelIndicator indicator);
/**
* The code lens request is sent from the client to the server to compute
* code lenses for a given text document.
*
* Registration Options: CodeLensRegistrationOptions
*/
@JsonRequest
default CompletableFuture<List<? extends CodeLens>> codeLens(CodeLensParams params) {
throw new UnsupportedOperationException();
}