[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