Search in sources :

Example 1 with HasKeyBindings

use of org.eclipse.che.ide.api.editor.texteditor.HasKeyBindings 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();
            }
        });
    }
}
Also used : KeyBinding(org.eclipse.che.ide.api.editor.keymap.KeyBinding) CompletionRequestHandler(org.eclipse.che.ide.api.editor.events.CompletionRequestHandler) CompletionRequestEvent(org.eclipse.che.ide.api.editor.events.CompletionRequestEvent) CodeAssistProcessor(org.eclipse.che.ide.api.editor.codeassist.CodeAssistProcessor) HasKeyBindings(org.eclipse.che.ide.api.editor.texteditor.HasKeyBindings) CodeAssistant(org.eclipse.che.ide.api.editor.codeassist.CodeAssistant) KeyBindingAction(org.eclipse.che.ide.api.editor.keymap.KeyBindingAction)

Example 2 with HasKeyBindings

use of org.eclipse.che.ide.api.editor.texteditor.HasKeyBindings 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);
    }
}
Also used : KeyBinding(org.eclipse.che.ide.api.editor.keymap.KeyBinding) HasKeyBindings(org.eclipse.che.ide.api.editor.texteditor.HasKeyBindings) PositionConverter(org.eclipse.che.ide.api.editor.position.PositionConverter) KeyBindingAction(org.eclipse.che.ide.api.editor.keymap.KeyBindingAction)

Example 3 with HasKeyBindings

use of org.eclipse.che.ide.api.editor.texteditor.HasKeyBindings 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);
    }
}
Also used : KeyBinding(org.eclipse.che.ide.api.editor.keymap.KeyBinding) HasKeyBindings(org.eclipse.che.ide.api.editor.texteditor.HasKeyBindings)

Aggregations

KeyBinding (org.eclipse.che.ide.api.editor.keymap.KeyBinding)3 HasKeyBindings (org.eclipse.che.ide.api.editor.texteditor.HasKeyBindings)3 KeyBindingAction (org.eclipse.che.ide.api.editor.keymap.KeyBindingAction)2 CodeAssistProcessor (org.eclipse.che.ide.api.editor.codeassist.CodeAssistProcessor)1 CodeAssistant (org.eclipse.che.ide.api.editor.codeassist.CodeAssistant)1 CompletionRequestEvent (org.eclipse.che.ide.api.editor.events.CompletionRequestEvent)1 CompletionRequestHandler (org.eclipse.che.ide.api.editor.events.CompletionRequestHandler)1 PositionConverter (org.eclipse.che.ide.api.editor.position.PositionConverter)1