package org.simantics.document.ui; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.contentassist.ICompletionProposal; /** * TODO: content assist features to be implemented * * For a "template" implementation, see SCLTextEditorEnvironment. * * @author Antti Villberg */ public class CSSTextEditorEnvironment { private CSSCompletionProposal[] proposalCache = new CSSCompletionProposal[0]; private List moduleProposalCache = new ArrayList<>(0); public void updateEnvironment(IDocument document) { // TODO: implement if necessary } public ICompletionProposal[] getCompletionProposals(String tmpPrefix, int offset) { // TODO: find proposals List proposals = new ArrayList<>(); moduleProposalCache = proposals; Collections.sort(proposals, COMPARATOR); moduleProposalCache.addAll(proposals); proposalCache = moduleProposalCache.toArray(new CSSCompletionProposal[moduleProposalCache.size()]); return proposalCache; } private static final Comparator COMPARATOR = (prop1, prop2) -> { if (prop1.isPrivate() && !prop2.isPrivate()) return -1; else if (!prop1.isPrivate() && prop2.isPrivate()) return 1; return prop1.getName().compareTo(prop2.getName()); }; public String getHoverInfo(String text) { return null; } }