[SCM] Lisaac compiler branch, master, updated. lisaac-0.12-424-g041c741
Damien Bouvarel
dams.bouvarel at wanadoo.fr
Fri Aug 21 12:38:27 UTC 2009
The following commit has been merged in the master branch:
commit 041c7415666695d78785b1fcd42c94c7b8ea360f
Author: Damien Bouvarel <dams.bouvarel at wanadoo.fr>
Date: Fri Aug 21 14:38:01 2009 +0200
fix variable completion bug
diff --git a/editor/eclipse/src/org/lisaac/ldt/model/LisaacCompletionParser.java b/editor/eclipse/src/org/lisaac/ldt/model/LisaacCompletionParser.java
index 49addf2..1bfd610 100644
--- a/editor/eclipse/src/org/lisaac/ldt/model/LisaacCompletionParser.java
+++ b/editor/eclipse/src/org/lisaac/ldt/model/LisaacCompletionParser.java
@@ -11,11 +11,7 @@ import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.lisaac.ldt.LisaacPlugin;
import org.lisaac.ldt.editors.LisaacEditor;
-import org.lisaac.ldt.model.items.IArgument;
import org.lisaac.ldt.model.items.ICode;
-import org.lisaac.ldt.model.items.ITMArgs;
-import org.lisaac.ldt.model.items.ITMList;
-import org.lisaac.ldt.model.items.ITMLocal;
import org.lisaac.ldt.model.items.ITMRead;
import org.lisaac.ldt.model.items.Prototype;
import org.lisaac.ldt.model.items.Slot;
diff --git a/editor/eclipse/src/org/lisaac/ldt/model/items/ITMList.java b/editor/eclipse/src/org/lisaac/ldt/model/items/ITMList.java
index aeddd3c..20541f6 100644
--- a/editor/eclipse/src/org/lisaac/ldt/model/items/ITMList.java
+++ b/editor/eclipse/src/org/lisaac/ldt/model/items/ITMList.java
@@ -1,13 +1,18 @@
package org.lisaac.ldt.model.items;
+import java.util.ArrayList;
import java.util.List;
+import org.eclipse.jface.text.contentassist.CompletionProposal;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.text.edits.DeleteEdit;
import org.eclipse.text.edits.InsertEdit;
import org.eclipse.text.edits.TextEdit;
import org.lisaac.ldt.model.LisaacParser;
import org.lisaac.ldt.model.Position;
import org.lisaac.ldt.model.types.IType;
+import org.lisaac.ldt.outline.OutlineImages;
public class ITMList implements ICode {
protected ICode[] code;
@@ -68,22 +73,40 @@ public class ITMList implements ICode {
return null;
}
- public String getLocalMatch(String n) {
+ private List<String> getLocalMatches(String n) {
+ List<String> result = new ArrayList<String>();
if (localList != null) {
for (int i=0; i<localList.length; i++) {
if (localList[i].name.startsWith(n)) {
- return localList[i].name;
+ result.add(localList[i].name);
}
}
}
if (staticList != null) {
for (int i=0; i<staticList.length; i++) {
if (staticList[i].name.startsWith(n)) {
- return staticList[i].name;
+ result.add(staticList[i].name);
}
}
}
- return null;
+ return result;
+ }
+
+ public void getMatchProposals(String n,
+ ArrayList<ICompletionProposal> matchList, int offset, int length) {
+ List<String> matches = getLocalMatches(n);
+
+ for (int i=0; i<matches.size(); i++) {
+ String match = matches.get(i);
+ if (Slot.checkUnicity(matchList, match)) {
+ Image image = OutlineImages.PRIVATE_NONSHARED;// TODO '+' or '-' local..
+
+ String partialMatch = match.substring(n.length());
+ matchList.add(new CompletionProposal(partialMatch, offset, length,
+ partialMatch.length(), image, match, null,
+ null));
+ }
+ }
}
public IType getType(Slot slot, Prototype prototype) {
diff --git a/editor/eclipse/src/org/lisaac/ldt/model/items/Slot.java b/editor/eclipse/src/org/lisaac/ldt/model/items/Slot.java
index 192cf61..de2ad20 100644
--- a/editor/eclipse/src/org/lisaac/ldt/model/items/Slot.java
+++ b/editor/eclipse/src/org/lisaac/ldt/model/items/Slot.java
@@ -11,7 +11,6 @@ import org.eclipse.text.edits.TextEdit;
import org.lisaac.ldt.model.LisaacParser;
import org.lisaac.ldt.model.Position;
import org.lisaac.ldt.model.types.IType;
-import org.lisaac.ldt.outline.OutlineImages;
import org.lisaac.ldt.outline.OutlineSlot;
public class Slot {
@@ -361,15 +360,7 @@ import org.lisaac.ldt.outline.OutlineSlot;
list = (ITMList) c;
if (list != null && list.isInside(offset)) {
// list variable
- String match = list.getLocalMatch(n);
- if (match != null && checkUnicity(matchList, match)) {
- Image image = OutlineImages.PRIVATE_NONSHARED;// TODO '+' or '-' local..
-
- String partialMatch = match.substring(n.length());
- matchList.add(new CompletionProposal(partialMatch, offset, length,
- partialMatch.length(), image, match, null,
- null));
- }
+ list.getMatchProposals(n, matchList, offset, length);
}
} else if (c instanceof ITMBlock) {
list = ((ITMBlock) c).list;
--
Lisaac compiler
More information about the Lisaac-commits
mailing list