allow completion to work in non-js project, dont create ".settings" directory in non-js projects
diff --git a/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/IJavaScriptProject.java b/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/IJavaScriptProject.java
index 602dec4..98a1b67 100644
--- a/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/IJavaScriptProject.java
+++ b/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/core/IJavaScriptProject.java
@@ -62,6 +62,9 @@
/* returns the projects scope file */
IFile getJSDTScopeFile();
+ /* returns the projects scope file */
+ IFile getJSDTScopeFile(boolean forceCreate);
+
/**
* Decodes the includepath entry that has been encoded in the given string
* in the context of this project.
diff --git a/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/internal/core/JavaModelManager.java b/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/internal/core/JavaModelManager.java
index 1b33eba..ac10426 100644
--- a/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/internal/core/JavaModelManager.java
+++ b/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/internal/core/JavaModelManager.java
@@ -1875,9 +1875,9 @@
public PerProjectInfo getPerProjectInfoCheckExistence(IProject project) throws JavaScriptModelException {
JavaModelManager.PerProjectInfo info = getPerProjectInfo(project, false /* don't create info */);
if (info == null) {
- if (!JavaProject.hasJSDTScope(project)&& !JavaProject.hasJavaNature(project)) {
- throw ((JavaProject)JavaScriptCore.create(project)).newNotPresentException();
- }
+// continue even if not js project if (!JavaProject.hasJSDTScope(project)&& !JavaProject.hasJavaNature(project)) {
+// throw ((JavaProject)JavaScriptCore.create(project)).newNotPresentException();
+// }
info = getPerProjectInfo(project, true /* create info */);
}
return info;
diff --git a/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/internal/core/JavaProject.java b/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/internal/core/JavaProject.java
index 9e1011e..8efda2c 100644
--- a/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/internal/core/JavaProject.java
+++ b/bundles/org.eclipse.wst.jsdt.core/src/org/eclipse/wst/jsdt/internal/core/JavaProject.java
@@ -183,9 +183,14 @@
}
public IFile getJSDTScopeFile() {
+ return getJSDTScopeFile(false);
+ }
+
+ public IFile getJSDTScopeFile(boolean forceCreate) {
+
// Return the projects .jsdtscope file
IFolder rscPath = this.project.getFolder(JavaProject.SHARED_PROPERTIES_DIRECTORY);
- if(!rscPath.exists())
+ if(!rscPath.exists()&&forceCreate)
try {
rscPath.create(true, true, new NullProgressMonitor());
}
@@ -1948,7 +1953,7 @@
if (e.getStatus().getCode()==IJavaScriptModelStatusConstants.ELEMENT_DOES_NOT_EXIST)
{
IIncludePathEntry[] defaultClasspath = defaultClasspath();
- return defaultClasspath;
+ return resolveClasspath(defaultClasspath);
}
else
throw e;
@@ -2741,7 +2746,7 @@
// actual file saving
try {
- setSharedProperty(getJSDTScopeFile().getProjectRelativePath().toString(), encodeClasspath(newClasspath, newOutputLocation, true, unknownElements));
+ setSharedProperty(getJSDTScopeFile(true).getProjectRelativePath().toString(), encodeClasspath(newClasspath, newOutputLocation, true, unknownElements));
return true;
} catch (CoreException e) {
throw new JavaScriptModelException(e);
@@ -2869,7 +2874,7 @@
this.project = project;
this.parent = JavaModelManager.getJavaModelManager().getJavaModel();
/* Make sure the scope file is properly set. */
- getJSDTScopeFile();
+ getJSDTScopeFile(true);
}
/**
@@ -3086,7 +3091,7 @@
try {
IFolder rscPath = this.project.getFolder(JavaProject.SHARED_PROPERTIES_DIRECTORY);
- if(!rscPath.exists()) rscPath.create(true, true, new NullProgressMonitor());
+// if(!rscPath.exists()) rscPath.create(true, true, new NullProgressMonitor());
IPath fullPath = new Path(JavaProject.SHARED_PROPERTIES_DIRECTORY);//.append(LibrarySuperType.SUPER_TYPE_NAME);
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java
index a3010b1..94be95c 100644
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java
+++ b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java
@@ -429,7 +429,7 @@
}
public void initializeTimeStamps() {
- IFile file= fCurrJProject.getJSDTScopeFile(); //$NON-NLS-1$
+ IFile file= fCurrJProject.getJSDTScopeFile(true); //$NON-NLS-1$
fFileTimeStamp= file.getModificationStamp();
fUserSettingsTimeStamp= getEncodedSettings();
}