use of org.eclipse.che.ide.api.editor.EditorPartPresenter in project che by eclipse.
the class EditorContentSynchronizerImplTest method shouldRemoveEditorFromGroup.
@Test
public void shouldRemoveEditorFromGroup() {
EditorPartPresenter openedEditor1 = mock(EditorPartPresenter.class);
EditorPartPresenter openedEditor2 = mock(EditorPartPresenter.class);
when(openedEditor1.getEditorInput()).thenReturn(editorInput);
when(openedEditor2.getEditorInput()).thenReturn(editorInput);
editorContentSynchronizer.trackEditor(openedEditor1);
editorContentSynchronizer.trackEditor(openedEditor2);
editorContentSynchronizer.trackEditor(activeEditor);
editorContentSynchronizer.unTrackEditor(activeEditor);
verify(editorGroupSynchronization).removeEditor(activeEditor);
}
use of org.eclipse.che.ide.api.editor.EditorPartPresenter in project che by eclipse.
the class EditorPartStackPresenterTest method shouldReturnFirstPart.
@Test
public void shouldReturnFirstPart() {
presenter.addPart(partPresenter1);
presenter.addPart(partPresenter2);
presenter.addPart(partPresenter3);
EditorPartPresenter result = presenter.getNextFor(partPresenter3);
assertNotNull(result);
assertEquals(partPresenter1, result);
}
use of org.eclipse.che.ide.api.editor.EditorPartPresenter in project che by eclipse.
the class GoToSymbolAction method updateInPerspective.
@Override
public void updateInPerspective(@NotNull ActionEvent event) {
EditorPartPresenter activeEditor = editorAgent.getActiveEditor();
if (activeEditor instanceof TextEditor) {
TextEditorConfiguration configuration = ((TextEditor) activeEditor).getConfiguration();
if (configuration instanceof LanguageServerEditorConfiguration) {
ServerCapabilities capabilities = ((LanguageServerEditorConfiguration) configuration).getServerCapabilities();
event.getPresentation().setEnabledAndVisible(capabilities.isDocumentSymbolProvider() != null && capabilities.isDocumentSymbolProvider());
return;
}
}
event.getPresentation().setEnabledAndVisible(false);
}
use of org.eclipse.che.ide.api.editor.EditorPartPresenter in project che by eclipse.
the class OpenFileInEditorHelper method openFile.
public void openFile(final String filePath, final TextRange selectionRange) {
if (Strings.isNullOrEmpty(filePath)) {
return;
}
EditorPartPresenter editorPartPresenter = editorAgent.getOpenedEditor(Path.valueOf(filePath));
if (editorPartPresenter != null) {
editorAgent.activateEditor(editorPartPresenter);
fileOpened(editorPartPresenter, selectionRange);
return;
}
appContext.getWorkspaceRoot().getFile(filePath).then(openNode(selectionRange));
}
use of org.eclipse.che.ide.api.editor.EditorPartPresenter in project che by eclipse.
the class OccurrencesProvider method computeOccurrences.
@Override
public JsPromise<OrionOccurrenceOverlay[]> computeOccurrences(OrionOccurrenceContextOverlay context) {
final EditorPartPresenter activeEditor = editorAgent.getActiveEditor();
if (activeEditor == null || !(activeEditor instanceof TextEditor)) {
return null;
}
final TextEditor editor = ((TextEditor) activeEditor);
if (!(editor.getConfiguration() instanceof LanguageServerEditorConfiguration)) {
return null;
}
final LanguageServerEditorConfiguration configuration = (LanguageServerEditorConfiguration) editor.getConfiguration();
if (configuration.getServerCapabilities().isDocumentHighlightProvider() == null || !configuration.getServerCapabilities().isDocumentHighlightProvider()) {
return null;
}
final Document document = editor.getDocument();
final TextDocumentPositionParamsDTO paramsDTO = helper.createTDPP(document, context.getStart());
// FIXME: the result should be a Promise<List<DocumentHighlightDTO>> but the typefox API returns a single DocumentHighlightDTO
Promise<DocumentHighlightDTO> promise = client.documentHighlight(paramsDTO);
Promise<OrionOccurrenceOverlay[]> then = promise.then(new Function<DocumentHighlightDTO, OrionOccurrenceOverlay[]>() {
@Override
public OrionOccurrenceOverlay[] apply(DocumentHighlightDTO highlight) throws FunctionException {
if (highlight == null) {
return new OrionOccurrenceOverlay[0];
}
final OrionOccurrenceOverlay[] occurrences = new OrionOccurrenceOverlay[1];
final OrionOccurrenceOverlay occurrence = OrionOccurrenceOverlay.create();
// FIXME: this assumes that the language server will
// compute a range based on 'line 1', ie, the whole
// file content is on line 1 and the location to
// highlight is given by the 'character' position
// only.
occurrence.setStart(highlight.getRange().getStart().getCharacter());
occurrence.setEnd(highlight.getRange().getEnd().getCharacter() + 1);
occurrences[0] = occurrence;
return occurrences;
}
});
return (JsPromise<OrionOccurrenceOverlay[]>) then;
}
Aggregations