3_0 maint branch merge.
diff --git a/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/project/JsWebNature.java b/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/project/JsWebNature.java
index 8f59a9d..1478cb6 100644
--- a/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/project/JsWebNature.java
+++ b/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/internal/project/JsWebNature.java
@@ -23,9 +23,12 @@
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Path;
+import org.eclipse.wst.jsdt.core.IAccessRule;
+import org.eclipse.wst.jsdt.core.IIncludePathAttribute;
import org.eclipse.wst.jsdt.core.IIncludePathEntry;
import org.eclipse.wst.jsdt.core.JavaScriptCore;
import org.eclipse.wst.jsdt.core.LibrarySuperType;
+
import org.eclipse.wst.jsdt.internal.core.JavaProject;
//import org.eclipse.wst.jsdt.ui.PreferenceConstants;
/**
@@ -44,7 +47,7 @@
public static final IPath VIRTUAL_BROWSER_CLASSPATH = new Path("org.eclipse.wst.jsdt.launching.baseBrowserLibrary"); //$NON-NLS-1$
public static final String VIRTUAL_CONTAINER = "org.eclipse.wst.jsdt.launching.WebProject"; //$NON-NLS-1$
- public static final IIncludePathEntry VIRTUAL_SCOPE_ENTRY = JavaScriptCore.newContainerEntry(new Path(VIRTUAL_CONTAINER));
+ public static final IIncludePathEntry VIRTUAL_SCOPE_ENTRY = JavaScriptCore.newContainerEntry(new Path(VIRTUAL_CONTAINER), new IAccessRule[0], new IIncludePathAttribute[] {IIncludePathAttribute.HIDE}, false);
private static final String SUPER_TYPE_NAME = "Window"; //$NON-NLS-1$
private static final String SUPER_TYPE_LIBRARY = "org.eclipse.wst.jsdt.launching.baseBrowserLibrary"; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/javascript/JsTranslation.java b/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/javascript/JsTranslation.java
index 6b18318..dd82b49 100644
--- a/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/javascript/JsTranslation.java
+++ b/bundles/org.eclipse.wst.jsdt.web.core/src/org/eclipse/wst/jsdt/web/core/javascript/JsTranslation.java
@@ -25,25 +25,31 @@
import java.util.List;
import java.util.Vector;
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.resources.IFile;
+import org.eclipse.core.filebuffers.FileBuffers; // import
+ // org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile; // import
+ // org.eclipse.core.resources.IProject;
+// import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
+
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.Position;
import org.eclipse.wst.jsdt.core.IBuffer;
+import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
import org.eclipse.wst.jsdt.core.IJavaScriptElement;
import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
import org.eclipse.wst.jsdt.core.IPackageFragmentRoot;
import org.eclipse.wst.jsdt.core.ISourceRange;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
+import org.eclipse.wst.jsdt.core.JavaScriptModelException; // import
+ // org.eclipse.wst.jsdt.core.LibrarySuperType;
import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
import org.eclipse.wst.jsdt.internal.core.DocumentContextFragmentRoot;
+import org.eclipse.wst.jsdt.internal.core.Member;
import org.eclipse.wst.jsdt.internal.core.SourceRefElement;
import org.eclipse.wst.jsdt.web.core.internal.Logger;
import org.eclipse.wst.jsdt.web.core.internal.project.JsWebNature;
@@ -343,7 +349,14 @@
private ISourceRange getJSSourceRangeOf(IJavaScriptElement element) {
// returns the offset in html of given element
ISourceRange range = null;
- if (element instanceof SourceRefElement) {
+ if (element instanceof Member) {
+ try {
+ range = ((Member) element).getNameRange();
+ } catch (JavaScriptModelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }else if (element instanceof SourceRefElement) {
try {
range = ((SourceRefElement) element).getSourceRange();
}
diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/StructuredTextViewerConfigurationJSDT.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/StructuredTextViewerConfigurationJSDT.java
index c8c6b16..bd13da8 100644
--- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/StructuredTextViewerConfigurationJSDT.java
+++ b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/StructuredTextViewerConfigurationJSDT.java
@@ -10,30 +10,16 @@
*******************************************************************************/
package org.eclipse.wst.jsdt.web.ui;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.ITextDoubleClickStrategy;
-import org.eclipse.jface.text.ITextHover;
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
import org.eclipse.jface.text.formatter.IContentFormatter;
-import org.eclipse.jface.text.formatter.IFormattingStrategy;
import org.eclipse.jface.text.formatter.MultiPassContentFormatter;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
import org.eclipse.jface.text.information.IInformationProvider;
import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
import org.eclipse.wst.html.core.text.IHTMLPartitions;
import org.eclipse.wst.html.ui.StructuredTextViewerConfigurationHTML;
-import org.eclipse.wst.jsdt.web.ui.internal.autoedit.AutoEditStrategyForTabs;
import org.eclipse.wst.jsdt.web.ui.internal.contentassist.JSDTContentAssistant;
-import org.eclipse.wst.sse.ui.internal.ExtendedConfigurationBuilder;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.taginfo.TextHoverManager;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
+import org.eclipse.wst.jsdt.web.ui.internal.format.FormattingStrategyJSDT;
+import org.eclipse.wst.jsdt.web.ui.internal.taginfo.JSDTInformationProvider;
/**
*
@@ -53,26 +39,6 @@
* @since 1.0
*/
public class StructuredTextViewerConfigurationJSDT extends StructuredTextViewerConfigurationHTML {
- /*
- * Extension point identifications for externalalized content providers
- * [Bradley Childs - childsb@us.ibm.com]
- */
- public static final class externalTypeExtension {
- public static final String AUTOEDIT_ID = "autoeditstrategy";
- public static final String CONTENT_ASSIST = "contentassistprocessor";
- public static final String CONTENT_FORMATER = "contentformater";
- public static final String HOVER_ID = "texthover";
- public static final String HYPERLINK_DETECTOR = "hyperlinkdetector";
- public static final String HYPERLINK_DETECTOR_TARGETS = "hyperlinkdetector";
- public static final String INFORMATIONPROVIDER_ID = "informationpresenter";
- }
- /*
- * One instance per configuration because not sourceviewer-specific and it's
- * a String array
- */
- private String[] fConfiguredContentTypes;
- private ILabelProvider fStatusLineLabelProvider;
-
/**
* Create new instance of StructuredTextViewerConfigurationHTML
*/
@@ -81,40 +47,13 @@
super();
}
-
- public IAutoEditStrategy[] getAutoEditStrategies(ISourceViewer sourceViewer, String contentType) {
- List allStrategies = new ArrayList(0);
- Object externalAutoEditProvider = ExtendedConfigurationBuilder.getInstance().getConfiguration(externalTypeExtension.AUTOEDIT_ID, contentType);
- if (externalAutoEditProvider != null) {
- allStrategies.add(externalAutoEditProvider);
- } else {
- IAutoEditStrategy[] superStrategies = super.getAutoEditStrategies(sourceViewer, contentType);
- for (int i = 0; i < superStrategies.length; i++) {
- allStrategies.add(superStrategies[i]);
- }
- }
- // be sure this is added last in list, so it has a change to modify
- // previous results.
- // add auto edit strategy that handles when tab key is pressed
- allStrategies.add(new AutoEditStrategyForTabs());
- return (IAutoEditStrategy[]) allStrategies.toArray(new IAutoEditStrategy[allStrategies.size()]);
- }
-
-
- public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
- if (fConfiguredContentTypes == null) {
- fConfiguredContentTypes = super.getConfiguredContentTypes(sourceViewer);
- }
- return fConfiguredContentTypes;
- }
-
- /* Content assist procesors are contributed by extension for SSE now */
+ /* Content assist processors are contributed by extension for SSE now */
protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
IContentAssistProcessor[] processors = null;
- if (partitionType == IHTMLPartitions.SCRIPT) {
+ if (IHTMLPartitions.SCRIPT.equals(partitionType) || IHTMLPartitions.SCRIPT_EVENTHANDLER.equals(partitionType)) {
processors = new IContentAssistProcessor[]{new JSDTContentAssistant()};
}
else{
@@ -126,130 +65,25 @@
public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) {
final IContentFormatter formatter = super.getContentFormatter(sourceViewer);
+ if(formatter instanceof MultiPassContentFormatter) {
/*
* Check for any externally supported auto edit strategies from EP.
* [Bradley Childs - childsb@us.ibm.com]
*/
String[] contentTypes = getConfiguredContentTypes(sourceViewer);
for (int i = 0; i < contentTypes.length; i++) {
- IFormattingStrategy cf = (IFormattingStrategy) ExtendedConfigurationBuilder.getInstance().getConfiguration(externalTypeExtension.CONTENT_FORMATER, contentTypes[i]);
- if (cf != null && formatter instanceof MultiPassContentFormatter) {
- ((MultiPassContentFormatter) formatter).setSlaveStrategy(cf, contentTypes[i]);
+ if (IHTMLPartitions.SCRIPT.equals(contentTypes[i]) || IHTMLPartitions.SCRIPT_EVENTHANDLER.equals(contentTypes[i])) {
+ ((MultiPassContentFormatter) formatter).setSlaveStrategy(new FormattingStrategyJSDT(), contentTypes[i]);
+ }
}
}
return formatter;
}
-
- public ITextDoubleClickStrategy getDoubleClickStrategy(ISourceViewer sourceViewer, String contentType) {
- return super.getDoubleClickStrategy(sourceViewer, contentType);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.ui.editors.text.TextSourceViewerConfiguration#getHyperlinkDetectors(org.eclipse.jface.text.source.ISourceViewer)
- */
-
- public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) {
- if (sourceViewer == null || !fPreferenceStore.getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_HYPERLINKS_ENABLED)) {
- return null;
- }
- List allDetectors = new ArrayList(0);
- IHyperlinkDetector[] superDetectors = super.getHyperlinkDetectors(sourceViewer);
- for (int m = 0; m < superDetectors.length; m++) {
- IHyperlinkDetector detector = superDetectors[m];
- if (!allDetectors.contains(detector)) {
- allDetectors.add(detector);
- }
- }
- /* Check for external HyperLink Detectors */
- String[] contentTypes = getConfiguredContentTypes(sourceViewer);
- for (int i = 0; i < contentTypes.length; i++) {
- IHyperlinkDetector hl = (IHyperlinkDetector) ExtendedConfigurationBuilder.getInstance().getConfiguration(externalTypeExtension.HYPERLINK_DETECTOR, contentTypes[i]);
- if (hl != null) {
- allDetectors.add(hl);
- }
- }
- return (IHyperlinkDetector[]) allDetectors.toArray(new IHyperlinkDetector[0]);
- }
-
-
- public String[] getIndentPrefixes(ISourceViewer sourceViewer, String contentType) {
- return super.getIndentPrefixes(sourceViewer, contentType);
- }
-
-
protected IInformationProvider getInformationProvider(ISourceViewer sourceViewer, String partitionType) {
- IInformationProvider provider = null;
- /*
- * IInformationProvider now provided by extension point [Bradley Childs -
- * childsb@us.ibm.com]
- */
- Object externalInfoProvider = ExtendedConfigurationBuilder.getInstance().getConfiguration(externalTypeExtension.INFORMATIONPROVIDER_ID, partitionType);
- if (externalInfoProvider != null) {
- provider = (IInformationProvider) externalInfoProvider;
- } else {
- provider = super.getInformationProvider(sourceViewer, partitionType);
+ if (IHTMLPartitions.SCRIPT.equals(partitionType) || IHTMLPartitions.SCRIPT_EVENTHANDLER.equals(partitionType)) {
+ return new JSDTInformationProvider();
}
- return provider;
- }
-
-
- public LineStyleProvider[] getLineStyleProviders(ISourceViewer sourceViewer, String partitionType) {
- LineStyleProvider[] providers = super.getLineStyleProviders(sourceViewer, partitionType);
- return providers;
- }
-
-
- public ILabelProvider getStatusLineLabelProvider(ISourceViewer sourceViewer) {
- if (fStatusLineLabelProvider == null) {
- fStatusLineLabelProvider = super.getStatusLineLabelProvider(sourceViewer);
- }
- return fStatusLineLabelProvider;
- }
-
-
- public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType, int stateMask) {
- ITextHover textHover = null;
- // look for appropriate text hover processor to return based on
- // content type and state mask
- TextHoverManager manager = SSEUIPlugin.getDefault().getTextHoverManager();
- TextHoverManager.TextHoverDescriptor[] hoverDescs = manager.getTextHovers();
- int i = 0;
- while (i < hoverDescs.length && textHover == null) {
- if (hoverDescs[i].isEnabled() && EditorUtility.computeStateMask(hoverDescs[i].getModifierString()) == stateMask) {
- String hoverType = hoverDescs[i].getId();
- if (TextHoverManager.COMBINATION_HOVER.equalsIgnoreCase(hoverType)) {
- /*
- * Check extension for TextHover providers [Bradley Childs -
- * childsb@us.ibm.com]
- */
- Object externalHover = ExtendedConfigurationBuilder.getInstance().getConfiguration(externalTypeExtension.HOVER_ID, contentType);
- if (externalHover != null) {
- textHover = manager.createBestMatchHover((ITextHover) externalHover);
- } else {
- textHover = super.getTextHover(sourceViewer, contentType, stateMask);
- }
- } else if (TextHoverManager.DOCUMENTATION_HOVER.equalsIgnoreCase(hoverType)) {
- /*
- * Check extension for TextHover providers [Bradley Childs -
- * childsb@us.ibm.com]
- */
- Object externalHover = ExtendedConfigurationBuilder.getInstance().getConfiguration(externalTypeExtension.HOVER_ID, contentType);
- if (externalHover != null) {
- textHover = manager.createBestMatchHover((ITextHover) externalHover);
- } else {
- textHover = super.getTextHover(sourceViewer, contentType, stateMask);
- }
- }
- }
- i++;
- }
- // no appropriate text hovers found, try super
- if (textHover == null) {
- textHover = super.getTextHover(sourceViewer, contentType, stateMask);
- }
- return textHover;
+ return super.getInformationProvider(sourceViewer, partitionType);
}
}
diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSDTHyperlinkDetector.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSDTHyperlinkDetector.java
index fb81ad2..e323ea9 100644
--- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSDTHyperlinkDetector.java
+++ b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/internal/hyperlink/JSDTHyperlinkDetector.java
@@ -14,9 +14,9 @@
import java.util.List;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
@@ -25,11 +25,11 @@
import org.eclipse.jface.text.hyperlink.AbstractHyperlinkDetector;
import org.eclipse.jface.text.hyperlink.IHyperlink;
import org.eclipse.wst.jsdt.core.IClassFile;
-import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
import org.eclipse.wst.jsdt.core.IField;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.ILocalVariable;
import org.eclipse.wst.jsdt.core.IFunction;
+import org.eclipse.wst.jsdt.core.IJavaScriptElement;
+import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
+import org.eclipse.wst.jsdt.core.ILocalVariable;
import org.eclipse.wst.jsdt.core.ISourceRange;
import org.eclipse.wst.jsdt.core.ISourceReference;
import org.eclipse.wst.jsdt.core.JavaScriptModelException;
@@ -39,7 +39,6 @@
import org.eclipse.wst.jsdt.web.ui.internal.Logger;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-//import org.eclipse.wst.sse.core.internal.util.URIResolver;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
@@ -196,11 +195,9 @@
private IFile getFile(String fileString) {
IFile file = null;
if (fileString != null) {
- IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(fileString));
- for (int i = 0; i < files.length && file == null; i++) {
- if (files[i].exists()) {
- file = files[i];
- }
+ IResource resource = ResourcesPlugin.getWorkspace().getRoot().findMember(fileString);
+ if(resource!=null && resource instanceof IFile) {
+ file = (IFile)resource;
}
}
return file;
diff --git a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java
index d5cf5e9..8112da7 100644
--- a/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java
+++ b/bundles/org.eclipse.wst.jsdt.web.ui/src/org/eclipse/wst/jsdt/web/ui/views/contentoutline/JFaceNodeAdapterForJs.java
@@ -324,7 +324,9 @@
private IJavaScriptUnit getLazyCu(Node node) {
if(lazyCu==null) {
- lazyCu = getTranslation(node).getCompilationUnit();
+ IJsTranslation tran = getTranslation(node);
+ if(tran== null) return null;
+ lazyCu = tran.getCompilationUnit();
try {
lazyCu.makeConsistent( new NullProgressMonitor() );
} catch (JavaScriptModelException e) {
@@ -346,6 +348,7 @@
// model = modelManager.getModelForRead(doc);
}
IDOMModel domModel = (IDOMModel) model;
+ if(domModel == null) return null;
xmlDoc = domModel.getDocument();
} catch (Exception e) {
Logger.logException(e);