]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/completions/Completion.java
New SCL completion implementation
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / completions / Completion.java
diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/completions/Completion.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/completions/Completion.java
new file mode 100644 (file)
index 0000000..dc21c6c
--- /dev/null
@@ -0,0 +1,32 @@
+package org.simantics.scl.compiler.completions;
+
+public class Completion {
+    public final int startOfReplacedText;
+    public final int lengthOfReplacedText;
+    public final String replacement;
+    public final int cursorPositionAfterReplacement;
+    
+    public final CompletionType completionType;
+    public final String module;
+    public final String name;
+    public final String type; // may be null
+    public final String documentation; // may be null
+    
+    public Completion(int startOfReplacedText, int lengthOfReplacedText, String replacement,
+            int cursorPositionAfterReplacement, CompletionType completionType, String definingModule, String name,
+            String type, String documentation) {
+        this.startOfReplacedText = startOfReplacedText;
+        this.lengthOfReplacedText = lengthOfReplacedText;
+        this.replacement = replacement;
+        this.cursorPositionAfterReplacement = cursorPositionAfterReplacement;
+        this.completionType = completionType;
+        this.module = definingModule;
+        this.name = name;
+        this.type = type;
+        this.documentation = "".equals(documentation) ? null : documentation;
+    }
+    
+    public String getLabel() {
+        return name + (type != null ? " :: " + type : "") + (module != null ? " (" + module + ")" : "") ;
+    }
+}