public void ToggleLibraryAsset(Project project, string[] paths)
		{
			foreach (string path in paths)
			{
				bool isResource = project.IsLibraryAsset(path);
				project.SetLibraryAsset(path, !isResource);
			}
			project.Save();
			OnProjectModified(paths);
		}
		public void MoveReferences(Project project, string fromPath, string toPath)
		{
			if (project.IsCompileTarget(fromPath))
			{
				project.SetCompileTarget(fromPath,false);
				project.SetCompileTarget(toPath,true);
			}
			
			if (project.IsLibraryAsset(fromPath))
			{
				project.ChangeAssetPath(fromPath,toPath);
			}
		}
		public void InsertFile(IMainForm mainForm, Project project, string path, 
			string textToInsert)
		{
			bool isInjectionTarget = (project.UsesInjection && 
				path == project.GetAbsolutePath(project.InputPath));

			if (!project.IsLibraryAsset(path) && !isInjectionTarget)
			{
				string caption = "Insert Resource";
				string message = "In order to use this file in your project, "
					+ "you must first embed it as a resource.  "
					+ "Would you like to do this now?";

				DialogResult result = MessageBox.Show(owner, message, caption,
					MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

				if (result == DialogResult.OK)
					ToggleLibraryAsset(project,new string[]{path});
				else
					return; // cancel
			}

			if (textToInsert == null)
				textToInsert = project.GetAsset(path).ID;

			if (mainForm.CurSciControl != null)
			{
				mainForm.CurSciControl.AddText(textToInsert.Length, textToInsert);
				mainForm.CurSciControl.Focus();
			}
			else ErrorHandler.ShowInfo("You must have a document open to insert a resource string.");
		}
		/*public void ClearASCompletion(IMainForm mainForm)
		{
			mainForm.CallCommand("PluginCommand",COMMAND_CLEARCLASSCACHE);
		}*/

		#endregion

		#region Project File Reference Updating

		public void RemoveAllReferences(Project project, string path)
		{
			if (project.IsLibraryAsset(path))
				project.SetLibraryAsset(path,false);

			if (project.IsCompileTarget(path))
				project.SetCompileTarget(path,false);
		}