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();
 	}