[jbosstools-commits] JBoss Tools SVN: r6729 - trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Thu Mar 6 15:28:21 EST 2008
Author: vrubezhny
Date: 2008-03-06 15:28:21 -0500 (Thu, 06 Mar 2008)
New Revision: 6729
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/ElVarSearcher.java
Log:
http://jira.jboss.org/jira/browse/JBIDE-509 intelligent navigation support for seam variable names
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/ElVarSearcher.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/ElVarSearcher.java 2008-03-06 20:25:42 UTC (rev 6728)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/ElVarSearcher.java 2008-03-06 20:28:21 UTC (rev 6729)
@@ -18,6 +18,7 @@
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
import org.w3c.dom.Element;
@@ -120,12 +121,21 @@
Element element = (Element)node;
String var = element.getAttribute(VAR_ATTRIBUTE_NAME);
if(var!=null) {
+ int declOffset = 0;
+ int declLength = 0;
+ Node varAttr = element.getAttributeNode(VAR_ATTRIBUTE_NAME);
+ if (varAttr instanceof IDOMAttr) {
+ int varNameStart = ((IDOMAttr)varAttr).getNameRegionStartOffset();
+ int varNameEnd = ((IDOMAttr)varAttr).getNameRegionEndOffset();
+ declOffset = varNameStart;
+ declLength = varNameEnd - varNameStart;
+ }
var = var.trim();
if(!"".equals(var)) {
String value = element.getAttribute(VALUE_ATTRIBUTE_NAME);
if(value!=null) {
value = value.trim();
- Var newVar = new Var(var, value);
+ Var newVar = new Var(var, value, declOffset, declLength);
if(newVar.getElToken()!=null) {
return newVar;
}
@@ -194,19 +204,32 @@
ELToken elToken;
String resolvedValue;
ELToken resolvedElToken;
-
+ int declOffset;
+ int declLength;
+
/**
* Constructor
* @param name - value of "var" attribute.
* @param value - value of "value" attribute.
*/
- public Var(String name, String value) {
+ public Var(String name, String value, int declOffset, int declLength) {
super();
this.name = name;
this.value = value;
elToken = parseEl(value);
+ this.declOffset = declOffset;
+ this.declLength = declLength;
}
+ /**
+ * Constructor
+ * @param name - value of "var" attribute.
+ * @param value - value of "value" attribute.
+ */
+ public Var(String name, String value) {
+ this(name, value, 0, 0);
+ }
+
private ELToken parseEl(String el) {
if(el.length()>3 && el.startsWith("#{") && el.endsWith("}")) {
String elBody = el.substring(0, el.length()-1).substring(2);
@@ -273,5 +296,20 @@
public String getResolvedValue() {
return resolvedValue;
}
+
+ /**
+ * @return offset of the var declaration
+ */
+ public int getDeclarationOffset() {
+ return declOffset;
+ }
+
+ /**
+ * @return length of the var declaration
+ */
+ public int getDeclarationLength() {
+ return declLength;
+ }
+
}
}
\ No newline at end of file
More information about the jbosstools-commits
mailing list