[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Fix for bug 45688: Must highlight keyword to use "Open Declarations"
|
This patch enables Open Declaration
to work without having to select a word - you just need to have the cursor
over a word. It also fixes a potential NPE in the TestSuite caused by a
resource being deleted before the UpdateDependency job has a chance to
run.
Automation Suite run on Windows + Linux.
This patch should be applied to both
1.2 and Head.
- Bogdan
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/ChangeLog,v
retrieving revision 1.203.2.5
diff -u -r1.203.2.5 ChangeLog
--- ChangeLog 5 Nov 2003 18:15:01 -0000 1.203.2.5
+++ ChangeLog 10 Nov 2003 15:24:56 -0000
@@ -1,3 +1,6 @@
+2003-11-10 Bogdan Gheorghe
+ fix bug 45688: must highlight keyword to use "Open Declarations" or "Add Include"
+
2003-11-05 John Camelon
Updated parser clients to use new IProblem strategy.
Index: src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java,v
retrieving revision 1.2.2.1
diff -u -r1.2.2.1 OpenDeclarationsAction.java
--- src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java 3 Nov 2003 14:00:48 -0000 1.2.2.1
+++ src/org/eclipse/cdt/internal/ui/editor/OpenDeclarationsAction.java 10 Nov 2003 15:24:56 -0000
@@ -27,12 +27,14 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.texteditor.IDocumentProvider;
/**
* This action opens a java CEditor on the element represented by text selection of
@@ -105,6 +107,15 @@
try {
ArrayList elementsFound = new ArrayList();
String sel = selection.getText();
+ if (sel.equals(""))
+ {
+ int selStart = selection.getOffset();
+
+ IDocumentProvider prov = fEditor.getDocumentProvider();
+ IDocument doc = prov.getDocument(fEditor.getEditorInput());
+ sel = getSelection(doc, selStart);
+ }
+
IFile file = fEditor.getInputFile();
if(file == null)
return;
@@ -202,6 +213,39 @@
}
}
return null;
- }
+ }
+
+
+ public String getSelection(IDocument doc, int fPos){
+ int pos= fPos;
+ char c;
+ int fStartPos =0, fEndPos=0;
+ String selectedWord=null;
+
+ try{
+ while (pos >= 0) {
+ c= doc.getChar(pos);
+ if (!Character.isJavaIdentifierPart(c))
+ break;
+ --pos;
+ }
+ fStartPos= pos + 1;
+
+ pos= fPos;
+ int length= doc.getLength();
+ while (pos < length) {
+ c= doc.getChar(pos);
+ if (!Character.isJavaIdentifierPart(c))
+ break;
+ ++pos;
+ }
+ fEndPos= pos;
+ selectedWord = doc.get(fStartPos, (fEndPos - fStartPos));
+ }
+ catch(BadLocationException e){
+ }
+
+ return selectedWord;
+ }
}
Index: dependency/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dependency/ChangeLog,v
retrieving revision 1.5.2.1
diff -u -r1.5.2.1 ChangeLog
--- dependency/ChangeLog 27 Oct 2003 20:44:57 -0000 1.5.2.1
+++ dependency/ChangeLog 10 Nov 2003 15:26:24 -0000
@@ -1,3 +1,7 @@
+2003-11-10 Bogdan Gheorghe
+ - Added a null resource check in UpdateDependency to fix up
+ a potential NPE in the test suite
+
2003-10-23 Bogdan Gheorghe
- Added UpdateDependency job
Index: dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java,v
retrieving revision 1.1.2.1
diff -u -r1.1.2.1 UpdateDependency.java
--- dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java 27 Oct 2003 20:44:57 -0000 1.1.2.1
+++ dependency/org/eclipse/cdt/internal/core/sourcedependency/UpdateDependency.java 10 Nov 2003 15:26:24 -0000
@@ -58,7 +58,9 @@
/* (non-Javadoc)
* @see org.eclipse.cdt.internal.core.search.processing.IJob#execute(org.eclipse.core.runtime.IProgressMonitor)
*/
- public boolean execute(IProgressMonitor progress) {
+ public boolean execute(IProgressMonitor progress) {
+ if (resource == null) return false;
+
PathCollector pathCollector = new PathCollector();
//SubProgressMonitor subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 5 );
ICSearchScope scope = SearchEngine.createWorkspaceScope();