]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.ui/src/org/simantics/document/ui/CSSTextEditorEnvironment.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.document.ui / src / org / simantics / document / ui / CSSTextEditorEnvironment.java
diff --git a/bundles/org.simantics.document.ui/src/org/simantics/document/ui/CSSTextEditorEnvironment.java b/bundles/org.simantics.document.ui/src/org/simantics/document/ui/CSSTextEditorEnvironment.java
new file mode 100644 (file)
index 0000000..7adfee0
--- /dev/null
@@ -0,0 +1,48 @@
+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