package net.sourceforge.phpeclipse;
import java.io.File;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
import net.sourceforge.phpdt.externaltools.internal.model.ColorManager;
import net.sourceforge.phpdt.externaltools.internal.model.ExternalToolsPlugin;
/**
* id of builder - matches plugin.xml (concatenate pluginid.builderid)
*/
- public static final String BUILDER_INDEX_ID = PLUGIN_ID + ".indexbuilder";
public static final String BUILDER_PARSER_ID = PLUGIN_ID + ".parserbuilder";
+//public static final String BUILDER_INDEX_ID = PLUGIN_ID + ".indexbuilder";
/** General debug flag*/
public static final boolean DEBUG = false;
+ /**
+ * The maximum number of allowed proposals by category
+ */
+ public final static int MAX_PROPOSALS = 200;
+
private static ExternalToolsPlugin externalTools;
/**
public static final String PHPPARSER_ORIGINAL = "net.sourceforge.phpdt.internal.compiler.parser.Parser";
+ public static final String PHPPARSER_NEW = "test.PHPParser";
+
/** Change this if you want to switch PHP Parser. */
public static final String PHPPARSER = PHPPARSER_ORIGINAL;
- public static final String PHPPARSER_NEW = "test.PHPParser";
-
//The shared instance.
private static PHPeclipsePlugin plugin;
/** Windows NT */
private static final int WINDOWS_NT = 5;
private PHPDocumentProvider fCompilationUnitDocumentProvider;
- //Resource bundle.
- //private ResourceBundle resourceBundle;
private ImageDescriptorRegistry fImageDescriptorRegistry;
private HashMap fIndexManagerMap = new HashMap();
private JavaTextTools fJavaTextTools;
private IFile fLastEditorFile = null;
+
/**
* The constructor.
*/
return getActiveWorkbenchWindow().getShell();
}
+ /**
+ * Returns an array of all editors that have an unsaved content. If the identical content is
+ * presented in more than one editor, only one of those editor parts is part of the result.
+ *
+ * @return an array of all dirty editor parts.
+ */
+ public static IEditorPart[] getDirtyEditors() {
+ Set inputs = new HashSet();
+ List result = new ArrayList(0);
+ IWorkbench workbench = getDefault().getWorkbench();
+ IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
+ for (int i = 0; i < windows.length; i++) {
+ IWorkbenchPage[] pages = windows[i].getPages();
+ for (int x = 0; x < pages.length; x++) {
+ IEditorPart[] editors = pages[x].getDirtyEditors();
+ for (int z = 0; z < editors.length; z++) {
+ IEditorPart ep = editors[z];
+ IEditorInput input = ep.getEditorInput();
+ if (!inputs.contains(input)) {
+ inputs.add(input);
+ result.add(ep);
+ }
+ }
+ }
+ }
+ return (IEditorPart[]) result.toArray(new IEditorPart[result.size()]);
+ }
+
public static IWorkbenchWindow getActiveWorkbenchWindow() {
return getDefault().getWorkbench().getActiveWorkbenchWindow();
}
PreferenceConverter.setDefault(store, PHP_MULTILINE_COMMENT, PHPColorProvider.MULTI_LINE_COMMENT);
PreferenceConverter.setDefault(store, PHP_SINGLELINE_COMMENT, PHPColorProvider.SINGLE_LINE_COMMENT);
+ PreferenceConverter.setDefault(store, PHP_TAG, PHPColorProvider.TAG);
PreferenceConverter.setDefault(store, PHP_KEYWORD, PHPColorProvider.KEYWORD);
PreferenceConverter.setDefault(store, PHP_VARIABLE, PHPColorProvider.VARIABLE);
PreferenceConverter.setDefault(store, PHP_FUNCTIONNAME, PHPColorProvider.FUNCTION_NAME);
PreferenceConverter.setDefault(store, PHP_TYPE, PHPColorProvider.TYPE);
PreferenceConverter.setDefault(store, PHP_STRING, PHPColorProvider.STRING);
PreferenceConverter.setDefault(store, PHP_DEFAULT, PHPColorProvider.DEFAULT);
+
+ PreferenceConverter.setDefault(store, PHPDOC_KEYWORD, PHPColorProvider.PHPDOC_KEYWORD);
+ PreferenceConverter.setDefault(store, PHPDOC_TAG, PHPColorProvider.PHPDOC_TAG);
+ PreferenceConverter.setDefault(store, PHPDOC_LINK, PHPColorProvider.PHPDOC_LINK);
+ PreferenceConverter.setDefault(store, PHPDOC_DEFAULT, PHPColorProvider.PHPDOC_DEFAULT);
+
// PreferenceConverter.setDefault(
// store,
// PHP_EDITOR_BACKGROUND,
fImageDescriptorRegistry = new ImageDescriptorRegistry();
return fImageDescriptorRegistry;
}
-
/**
* Open a file in the Workbench that may or may not exist in the workspace.
* Must be run on the UI thread.
* @param filename
- * @param line
* @throws CoreException
*/
- public void openFileInTextEditor(String filename, int line, String findString) throws CoreException {
+ public ITextEditor openFileInTextEditor(String filename) throws CoreException {
- // reject directories
+ // reject directories
if (new File(filename).isDirectory())
- return;
+ return null;
IWorkbench workbench = PlatformUI.getWorkbench();
IWorkbenchWindow window = workbench.getWorkbenchWindows()[0];
} else {
// Otherwise open the stream directly
if (page == null)
- return;
+ return null;
FileStorage storage = new FileStorage(path);
IEditorRegistry registry = getWorkbench().getEditorRegistry();
IEditorDescriptor desc = registry.getDefaultEditor(filename);
}
}
}
+ return textEditor;
+ }
+ /**
+ * Open a file in the Workbench that may or may not exist in the workspace.
+ * Must be run on the UI thread.
+ * @param filename
+ * @param line
+ * @throws CoreException
+ */
+ public void openFileAndGotoLine(String filename, int line) throws CoreException {
+
+ ITextEditor textEditor = openFileInTextEditor(filename);
if (textEditor != null) {
// If a line number was given, go to it
if (line > 0) {
// invalid text position -> do nothing
}
}
+ }
+ }
+
+ /**
+ * Open a file in the Workbench that may or may not exist in the workspace.
+ * Must be run on the UI thread.
+ * @param filename
+ * @param offset
+ * @throws CoreException
+ */
+ public void openFileAndGotoOffset(String filename, int offset, int length) throws CoreException {
+
+ ITextEditor textEditor = openFileInTextEditor(filename);
+ if (textEditor != null) {
+ // If a line number was given, go to it
+ if (offset >= 0) {
+ IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
+ textEditor.selectAndReveal(offset, length);
+ }
+ }
+ }
+
+ public void openFileAndFindString(String filename, String findString) throws CoreException {
+
+ ITextEditor textEditor = openFileInTextEditor(filename);
+ if (textEditor != null) {
// If a string was given, go to it
if (findString != null) {
try {
}
}
}
-
public void setLastEditorFile(IFile textEditor) {
this.fLastEditorFile = textEditor;
}
* @see org.eclipse.ui.plugin.AbstractUIPlugin#shutdown()
*/
public void shutdown() throws CoreException {
- super.shutdown();
-
+ super.shutdown();
+
// externalTools.shutDown();
ColorManager.getDefault().dispose();
indexManager = (IdentifierIndexManager) iterator.next();
indexManager.writeFile();
}
-
+
}
public void startup() throws CoreException {