import net.sourceforge.phpeclipse.builder.FileStorage;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.model.IPersistableSourceLocator;
import org.eclipse.debug.core.model.IStackFrame;
if (remoteSourcePath.isPrefixOf (path)) { // Is the server side filename with the remote source path
path = path.removeFirstSegments (remoteSourcePath.matchingFirstSegments (path)); // Remove the remote source path
file = path.toString (); // The filename without the remote source path
- projectPath = (PHPeclipsePlugin.getWorkspace().getRoot().getProject(projectName).getLocation()); // Get the absolute project path
+ projectPath = (PHPeclipsePlugin.getWorkspace().getRoot().getProject(projectName).getFullPath()); // Get the absolute project path
return (projectPath.append (path)).toOSString (); // Return the filename as absolute client side path
}
localPath = new Path (local); // Create new IPath object for the local/client side path
path = localPath.append (path); // Prepend the project relative path to filename
- projectPath = (PHPeclipsePlugin.getWorkspace().getRoot().getProject(projectName).getLocation()); // Get the absolute project path
+ projectPath = (PHPeclipsePlugin.getWorkspace().getRoot().getProject(projectName).getFullPath()); // Get the absolute project path
return (projectPath.append (path)).toOSString (); // Return the filename as absolute client side path
}
}
return fileName;
- } else {
+
+ } else {
+
+ IWorkspaceRoot root = PHPLaunchingPlugin.getWorkspace().getRoot();
+ Path filePath = new Path(fileName);
+
+ if (root.getFileForLocation(filePath) == null) {
+ IProject proj = root.getProject(projectName);
+ IFile[] files = root.findFilesForLocation(filePath);
+ for (int i = 0; i < files.length; i++) {
+ if (files[i].getProject().equals(proj)) {
+ fileName = proj.getFullPath().append(files[i].getProjectRelativePath()).toOSString();
+ break;
+ }
+ }
+ }
+
return fileName;
}
}