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