From 7b5b147d8df09672fcae10a944e448bec9fab68e Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Fri, 30 Apr 2004 00:21:48 +0000 Subject: [PATCH] Leave the indexer alone it is dependent on those file extensions. TODO remove later. --- .../org/eclipse/cdt/internal/core/Util.java | 28 +++++++++++++++++-- .../core/search/indexing/SourceIndexer.java | 5 ++-- .../internal/core/model/CModelManager.java | 7 +++++ 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/Util.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/Util.java index 1e23f6e1819..3ddcafa0948 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/Util.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/Util.java @@ -21,7 +21,7 @@ import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; -import org.eclipse.cdt.core.model.CoreModel; +import org.eclipse.cdt.internal.core.model.CModelManager; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IPath; @@ -371,7 +371,31 @@ public class Util { * @return */ public static boolean isCCFileName(String fileName) { - return CoreModel.isValidTranslationUnitName(fileName); + String[] sourceExtensions = CModelManager.sourceExtensions; + String[] headerExtensions = CModelManager.headerExtensions; + + int dot =fileName.lastIndexOf("."); //$NON-NLS-1$ + + //No extension, give benefit of doubt + if (dot == -1) + return true; + + //Extract extension + String extension = ""; //$NON-NLS-1$ + if (dot + 1 <= fileName.length()) + extension = fileName.substring(dot + 1); + + for (int i=0; iIIndexer handles. */ public String[] getFileTypes(){ - return CoreModel.getDefault().getSourceExtensions(); + return CModelManager.sourceExtensions; } protected void indexFile(IDocument document) throws IOException { @@ -97,7 +98,7 @@ public class SourceIndexer extends AbstractIndexer { } //C or CPP? - ParserLanguage language = CoreModel.hasCCNature(currentProject) ? ParserLanguage.CPP : ParserLanguage.C; + ParserLanguage language = CoreModel.getDefault().hasCCNature(currentProject) ? ParserLanguage.CPP : ParserLanguage.C; IParser parser = null; diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java index 56b7a3ba219..c3bd8f6fe02 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java @@ -131,6 +131,13 @@ public class CModelManager implements IResourceChangeListener, ICDescriptorListe * The lis of the SourceMappers on projects. */ private HashMap sourceMappers = new HashMap(); + + // TODO: This should be in a preference/property page + public static final String [] sourceExtensions = {"c", "cxx", "cc", "C", "cpp"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ + public static final String [] headerExtensions = {"h", "hh", "hpp", "H"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + public static final String [] assemblyExtensions = {"s", "S"}; //$NON-NLS-1$ //$NON-NLS-2$ + + public static final IWorkingCopy[] NoWorkingCopy = new IWorkingCopy[0];