Author: vrubezhny
Date: 2008-04-10 14:39:14 -0400 (Thu, 10 Apr 2008)
New Revision: 7494
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-2011 Resources with dot's are handled wrong in
code completion
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java 2008-04-10
16:38:29 UTC (rev 7493)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java 2008-04-10
18:39:14 UTC (rev 7494)
@@ -75,6 +75,7 @@
private final String fString;
private final String fPrefix;
+ private final String fNewPrefix;
private final int fOffset;
private final int fNewPosition;
@@ -83,8 +84,13 @@
}
public Proposal(String string, String prefix, int offset, int newPosition) {
+ this(string, prefix, prefix, offset, offset + string.length());
+ }
+
+ public Proposal(String string, String prefix, String newPrefix, int offset, int
newPosition) {
fString = string;
fPrefix = prefix;
+ fNewPrefix = newPrefix;
fOffset = offset;
fNewPosition = newPosition;
}
@@ -136,8 +142,10 @@
*/
public void apply(IDocument document, char trigger, int offset) {
try {
+ int docCharsToReplace = (fNewPrefix == null || fPrefix == null) ? 0 :
+ fPrefix.length() - fNewPrefix.length();
String replacement= fString.substring(offset - fOffset);
- document.replace(offset, 0, replacement);
+ document.replace(offset - docCharsToReplace, docCharsToReplace, replacement);
} catch (BadLocationException x) {
SeamGuiPlugin.getPluginLog().logError(x);
}
@@ -293,7 +301,12 @@
for (String string : uniqueSuggestions) {
if (string.length() >= 0) {
string = proposalPrefix + string + proposalSufix;
- result.add(new Proposal(string, prefix, offset, offset + string.length() -
proposalSufix.length()));
+ if (string.startsWith("['") &&
string.endsWith("']") && prefix != null &&
prefix.endsWith(".")) {
+ String newPrefix = prefix.substring(0, prefix.length() - 1);
+ result.add(new Proposal(string, prefix, newPrefix, offset, offset - 1 +
string.length() - proposalSufix.length()));
+ } else {
+ result.add(new Proposal(string, prefix, offset, offset + string.length() -
proposalSufix.length()));
+ }
}
}