diff --git a/src/AddIns/Misc/UsageDataCollector/UsageDataCollector.AddIn/AnalyticsMonitor.cs b/src/AddIns/Misc/UsageDataCollector/UsageDataCollector.AddIn/AnalyticsMonitor.cs
index bb352f4365..47f9489713 100644
--- a/src/AddIns/Misc/UsageDataCollector/UsageDataCollector.AddIn/AnalyticsMonitor.cs
+++ b/src/AddIns/Misc/UsageDataCollector/UsageDataCollector.AddIn/AnalyticsMonitor.cs
@@ -6,11 +6,14 @@
//
using System;
+using System.Linq;
+using System.Globalization;
using System.IO;
+using System.Threading;
+
using ICSharpCode.Core;
using ICSharpCode.Core.Services;
using ICSharpCode.SharpDevelop;
-using System.Threading;
namespace ICSharpCode.UsageDataCollector
{
@@ -83,6 +86,15 @@ namespace ICSharpCode.UsageDataCollector
session.OnException = MessageService.ShowException;
session.AddEnvironmentData("appVersion", RevisionClass.FullVersion);
session.AddEnvironmentData("language", ResourceService.Language);
+ session.AddEnvironmentData("culture", CultureInfo.CurrentCulture.Name);
+ string PROCESSOR_ARCHITECTURE = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432");
+ if (string.IsNullOrEmpty(PROCESSOR_ARCHITECTURE)) {
+ PROCESSOR_ARCHITECTURE = Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
+ }
+ if (!string.IsNullOrEmpty(PROCESSOR_ARCHITECTURE)) {
+ session.AddEnvironmentData("architecture", PROCESSOR_ARCHITECTURE);
+ }
+ session.AddEnvironmentData("userAddInCount", AddInTree.AddIns.Where(a => !a.IsPreinstalled).Count().ToString());
sessionOpened = true;
} catch (IncompatibleDatabaseException ex) {
if (ex.ActualVersion < ex.ExpectedVersion) {
diff --git a/src/AddIns/Misc/UsageDataCollector/UsageDataCollector.AddIn/UsageDataCollector.AddIn.csproj b/src/AddIns/Misc/UsageDataCollector/UsageDataCollector.AddIn/UsageDataCollector.AddIn.csproj
index a7daeb663c..cf6179c605 100644
--- a/src/AddIns/Misc/UsageDataCollector/UsageDataCollector.AddIn/UsageDataCollector.AddIn.csproj
+++ b/src/AddIns/Misc/UsageDataCollector/UsageDataCollector.AddIn/UsageDataCollector.AddIn.csproj
@@ -43,6 +43,9 @@
3.0
+
+ 3.5
+
diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/TextDocument.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/TextDocument.cs
index aa50c64a49..63f2d2d128 100644
--- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/TextDocument.cs
+++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/TextDocument.cs
@@ -108,7 +108,7 @@ namespace ICSharpCode.AvalonEdit.Document
#endregion
#region Text
- void VerifyRange(int offset, int length)
+ void ThrowIfRangeInvalid(int offset, int length)
{
if (offset < 0 || offset > rope.Length) {
throw new ArgumentOutOfRangeException("offset", offset, "0 <= offset <= " + rope.Length.ToString(CultureInfo.InvariantCulture));
@@ -544,7 +544,7 @@ namespace ICSharpCode.AvalonEdit.Document
try {
// The range verification must wait until after the BeginUpdate() call because the document
// might be modified inside the UpdateStarted event.
- VerifyRange(offset, length);
+ ThrowIfRangeInvalid(offset, length);
DoReplace(offset, length, text, offsetChangeMap);
} finally {
diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/AddIn.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/AddIn.cs
index 4e7725e9da..bc31b28b4a 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddIn/AddIn.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddIn/AddIn.cs
@@ -276,5 +276,20 @@ namespace ICSharpCode.Core
throw new AddInLoadException("Can't load " + fileName, e);
}
}
+
+ ///
+ /// Gets whether the AddIn is a preinstalled component of the host application.
+ ///
+ public bool IsPreinstalled {
+ get {
+ if (FileUtility.IsBaseDirectory(FileUtility.ApplicationRootPath, this.FileName)) {
+ string hidden = this.Properties["addInManagerHidden"];
+ return string.Equals(hidden, "true", StringComparison.OrdinalIgnoreCase)
+ || string.Equals(hidden, "preinstalled", StringComparison.OrdinalIgnoreCase);
+ } else {
+ return false;
+ }
+ }
+ }
}
}
diff --git a/src/Main/Core/Project/Src/AddInTree/AddInTree.cs b/src/Main/Core/Project/Src/AddInTree/AddInTree.cs
index feb66cb81a..c4c9e83a6f 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddInTree.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddInTree.cs
@@ -45,11 +45,9 @@ namespace ICSharpCode.Core
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (AddIn addIn in AddIns) {
// Skip preinstalled AddIns (show only third party AddIns)
- if (FileUtility.IsBaseDirectory(FileUtility.ApplicationRootPath, addIn.FileName)) {
- string hidden = addIn.Properties["addInManagerHidden"];
- if (string.Equals(hidden, "true", StringComparison.OrdinalIgnoreCase) || string.Equals(hidden, "preinstalled", StringComparison.OrdinalIgnoreCase))
- continue;
- }
+ if (addIn.IsPreinstalled)
+ continue;
+
if (sb.Length > 0) sb.Append(", ");
sb.Append("[");
sb.Append(addIn.Name);