mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Cleaned getProviderCopy() API, got rid of LanguageSettingsManager_TBD
This commit is contained in:
parent
0df3dfbbbc
commit
2309ecabf0
12 changed files with 297 additions and 313 deletions
|
@ -353,7 +353,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -395,7 +395,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -459,7 +459,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -531,7 +531,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -609,7 +609,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -639,7 +639,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -690,7 +690,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -735,7 +735,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -779,7 +779,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -811,7 +811,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -861,7 +861,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -886,7 +886,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -919,7 +919,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(null);
|
||||
|
@ -955,7 +955,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -1008,7 +1008,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
// Shift build directory, that could happen if Make Target from folder1 was run
|
||||
IFolder buildDir = folder1;
|
||||
|
@ -1049,7 +1049,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -1098,7 +1098,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
parser.setResolvingPaths(true);
|
||||
|
||||
// parse line
|
||||
|
@ -1129,7 +1129,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
parser.setResolvingPaths(true);
|
||||
|
||||
// parse line
|
||||
|
@ -1169,7 +1169,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser with expandRelativePaths=false
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
parser.setResolvingPaths(false);
|
||||
|
||||
// parse line
|
||||
|
@ -1205,7 +1205,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
parser.setResolvingPaths(true);
|
||||
|
||||
// parse line
|
||||
|
@ -1242,7 +1242,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
epm.pushDirectoryURI(buildDir.getLocationURI());
|
||||
|
||||
|
@ -1284,7 +1284,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
|
||||
|
@ -1316,7 +1316,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
epm.pushDirectoryURI(buildDir.getLocationURI());
|
||||
|
@ -1354,7 +1354,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
URI uriBuildDir = new URI("file:/non-existing/path");
|
||||
|
@ -1397,7 +1397,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
URI uriBuildDir = new URI("file:/BuildDir");
|
||||
|
@ -1447,7 +1447,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
|
||||
// parse line
|
||||
|
@ -1501,7 +1501,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
|
||||
// parse line
|
||||
|
@ -1561,7 +1561,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
|
||||
// parse line
|
||||
|
@ -1606,7 +1606,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
ResourceHelper.createSymbolicLink(linkPath, dir2);
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
|
||||
// parse line
|
||||
|
@ -1646,7 +1646,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
ResourceHelper.createSymbolicLink(linkPath, subfolder.getLocation());
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
|
||||
// parse line
|
||||
|
@ -1688,7 +1688,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -1731,7 +1731,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -1777,7 +1777,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
ResourceHelper.createFile(project, "file.c");
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
// restrict the parser's language scope to C++ only
|
||||
parser.setLanguageScope(new ArrayList<String>() {{add(LANG_CPP);}});
|
||||
|
||||
|
@ -1809,7 +1809,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
assertEquals(contentType, contentTypeX);
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -1839,7 +1839,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
IFile file=ResourceHelper.createFile(project, "file.cpp");
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
|
||||
// parse line
|
||||
|
@ -1870,7 +1870,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
|
||||
// parse line
|
||||
parser.startup(cfgDescription);
|
||||
|
@ -1916,7 +1916,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
|
||||
// parse line
|
||||
|
@ -1956,7 +1956,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
|
|||
String languageId = ls.getLanguageId();
|
||||
|
||||
// create GCCBuildCommandParser
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT);
|
||||
GCCBuildCommandParser parser = (GCCBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(GCC_BUILD_COMMAND_PARSER_EXT, true);
|
||||
ErrorParserManager epm = new ErrorParserManager(project, null);
|
||||
|
||||
// parse line
|
||||
|
|
|
@ -211,12 +211,14 @@ public abstract class AbstractBuildCommandParser extends AbstractLanguageSetting
|
|||
}
|
||||
|
||||
protected void init(String buildCommandParserId) {
|
||||
AbstractBuildCommandParser buildCommandParser = (AbstractBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(buildCommandParserId);
|
||||
for (String template : PATTERN_TEMPLATES) {
|
||||
String pattern = buildCommandParser.makePattern(template);
|
||||
String fileExpr = "$"+buildCommandParser.adjustFileGroup(); //$NON-NLS-1$
|
||||
String descExpr = "$0"; //$NON-NLS-1$
|
||||
addPattern(new RegexErrorPattern(pattern, fileExpr, null, descExpr, null, IMarkerGenerator.SEVERITY_WARNING, true));
|
||||
AbstractBuildCommandParser buildCommandParser = (AbstractBuildCommandParser) LanguageSettingsManager.getExtensionProviderCopy(buildCommandParserId, false);
|
||||
if (buildCommandParser != null) {
|
||||
for (String template : PATTERN_TEMPLATES) {
|
||||
String pattern = buildCommandParser.makePattern(template);
|
||||
String fileExpr = "$"+buildCommandParser.adjustFileGroup(); //$NON-NLS-1$
|
||||
String descExpr = "$0"; //$NON-NLS-1$
|
||||
addPattern(new RegexErrorPattern(pattern, fileExpr, null, descExpr, null, IMarkerGenerator.SEVERITY_WARNING, true));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -26,8 +26,6 @@ import java.util.Set;
|
|||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.ConsoleOutputStream;
|
||||
import org.eclipse.cdt.core.ProblemMarkerInfo;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager_TBD;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.resources.ACBuilder;
|
||||
import org.eclipse.cdt.core.resources.IConsole;
|
||||
|
|
|
@ -912,10 +912,9 @@ public class MBSWizardHandler extends CWizardHandler {
|
|||
break;
|
||||
}
|
||||
}
|
||||
} else if (id.length()>0){
|
||||
// TODO - look into saving on copying, need to figure out "shared" attribute from extension provider directly
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(id);
|
||||
if (LanguageSettingsProviderAssociationManager.shouldBeShared(providerExt)) {
|
||||
} else if (id.length()>0) {
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(id, false);
|
||||
if (providerExt == null || LanguageSettingsProviderAssociationManager.shouldBeShared(providerExt)) {
|
||||
provider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||
} else {
|
||||
provider = providerExt;
|
||||
|
@ -935,7 +934,7 @@ public class MBSWizardHandler extends CWizardHandler {
|
|||
}
|
||||
|
||||
if (!isProviderThere(providers, UI_USER_LANGUAGE_SETTINGS_PROVIDER)) {
|
||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getExtensionProviderCopy(UI_USER_LANGUAGE_SETTINGS_PROVIDER);
|
||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getExtensionProviderCopy(UI_USER_LANGUAGE_SETTINGS_PROVIDER, true);
|
||||
providers.add(0, provider);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@ import org.eclipse.cdt.core.settings.model.CMacroFileEntry;
|
|||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsExtensionManager;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
|
@ -108,14 +107,14 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
|
||||
{
|
||||
// test provider not in the list
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy("missing.povider");
|
||||
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
|
||||
assertNull(rawProvider);
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy("missing.povider", true);
|
||||
assertNull(providerExt);
|
||||
}
|
||||
|
||||
// get test plugin extension provider
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_BASE_PROVIDER_ID);
|
||||
ILanguageSettingsProvider providerExtCopy = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_BASE_PROVIDER_ID, true);
|
||||
assertNull(providerExtCopy);
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_BASE_PROVIDER_ID);
|
||||
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||
|
||||
// get raw extension provider
|
||||
|
@ -157,7 +156,9 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
*/
|
||||
public void testExtensionBaseProviderSubclass() throws Exception {
|
||||
// get test plugin extension provider
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_BASE_SUBCLASS_PROVIDER_ID);
|
||||
ILanguageSettingsProvider providerExtCopy = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_BASE_SUBCLASS_PROVIDER_ID, true);
|
||||
assertNull(providerExtCopy);
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_BASE_SUBCLASS_PROVIDER_ID);
|
||||
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||
|
||||
// get raw extension provider
|
||||
|
@ -187,7 +188,9 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
*/
|
||||
public void testExtensionCustomProvider() throws Exception {
|
||||
// get test plugin extension non-default provider
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_CUSTOM_PROVIDER_ID);
|
||||
ILanguageSettingsProvider providerExtCopy = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_CUSTOM_PROVIDER_ID, true);
|
||||
assertNull(providerExtCopy);
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_CUSTOM_PROVIDER_ID);
|
||||
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||
|
||||
// get raw extension provider
|
||||
|
@ -256,7 +259,9 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
*/
|
||||
public void testSerializableProvider() throws Exception {
|
||||
// get test plugin extension for serializable provider
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_SERIALIZABLE_PROVIDER_ID);
|
||||
ILanguageSettingsProvider providerExtCopy = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_SERIALIZABLE_PROVIDER_ID, true);
|
||||
assertNull(providerExtCopy);
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_SERIALIZABLE_PROVIDER_ID);
|
||||
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||
|
||||
// get raw extension provider
|
||||
|
@ -279,28 +284,25 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
// Non-editable providers cannot be copied so they are singletons
|
||||
{
|
||||
// get test plugin extension for serializable provider
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_SERIALIZABLE_PROVIDER_ID);
|
||||
ILanguageSettingsProvider providerExtCopy = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_SERIALIZABLE_PROVIDER_ID, true);
|
||||
assertNull(providerExtCopy);
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_SERIALIZABLE_PROVIDER_ID);
|
||||
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||
|
||||
// get raw extension provider
|
||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
|
||||
assertTrue(rawProvider instanceof LanguageSettingsSerializableProvider);
|
||||
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProvider(rawProvider));
|
||||
|
||||
// compare with workspace provider
|
||||
ILanguageSettingsProvider providerWsp = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_SERIALIZABLE_PROVIDER_ID);
|
||||
ILanguageSettingsProvider providerWspRaw = LanguageSettingsManager.getRawProvider(providerWsp);
|
||||
assertSame(rawProvider, providerWspRaw);
|
||||
assertTrue(LanguageSettingsManager.isEqualExtensionProvider(rawProvider, true));
|
||||
}
|
||||
|
||||
// Editable providers are retrieved by copy
|
||||
{
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID, true);
|
||||
assertFalse(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||
assertTrue(providerExt instanceof ILanguageSettingsEditableProvider);
|
||||
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProvider(providerExt));
|
||||
assertTrue(LanguageSettingsManager.isEqualExtensionProvider(providerExt, true));
|
||||
|
||||
ILanguageSettingsProvider providerExt2 = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||
ILanguageSettingsProvider providerExt2 = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID, true);
|
||||
assertNotSame(providerExt, providerExt2);
|
||||
assertEquals(providerExt, providerExt2);
|
||||
|
||||
|
@ -308,22 +310,22 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
ILanguageSettingsProvider providerWspRaw = LanguageSettingsManager.getRawProvider(providerWsp);
|
||||
assertNotSame(providerExt, providerWspRaw);
|
||||
assertEquals(providerExt, providerWspRaw);
|
||||
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProvider(providerWspRaw));
|
||||
assertTrue(LanguageSettingsManager.isEqualExtensionProvider(providerWspRaw, true));
|
||||
}
|
||||
|
||||
// Test shallow copy
|
||||
{
|
||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID, true);
|
||||
assertNotNull(provider);
|
||||
assertTrue(provider instanceof ILanguageSettingsEditableProvider);
|
||||
|
||||
ILanguageSettingsProvider providerShallow = LanguageSettingsExtensionManager.getExtensionProviderShallow(EXTENSION_EDITABLE_PROVIDER_ID);
|
||||
ILanguageSettingsProvider providerShallow = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID, false);
|
||||
assertNotNull(providerShallow);
|
||||
assertTrue(providerShallow instanceof ILanguageSettingsEditableProvider);
|
||||
assertFalse(provider.equals(providerShallow));
|
||||
|
||||
assertFalse(LanguageSettingsExtensionManager.equalsExtensionProvider(providerShallow));
|
||||
assertTrue(LanguageSettingsExtensionManager.equalsExtensionProviderShallow((ILanguageSettingsEditableProvider) providerShallow));
|
||||
assertFalse(LanguageSettingsManager.isEqualExtensionProvider(providerShallow, true));
|
||||
assertTrue(LanguageSettingsManager.isEqualExtensionProvider(providerShallow, false));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -331,7 +333,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
* Check that LanguageSettingsGenericProvider extension defined in plugin.xml is accessible.
|
||||
*/
|
||||
public void testExtensionGenericProvider() throws Exception {
|
||||
ILanguageSettingsProvider provider = LanguageSettingsExtensionManager.getExtensionProviderClone(EXTENSION_USER_PROVIDER_ID);
|
||||
ILanguageSettingsProvider provider = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_USER_PROVIDER_ID, true);
|
||||
assertNotNull("extension " + EXTENSION_USER_PROVIDER_ID + " not found", provider);
|
||||
assertTrue(provider instanceof LanguageSettingsGenericProvider);
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ public class LanguageSettingsManager {
|
|||
* Builds for the provider a nice looking resource tree to present hierarchical view to the user.
|
||||
*
|
||||
* TODO - Note that after using this method for a while for BOP parsers it appears that disadvantages
|
||||
* outweight benefits. In particular, it doesn't result in saving memory as the language settings
|
||||
* outweigh benefits. In particular, it doesn't result in saving memory as the language settings
|
||||
* (and the lists itself) are not duplicated in memory anyway but optimized with using WeakHashSet
|
||||
* and SafeStringInterner.
|
||||
*
|
||||
|
@ -157,25 +157,38 @@ public class LanguageSettingsManager {
|
|||
LanguageSettingsProvidersSerializer.setWorkspaceProviders(providers);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* @param deepCopy TODO
|
||||
* @param id
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static ILanguageSettingsEditableProvider getProviderCopy(ILanguageSettingsEditableProvider provider, boolean deep) {
|
||||
return LanguageSettingsExtensionManager.getProviderCopy(provider, deep);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Language Settings Provider defined via
|
||||
* {@code org.eclipse.cdt.core.LanguageSettingsProvider} extension point.
|
||||
*
|
||||
* @param id - ID of provider to find.
|
||||
* @param deep TODO
|
||||
* @return the copy of the provider if possible (i.e. for {@link ILanguageSettingsEditableProvider})
|
||||
* or workspace provider if provider is not copyable.
|
||||
*/
|
||||
public static ILanguageSettingsProvider getExtensionProviderCopy(String id) {
|
||||
ILanguageSettingsProvider provider = null;
|
||||
try {
|
||||
provider = LanguageSettingsExtensionManager.getExtensionProviderClone(id);
|
||||
} catch (CloneNotSupportedException e) {
|
||||
// from here falls to get workspace provider
|
||||
}
|
||||
if (provider==null)
|
||||
provider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||
public static ILanguageSettingsProvider getExtensionProviderCopy(String id, boolean deep) {
|
||||
return LanguageSettingsExtensionManager.getExtensionProviderCopy(id, deep);
|
||||
}
|
||||
|
||||
return provider;
|
||||
/**
|
||||
* TODO
|
||||
* @param provider
|
||||
* @param deep
|
||||
* @return
|
||||
*/
|
||||
public static boolean isEqualExtensionProvider(ILanguageSettingsProvider provider, boolean deep) {
|
||||
return LanguageSettingsExtensionManager.isEqualsExtensionProvider(provider, deep);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,66 +0,0 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Andrew Gvozdev - initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.core.language.settings.providers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsExtensionManager;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
|
||||
/**
|
||||
* This temporary class keeps the utility methods being looking for better home.
|
||||
* Checking if any Language Settings Provider has custom entries for the resource.
|
||||
*/
|
||||
public class LanguageSettingsManager_TBD {
|
||||
public static boolean isCustomizedResource(ICConfigurationDescription cfgDescription, IResource rc) {
|
||||
if (rc instanceof IProject)
|
||||
return false;
|
||||
|
||||
if (cfgDescription instanceof ILanguageSettingsProvidersKeeper) {
|
||||
for (ILanguageSettingsProvider provider: ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders()) {
|
||||
if (provider instanceof ILanguageSettingsBroadcastingProvider) {
|
||||
for (String languageId : LanguageSettingsManager.getLanguages(rc, cfgDescription)) {
|
||||
List<ICLanguageSettingEntry> list = provider.getSettingEntries(cfgDescription, rc, languageId);
|
||||
if (list!=null) {
|
||||
// TODO - check default or check parent?
|
||||
List<ICLanguageSettingEntry> listDefault = provider.getSettingEntries(null, null, languageId);
|
||||
// != is OK here due as the equal lists will have the same reference in WeakHashSet
|
||||
if (list != listDefault)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isReconfigured(ILanguageSettingsProvider provider) {
|
||||
if (provider instanceof ILanguageSettingsEditableProvider) {
|
||||
try {
|
||||
return ! LanguageSettingsExtensionManager.equalsExtensionProviderShallow((ILanguageSettingsEditableProvider) provider);
|
||||
} catch (Exception e) {
|
||||
CCorePlugin.log(e);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isEqualExtensionProvider(ILanguageSettingsProvider provider) {
|
||||
return LanguageSettingsExtensionManager.equalsExtensionProvider(provider);
|
||||
}
|
||||
}
|
|
@ -283,45 +283,6 @@ public class LanguageSettingsExtensionManager {
|
|||
return provider;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Language Settings Provider defined via
|
||||
* {@code org.eclipse.cdt.core.LanguageSettingsProvider} extension point.
|
||||
*
|
||||
* @param id - ID of provider to find.
|
||||
* @return the clone of the provider or {@code null} if provider is not defined.
|
||||
* @throws CloneNotSupportedException if the provider is not cloneable
|
||||
*/
|
||||
public static ILanguageSettingsProvider getExtensionProviderClone(String id) throws CloneNotSupportedException {
|
||||
ILanguageSettingsProvider provider = fExtensionProviders.get(id);
|
||||
if (provider!=null) {
|
||||
if (!(provider instanceof ILanguageSettingsEditableProvider))
|
||||
throw new CloneNotSupportedException("Not able to clone provider " + provider.getClass());
|
||||
|
||||
provider = ((ILanguageSettingsEditableProvider) provider).clone();
|
||||
}
|
||||
return provider;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static ILanguageSettingsProvider getExtensionProviderShallow(String id) {
|
||||
ILanguageSettingsProvider provider = fExtensionProviders.get(id);
|
||||
if (provider instanceof ILanguageSettingsEditableProvider) {
|
||||
try {
|
||||
return ((ILanguageSettingsEditableProvider) provider).cloneShallow();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
IStatus status = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, "Not able to clone provider " + provider.getClass());
|
||||
CCorePlugin.log(new CoreException(status));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return provider;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list of providers contributed by all extensions. Preferable copy but if not possible
|
||||
* will return raw provider.
|
||||
|
@ -329,12 +290,7 @@ public class LanguageSettingsExtensionManager {
|
|||
/*package*/ static List<ILanguageSettingsProvider> getExtensionProvidersInternal() {
|
||||
ArrayList<ILanguageSettingsProvider> list = new ArrayList<ILanguageSettingsProvider>(fExtensionProviders.size());
|
||||
for (String id : fExtensionProviders.keySet()) {
|
||||
ILanguageSettingsProvider extensionProvider = null;
|
||||
try {
|
||||
extensionProvider = getExtensionProviderClone(id);
|
||||
} catch (CloneNotSupportedException e) {
|
||||
// from here falls to get raw extension provider
|
||||
}
|
||||
ILanguageSettingsProvider extensionProvider = getExtensionProviderCopy(id, true);
|
||||
if (extensionProvider==null)
|
||||
extensionProvider = fExtensionProviders.get(id);
|
||||
|
||||
|
@ -344,16 +300,59 @@ public class LanguageSettingsExtensionManager {
|
|||
return list;
|
||||
}
|
||||
|
||||
public static boolean equalsExtensionProviderShallow(ILanguageSettingsEditableProvider provider) throws CloneNotSupportedException {
|
||||
String id = provider.getId();
|
||||
ILanguageSettingsProvider extensionProviderShallow = getExtensionProviderShallow(id);
|
||||
return provider.cloneShallow().equals(extensionProviderShallow);
|
||||
/**
|
||||
* TODO
|
||||
* @param provider
|
||||
* @param deep
|
||||
* @return
|
||||
*/
|
||||
public static ILanguageSettingsEditableProvider getProviderCopy(ILanguageSettingsEditableProvider provider, boolean deep) {
|
||||
try {
|
||||
if (deep) {
|
||||
return provider.clone();
|
||||
} else {
|
||||
return provider.cloneShallow();
|
||||
}
|
||||
} catch (CloneNotSupportedException e) {
|
||||
CCorePlugin.log("Error cloning provider " + provider.getId() + ", class " + provider.getClass(), e); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean equalsExtensionProvider(ILanguageSettingsProvider provider) {
|
||||
/**
|
||||
* Get Language Settings Provider defined via
|
||||
* {@code org.eclipse.cdt.core.LanguageSettingsProvider} extension point.
|
||||
*
|
||||
* @param id - ID of provider to find.
|
||||
* @param deep TODO
|
||||
* @return the clone of the provider or {@code null} TODO if provider is not defined.
|
||||
*/
|
||||
public static ILanguageSettingsProvider getExtensionProviderCopy(String id, boolean deep) {
|
||||
ILanguageSettingsProvider provider = fExtensionProviders.get(id);
|
||||
if (provider instanceof ILanguageSettingsEditableProvider) {
|
||||
return getProviderCopy((ILanguageSettingsEditableProvider) provider, deep);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* @param provider
|
||||
* @param deep
|
||||
* @return
|
||||
*/
|
||||
public static boolean isEqualsExtensionProvider(ILanguageSettingsProvider provider, boolean deep) {
|
||||
String id = provider.getId();
|
||||
ILanguageSettingsProvider extensionProvider = fExtensionProviders.get(id);
|
||||
return provider.equals(extensionProvider);
|
||||
if (deep || !(provider instanceof ILanguageSettingsEditableProvider)) {
|
||||
ILanguageSettingsProvider extensionProvider = fExtensionProviders.get(id);
|
||||
return provider.equals(extensionProvider);
|
||||
} else {
|
||||
ILanguageSettingsEditableProvider providerShallow = getProviderCopy((ILanguageSettingsEditableProvider) provider, false);
|
||||
ILanguageSettingsProvider extensionProviderShallow = getExtensionProviderCopy(id, false);
|
||||
return providerShallow == extensionProviderShallow
|
||||
|| (providerShallow != null && providerShallow.equals(extensionProviderShallow));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -203,7 +203,8 @@ public class LanguageSettingsProvidersSerializer {
|
|||
*/
|
||||
public LanguageSettingsChangeEvent(ICProjectDescription prjDescription) {
|
||||
if (!prjDescription.isReadOnly()) {
|
||||
String msg = "Project description " + prjDescription.getName() + " is expected to be read-only";
|
||||
// The logic goes that we send notifications only for acting description but not for currently being prepared to set
|
||||
String msg = "Project description " + prjDescription.getName() + " is expected to be read-only"; //$NON-NLS-1$ //$NON-NLS-2$
|
||||
CCorePlugin.log(new Status(IStatus.WARNING, CCorePlugin.PLUGIN_ID, msg, new Exception(msg)));
|
||||
}
|
||||
|
||||
|
@ -222,7 +223,8 @@ public class LanguageSettingsProvidersSerializer {
|
|||
if (delta != null)
|
||||
deltaMap.put(cfgDescription.getId(), delta);
|
||||
} else {
|
||||
IStatus ss = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, "Internal error: Missing specSettings for " + cfgDescription.getClass().getSimpleName());
|
||||
IStatus ss = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, "Internal error: Missing specSettings for " //$NON-NLS-1$
|
||||
+ cfgDescription.getClass().getSimpleName());
|
||||
CCorePlugin.log(new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, ss.getMessage(), new CoreException(ss)));
|
||||
}
|
||||
}
|
||||
|
@ -239,11 +241,11 @@ public class LanguageSettingsProvidersSerializer {
|
|||
return deltaMap.keySet().toArray(new String[deltaMap.size()]);
|
||||
}
|
||||
|
||||
@SuppressWarnings("nls")
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LanguageSettingsChangeEvent for project=[" + getProjectName() + "]"
|
||||
+ ", configurations=" + deltaMap.keySet()
|
||||
;
|
||||
+ ", configurations=" + deltaMap.keySet();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -257,6 +259,12 @@ public class LanguageSettingsProvidersSerializer {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine location of the project store of language settings providers in the plug-in state area.
|
||||
*
|
||||
* @param store - name of the store.
|
||||
* @return location of the store in the plug-in state area.
|
||||
*/
|
||||
private static IFile getStoreInProjectArea(IProject project) throws CoreException {
|
||||
IFolder folder = project.getFolder(SETTINGS_FOLDER_NAME);
|
||||
if (!folder.exists()) {
|
||||
|
@ -267,10 +275,10 @@ public class LanguageSettingsProvidersSerializer {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO: refactor with ErrorParserManager ?
|
||||
* Determine location of the store in the plug-in state area.
|
||||
*
|
||||
* @param store - name of the store
|
||||
* @return location of the store in the plug-in state area
|
||||
* @param store - name of the store.
|
||||
* @return location of the store in the plug-in state area.
|
||||
*/
|
||||
private static URI getStoreInWorkspaceArea(String store) {
|
||||
IPath location = CCorePlugin.getDefault().getStateLocation().append(store);
|
||||
|
@ -434,9 +442,9 @@ projects:
|
|||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
CCorePlugin.log("Internal error while trying to serialize language settings", e); //$NON-NLS-1$
|
||||
IStatus s = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, "Internal error while trying to serialize language settings", e);
|
||||
throw new CoreException(s);
|
||||
String msg = "Internal error while trying to serialize language settings"; //$NON-NLS-1$
|
||||
CCorePlugin.log(msg, e);
|
||||
throw new CoreException(new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, msg, e));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -464,7 +472,7 @@ projects:
|
|||
Node providerNode = providerNodes.item(i);
|
||||
String providerId = XmlUtil.determineAttributeValue(providerNode, LanguageSettingsExtensionManager.ATTR_ID);
|
||||
if (userDefinedProvidersIds.contains(providerId)) {
|
||||
String msg = "Ignored repeatedly persisted duplicate language settings provider id=" + providerId;
|
||||
String msg = "Ignored an attempt to persist duplicate language settings provider, id=" + providerId; //$NON-NLS-1$
|
||||
CCorePlugin.log(new Status(IStatus.WARNING, CCorePlugin.PLUGIN_ID, msg, new Exception()));
|
||||
continue;
|
||||
}
|
||||
|
@ -475,7 +483,7 @@ projects:
|
|||
if (providers==null)
|
||||
providers= new ArrayList<ILanguageSettingsProvider>();
|
||||
|
||||
if (!LanguageSettingsExtensionManager.equalsExtensionProvider(provider)) {
|
||||
if (!LanguageSettingsManager.isEqualExtensionProvider(provider, true)) {
|
||||
providers.add(provider);
|
||||
}
|
||||
}
|
||||
|
@ -600,9 +608,9 @@ projects:
|
|||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
IStatus s = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, "Internal error while trying to serialize language settings", e);
|
||||
CCorePlugin.log(s);
|
||||
throw new CoreException(s);
|
||||
String msg = "Internal error while trying to serialize language settings"; //$NON-NLS-1$
|
||||
CCorePlugin.log(msg, e);
|
||||
throw new CoreException(new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, msg, e));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1008,12 +1016,9 @@ projects:
|
|||
List<ILanguageSettingsProvider> newProviders = new ArrayList<ILanguageSettingsProvider>();
|
||||
for (ILanguageSettingsProvider provider : baseProviders) {
|
||||
if (provider instanceof ILanguageSettingsEditableProvider) {
|
||||
try {
|
||||
provider = ((ILanguageSettingsEditableProvider) provider).clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
IStatus status = new Status(IStatus.ERROR, CCorePlugin.PLUGIN_ID, Status.OK,
|
||||
"Not able to clone provider " + provider.getClass(), e);
|
||||
CCorePlugin.log(status);
|
||||
ILanguageSettingsEditableProvider newProvider = LanguageSettingsManager.getProviderCopy((ILanguageSettingsEditableProvider) provider, true);
|
||||
if (newProvider != null) {
|
||||
provider = newProvider;
|
||||
}
|
||||
}
|
||||
newProviders.add(provider);
|
||||
|
|
|
@ -980,16 +980,14 @@ providers: for (ILanguageSettingsProvider provider : oldProviders) {
|
|||
String langId = (String)langItems.getData();
|
||||
if (langId!=null) {
|
||||
if (provider.getSettingEntries(cfgDescription, rc, langId)!=null) {
|
||||
try {
|
||||
// clone providers to be able to "Cancel" in UI
|
||||
if (providerCopy==null) {
|
||||
providerCopy = ((ILanguageSettingsEditableProvider) provider).clone();
|
||||
if (providerCopy == null) {
|
||||
// copy providers to be able to "Cancel" in UI
|
||||
providerCopy = LanguageSettingsManager.getProviderCopy((ILanguageSettingsEditableProvider) provider, true);
|
||||
if (providerCopy == null) {
|
||||
continue providers;
|
||||
}
|
||||
providerCopy.setSettingEntries(cfgDescription, rc, langId, null);
|
||||
changed = true;
|
||||
} catch (CloneNotSupportedException e) {
|
||||
CUIPlugin.log("Internal Error: cannot clone provider "+provider.getId(), e);
|
||||
continue providers;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,6 @@ import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsEditabl
|
|||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager_TBD;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsSerializableProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
|
@ -150,17 +149,19 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||
Assert.isTrue(rawProvider instanceof ILanguageSettingsEditableProvider);
|
||||
|
||||
try {
|
||||
ILanguageSettingsEditableProvider newProvider = ((ILanguageSettingsEditableProvider)rawProvider).clone();
|
||||
ILanguageSettingsEditableProvider newProvider = LanguageSettingsManager.getProviderCopy((ILanguageSettingsEditableProvider)rawProvider, true);
|
||||
if (newProvider != null) {
|
||||
replaceSelectedProvider(newProvider);
|
||||
return newProvider;
|
||||
|
||||
} catch (CloneNotSupportedException e) {
|
||||
CUIPlugin.log("Error cloning provider " + rawProvider.getId(), e);
|
||||
// TODO warning dialog for user?
|
||||
}
|
||||
|
||||
return null;
|
||||
return newProvider;
|
||||
}
|
||||
|
||||
private static boolean isReconfigured(ILanguageSettingsProvider provider) {
|
||||
if (provider instanceof ILanguageSettingsEditableProvider) {
|
||||
return ! LanguageSettingsManager.isEqualExtensionProvider(provider, false);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private class ProvidersTableLabelProvider extends LanguageSettingsProvidersLabelProvider {
|
||||
|
@ -169,7 +170,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
String[] overlayKeys = super.getOverlayKeys(provider);
|
||||
|
||||
ILanguageSettingsProvider rawProvider = page.isForPrefs() ? LanguageSettingsManager.getRawProvider(provider) : provider;
|
||||
if (LanguageSettingsManager_TBD.isReconfigured(rawProvider)) {
|
||||
if (isReconfigured(rawProvider)) {
|
||||
overlayKeys[IDecoration.TOP_RIGHT] = CDTSharedImages.IMG_OVR_SETTING;
|
||||
}
|
||||
|
||||
|
@ -315,18 +316,16 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||
if (!LanguageSettingsProviderAssociationManager.shouldBeShared(rawProvider)) {
|
||||
// Switch to local provider instance
|
||||
try {
|
||||
if (rawProvider instanceof ILanguageSettingsEditableProvider) {
|
||||
provider = ((ILanguageSettingsEditableProvider) rawProvider).cloneShallow();
|
||||
if (rawProvider instanceof ILanguageSettingsEditableProvider) {
|
||||
ILanguageSettingsEditableProvider newProvider = LanguageSettingsManager.getProviderCopy((ILanguageSettingsEditableProvider) rawProvider, false);
|
||||
if (newProvider != null) {
|
||||
provider = newProvider;
|
||||
replaceSelectedProvider(provider);
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
initializeOptionsPage(provider, cfgDescription);
|
||||
displaySelectedOptionPage();
|
||||
}
|
||||
} catch (CloneNotSupportedException e) {
|
||||
CUIPlugin.log("Error cloning provider " + provider.getId(), e);
|
||||
}
|
||||
|
||||
replaceSelectedProvider(provider);
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
initializeOptionsPage(provider, cfgDescription);
|
||||
displaySelectedOptionPage();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -659,7 +658,7 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
|
||||
boolean canReset = false;
|
||||
if (rawProvider!=null && (canForWorkspace || canForProject)) {
|
||||
canReset = ! LanguageSettingsManager_TBD.isEqualExtensionProvider(rawProvider);
|
||||
canReset = ! LanguageSettingsManager.isEqualExtensionProvider(rawProvider, true);
|
||||
}
|
||||
|
||||
boolean canMoveUp = page.isForProject() && isProviderSelected && isRangeOk && pos!=0;
|
||||
|
@ -721,28 +720,24 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
} else {
|
||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(selectedProvider);
|
||||
if (rawProvider instanceof ILanguageSettingsEditableProvider) {
|
||||
ILanguageSettingsEditableProvider editableProvider = (ILanguageSettingsEditableProvider) rawProvider;
|
||||
|
||||
try {
|
||||
ILanguageSettingsEditableProvider newProvider = editableProvider.cloneShallow();
|
||||
ILanguageSettingsEditableProvider newProvider = LanguageSettingsManager.getProviderCopy((ILanguageSettingsEditableProvider) rawProvider, false);
|
||||
if (newProvider != null) {
|
||||
replaceSelectedProvider(newProvider);
|
||||
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
initializeOptionsPage(newProvider, cfgDescription);
|
||||
displaySelectedOptionPage();
|
||||
|
||||
} catch (CloneNotSupportedException e) {
|
||||
CUIPlugin.log("Error cloning provider " + editableProvider.getId(), e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
updateButtons();
|
||||
}
|
||||
|
||||
private void performReset(ILanguageSettingsProvider selectedProvider) {
|
||||
ILanguageSettingsProvider newProvider = LanguageSettingsManager.getExtensionProviderCopy(selectedProvider.getId());
|
||||
String id = selectedProvider.getId();
|
||||
ILanguageSettingsProvider newProvider = LanguageSettingsManager.getExtensionProviderCopy(id, true);
|
||||
if (newProvider == null) {
|
||||
newProvider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||
}
|
||||
replaceSelectedProvider(newProvider);
|
||||
|
||||
ICConfigurationDescription cfgDescription = getConfigurationDescription();
|
||||
|
@ -840,8 +835,11 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
boolean atLeastOneChanged = false;
|
||||
for (int i=0;i<cfgProviders.size();i++) {
|
||||
ILanguageSettingsProvider provider = cfgProviders.get(i);
|
||||
if (!LanguageSettingsManager.isWorkspaceProvider(provider) && !LanguageSettingsManager_TBD.isEqualExtensionProvider(provider)) {
|
||||
ILanguageSettingsProvider extProvider = LanguageSettingsManager.getExtensionProviderCopy(provider.getId());
|
||||
if (!LanguageSettingsManager.isWorkspaceProvider(provider) && !LanguageSettingsManager.isEqualExtensionProvider(provider, true)) {
|
||||
ILanguageSettingsProvider extProvider = LanguageSettingsManager.getExtensionProviderCopy(provider.getId(), true);
|
||||
if (extProvider == null) {
|
||||
extProvider = LanguageSettingsManager.getWorkspaceProvider(provider.getId());
|
||||
}
|
||||
cfgProviders.set(i, extProvider);
|
||||
atLeastOneChanged = true;
|
||||
}
|
||||
|
@ -856,8 +854,12 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab {
|
|||
for (int i=0;i<providers.size();i++) {
|
||||
ILanguageSettingsProvider provider = providers.get(i);
|
||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider);
|
||||
if (!LanguageSettingsManager_TBD.isEqualExtensionProvider(rawProvider)) {
|
||||
ILanguageSettingsProvider extProvider = LanguageSettingsManager.getExtensionProviderCopy(provider.getId());
|
||||
if (!LanguageSettingsManager.isEqualExtensionProvider(rawProvider, true)) {
|
||||
String id = provider.getId();
|
||||
ILanguageSettingsProvider extProvider = LanguageSettingsManager.getExtensionProviderCopy(id, true);
|
||||
if (extProvider == null) {
|
||||
extProvider = LanguageSettingsManager.getWorkspaceProvider(id);
|
||||
}
|
||||
providers.set(i, extProvider);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,12 +10,13 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.internal.ui.viewsupport;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.eclipse.core.resources.IMarker;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
import org.eclipse.core.resources.IResourceStatus;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.ListenerList;
|
||||
import org.eclipse.jface.resource.ImageDescriptor;
|
||||
import org.eclipse.jface.viewers.IBaseLabelProvider;
|
||||
|
@ -29,7 +30,11 @@ import org.eclipse.swt.graphics.Point;
|
|||
import org.eclipse.swt.graphics.Rectangle;
|
||||
import org.eclipse.ui.texteditor.MarkerUtilities;
|
||||
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager_TBD;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsBroadcastingProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.language.settings.providers.ScannerDiscoveryLegacySupport;
|
||||
import org.eclipse.cdt.core.model.CModelException;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.model.ICElement;
|
||||
|
@ -37,6 +42,7 @@ import org.eclipse.cdt.core.model.ISourceRange;
|
|||
import org.eclipse.cdt.core.model.ISourceReference;
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICResourceDescription;
|
||||
import org.eclipse.cdt.ui.CElementImageDescriptor;
|
||||
|
@ -47,19 +53,19 @@ import org.eclipse.cdt.internal.ui.util.IProblemChangedListener;
|
|||
import org.eclipse.cdt.internal.ui.util.ImageDescriptorRegistry;
|
||||
|
||||
/**
|
||||
* LabelDecorator that decorates an element's image with error and warning overlays that
|
||||
* represent the severity of markers attached to the element's underlying resource. To see
|
||||
* LabelDecorator that decorates an element's image with error and warning overlays that
|
||||
* represent the severity of markers attached to the element's underlying resource. To see
|
||||
* a problem decoration for a marker, the marker needs to be a subtype of <code>IMarker.PROBLEM</code>.
|
||||
* <p>
|
||||
* Note: Only images for elements in Java projects are currently updated on marker changes.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @since 2.0
|
||||
*/
|
||||
public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabelDecorator {
|
||||
|
||||
|
||||
/**
|
||||
* This is a special <code>LabelProviderChangedEvent</code> carring additional
|
||||
* This is a special <code>LabelProviderChangedEvent</code> carring additional
|
||||
* information whether the event orgins from a maker change.
|
||||
* <p>
|
||||
* <code>ProblemsLabelChangedEvent</code>s are only generated by <code>
|
||||
|
@ -77,12 +83,12 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
super(source, changedResource);
|
||||
fMarkerChange= isMarkerChange;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns whether this event origins from marker changes. If <code>false</code> an annotation
|
||||
* model change is the origin. In this case viewers not displaying working copies can ignore these
|
||||
* Returns whether this event origins from marker changes. If <code>false</code> an annotation
|
||||
* model change is the origin. In this case viewers not displaying working copies can ignore these
|
||||
* events.
|
||||
*
|
||||
*
|
||||
* @return if this event origins from a marker change.
|
||||
*/
|
||||
public boolean isMarkerChange() {
|
||||
|
@ -92,13 +98,13 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
}
|
||||
|
||||
private static final int ERRORTICK_WARNING= CElementImageDescriptor.WARNING;
|
||||
private static final int ERRORTICK_ERROR= CElementImageDescriptor.ERROR;
|
||||
private static final int TICK_CONFIGURATION = CElementImageDescriptor.SETTINGS;
|
||||
|
||||
private static final int ERRORTICK_ERROR= CElementImageDescriptor.ERROR;
|
||||
private static final int TICK_CONFIGURATION = CElementImageDescriptor.SETTINGS;
|
||||
|
||||
private ImageDescriptorRegistry fRegistry;
|
||||
private boolean fUseNewRegistry= false;
|
||||
private IProblemChangedListener fProblemChangedListener;
|
||||
|
||||
|
||||
private ListenerList fListeners;
|
||||
|
||||
/**
|
||||
|
@ -108,10 +114,10 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
this(null);
|
||||
fUseNewRegistry= true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Creates decorator with a shared image registry.
|
||||
*
|
||||
*
|
||||
* @param registry The registry to use or <code>null</code> to use the Java plugin's
|
||||
* image registry.
|
||||
*/
|
||||
|
@ -122,21 +128,21 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
fRegistry= registry;
|
||||
fProblemChangedListener= null;
|
||||
}
|
||||
|
||||
|
||||
private ImageDescriptorRegistry getRegistry() {
|
||||
if (fRegistry == null) {
|
||||
fRegistry= fUseNewRegistry ? new ImageDescriptorRegistry() : CUIPlugin.getImageDescriptorRegistry();
|
||||
}
|
||||
return fRegistry;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see ILabelDecorator#decorateText(String, Object)
|
||||
*/
|
||||
public String decorateText(String text, Object element) {
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see ILabelDecorator#decorateImage(Image, Object)
|
||||
|
@ -189,7 +195,7 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
if (e.getStatus().getCode() == IResourceStatus.MARKER_NOT_FOUND) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
CUIPlugin.log(e);
|
||||
}
|
||||
return 0;
|
||||
|
@ -200,7 +206,7 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
return 0;
|
||||
}
|
||||
int info= 0;
|
||||
|
||||
|
||||
IMarker[] markers= res.findMarkers(IMarker.PROBLEM, true, depth);
|
||||
if (markers != null) {
|
||||
for (int i= 0; i < markers.length && (info != ERRORTICK_ERROR); i++) {
|
||||
|
@ -213,7 +219,7 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
info= ERRORTICK_ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
@ -228,12 +234,12 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
}
|
||||
}
|
||||
return isInside(pos, -1, sourceElement);
|
||||
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// private int getErrorTicksFromWorkingCopy(ITranslationUnit original, ISourceReference sourceElement) throws CoreException {
|
||||
// int info= 0;
|
||||
// FileEditorInput editorInput= new FileEditorInput((IFile) original.getResource());
|
||||
|
@ -255,7 +261,7 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
// }
|
||||
// return info;
|
||||
// }
|
||||
|
||||
|
||||
// private IMarker isAnnotationInRange(IAnnotationModel model, Annotation annot, ISourceReference sourceElement) throws CoreException {
|
||||
// if (annot instanceof MarkerAnnotation) {
|
||||
// IMarker marker= ((MarkerAnnotation) annot).getMarker();
|
||||
|
@ -268,17 +274,17 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
// }
|
||||
// return null;
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
* Tests if a position is inside the source range of an element. Usually this is done
|
||||
* by looking at the offset. In case the offset equals <code>-1</code>, the line is
|
||||
* by looking at the offset. In case the offset equals <code>-1</code>, the line is
|
||||
* tested.
|
||||
* @param offSet offset to be tested
|
||||
* @param line line to be tested
|
||||
* @param sourceElement Source element (must be a ICElement)
|
||||
* @return boolean Return <code>true</code> if position is located inside the source element.
|
||||
* @throws CoreException Exception thrown if element range could not be accessed.
|
||||
*
|
||||
*
|
||||
* @since 2.1
|
||||
*/
|
||||
protected boolean isInside(int offSet, int line, ISourceReference sourceElement) throws CoreException {
|
||||
|
@ -288,11 +294,11 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
return (line >= range.getStartLine() && line <= range.getEndLine());
|
||||
}
|
||||
int rangeOffset= range.getStartPos();
|
||||
return (rangeOffset <= offSet && rangeOffset + range.getLength() > offSet);
|
||||
return (rangeOffset <= offSet && rangeOffset + range.getLength() > offSet);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see IBaseLabelProvider#dispose()
|
||||
*/
|
||||
|
@ -312,7 +318,7 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
public boolean isLabelProperty(Object element, String property) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see IBaseLabelProvider#addListener(ILabelProviderListener)
|
||||
*/
|
||||
|
@ -329,7 +335,7 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
};
|
||||
CUIPlugin.getDefault().getProblemMarkerManager().addListener(fProblemChangedListener);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see IBaseLabelProvider#removeListener(ILabelProviderListener)
|
||||
|
@ -343,7 +349,7 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void fireProblemsChanged(IResource[] changedResources, boolean isMarkerChange) {
|
||||
if (fListeners != null && !fListeners.isEmpty()) {
|
||||
LabelProviderChangedEvent event= new ProblemsLabelChangedEvent(this, changedResources, isMarkerChange);
|
||||
|
@ -353,23 +359,52 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration)
|
||||
*/
|
||||
public void decorate(Object element, IDecoration decoration) {
|
||||
public void decorate(Object element, IDecoration decoration) {
|
||||
int adornmentFlags= computeAdornmentFlags(element);
|
||||
|
||||
if ((adornmentFlags & TICK_CONFIGURATION) != 0) {
|
||||
decoration.addOverlay(CPluginImages.DESC_OVR_SETTING);
|
||||
adornmentFlags &= ~TICK_CONFIGURATION;
|
||||
}
|
||||
|
||||
|
||||
if (adornmentFlags == ERRORTICK_ERROR) {
|
||||
decoration.addOverlay(CPluginImages.DESC_OVR_ERROR);
|
||||
} else if (adornmentFlags == ERRORTICK_WARNING) {
|
||||
decoration.addOverlay(CPluginImages.DESC_OVR_WARNING);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isCustomizedResource(ICConfigurationDescription cfgDescription, IResource rc) {
|
||||
if (rc instanceof IProject)
|
||||
return false;
|
||||
|
||||
if (!ScannerDiscoveryLegacySupport.isLanguageSettingsProvidersFunctionalityEnabled(rc.getProject())) {
|
||||
ICResourceDescription rcDescription = cfgDescription.getResourceDescription(rc.getProjectRelativePath(), true);
|
||||
return rcDescription != null;
|
||||
}
|
||||
|
||||
if (cfgDescription instanceof ILanguageSettingsProvidersKeeper) {
|
||||
for (ILanguageSettingsProvider provider: ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders()) {
|
||||
if (provider instanceof ILanguageSettingsBroadcastingProvider) {
|
||||
for (String languageId : LanguageSettingsManager.getLanguages(rc, cfgDescription)) {
|
||||
List<ICLanguageSettingEntry> list = provider.getSettingEntries(cfgDescription, rc, languageId);
|
||||
if (list!=null) {
|
||||
// TODO - check default or check parent?
|
||||
List<ICLanguageSettingEntry> listDefault = provider.getSettingEntries(null, null, languageId);
|
||||
// != is OK here due as the equal lists will have the same reference in WeakHashSet
|
||||
if (list != listDefault)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -386,10 +421,7 @@ public class ProblemsLabelDecorator implements ILabelDecorator, ILightweightLabe
|
|||
if (prjDescription != null) {
|
||||
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
|
||||
if (cfgDescription != null) {
|
||||
IPath path = rc.getProjectRelativePath();
|
||||
ICResourceDescription rcDescription = cfgDescription.getResourceDescription(path, true);
|
||||
boolean isLSCustomized = LanguageSettingsManager_TBD.isCustomizedResource(cfgDescription, rc);
|
||||
if (rcDescription != null || isLSCustomized)
|
||||
if (isCustomizedResource(cfgDescription, rc))
|
||||
result |= TICK_CONFIGURATION;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue