diff --git a/src/AddIns/Misc/ResourceToolkit/Project/ResourceToolkit.csproj b/src/AddIns/Misc/ResourceToolkit/Project/ResourceToolkit.csproj
index 61992be0fe..fa2c5dad9e 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/ResourceToolkit.csproj
+++ b/src/AddIns/Misc/ResourceToolkit/Project/ResourceToolkit.csproj
@@ -89,6 +89,7 @@
+
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Commands/RefactoringCommands.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Commands/RefactoringCommands.cs
index 7502bda4bc..7363f7cc49 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Commands/RefactoringCommands.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Commands/RefactoringCommands.cs
@@ -36,7 +36,7 @@ namespace Hornung.ResourceToolkit.Commands
{
public override void Run()
{
- ICollection> unusedKeys = ResourceRefactoringService.FindUnusedKeys();
+ ICollection unusedKeys = ResourceRefactoringService.FindUnusedKeys();
if (unusedKeys == null) {
return;
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Commands/TextEditorContextMenuBuilder.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Commands/TextEditorContextMenuBuilder.cs
index d959b9f0dc..9b0ecd78fb 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Commands/TextEditorContextMenuBuilder.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Commands/TextEditorContextMenuBuilder.cs
@@ -74,6 +74,7 @@ namespace Hornung.ResourceToolkit.Commands
// ********************************************************************************************************************************
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "ICSharpCode.Core.MessageService.ShowWarning(System.String)")]
void EditResource(object sender, EventArgs e)
{
MenuCommand cmd = sender as MenuCommand;
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/EditStringResourceDialog.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/EditStringResourceDialog.cs
index ca3c78caf8..293f5f4906 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/EditStringResourceDialog.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/EditStringResourceDialog.cs
@@ -55,6 +55,7 @@ namespace Hornung.ResourceToolkit.Gui
SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Hornung.ResourceToolkit.Resources.EditStringResourceDialog.xfrm"));
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "ICSharpCode.Core.MessageService.ShowWarning(System.String)")]
void KeyValidating(object sender, CancelEventArgs e)
{
TextBox textBox = (TextBox)sender;
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysCommands.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysCommands.cs
index 2ecf674491..30e48f2817 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysCommands.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysCommands.cs
@@ -17,7 +17,7 @@ namespace Hornung.ResourceToolkit.Gui
///
/// Hides or shows the ICSharpCode.Core host resources in an UnusedResourceKeysViewContent.
///
- public class UnusedResourceKeysHideICSharpCodeCoreHostResourcesCommand : AbstractCheckableMenuCommand, IFilter>
+ public class UnusedResourceKeysHideICSharpCodeCoreHostResourcesCommand : AbstractCheckableMenuCommand, IFilter
{
string icSharpCodeCoreHostResourceFileName;
@@ -25,7 +25,7 @@ namespace Hornung.ResourceToolkit.Gui
{
base.Run();
- IFilterHost> host = ((ToolBarCheckBox)this.Owner).Caller as IFilterHost>;
+ IFilterHost host = ((ToolBarCheckBox)this.Owner).Caller as IFilterHost;
if (host != null) {
if (this.IsChecked) {
this.icSharpCodeCoreHostResourceFileName = ICSharpCodeCoreResourceResolver.GetICSharpCodeCoreHostResourceFileName(null);
@@ -41,9 +41,9 @@ namespace Hornung.ResourceToolkit.Gui
///
/// The item to test.
/// true, if the specified item matches the current filter criteria, otherwise false.
- public bool IsMatch(KeyValuePair item)
+ public bool IsMatch(ResourceItem item)
{
- return !FileUtility.IsEqualFileName(item.Value, this.icSharpCodeCoreHostResourceFileName);
+ return !FileUtility.IsEqualFileName(item.FileName, this.icSharpCodeCoreHostResourceFileName);
}
}
}
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysViewContent.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysViewContent.cs
index bbf4871cfe..486ad486bb 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysViewContent.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Gui/UnusedResourceKeysViewContent.cs
@@ -22,9 +22,9 @@ namespace Hornung.ResourceToolkit.Gui
///
/// Displays unused resource keys in a list and allows the user to delete them.
///
- public class UnusedResourceKeysViewContent : AbstractViewContent, IClipboardHandler, IFilterHost>
+ public class UnusedResourceKeysViewContent : AbstractViewContent, IClipboardHandler, IFilterHost
{
- readonly ICollection> unusedKeys;
+ readonly ICollection unusedKeys;
Panel panel;
ListView listView;
ToolStrip toolStrip;
@@ -47,7 +47,7 @@ namespace Hornung.ResourceToolkit.Gui
///
/// Gets a collection of key/value pairs where the values are the resource file names and the keys are the unused resource keys.
///
- public ICollection> UnusedKeys {
+ public ICollection UnusedKeys {
get {
return this.unusedKeys;
}
@@ -56,8 +56,8 @@ namespace Hornung.ResourceToolkit.Gui
///
/// Initializes a new instance of the class.
///
- /// A collection of key/value pairs where the values are the resource file names and the keys are the unused resource keys.
- public UnusedResourceKeysViewContent(ICollection> unusedKeys)
+ /// A collection of classes that represent the unused resource keys to display.
+ public UnusedResourceKeysViewContent(ICollection unusedKeys)
: base(StringParser.Parse("${res:Hornung.ResourceToolkit.UnusedResourceKeys.Title}"))
{
LoggingService.Debug("ResourceToolkit: Creating new UnusedResourceKeysViewContent");
@@ -144,7 +144,7 @@ namespace Hornung.ResourceToolkit.Gui
}
}
- bool fillListViewQueued = false;
+ bool fillListViewQueued;
///
/// Fills the list view with all unused resource keys that match the current filter after processing the message queue.
@@ -178,32 +178,32 @@ namespace Hornung.ResourceToolkit.Gui
Dictionary fileGroups = new Dictionary();
// Create the ListViewItems.
- foreach (KeyValuePair entry in this.UnusedKeys) {
+ foreach (ResourceItem entry in this.UnusedKeys) {
// Skip if any filter rejects this item.
if (!this.ItemMatchesCurrentFilter(entry)) {
continue;
}
- IResourceFileContent c = ResourceFileContentRegistry.GetResourceFileContent(entry.Value);
+ IResourceFileContent c = ResourceFileContentRegistry.GetResourceFileContent(entry.FileName);
object o;
// only add the file name to save space
// and show the full path as tooltip
- ListViewItem item = new ListViewItem(Path.GetFileName(entry.Value));
- item.ToolTipText = entry.Value;
+ ListViewItem item = new ListViewItem(Path.GetFileName(entry.FileName));
+ item.ToolTipText = entry.FileName;
item.SubItems.Add(entry.Key);
if (c.TryGetValue(entry.Key, out o)) {
item.SubItems.Add((o ?? (object)"<>").ToString());
} else {
- throw new InvalidOperationException("The key '"+entry.Key+"' in file '"+entry.Value+"' does not exist although it was reported as unused.");
+ throw new InvalidOperationException("The key '"+entry.Key+"' in file '"+entry.FileName+"' does not exist although it was reported as unused.");
}
// Use ListViewGroups to group by file names
ListViewGroup grp;
- if (!fileGroups.TryGetValue(entry.Value, out grp)) {
- grp = new ListViewGroup(entry.Value);
- fileGroups.Add(entry.Value, grp);
+ if (!fileGroups.TryGetValue(entry.FileName, out grp)) {
+ grp = new ListViewGroup(entry.FileName);
+ fileGroups.Add(entry.FileName, grp);
this.ListView.Groups.Add(grp);
}
grp.Items.Add(item);
@@ -222,7 +222,7 @@ namespace Hornung.ResourceToolkit.Gui
#region Filter
- readonly List>> filters = new List>>();
+ readonly List> filters = new List>();
///
/// Registers a new filter with the filter host, if the filter is not already registered,
@@ -230,7 +230,7 @@ namespace Hornung.ResourceToolkit.Gui
///
/// The filter to be registered.
/// The parameter is null.
- public void RegisterFilter(IFilter> filter)
+ public void RegisterFilter(IFilter filter)
{
if (filter == null) {
throw new ArgumentNullException("filter");
@@ -248,7 +248,7 @@ namespace Hornung.ResourceToolkit.Gui
///
/// The filter to be removed.
/// The parameter is null.
- public void UnregisterFilter(IFilter> filter)
+ public void UnregisterFilter(IFilter filter)
{
if (filter == null) {
throw new ArgumentNullException("filter");
@@ -264,9 +264,9 @@ namespace Hornung.ResourceToolkit.Gui
/// according to the current filter.
///
/// true, if the resource should be included in the list view, otherwise false.
- bool ItemMatchesCurrentFilter(KeyValuePair item)
+ bool ItemMatchesCurrentFilter(ResourceItem item)
{
- foreach (IFilter> filter in this.filters) {
+ foreach (IFilter filter in this.filters) {
if (!filter.IsMatch(item)) {
return false;
}
@@ -325,6 +325,7 @@ namespace Hornung.ResourceToolkit.Gui
throw new NotImplementedException();
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", MessageId = "Body")]
public void Delete()
{
if (this.ListView.SelectedItems.Count > 0) {
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Refactoring/ResourceRefactoringService.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Refactoring/ResourceRefactoringService.cs
index 76eefe6566..b5224e4f19 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Refactoring/ResourceRefactoringService.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Refactoring/ResourceRefactoringService.cs
@@ -170,8 +170,8 @@ namespace Hornung.ResourceToolkit.Refactoring
/// Finds all unused resource keys in all resource files that are referenced
/// in code at least once in the whole solution.
///
- /// A collection of key/value pairs where the values are the resource file names and the keys are the unused resource keys.
- public static ICollection> FindUnusedKeys()
+ /// A collection of classes that represent the unused resource keys.
+ public static ICollection FindUnusedKeys()
{
List references = FindAllReferences();
if (references == null) {
@@ -179,7 +179,7 @@ namespace Hornung.ResourceToolkit.Refactoring
}
DateTime startTime = DateTime.UtcNow;
- List> unused = new List>();
+ List unused = new List();
// Get a list of all referenced resource files.
// Generate a dictonary of resource file names and the
@@ -207,7 +207,7 @@ namespace Hornung.ResourceToolkit.Refactoring
#endif
foreach (KeyValuePair entry in ResourceFileContentRegistry.GetResourceFileContent(fileName).Data) {
if (!referencedKeys[fileName].Contains(entry.Key)) {
- unused.Add(new KeyValuePair(entry.Key, fileName));
+ unused.Add(new ResourceItem(fileName, entry.Key));
}
}
}
@@ -224,6 +224,7 @@ namespace Hornung.ResourceToolkit.Refactoring
/// Asks the user for a new name.
///
/// The resource to be renamed.
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "ICSharpCode.Core.MessageService.ShowInputBox(System.String,System.String,System.String)")]
public static void Rename(ResourceResolveResult rrr)
{
string newKey = MessageService.ShowInputBox("${res:SharpDevelop.Refactoring.Rename}", "${res:Hornung.ResourceToolkit.RenameResourceText}", rrr.Key);
@@ -275,7 +276,7 @@ namespace Hornung.ResourceToolkit.Refactoring
/// Gets a list of names of files which can possibly contain resource references.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate")]
- public static List GetPossibleFiles()
+ public static ICollection GetPossibleFiles()
{
List files = new List();
@@ -307,7 +308,7 @@ namespace Hornung.ResourceToolkit.Refactoring
}
- return files;
+ return files.AsReadOnly();
}
///
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/NRefactoryAstCacheService.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/NRefactoryAstCacheService.cs
index 188e66a02b..98349b7b43 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/NRefactoryAstCacheService.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/NRefactoryAstCacheService.cs
@@ -22,7 +22,7 @@ namespace Hornung.ResourceToolkit.Resolver
///
public static class NRefactoryAstCacheService
{
- static bool cacheEnabled = false;
+ static bool cacheEnabled;
static Dictionary cachedAstInfo = new Dictionary();
///
@@ -38,6 +38,7 @@ namespace Hornung.ResourceToolkit.Resolver
/// Enables the AST cache.
///
/// The AST cache is already enabled.
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.InvalidOperationException.#ctor(System.String)")]
public static void EnableCache()
{
if (CacheEnabled) {
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/PropertyFieldAssociationVisitor.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/PropertyFieldAssociationVisitor.cs
index ad4f0cbedb..7f0ff3c8dc 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/PropertyFieldAssociationVisitor.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/PropertyFieldAssociationVisitor.cs
@@ -228,6 +228,7 @@ namespace Hornung.ResourceToolkit.Resolver
/// Initializes a new instance of the class.
///
/// The field to find the associated property for.
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String,System.String)")]
public PropertyFieldAssociationVisitor(IField field) : base()
{
if (field == null) {
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceFileContent/DefaultFileLocalizedResourcesFinder.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceFileContent/DefaultFileLocalizedResourcesFinder.cs
index e560c776f8..1e3fd6bbf8 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceFileContent/DefaultFileLocalizedResourcesFinder.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceFileContent/DefaultFileLocalizedResourcesFinder.cs
@@ -35,7 +35,7 @@ namespace Hornung.ResourceToolkit.ResourceFileContent
string culture = Path.GetExtension(fileNameWithoutExtension);
if (!String.IsNullOrEmpty(culture)) {
try {
- CultureInfo dummy = CultureInfo.GetCultureInfo(culture);
+ CultureInfo.GetCultureInfo(culture);
// the specified file is a localized resource file itself
LoggingService.Debug("ResourceToolkit: DefaultFileLocalizedResourcesFinder.GetLocalizedContents: Returning null for file '"+fileName+"' because it has been detected as being a localized resource file itself.");
return null;
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceFileContent/MergedResourceFileContent.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceFileContent/MergedResourceFileContent.cs
index ce57402cd1..c32f81024b 100644
--- a/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceFileContent/MergedResourceFileContent.cs
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceFileContent/MergedResourceFileContent.cs
@@ -28,6 +28,7 @@ namespace Hornung.ResourceToolkit.ResourceFileContent
/// The master resource file content.
/// Additional resource file contents.
/// The cultures of the specified resource file contents do not match.
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String)")]
public MergedResourceFileContent(IResourceFileContent masterContent, IResourceFileContent[] otherContents)
{
this.masterContent = masterContent;
@@ -123,6 +124,7 @@ namespace Hornung.ResourceToolkit.ResourceFileContent
/// Modify the value of an existing entry.
///
/// The specified key does not exist.
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String,System.String)")]
public void SetValue(string key, object value)
{
if (this.masterContent.ContainsKey(key)) {
@@ -145,6 +147,7 @@ namespace Hornung.ResourceToolkit.ResourceFileContent
/// The old name of the resource key to rename.
/// The new name of the resource key.
/// The specified key does not exist or the new key does already exist.
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String,System.String)")]
public void RenameKey(string oldName, string newName)
{
if (this.masterContent.ContainsKey(oldName)) {
@@ -166,6 +169,7 @@ namespace Hornung.ResourceToolkit.ResourceFileContent
///
/// The resource key to remove.
/// The specified key does not exist.
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String,System.String)")]
public void RemoveKey(string key)
{
if (this.masterContent.ContainsKey(key)) {
diff --git a/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceItem.cs b/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceItem.cs
new file mode 100644
index 0000000000..f80580c152
--- /dev/null
+++ b/src/AddIns/Misc/ResourceToolkit/Project/Src/ResourceItem.cs
@@ -0,0 +1,53 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+using System;
+
+namespace Hornung.ResourceToolkit
+{
+ ///
+ /// Describes a resource item by file name and key.
+ ///
+ public class ResourceItem
+ {
+ readonly string fileName;
+ readonly string key;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The name of the resource file.
+ /// The resource key.
+ /// The parameter is null.
+ public ResourceItem(string fileName, string key)
+ {
+ if (fileName == null) {
+ throw new ArgumentNullException("fileName");
+ }
+ this.fileName = fileName;
+ this.key = key;
+ }
+
+ ///
+ /// Gets the name of the resource file this resource item is contained in.
+ ///
+ public string FileName {
+ get {
+ return fileName;
+ }
+ }
+
+ ///
+ /// Gets the resource key of this resource item.
+ ///
+ public string Key {
+ get {
+ return key;
+ }
+ }
+ }
+}