Skip to content

Commit e4ad1e5

Browse files
committed
Add call hierarchy LSP API.
1 parent a85b7f9 commit e4ad1e5

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

rascal-lsp/src/main/java/org/rascalmpl/vscode/lsp/parametric/ParametricTextDocumentService.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@
4646
import org.apache.logging.log4j.core.util.IOUtils;
4747
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
4848
import org.checkerframework.checker.nullness.qual.Nullable;
49+
import org.eclipse.lsp4j.CallHierarchyIncomingCall;
50+
import org.eclipse.lsp4j.CallHierarchyIncomingCallsParams;
51+
import org.eclipse.lsp4j.CallHierarchyItem;
52+
import org.eclipse.lsp4j.CallHierarchyOutgoingCall;
53+
import org.eclipse.lsp4j.CallHierarchyOutgoingCallsParams;
54+
import org.eclipse.lsp4j.CallHierarchyPrepareParams;
4955
import org.eclipse.lsp4j.CodeAction;
5056
import org.eclipse.lsp4j.CodeActionParams;
5157
import org.eclipse.lsp4j.CodeLens;
@@ -580,6 +586,28 @@ public CompletableFuture<List<FoldingRange>> foldingRange(FoldingRangeRequestPar
580586
), Collections::emptyList);
581587
}
582588

589+
590+
591+
@Override
592+
public CompletableFuture<List<CallHierarchyIncomingCall>> callHierarchyIncomingCalls(
593+
CallHierarchyIncomingCallsParams params) {
594+
// TODO Auto-generated method stub
595+
return IBaseTextDocumentService.super.callHierarchyIncomingCalls(params);
596+
}
597+
598+
@Override
599+
public CompletableFuture<List<CallHierarchyOutgoingCall>> callHierarchyOutgoingCalls(
600+
CallHierarchyOutgoingCallsParams params) {
601+
// TODO Auto-generated method stub
602+
return IBaseTextDocumentService.super.callHierarchyOutgoingCalls(params);
603+
}
604+
605+
@Override
606+
public CompletableFuture<List<CallHierarchyItem>> prepareCallHierarchy(CallHierarchyPrepareParams params) {
607+
// TODO Auto-generated method stub
608+
return IBaseTextDocumentService.super.prepareCallHierarchy(params);
609+
}
610+
583611
@Override
584612
public synchronized void registerLanguage(LanguageParameter lang) {
585613
logger.info("registerLanguage({})", lang.getName());

rascal-lsp/src/main/rascal/library/util/LanguageServer.rsc

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,8 +268,22 @@ data LanguageService
268268
| references (set[loc] (Focus _focus) referencesService)
269269
| implementation(set[loc] (Focus _focus) implementationService)
270270
| codeAction (list[CodeAction] (Focus _focus) codeActionService)
271+
| callHierarchy (set[CallHierarchyItem] (Focus _focus) callHierarchyService)
272+
| incomingCalls (set[loc] (loc src, value _data) incomingCallsService)
273+
| outgoingCalls (set[loc] (loc src, value _data) outgoingCallsService)
271274
;
272275

276+
data CallHierarchyItem
277+
= item(
278+
str name,
279+
DocumentSymbolKind kind,
280+
loc src,
281+
loc selection,
282+
list[DocumentSymbolTag] tags = [],
283+
str detail = "",
284+
value \data = ()
285+
);
286+
273287
@deprecated{Backward compatible with ((parsing)).}
274288
@synopsis{Construct a `parsing` ((LanguageService))}
275289
LanguageService parser(Parser parser) = parsing(parser);

0 commit comments

Comments
 (0)