1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Sets default to index files with build info, only.

This commit is contained in:
Markus Schorn 2006-11-07 09:47:19 +00:00
parent 3661213f99
commit 206ad600e7
10 changed files with 72 additions and 43 deletions

View file

@ -70,11 +70,11 @@ public class IndexIncludeTest extends IndexTestBase {
public void testFastIndexer() throws Exception {
CCoreInternals.getPDOMManager().setIndexerId(fProject, IPDOMManager.ID_FAST_INDEXER);
CCoreInternals.getPDOMManager().setIndexAllHeaders(fProject, false);
CCoreInternals.getPDOMManager().setIndexAllFiles(fProject, false);
waitForIndexer();
checkHeader(false);
CCoreInternals.getPDOMManager().setIndexAllHeaders(fProject, true);
CCoreInternals.getPDOMManager().setIndexAllFiles(fProject, true);
waitForIndexer();
checkHeader(true);
@ -87,11 +87,11 @@ public class IndexIncludeTest extends IndexTestBase {
public void testFullIndexer() throws Exception {
CCoreInternals.getPDOMManager().setIndexerId(fProject, IPDOMManager.ID_FULL_INDEXER);
CCoreInternals.getPDOMManager().setIndexAllHeaders(fProject, false);
CCoreInternals.getPDOMManager().setIndexAllFiles(fProject, false);
waitForIndexer();
checkHeader(false);
CCoreInternals.getPDOMManager().setIndexAllHeaders(fProject, true);
CCoreInternals.getPDOMManager().setIndexAllFiles(fProject, true);
waitForIndexer();
checkHeader(true);

View file

@ -37,14 +37,21 @@ public interface IPDOMIndexer {
public String getID();
/**
* Returns whether to index headers that are not actually included by any source.
* Returns whether to index source files that are not actually part of the build.
* @since 4.0
*/
public boolean getIndexAllHeaders();
public boolean getIndexAllFiles();
/**
* Clients are not allowed to call this method, it is called by the framework.
* @since 4.0
*/
public void setIndexAllHeaders(boolean value);
public void setIndexAllFiles(boolean value);
/**
* Clients are not allowed to call this method, it is called by the framework.
* Used to check whether we need to reindex a project.
* @since 4.0
*/
public boolean isIndexAllFiles(boolean value);
}

View file

@ -78,8 +78,8 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
private static final QualifiedName dbNameProperty= new QualifiedName(CCorePlugin.PLUGIN_ID, "pdomName"); //$NON-NLS-1$
private static final QualifiedName pdomProperty= new QualifiedName(CCorePlugin.PLUGIN_ID, "pdom"); //$NON-NLS-1$
private static final String INDEXER_ID_KEY = "indexerId"; //$NON-NLS-1$
private static final String INDEX_ALL_HEADERS = "indexAllHeaders"; //$NON-NLS-1$
public static final String INDEXER_ID_KEY = "indexerId"; //$NON-NLS-1$
public static final String INDEX_ALL_FILES = "indexAllFiles"; //$NON-NLS-1$
private static final ISchedulingRule NOTIFICATION_SCHEDULING_RULE = new ISchedulingRule(){
public boolean contains(ISchedulingRule rule) {
return rule == this;
@ -273,12 +273,12 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
job.schedule(2000);
}
public void setIndexAllHeaders(final ICProject project, boolean val) {
public void setIndexAllFiles(final ICProject project, boolean val) {
IEclipsePreferences prefs = new ProjectScope(project.getProject()).getNode(CCorePlugin.PLUGIN_ID);
if (prefs == null)
return; // TODO why would this be null?
prefs.putBoolean(INDEX_ALL_HEADERS, val);
prefs.putBoolean(INDEX_ALL_FILES, val);
Job job= new Job(Messages.PDOMManager_savePrefsJob) {
protected IStatus run(IProgressMonitor monitor) {
IEclipsePreferences prefs = new ProjectScope(project.getProject()).getNode(CCorePlugin.PLUGIN_ID);
@ -296,9 +296,9 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
job.schedule(2000);
}
public boolean getIndexAllHeaders(ICProject project) {
public boolean getIndexAllFiles(ICProject project) {
IScopeContext[] scope= new IScopeContext[] {new ProjectScope(project.getProject()), new InstanceScope()};
return Platform.getPreferencesService().getBoolean(CCorePlugin.PLUGIN_ID, INDEX_ALL_HEADERS, true, scope);
return Platform.getPreferencesService().getBoolean(CCorePlugin.PLUGIN_ID, INDEX_ALL_FILES, false, scope);
}
public IPDOMIndexer getIndexer(ICProject project) {
@ -307,7 +307,7 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
public void onPreferenceChange(PreferenceChangeEvent event) {
Object key= event.getKey();
if (key.equals(INDEXER_ID_KEY) || key.equals(INDEX_ALL_HEADERS)) {
if (key.equals(INDEXER_ID_KEY) || key.equals(INDEX_ALL_FILES)) {
Preferences node = event.getNode();
if (CCorePlugin.PLUGIN_ID.equals(node.name())) {
node= node.parent();
@ -331,16 +331,16 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
assert !Thread.holdsLock(fPDOMs);
IPDOMIndexer oldIndexer= null;
String newid= getIndexerId(cproject);
boolean allHeaders= getIndexAllHeaders(cproject);
boolean allFiles= getIndexAllFiles(cproject);
synchronized (fIndexerMutex) {
oldIndexer= getIndexer(cproject, false);
if (oldIndexer != null) {
if (oldIndexer.getID().equals(newid) && oldIndexer.getIndexAllHeaders() == allHeaders) {
if (oldIndexer.getID().equals(newid) && oldIndexer.isIndexAllFiles(allFiles)) {
return;
}
}
createIndexer(cproject, newid, allHeaders, true);
createIndexer(cproject, newid, allFiles, true);
}
if (oldIndexer != null) {
@ -370,7 +370,7 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
if (create) {
try {
return createIndexer(project, getIndexerId(project), getIndexAllHeaders(project), false);
return createIndexer(project, getIndexerId(project), getIndexAllFiles(project), false);
} catch (CoreException e) {
CCorePlugin.log(e);
}
@ -395,7 +395,7 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
if ("run".equals(element.getName())) { //$NON-NLS-1$
try {
indexer = (IPDOMIndexer)element.createExecutableExtension("class"); //$NON-NLS-1$
indexer.setIndexAllHeaders(allHeaders);
indexer.setIndexAllFiles(allHeaders);
} catch (CoreException e) {
CCorePlugin.log(e);
}

View file

@ -138,8 +138,8 @@ public abstract class PDOMIndexerTask implements IPDOMIndexerTask {
}
}
protected boolean indexAllHeaders() {
return getIndexer().getIndexAllHeaders();
protected boolean getIndexAllFiles() {
return getIndexer().getIndexAllFiles();
}
protected ITranslationUnit findContext(IIndex index, String path) {

View file

@ -31,7 +31,7 @@ public class PDOMFastIndexer implements IPDOMIndexer {
protected ICProject project;
private boolean fIndexAllHeaders;
private boolean fIndexAllFiles;
public PDOMFastIndexer() {
}
@ -59,11 +59,15 @@ public class PDOMFastIndexer implements IPDOMIndexer {
return ID;
}
public void setIndexAllHeaders(boolean val) {
fIndexAllHeaders= val;
public void setIndexAllFiles(boolean val) {
fIndexAllFiles= val;
}
public boolean getIndexAllHeaders() {
return fIndexAllHeaders;
public boolean getIndexAllFiles() {
return fIndexAllFiles;
}
public boolean isIndexAllFiles(boolean val) {
return fIndexAllFiles==val;
}
}

View file

@ -86,9 +86,12 @@ abstract class PDOMFastIndexerJob extends PDOMIndexerTask implements IPDOMIndexe
return;
// skip if no scanner info
IScannerInfo scanner= tu.getScannerInfo(false);
IScannerInfo scanner= tu.getScannerInfo(getIndexAllFiles());
if (scanner == null) {
return;
}
CodeReader codeReader = tu.getCodeReader();
if (scanner == null || codeReader == null) {
if (codeReader == null) {
return;
}
@ -267,7 +270,7 @@ abstract class PDOMFastIndexerJob extends PDOMIndexerTask implements IPDOMIndexe
}
// headers without context
if (indexAllHeaders()) {
if (getIndexAllFiles()) {
i = translationUnits.iterator();
while (i.hasNext()) {
if (monitor.isCanceled())

View file

@ -28,7 +28,7 @@ import org.eclipse.core.runtime.CoreException;
public class PDOMFullIndexer implements IPDOMIndexer {
public static final String ID = IPDOMManager.ID_FULL_INDEXER;
private boolean fIndexAllHeaders= true;
private boolean fIndexAllFiles= true;
private ICProject project;
@ -55,11 +55,15 @@ public class PDOMFullIndexer implements IPDOMIndexer {
return ID;
}
public void setIndexAllHeaders(boolean val) {
fIndexAllHeaders= val;
public void setIndexAllFiles(boolean val) {
fIndexAllFiles= val;
}
public boolean getIndexAllHeaders() {
return fIndexAllHeaders;
public boolean getIndexAllFiles() {
return fIndexAllFiles;
}
public boolean isIndexAllFiles(boolean val) {
return fIndexAllFiles==val;
}
}

View file

@ -109,7 +109,7 @@ abstract class PDOMFullIndexerJob extends PDOMIndexerTask implements IPDOMIndexe
}
// headers without context
if (indexAllHeaders()) {
if (getIndexAllFiles()) {
i = translationUnits.iterator();
while (i.hasNext()) {
ITranslationUnit tu = (ITranslationUnit)i.next();
@ -129,7 +129,11 @@ abstract class PDOMFullIndexerJob extends PDOMIndexerTask implements IPDOMIndexe
if (path == null) {
return;
}
IASTTranslationUnit ast= tu.getAST(null, ITranslationUnit.AST_SKIP_IF_NO_BUILD_INFO);
int options= 0;
if (!getIndexAllFiles()) {
options |= ITranslationUnit.AST_SKIP_IF_NO_BUILD_INFO;
}
IASTTranslationUnit ast= tu.getAST(null, options);
if (ast == null)
return;
System.out.println(path.toOSString());

View file

@ -35,8 +35,6 @@ public class PDOMNullIndexer implements IPDOMIndexer {
private ICProject project;
private boolean fIndexAllHeaders;
public ICProject getProject() {
return project;
}
@ -84,11 +82,14 @@ public class PDOMNullIndexer implements IPDOMIndexer {
return ID;
}
public boolean getIndexAllHeaders() {
return fIndexAllHeaders;
public boolean getIndexAllFiles() {
return false;
}
public void setIndexAllHeaders(boolean value) {
fIndexAllHeaders= value;
public void setIndexAllFiles(boolean value) {
}
public boolean isIndexAllFiles(boolean val) {
return true;
}
}

View file

@ -17,9 +17,10 @@ import java.util.Map;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.CCorePreferenceConstants;
import org.eclipse.cdt.core.dom.IPDOMManager;
import org.eclipse.cdt.core.formatter.DefaultCodeFormatterConstants;
import org.eclipse.cdt.internal.core.model.CModelManager;
//import org.eclipse.core.runtime.Preferences;
import org.eclipse.cdt.internal.core.pdom.PDOMManager;
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
@ -42,6 +43,7 @@ public class CCorePreferenceInitializer extends AbstractPreferenceInitializer {
defaultOptionsMap.put(CCorePreferenceConstants.TRANSLATION_TASK_PRIORITIES, CCorePreferenceConstants.DEFAULT_TASK_PRIORITY);
defaultOptionsMap.put(CCorePreferenceConstants.CODE_FORMATTER, CCorePreferenceConstants.DEFAULT_CODE_FORMATTER);
// Store default values to default preferences
IEclipsePreferences defaultPreferences = ((IScopeContext) new DefaultScope()).getNode(CCorePlugin.PLUGIN_ID);
for (Iterator iter = defaultOptionsMap.entrySet().iterator(); iter.hasNext();) {
@ -50,6 +52,10 @@ public class CCorePreferenceInitializer extends AbstractPreferenceInitializer {
defaultPreferences.put(optionName, (String)entry.getValue());
optionNames.add(optionName);
}
// indexer defaults
defaultPreferences.putBoolean(PDOMManager.INDEX_ALL_FILES, false);
defaultPreferences.put(PDOMManager.INDEXER_ID_KEY, IPDOMManager.ID_FAST_INDEXER);
}
}