Commit c3d51042 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ custom proposal post processor for debugging

parent 03837008
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@
package org.etsi.mts.tdl.ui;

import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalPostProcessor;
import org.eclipse.xtext.ui.editor.contentassist.IContentProposalProvider;
import org.eclipse.xtext.ui.editor.hover.IEObjectHoverProvider;
import org.eclipse.xtext.ui.editor.syntaxcoloring.AbstractAntlrTokenToAttributeIdMapper;
import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightingConfiguration;
@@ -12,7 +14,7 @@ import org.etsi.mts.tdl.ui.highlighting.TDLtxHighlightingCalculator;
import org.etsi.mts.tdl.ui.highlighting.TDLtxHighlightingConfiguration;
import org.etsi.mts.tdl.ui.highlighting.TDLtxTokenToAttributeIdMapper;
import org.etsi.mts.tdl.ui.hover.TDLtxHoverProvider;

import org.etsi.mts.tdl.ui.contentassist.DefaultCompletionProposalPostProcessor;
/**
 * Use this class to register components to be used within the Eclipse IDE.
 */
@@ -39,6 +41,12 @@ public class TDLtxUiModule extends AbstractTDLtxUiModule {
		return TDLtxHighlightingCalculator.class;
	}

    @Override
    public Class<? extends ICompletionProposalPostProcessor> bindICompletionProposalPostProcessor() {
    	return super.bindICompletionProposalPostProcessor();
//    	return DefaultCompletionProposalPostProcessor.class;
    }
    
//    @Override
//    public void configure(Binder binder) {
//        super.configure(binder);
+28 −0
Original line number Diff line number Diff line
package org.etsi.mts.tdl.ui.contentassist;

import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalPostProcessor;

/**
 * @author Sebastian Zarnekow - Initial contribution and API
 */
public class DefaultCompletionProposalPostProcessor implements ICompletionProposalPostProcessor {

	@Override
	public ICompletionProposal[] postProcess(ICompletionProposal[] proposals) {
		if (proposals.length == 1) {
			if (proposals[0] instanceof ConfigurableCompletionProposal) {
				ConfigurableCompletionProposal proposal = (ConfigurableCompletionProposal) proposals[0];
				if (proposal.isAutoInsertable() && proposal.getReplaceContextLength() > proposal.getReplacementLength()) {
					proposal.setAutoInsertable(false);
				}
			}
		}
		for (ICompletionProposal proposal : proposals) {
			System.out.println("  "+proposal);
		}
		return proposals;
	}
	
}