public void openDeclaration() { EditorPartPresenter activeEditor = editorAgent.getActiveEditor(); if (activeEditor == null) { return; } if (!(activeEditor instanceof EmbeddedTextEditorPresenter)) { Log.error(getClass(), "Open Declaration support only EmbeddedTextEditorPresenter as editor"); return; } EmbeddedTextEditorPresenter editor = ((EmbeddedTextEditorPresenter) activeEditor); int offset = editor.getCursorOffset(); final VirtualFile file = editor.getEditorInput().getFile(); Unmarshallable<OpenDeclarationDescriptor> unmarshaller = factory.newUnmarshaller(OpenDeclarationDescriptor.class); navigationService.findDeclaration( file.getProject().getProjectConfig().getPath(), JavaSourceFolderUtil.getFQNForFile(file), offset, new AsyncRequestCallback<OpenDeclarationDescriptor>(unmarshaller) { @Override protected void onSuccess(OpenDeclarationDescriptor result) { if (result != null) { handleDescriptor(result); } } @Override protected void onFailure(Throwable exception) { Log.error(OpenDeclarationFinder.class, exception); } }); }
private void fileOpened(EditorPartPresenter editor) { if (editor instanceof EmbeddedTextEditorPresenter) { ((EmbeddedTextEditorPresenter) editor) .getDocument() .setSelectedRange( LinearRange.createWithStart(match.getFileMatchRegion().getOffset()) .andLength(match.getFileMatchRegion().getLength()), true); } }
private void fileOpened(final EditorPartPresenter editor, final int offset) { new Timer() { // in some reason we need here timeout otherwise it not work cursor don't set to // correct position @Override public void run() { if (editor instanceof EmbeddedTextEditorPresenter) { ((EmbeddedTextEditorPresenter) editor) .getDocument() .setSelectedRange(LinearRange.createWithStart(offset).andLength(0), true); } } }.schedule(100); }