in src/main/com/intellij/lang/jsgraphql/ide/highlighting/query/GraphQLQueryContextHighlightVisitor.java [321:353]
private static void placeCaretInsideFirstOperation(Editor editor, PsiFile psiFile) {
if (editor.isDisposed()) {
return;
}
if (psiFile.isValid() && psiFile.getVirtualFile() != null && psiFile.getVirtualFile().isValid()) {
for (PsiElement psiElement : psiFile.getChildren()) {
if (psiElement instanceof PsiWhiteSpace) {
continue;
}
GraphQLOperationDefinition operationOrNull = asOperationOrNull(psiElement);
if (operationOrNull != null) {
PsiElement navigationTarget = operationOrNull;
Project project = editor.getProject();
if (project != null) {
// try to find the name of the operation
if (operationOrNull instanceof GraphQLSelectionSetOperationDefinition) {
// unnamed query
navigationTarget = ((GraphQLSelectionSetOperationDefinition)operationOrNull).getSelectionSet();
}
else if (operationOrNull.getNameIdentifier() != null) {
navigationTarget = operationOrNull.getNameIdentifier();
}
FileEditorManager fileEditorManager = FileEditorManager.getInstance(project);
fileEditorManager.openFile(psiFile.getVirtualFile(), true, true);
editor.getSelectionModel().removeSelection();
editor.getCaretModel().moveToOffset(navigationTarget.getTextOffset());
editor.getScrollingModel().scrollToCaret(ScrollType.CENTER);
}
return;
}
}
}
}