private CodeAssistProcessor getFallbackProcessor() { final CodeAssistProcessor emptyTypeProcessor = getCodeAssistProcessor(""); if (emptyTypeProcessor != null) { return emptyTypeProcessor; } return getCodeAssistProcessor(null); }
@Override public void getCompletion(final CompletionCallback callback) { callback.onCompletion( new Completion() { @Override public void apply(Document document) { document.replace(offset, length, macro.getName()); } @Override public LinearRange getSelection(Document document) { LinearRange.PartialLinearRange start = LinearRange.createWithStart(offset + macro.getName().length()); return start.andLength(0); } }); }
@Override public void proposalComputed(final List<CompletionProposal> processorProposals) { expected.remove(processor); if (processorProposals == null || processorProposals.isEmpty()) { return; } proposalList.addAll(processorProposals); // all processors have computed their result if (expected.isEmpty()) { callback.proposalComputed(proposalList); } } });
@AssistedInject public CodeAssistantImpl( @Assisted final DocumentPartitioner partitioner, @Assisted TextEditor textEditor, NotificationManager notificationManager) { this.notificationManager = notificationManager; processors = new HashMap<>(); res.defaultSimpleListCss().ensureInjected(); res.autocompleteComponentCss().ensureInjected(); res.popupCss().ensureInjected(); this.partitioner = partitioner; this.textEditor = textEditor; }
@Inject public NavigateToFileViewImpl( CoreLocalizationConstant locale, NavigateToFileViewImplUiBinder uiBinder, AutoCompleteResources autoCompleteResources, Resources resources) { this.locale = locale; this.resources = resources; css = autoCompleteResources.autocompleteComponentCss(); css.ensureInjected(); setWidget(uiBinder.createAndBindUi(this)); setAutoHideEnabled(true); setAnimationEnabled(true); getElement().getStyle().setProperty("boxShadow", "0 2px 4px 0 rgba(0, 0, 0, 0.50)"); getElement().getStyle().setProperty("borderRadius", "0px"); }
@Override public void computeCompletionProposals( final int offset, final boolean triggered, final CodeAssistCallback callback) { this.lastErrorMessage = "processing"; final CodeAssistProcessor processor = getProcessor(offset); if (processor != null) { processor.computeCompletionProposals(textEditor, offset, triggered, callback); this.lastErrorMessage = processor.getErrorMessage(); if (this.lastErrorMessage != null) { notificationManager.notify("", lastErrorMessage, FAIL, EMERGE_MODE); this.textEditor.showMessage(this.lastErrorMessage); } } else { final CodeAssistProcessor fallbackProcessor = getFallbackProcessor(); if (fallbackProcessor != null) { fallbackProcessor.computeCompletionProposals(textEditor, offset, triggered, callback); this.lastErrorMessage = fallbackProcessor.getErrorMessage(); if (this.lastErrorMessage != null) { this.textEditor.showMessage(this.lastErrorMessage); } } } }
if (proposal.getIcon() != null && proposal.getIcon().getSVGImage() != null) { icon.appendChild((Node) proposal.getIcon().getSVGImage().getElement()); } else if (proposal.getIcon() != null && proposal.getIcon().getImage() != null) { icon.appendChild((Node) proposal.getIcon().getImage().getElement()); label.setInnerHTML(proposal.getDisplayString()); element.appendChild(label);
@Override public String getErrorMessage() { String errorMessage = null; if (!this.codeAssistProcessors.isEmpty()) { for (final CodeAssistProcessor processor : this.codeAssistProcessors) { final String processorErrorMessage = processor.getErrorMessage(); if (processorErrorMessage != null) { if (errorMessage == null) { errorMessage = processorErrorMessage; } else { errorMessage = errorMessage.concat(processorErrorMessage); } } } } return errorMessage; }
@Override public void handleEvent(final Event evt) { proposal.getCompletion( new CompletionProposal.CompletionCallback() { @Override
for (final CodeAssistProcessor processor : this.codeAssistProcessors) { expected.add(processor); processor.computeCompletionProposals( textEditor, offset,
@Override public void actionPerformed(ActionEvent e) { EditorPartPresenter activeEditor = editorAgent.getActiveEditor(); if (activeEditor == null) { return; } if (activeEditor instanceof TextEditor && activeEditor instanceof HasCompletionInformation) { if (((TextEditor) activeEditor).getEditorWidget().isCompletionProposalsShowing()) { ((HasCompletionInformation) activeEditor).showCompletionInformation(); return; } } quickDocumentation.showDocumentation(); } }
@Override public void showActions(Map<Action, String> actions) { this.actions = actions; actionsContainer.getElement().setInnerHTML(""); TableElement itemHolder = Elements.createTableElement(); itemHolder.setClassName(css.items()); actionsContainer.getElement().appendChild(((com.google.gwt.dom.client.Element) itemHolder)); list = SimpleList.create( (SimpleList.View) actionsContainer.getElement().cast(), (Element) actionsContainer.getElement(), itemHolder, resources.defaultSimpleListCss(), listItemRenderer, eventDelegate); list.render(new ArrayList<>(actions.keySet())); if (!actions.isEmpty()) { list.getSelectionModel().setSelectedItem(0); } layoutPanel.setWidgetHidden(actionsPanel, false); layoutPanel.setHeight("250px"); if (isVisible()) { Scheduler.get().scheduleDeferred(() -> center()); } }
@Inject public FindActionViewImpl( Resources resources, KeyBindingAgent keyBindingAgent, ActionManager actionManager, AutoCompleteResources autoCompleteResources, ToolbarResources toolbarResources, FindActionViewImplUiBinder uiBinder) { this.resources = resources; this.keyBindingAgent = keyBindingAgent; this.actionManager = actionManager; this.toolbarResources = toolbarResources; this.presentationFactory = new PresentationFactory(); css = autoCompleteResources.autocompleteComponentCss(); css.ensureInjected(); DockLayoutPanel rootElement = uiBinder.createAndBindUi(this); setWidget(rootElement); setAutoHideEnabled(true); setAnimationEnabled(true); layoutPanel.setWidgetHidden(actionsPanel, true); layoutPanel.setHeight("60px"); addCloseHandler(event -> delegate.onClose()); includeNonMenu.addValueChangeHandler( event -> { includeNonMenu.getElement().setAttribute("checked", Boolean.toString(event.getValue())); delegate.nameChanged(nameField.getText(), event.getValue()); }); }
}); callback.proposalComputed(result);
@Override public CodeAssistProcessor getProcessor(final int offset) { final String contentType = this.textEditor.getContentType(); if (contentType == null) { return null; } final String type = this.partitioner.getContentType(offset); return getCodeAssistProcessor(type); }