Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Indexer clean up patch


This patch:

- changes the indexer to use whatever source/header extensions are defined in CModelManager
- updated the search shortcut so that Ctrl + H will bring up the C/C++ search in a source/header extension file
- flushes the CDT log file after each index merge (ie. each time the indexer completes an index)

As always, Automation Suite on Windows and Linux..

- Bogdan

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/ChangeLog,v
retrieving revision 1.158
diff -u -r1.158 ChangeLog
--- ChangeLog	1 Oct 2003 19:43:06 -0000	1.158
+++ ChangeLog	1 Oct 2003 22:03:14 -0000
@@ -1,7 +1,10 @@
 2003-10-01 Bogdan Gheorghe
-
+	
+	Changed DeltaProcessor.updateDependencies to use the CModelManager
+	header file definitions
+	
 	Modified CDTLogWriter: increased max log file size to 10MB; got rid of
-	the stack dumps/
+	the stack dumps; added flush to CDTLogWriter
 	
 	* src/org/eclipse/cdt/internal/core/CDTLogWriter.java
 	
Index: index/ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/ChangeLog,v
retrieving revision 1.23
diff -u -r1.23 ChangeLog
--- index/ChangeLog	1 Oct 2003 19:43:06 -0000	1.23
+++ index/ChangeLog	1 Oct 2003 22:03:15 -0000
@@ -1,6 +1,10 @@
 2003-10-01 Bogdan Gheorghe
-	Modified BlockIndexOutput.addInclude to properly flush an
+	- Modified BlockIndexOutput.addInclude to properly flush an
 	include block once it's full.
+	- Flushing the CDT log after every merge
+	- Logging I/O Exceptions in AddFileToIndex
+	- Changed valid source file extensions in SourceIndexer to
+	  use CModelManager file extensions
 	
 2003-09-30 Bogdan Gheorghe
 	Changed logging for SourceIndexer to log file in cdt.core
Index: index/org/eclipse/cdt/internal/core/index/impl/Index.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/index/impl/Index.java,v
retrieving revision 1.3
diff -u -r1.3 Index.java
--- index/org/eclipse/cdt/internal/core/index/impl/Index.java	26 Sep 2003 17:53:31 -0000	1.3
+++ index/org/eclipse/cdt/internal/core/index/impl/Index.java	1 Oct 2003 22:03:15 -0000
@@ -17,6 +17,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.eclipse.cdt.core.CCorePlugin;
 import org.eclipse.cdt.internal.core.index.IDocument;
 import org.eclipse.cdt.internal.core.index.IEntryResult;
 import org.eclipse.cdt.internal.core.index.IIndex;
@@ -272,6 +273,8 @@
 			addsIndex.init();
 			addsIndexInput= new SimpleIndexInput(addsIndex);
 			state= MERGED;
+			//flush the CDT log
+			CCorePlugin.getDefault().cdtLog.flushLog();
 		}
 	}
 	/**
Index: index/org/eclipse/cdt/internal/core/search/indexing/AddFileToIndex.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/AddFileToIndex.java,v
retrieving revision 1.4
diff -u -r1.4 AddFileToIndex.java
--- index/org/eclipse/cdt/internal/core/search/indexing/AddFileToIndex.java	9 Sep 2003 17:53:51 -0000	1.4
+++ index/org/eclipse/cdt/internal/core/search/indexing/AddFileToIndex.java	1 Oct 2003 22:03:16 -0000
@@ -12,6 +12,7 @@
 
 import java.io.IOException;
 
+import org.eclipse.cdt.core.ICLogConstants;
 import org.eclipse.cdt.internal.core.index.IIndex;
 import org.eclipse.cdt.internal.core.search.processing.JobManager;
 import org.eclipse.core.resources.IFile;
@@ -37,6 +38,7 @@
 			monitor.enterWrite(); // ask permission to write
 			if (!indexDocument(index)) return false;
 		} catch (IOException e) {
+			org.eclipse.cdt.internal.core.model.Util.log(null, "Index I/O Exception: " + e.getMessage() + " on File: " + resource.getName(), ICLogConstants.CDT);
 			if (IndexManager.VERBOSE) {
 				JobManager.verbose("-> failed to index " + this.resource + " because of the following exception:"); //$NON-NLS-1$ //$NON-NLS-2$
 				e.printStackTrace();
Index: index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java,v
retrieving revision 1.12
diff -u -r1.12 SourceIndexer.java
--- index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java	1 Oct 2003 13:33:33 -0000	1.12
+++ index/org/eclipse/cdt/internal/core/search/indexing/SourceIndexer.java	1 Oct 2003 22:03:16 -0000
@@ -28,6 +28,7 @@
 import org.eclipse.cdt.core.parser.ParserFactory;
 import org.eclipse.cdt.core.parser.ParserMode;
 import org.eclipse.cdt.internal.core.index.IDocument;
+import org.eclipse.cdt.internal.core.model.CModelManager;
 import org.eclipse.cdt.internal.core.parser.ScannerInfo;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
@@ -47,7 +48,8 @@
 	
 	//TODO: Indexer, add additional file types
 	//Header files: "h" , "hh", "hpp"
-	public static final String[] FILE_TYPES= new String[] {"cpp","c", "cc", "cxx"}; //$NON-NLS-1$
+	//Use the CModelManager defined file types
+	//public static final String[] FILE_TYPES= new String[] {"cpp","c", "cc", "cxx"}; //$NON-NLS-1$
 	
 	//protected DefaultProblemFactory problemFactory= new DefaultProblemFactory(Locale.getDefault());
 	IFile resourceFile;
@@ -59,7 +61,7 @@
 	 * Returns the file types the <code>IIndexer</code> handles.
 	 */
 	public String[] getFileTypes(){
-		return FILE_TYPES;
+		return CModelManager.sourceExtensions;
 	}
 	
 	protected void indexFile(IDocument document) throws IOException {
@@ -86,23 +88,17 @@
 							ParserFactory.createScanner( new StringReader( document.getStringContent() ), resourceFile.getLocation().toOSString(), scanInfo, ParserMode.COMPLETE_PARSE, language, requestor ), 
 							requestor, ParserMode.COMPLETE_PARSE, language );
 		
-		try{
-			boolean retVal = parser.parse();
-			
+		boolean retVal = parser.parse();
+		
+		if (!retVal)
+			org.eclipse.cdt.internal.core.model.Util.log(null, "Failed to index " + resourceFile.getFullPath(), ICLogConstants.CDT);
+		
+		if (AbstractIndexer.VERBOSE){
 			if (!retVal)
-				org.eclipse.cdt.internal.core.model.Util.log(null, "Failed to index " + resourceFile.getFullPath(), ICLogConstants.CDT);
-			
-			if (AbstractIndexer.VERBOSE){
-				if (!retVal)
-					AbstractIndexer.verbose("PARSE FAILED " + resourceFile.getName().toString());
-				else
-					AbstractIndexer.verbose("PARSE SUCCEEDED " + resourceFile.getName().toString());			
-			}	
-		}
-		catch( Exception e ){
-			System.out.println( "Parse Exception in SourceIndexer" ); 
-			e.printStackTrace();
-		}
+				AbstractIndexer.verbose("PARSE FAILED " + resourceFile.getName().toString());
+			else
+				AbstractIndexer.verbose("PARSE SUCCEEDED " + resourceFile.getName().toString());			
+		}	
 	}
 	/**
 	 * Sets the document types the <code>IIndexer</code> handles.
Index: model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java,v
retrieving revision 1.16
diff -u -r1.16 DeltaProcessor.java
--- model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java	26 Sep 2003 17:53:31 -0000	1.16
+++ model/org/eclipse/cdt/internal/core/model/DeltaProcessor.java	1 Oct 2003 22:03:16 -0000
@@ -511,9 +511,7 @@
 		String fileExtension = resource.getFileExtension();
 		
 		if ((fileExtension != null) &&
-			(fileExtension.equals("h") ||
-			fileExtension.equals("hh") ||
-			fileExtension.equals("hpp")))
+			(isValidHeader(fileExtension)))
 		{
 			PathCollector pathCollector = new PathCollector();
 			//SubProgressMonitor subMonitor = (progressMonitor == null ) ? null : new SubProgressMonitor( progressMonitor, 5 );
@@ -544,4 +542,13 @@
 			}
 		}
 	}	
+	
+	private boolean isValidHeader(String fileExtension) {
+		String[] supportedTypes = CModelManager.headerExtensions;
+		for (int i = 0; i < supportedTypes.length; ++i) {
+			if (supportedTypes[i].equals(fileExtension))
+				return true;
+		}
+		return false;
+	}
 }
Index: src/org/eclipse/cdt/internal/core/CDTLogWriter.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CDTLogWriter.java,v
retrieving revision 1.2
diff -u -r1.2 CDTLogWriter.java
--- src/org/eclipse/cdt/internal/core/CDTLogWriter.java	1 Oct 2003 19:43:06 -0000	1.2
+++ src/org/eclipse/cdt/internal/core/CDTLogWriter.java	1 Oct 2003 22:03:18 -0000
@@ -206,5 +206,11 @@
 	protected void writeSpace() throws IOException {
 		write(" ");//$NON-NLS-1$
 	}
+	
+	public synchronized void flushLog(){
+		try {
+			log.flush();
+		} catch (IOException e) {}
+	}
 
 }
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui/plugin.xml,v
retrieving revision 1.52
diff -u -r1.52 plugin.xml
--- plugin.xml	1 Oct 2003 20:21:54 -0000	1.52
+++ plugin.xml	1 Oct 2003 22:03:42 -0000
@@ -407,7 +407,7 @@
             showScopeSection="true"
             label="%CSearchPage.label"
             icon="icons/full/obj16/csearch_obj.gif"
-            extensions="c:90,cpp:90, cxx:90, cc:90, h:90, hh:90, hpp:90"
+            extensions="c:90,cpp:90, cxx:90, cc:90,C:90, h:90, hh:90, hpp:90, H:90"
             class="org.eclipse.cdt.internal.ui.search.CSearchPage"
             sizeHint="460, 160"
             id="org.eclipse.cdt.ui.CSearchPage">

Back to the top