1 package org.simantics.document.ui;
\r
3 import java.util.ArrayList;
\r
4 import java.util.Collections;
\r
5 import java.util.Comparator;
\r
6 import java.util.List;
\r
8 import org.eclipse.jface.text.IDocument;
\r
9 import org.eclipse.jface.text.contentassist.ICompletionProposal;
\r
12 * TODO: content assist features to be implemented
\r
14 * For a "template" implementation, see SCLTextEditorEnvironment.
\r
16 * @author Antti Villberg
\r
18 public class CSSTextEditorEnvironment {
\r
20 private CSSCompletionProposal[] proposalCache = new CSSCompletionProposal[0];
\r
21 private List<CSSCompletionProposal> moduleProposalCache = new ArrayList<>(0);
\r
23 public void updateEnvironment(IDocument document) {
\r
24 // TODO: implement if necessary
\r
27 public ICompletionProposal[] getCompletionProposals(String tmpPrefix, int offset) {
\r
28 // TODO: find proposals
\r
29 List<CSSCompletionProposal> proposals = new ArrayList<>();
\r
30 moduleProposalCache = proposals;
\r
31 Collections.sort(proposals, COMPARATOR);
\r
32 moduleProposalCache.addAll(proposals);
\r
33 proposalCache = moduleProposalCache.toArray(new CSSCompletionProposal[moduleProposalCache.size()]);
\r
34 return proposalCache;
\r
37 private static final Comparator<CSSCompletionProposal> COMPARATOR = (prop1, prop2) -> {
\r
38 if (prop1.isPrivate() && !prop2.isPrivate())
\r
40 else if (!prop1.isPrivate() && prop2.isPrivate())
\r
42 return prop1.getName().compareTo(prop2.getName());
\r
45 public String getHoverInfo(String text) {
\r