mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-01 06:05:24 +02:00
2004-08-21 Alain Magloire
(Partial, since the indexer is still not aware of this) Fix for 66559: Work on the ResolverModel * model/org/eclipse/cdt/internal/core/model/ResolverProcessor.java * src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java * src/org/eclipse/cdt/core/internal/filetype/WorkspaceResolver.java
This commit is contained in:
parent
940aaa947c
commit
87f24bfe30
4 changed files with 32 additions and 13 deletions
|
@ -1,3 +1,11 @@
|
|||
2004-08-21 Alain Magloire
|
||||
|
||||
(Partial, since the indexer is still not aware of this)
|
||||
Fix for 66559: Work on the ResolverModel
|
||||
* model/org/eclipse/cdt/internal/core/model/ResolverProcessor.java
|
||||
* src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java
|
||||
* src/org/eclipse/cdt/core/internal/filetype/WorkspaceResolver.java
|
||||
|
||||
2004-08-20 Chris Wiebe
|
||||
|
||||
make PathUtil visible
|
||||
|
|
|
@ -231,6 +231,7 @@ public class ResolverProcessor {
|
|||
return new ICElement[] { cprojects[i] };
|
||||
}
|
||||
}
|
||||
return CElement.NO_ELEMENTS;
|
||||
}
|
||||
// Assume a workspace resolver
|
||||
List list = new ArrayList(cprojects.length);
|
||||
|
|
|
@ -79,7 +79,7 @@ public class ResolverModel implements IResolverModel {
|
|||
private Map fTypeMap = new HashMap();
|
||||
|
||||
// Default resolver
|
||||
private ICFileTypeResolver fDefaultResolver = null;
|
||||
private ICFileTypeResolver fWorkspaceResolver = null;
|
||||
|
||||
// XML tag names, etc.
|
||||
private static final String EXTENSION_LANG = "CLanguage"; //$NON-NLS-1$
|
||||
|
@ -111,7 +111,7 @@ public class ResolverModel implements IResolverModel {
|
|||
loadDeclaredLanguages();
|
||||
loadDeclaredTypes();
|
||||
|
||||
fDefaultResolver = loadDefaultResolver();
|
||||
fWorkspaceResolver = loadWorkspaceResolver();
|
||||
convertFrom20();
|
||||
|
||||
initRegistryChangeListener();
|
||||
|
@ -224,7 +224,7 @@ public class ResolverModel implements IResolverModel {
|
|||
}
|
||||
|
||||
public ICFileTypeResolver getResolver() {
|
||||
return fDefaultResolver;
|
||||
return fWorkspaceResolver;
|
||||
}
|
||||
|
||||
public boolean hasCustomResolver(IProject project) {
|
||||
|
@ -426,7 +426,7 @@ public class ResolverModel implements IResolverModel {
|
|||
if (property != null) {
|
||||
if (WorkspaceResolver.PREFS_ASSOCIATIONS_EXCLUSION.equals(property) ||
|
||||
WorkspaceResolver.PREFS_ASSOCIATIONS_INCLUSION.equals(property)) {
|
||||
fDefaultResolver = loadDefaultResolver();
|
||||
fWorkspaceResolver = loadWorkspaceResolver();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -447,8 +447,7 @@ public class ResolverModel implements IResolverModel {
|
|||
|
||||
deltas = event.getExtensionDeltas(CCorePlugin.PLUGIN_ID, EXTENSION_ASSOC);
|
||||
if (deltas.length != 0) {
|
||||
fDefaultResolver = loadDefaultResolver();
|
||||
//fWkspResolver = loadWorkspaceResolver();
|
||||
fWorkspaceResolver = loadWorkspaceResolver();
|
||||
}
|
||||
|
||||
fireEvent(modelEvent);
|
||||
|
@ -639,7 +638,7 @@ public class ResolverModel implements IResolverModel {
|
|||
* Initialize the default resolver by loading data from
|
||||
* declared extension points.
|
||||
*/
|
||||
private ICFileTypeResolver loadDefaultResolver() {
|
||||
private ICFileTypeResolver loadWorkspaceResolver() {
|
||||
return new WorkspaceResolver(this);
|
||||
}
|
||||
|
||||
|
@ -651,7 +650,7 @@ public class ResolverModel implements IResolverModel {
|
|||
|
||||
private void convertFrom20() {
|
||||
if (customWorkspaceResolverExists()) {
|
||||
ICFileTypeAssociation[] assocs = loadWorkspaceResolver();
|
||||
ICFileTypeAssociation[] assocs = loadOldWorkspaceResolver();
|
||||
if (assocs != null && assocs.length > 0) {
|
||||
getResolver().addAssociations(assocs);
|
||||
}
|
||||
|
@ -671,7 +670,7 @@ public class ResolverModel implements IResolverModel {
|
|||
return CCorePlugin.getDefault().getStateLocation().append(WKSP_STATE_FILE);
|
||||
}
|
||||
|
||||
private ICFileTypeAssociation[] loadWorkspaceResolver() {
|
||||
private ICFileTypeAssociation[] loadOldWorkspaceResolver() {
|
||||
List assocs = new ArrayList();
|
||||
File file = getWorkspaceResolverStateFilePath().toFile();
|
||||
|
||||
|
|
|
@ -31,11 +31,14 @@ import org.eclipse.core.runtime.Platform;
|
|||
import org.eclipse.core.runtime.Preferences;
|
||||
|
||||
/**
|
||||
* The new CFileTypeAssociations are save in a property String
|
||||
* The removed CFileTypeAssociations are save in a property String
|
||||
*
|
||||
*/
|
||||
public class WorkspaceResolver extends CFileTypeResolver {
|
||||
|
||||
public static final String PREFS_ASSOCIATIONS_INCLUSION = CCorePlugin.PLUGIN_ID + ".associationInclusion";
|
||||
public static final String PREFS_ASSOCIATIONS_EXCLUSION = CCorePlugin.PLUGIN_ID + ".associationExclusion";
|
||||
public static final String PREFS_ASSOCIATIONS_INCLUSION = CCorePlugin.PLUGIN_ID + ".associationInclusion"; //$NON-NLS-1$
|
||||
public static final String PREFS_ASSOCIATIONS_EXCLUSION = CCorePlugin.PLUGIN_ID + ".associationExclusion"; //$NON-NLS-1$
|
||||
|
||||
ResolverModel fModel;
|
||||
List extensionsList;
|
||||
|
@ -77,6 +80,10 @@ public class WorkspaceResolver extends CFileTypeResolver {
|
|||
}
|
||||
|
||||
// add
|
||||
// For adding we have to
|
||||
// - check if the association was define in an extension
|
||||
// if yes make sure we remove in the inclusion list
|
||||
// if not add as a new association in the inclusion list
|
||||
if (null != addAssocs && addAssocs.length > 0) {
|
||||
List newIncList = new ArrayList();
|
||||
List newExcList = new ArrayList();
|
||||
|
@ -103,6 +110,10 @@ public class WorkspaceResolver extends CFileTypeResolver {
|
|||
}
|
||||
|
||||
// remove
|
||||
// For removing we have to
|
||||
// - check if the association was define in an extension
|
||||
// if yes make sure we remove in the exclusion list
|
||||
// if not remove in the inclusion list
|
||||
if (null != delAssocs && delAssocs.length > 0) {
|
||||
List newIncList = new ArrayList();
|
||||
List newExcList = new ArrayList();
|
||||
|
@ -188,7 +199,7 @@ public class WorkspaceResolver extends CFileTypeResolver {
|
|||
sb.append(';');
|
||||
}
|
||||
sb.append(addAssocs[i].getPattern());
|
||||
sb.append("!!"); //$NON-NLS-1
|
||||
sb.append("!!"); //$NON-NLS-1$
|
||||
sb.append(addAssocs[i].getType().getId());
|
||||
}
|
||||
Preferences prefs = CCorePlugin.getDefault().getPluginPreferences();
|
||||
|
@ -222,7 +233,7 @@ public class WorkspaceResolver extends CFileTypeResolver {
|
|||
sb.append(';');
|
||||
}
|
||||
sb.append(addAssocs[i].getPattern());
|
||||
sb.append("!!"); //$NON-NLS-1
|
||||
sb.append("!!"); //$NON-NLS-1$
|
||||
sb.append(addAssocs[i].getType().getId());
|
||||
}
|
||||
Preferences prefs = CCorePlugin.getDefault().getPluginPreferences();
|
||||
|
|
Loading…
Add table
Reference in a new issue