use of org.eclipse.che.ide.api.editor.keymap.KeyBinding in project che by eclipse.
the class OrionEditorInit method configureCodeAssist.
/**
* Configure the editor's code assistant.
* @param documentHandle the handle on the document
*/
private void configureCodeAssist(final DocumentHandle documentHandle) {
if (this.codeAssistantFactory == null) {
return;
}
final Map<String, CodeAssistProcessor> processors = configuration.getContentAssistantProcessors();
if (processors != null && !processors.isEmpty()) {
LOG.info("Creating code assistant.");
final CodeAssistant codeAssistant = this.codeAssistantFactory.create(this.textEditor, this.configuration.getPartitioner());
for (String key : processors.keySet()) {
codeAssistant.setCodeAssistantProcessor(key, processors.get(key));
}
final KeyBindingAction action = new KeyBindingAction() {
@Override
public boolean action() {
showCompletion(codeAssistant, true);
return true;
}
};
final HasKeyBindings hasKeyBindings = this.textEditor.getHasKeybindings();
hasKeyBindings.addKeyBinding(new KeyBinding(true, false, false, false, KeyCode.SPACE, action), CONTENT_ASSIST);
// handle CompletionRequest events that come from text operations instead of simple key binding
documentHandle.getDocEventBus().addHandler(CompletionRequestEvent.TYPE, new CompletionRequestHandler() {
@Override
public void onCompletionRequest(final CompletionRequestEvent event) {
showCompletion(codeAssistant, false);
}
});
} else {
final KeyBindingAction action = new KeyBindingAction() {
@Override
public boolean action() {
showCompletion();
return true;
}
};
final HasKeyBindings hasKeyBindings = this.textEditor.getHasKeybindings();
if (UserAgent.isMac()) {
hasKeyBindings.addKeyBinding(new KeyBinding(false, false, false, true, KeyCode.SPACE, action), CONTENT_ASSIST);
hasKeyBindings.addKeyBinding(new KeyBinding(false, false, true, true, KeyCode.SPACE, action), CONTENT_ASSIST);
} else {
hasKeyBindings.addKeyBinding(new KeyBinding(true, false, false, false, KeyCode.SPACE, action), CONTENT_ASSIST);
}
// handle CompletionRequest events that come from text operations instead of simple key binding
documentHandle.getDocEventBus().addHandler(CompletionRequestEvent.TYPE, new CompletionRequestHandler() {
@Override
public void onCompletionRequest(final CompletionRequestEvent event) {
showCompletion();
}
});
}
}
use of org.eclipse.che.ide.api.editor.keymap.KeyBinding in project che by eclipse.
the class OrionEditorPresenter method setupEventHandlers.
private void setupEventHandlers() {
this.editorWidget.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(final ChangeEvent event) {
handleDocumentChanged();
}
});
this.editorWidget.addGutterClickHandler(new GutterClickHandler() {
@Override
public void onGutterClick(final GutterClickEvent event) {
if (Gutters.BREAKPOINTS_GUTTER.equals(event.getGutterId()) || Gutters.LINE_NUMBERS_GUTTER.equals(event.getGutterId())) {
breakpointManager.changeBreakpointState(event.getLineNumber());
}
}
});
this.editorWidget.addKeyBinding(new KeyBinding(true, false, false, false, KeyCodes.KEY_F8, new KeyBindingAction() {
@Override
public boolean action() {
int currentLine = editorWidget.getDocument().getCursorPosition().getLine();
breakpointManager.changeBreakpointState(currentLine);
return true;
}
}), TOGGLE_LINE_BREAKPOINT);
}
use of org.eclipse.che.ide.api.editor.keymap.KeyBinding in project che by eclipse.
the class OrionEditorInit method addQuickAssistKeyBinding.
/**
* Add key binding to quick assist assistant.
*/
private void addQuickAssistKeyBinding() {
if (this.quickAssist != null) {
final KeyBindingAction action = new KeyBindingAction() {
@Override
public boolean action() {
final PositionConverter positionConverter = textEditor.getPositionConverter();
if (positionConverter != null) {
textEditor.showQuickAssist();
}
return true;
}
};
final HasKeyBindings hasKeyBindings = this.textEditor.getHasKeybindings();
hasKeyBindings.addKeyBinding(new KeyBinding(false, false, true, false, KeyCode.ENTER, action), QUICK_FIX);
}
}
use of org.eclipse.che.ide.api.editor.keymap.KeyBinding in project che by eclipse.
the class OrionEditorPresenter method switchHasKeybinding.
private void switchHasKeybinding() {
final HasKeyBindings current = getHasKeybindings();
if (!(current instanceof TemporaryKeyBindingsManager)) {
return;
}
// change the key binding instance and add all bindings to the new one
this.keyBindingsManager = this.editorWidget;
final List<KeyBinding> bindings = ((TemporaryKeyBindingsManager) current).getbindings();
for (final KeyBinding binding : bindings) {
this.keyBindingsManager.addKeyBinding(binding);
}
}
Aggregations