Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/core')
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs12
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs4
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessWrapper.cs4
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs14
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core/IProgressMonitor.cs4
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/CompiledAssemblyProject.cs2
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs30
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs3
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs6
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SdkProjectReader.cs3
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs6
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs4
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs8
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/UnknownSolutionItem.cs2
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/CommandSearchCategory.cs14
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs14
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs10
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/RoslynSearchCategory.cs19
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchInSolutionSearchCategory.cs13
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.BuildOutputView/BuildOutputViewContent.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/PadCodon.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/PlatformService.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/AutoSave.cs8
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/DefaultSourceEditorOptions.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs11
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs23
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Shell/DefaultWorkbench.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Wizard/WizardDialogController.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs21
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs34
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/PropertyDescriptionTemplate.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs7
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs5
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ImageService.cs11
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs2
-rw-r--r--main/src/core/MonoDevelop.Startup/app.config28
42 files changed, 179 insertions, 181 deletions
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs
index 536d9c3dd4..5b6df84f51 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessHostController.cs
@@ -131,7 +131,7 @@ namespace MonoDevelop.Core.Execution
cmd.DebugMode = isDebugMode;
OperationConsole cons = console ?? new ProcessHostConsole ();
var p = process = executionHandlerFactory.Execute (cmd, cons);
- Counters.ExternalHostProcesses++;
+ Counters.ExternalHostProcesses.Inc (1);
process.Task.ContinueWith ((t) => ProcessExited (p));
@@ -159,8 +159,8 @@ namespace MonoDevelop.Core.Execution
{
lock (this) {
- Counters.ExternalHostProcesses--;
-
+ Counters.ExternalHostProcesses.Dec (1);
+
// Remove all callbacks from existing objects
foreach (object ob in remoteObjects)
RemotingService.UnregisterMethodCallback (ob, "Dispose");
@@ -204,7 +204,7 @@ namespace MonoDevelop.Core.Execution
RemotingService.RegisterMethodCallback (obj, "Dispose", RemoteProcessObjectDisposing, null);
RemotingService.RegisterMethodCallback (obj, "Shutdown", RemoteProcessObjectShuttingDown, null);
remoteObjects.Add (obj);
- Counters.ExternalObjects++;
+ Counters.ExternalObjects.Inc (1);
return obj;
} catch {
ReleaseInstance (null);
@@ -234,7 +234,7 @@ namespace MonoDevelop.Core.Execution
RemotingService.RegisterMethodCallback (obj, "Dispose", RemoteProcessObjectDisposing, null);
RemotingService.RegisterMethodCallback (obj, "Shutdown", RemoteProcessObjectShuttingDown, null);
remoteObjects.Add (obj);
- Counters.ExternalObjects++;
+ Counters.ExternalObjects.Inc (1);
return obj;
} catch {
ReleaseInstance (null);
@@ -272,7 +272,7 @@ namespace MonoDevelop.Core.Execution
public void ReleaseInstance (object proc, int shutdownTimeout)
{
- Counters.ExternalObjects--;
+ Counters.ExternalObjects.Dec (1);
if (processHost == null)
return;
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs
index ca6db5972a..6e39a2368d 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessService.cs
@@ -156,7 +156,7 @@ namespace MonoDevelop.Core.Execution
// p.Exited += exited;
// p.EnableRaisingEvents = true;
- Counters.ProcessesStarted++;
+ Counters.ProcessesStarted.Inc (1);
p.Start ();
if (exited != null)
@@ -212,7 +212,7 @@ namespace MonoDevelop.Core.Execution
if (p != null) {
if (exited != null)
p.Task.ContinueWith (t => exited (p, EventArgs.Empty), Runtime.MainTaskScheduler);
- Counters.ProcessesStarted++;
+ Counters.ProcessesStarted.Inc (1);
return p;
} else {
LoggingService.LogError ("Could not create external console for command: " + command + " " + arguments);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessWrapper.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessWrapper.cs
index f6d15c43bf..635c056507 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessWrapper.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.Execution/ProcessWrapper.cs
@@ -44,11 +44,11 @@ namespace MonoDevelop.Core.Execution
// We need these wrappers, as the alternatives are not good enough.
// OutputDataReceived does not persist newlines.
if (OutputStreamChanged != null) {
- Task.Run (CaptureOutput, cs.Token);
+ Task.Run (CaptureOutput, cs.Token).Ignore ();
}
if (ErrorStreamChanged != null) {
- Task.Run (CaptureError, cs.Token);
+ Task.Run (CaptureError, cs.Token).Ignore ();
}
operation = new ProcessAsyncOperation (Task, cs) {
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs
index 4158d36ccf..4aca642c0a 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs
@@ -805,9 +805,9 @@ namespace MonoDevelop.Core
{
foreach (FileEventInfo fi in args) {
if (fi.IsDirectory)
- Counters.DirectoriesCreated++;
+ Counters.DirectoriesCreated.Inc (1);
else
- Counters.FilesCreated++;
+ Counters.FilesCreated.Inc (1);
}
eventQueue.RaiseEvent (EventDataKind.Created, args);
@@ -830,9 +830,9 @@ namespace MonoDevelop.Core
{
foreach (FileEventInfo fi in args) {
if (fi.IsDirectory)
- Counters.DirectoriesRenamed++;
+ Counters.DirectoriesRenamed.Inc (1);
else
- Counters.FilesRenamed++;
+ Counters.FilesRenamed.Inc (1);
}
eventQueue.RaiseEvent (EventDataKind.Renamed, args);
@@ -843,9 +843,9 @@ namespace MonoDevelop.Core
{
foreach (FileEventInfo fi in args) {
if (fi.IsDirectory)
- Counters.DirectoriesRemoved++;
+ Counters.DirectoriesRemoved.Inc (1);
else
- Counters.FilesRemoved++;
+ Counters.FilesRemoved.Inc (1);
}
eventQueue.RaiseEvent (EventDataKind.Removed, args);
@@ -854,7 +854,7 @@ namespace MonoDevelop.Core
public static event EventHandler<FileEventArgs> FileChanged;
static void OnFileChanged (FileEventArgs args)
{
- Counters.FileChangeNotifications++;
+ Counters.FileChangeNotifications.Inc (1);
eventQueue.RaiseEvent (EventDataKind.Changed, args);
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/IProgressMonitor.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/IProgressMonitor.cs
index 8f728d8422..b1a4aa1853 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/IProgressMonitor.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/IProgressMonitor.cs
@@ -44,11 +44,11 @@ namespace MonoDevelop.Core
public class AsyncOperation
{
- public static AsyncOperation CompleteOperation = new AsyncOperation (Task.FromResult(0), null);
+ public static AsyncOperation CompleteOperation = new AsyncOperation (Task.CompletedTask, null);
protected AsyncOperation ()
{
- Task = Task.FromResult (0);
+ Task = Task.CompletedTask;
CancellationTokenSource = new CancellationTokenSource ();
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/CompiledAssemblyProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/CompiledAssemblyProject.cs
index 4bb348eddc..e506fd1cd4 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/CompiledAssemblyProject.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/CompiledAssemblyProject.cs
@@ -201,7 +201,7 @@ namespace MonoDevelop.Projects
internal protected override Task OnSave (ProgressMonitor monitor)
{
// Compiled assemblies can't be saved
- return Task.FromResult (0);
+ return Task.CompletedTask;
}
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs
index ec1c010046..bd43f395e7 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ConditionedPropertyCollection.cs
@@ -33,8 +33,8 @@ namespace MonoDevelop.Projects
{
public class ConditionedPropertyCollection
{
- Dictionary<string, ImmutableList<string>> props = new Dictionary<string, ImmutableList<string>> ();
- Dictionary<KeySet, ImmutableList<ValueSet>> combinedProps = new Dictionary<KeySet, ImmutableList<ValueSet>> (StructEqualityComparer<KeySet>.Instance);
+ Dictionary<string, ImmutableArray<string>> props = new Dictionary<string, ImmutableArray<string>> ();
+ Dictionary<KeySet, ImmutableArray<ValueSet>> combinedProps = new Dictionary<KeySet, ImmutableArray<ValueSet>> (StructEqualityComparer<KeySet>.Instance);
/// <summary>
/// A set of strings, which can be compared to other sets ignoring the order.
@@ -178,14 +178,14 @@ namespace MonoDevelop.Projects
foreach (var e in other.props) {
var otherList = e.Value;
var key = e.Key;
- ImmutableList<string> list;
+ ImmutableArray<string> list;
if (props.TryGetValue (key, out list)) {
var lb = list.ToBuilder ();
foreach (var c in otherList) {
if (!lb.Contains (c))
lb.Add (c);
}
- props [key] = lb.ToImmutableList ();
+ props [key] = lb.ToImmutable ();
} else
props [key] = otherList;
}
@@ -193,7 +193,7 @@ namespace MonoDevelop.Projects
foreach (var e in other.combinedProps) {
var otherList = e.Value;
var key = e.Key;
- ImmutableList<ValueSet> thisList;
+ ImmutableArray<ValueSet> thisList;
if (combinedProps.TryGetValue (key, out thisList)) {
var list = thisList.ToBuilder ();
foreach (var c in otherList) {
@@ -210,13 +210,13 @@ namespace MonoDevelop.Projects
internal void AddPropertyValues (IList<string> names, IList<string> values)
{
var key = new KeySet (names);
- ImmutableList<ValueSet> list;
+ ImmutableArray<ValueSet> list;
ValueSet valueSet;
// First register the combination of values
if (!combinedProps.TryGetValue (key, out list)) {
- list = ImmutableList<ValueSet>.Empty;
+ list = ImmutableArray<ValueSet>.Empty;
valueSet = new ValueSet (names, names, values);
} else {
// If there is already a list, there must be at least one item.
@@ -229,12 +229,12 @@ namespace MonoDevelop.Projects
// Now register each value individually
- ImmutableList<string> valList;
+ ImmutableArray<string> valList;
for (int n = 0; n < names.Count; n++) {
var name = names [n];
var val = values [n];
if (!props.TryGetValue (name, out valList))
- valList = ImmutableList<string>.Empty;
+ valList = ImmutableArray<string>.Empty;
if (!valList.Contains (val))
props[name] = valList.Add (val);
}
@@ -252,12 +252,12 @@ namespace MonoDevelop.Projects
/// <summary>
/// Gets the values used in conditions for the given property
/// </summary>
- public ImmutableList<string> GetAllPropertyValues (string property)
+ public ImmutableArray<string> GetAllPropertyValues (string property)
{
- ImmutableList<string> list;
+ ImmutableArray<string> list;
if (props.TryGetValue (property, out list))
return list;
- return ImmutableList<string>.Empty;
+ return ImmutableArray<string>.Empty;
}
/// <summary>
@@ -266,12 +266,12 @@ namespace MonoDevelop.Projects
/// Platform, it will return values for those properties specified in conditions that reference both
/// Configuration and Platform.
/// </summary>
- public ImmutableList<ValueSet> GetCombinedPropertyValues (params string[] properties)
+ public ImmutableArray<ValueSet> GetCombinedPropertyValues (params string[] properties)
{
- ImmutableList<ValueSet> list;
+ ImmutableArray<ValueSet> list;
if (combinedProps.TryGetValue (new KeySet (properties), out list))
return list;
- return ImmutableList<ValueSet>.Empty;
+ return ImmutableArray<ValueSet>.Empty;
}
}
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs
index c2bf45fd01..b438d3e13d 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/FileWatcherService.cs
@@ -585,7 +585,8 @@ namespace MonoDevelop.Projects
// the original file still exists.
if (File.Exists (e.OldFullPath))
FileService.NotifyFileChanged (e.OldFullPath);
- else
+ // Handle odd file watcher events which look like a folder being renamed to a file.
+ else if (!Directory.Exists (e.OldFullPath))
FileService.NotifyFileRemoved (e.OldFullPath);
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
index fcd55fd427..deb72f980d 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Project.cs
@@ -2433,9 +2433,9 @@ namespace MonoDevelop.Projects
ProjectConfiguration config = GetConfiguration (configuration) as ProjectConfiguration;
if (config == null)
monitor.ReportError (GettextCatalog.GetString ("Configuration '{0}' not found in project '{1}'", configuration, Name), null);
- return Task.FromResult (0);
+ return Task.CompletedTask;
}
-
+
/// <summary>
/// Gets the absolute path to the output file generated by this project.
/// </summary>
@@ -2971,7 +2971,7 @@ namespace MonoDevelop.Projects
// Now add configurations for which a platform has not been specified, but only if no other configuration
// exists with the same name. Combine them with individually specified platforms, if available
foreach (var c in confValues.Select (v => v.GetValue ("Configuration"))) {
- if (platValues.Count > 0) {
+ if (platValues.Length > 0) {
foreach (var plat in platValues.Select (v => v.GetValue ("Platform"))) {
var ep = plat == "AnyCPU" ? "" : plat;
if (!configData.Any (cd => cd.Config == c && cd.Platform == ep))
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SdkProjectReader.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SdkProjectReader.cs
index 2d42a1576f..3a5273948a 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SdkProjectReader.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SdkProjectReader.cs
@@ -65,7 +65,8 @@ namespace MonoDevelop.Projects
// 2) An Sdk node as a child of the Project node
// 3) An Sdk attribute on any Import node
var document = new XmlDocument ();
- document.Load (new StreamReader (file));
+ using (var sr = new StreamReader (file))
+ document.Load (sr);
XmlNode projectNode = document.SelectSingleNode ("/Project");
if (projectNode != null) {
XmlAttribute sdkAttr = projectNode.Attributes ["Sdk"];
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs
index 4e87f0af31..5986e425e5 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/Solution.cs
@@ -80,7 +80,7 @@ namespace MonoDevelop.Projects
internal Solution (bool loading)
{
loadingFromConstructor = loading;
- Counters.SolutionsLoaded++;
+ Counters.SolutionsLoaded.Inc (1);
configurations = new SolutionConfigurationCollection (this);
runConfigurations = new MultiItemSolutionRunConfigurationCollection (this);
format = MSBuildFileFormat.DefaultFormat;
@@ -592,7 +592,7 @@ namespace MonoDevelop.Projects
// Dispose the root folder after we dispose the base item, as we need the root folder
// to contain the items when unregistering from the file watcher service.
RootFolder.Dispose ();
- Counters.SolutionsLoaded--;
+ Counters.SolutionsLoaded.Dec (1);
}
internal bool IsSolutionItemEnabled (string solutionItemPath)
@@ -925,7 +925,7 @@ namespace MonoDevelop.Projects
/*protected virtual*/ Task OnPrepareExecution (ProgressMonitor monitor, ExecutionContext context, ConfigurationSelector configuration, SolutionRunConfiguration runConfiguration)
{
- return Task.FromResult (0);
+ return Task.CompletedTask;
}
/*protected virtual*/ void OnStartupItemChanged(EventArgs e)
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs
index 725a7b2cf3..0047fd2b8d 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs
@@ -399,7 +399,7 @@ namespace MonoDevelop.Projects
public Task Execute (ProgressMonitor monitor, ExecutionContext context, ConfigurationSelector configuration)
{
- return Task.FromResult (false);
+ return Task.CompletedTask;
}
public bool CanExecute (ExecutionContext context, ConfigurationSelector configuration)
@@ -409,7 +409,7 @@ namespace MonoDevelop.Projects
public Task PrepareExecution (ProgressMonitor monitor, ExecutionContext context, ConfigurationSelector configuration)
{
- return Task.FromResult (false);
+ return Task.CompletedTask;
}
// note: although executing folders isn't supported, this may still get called when
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs
index d3296fdee1..1cb0bdf6bc 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionItem.cs
@@ -85,7 +85,7 @@ namespace MonoDevelop.Projects
configurations = new SolutionItemConfigurationCollection (this);
configurations.ConfigurationAdded += OnConfigurationAddedToCollection;
configurations.ConfigurationRemoved += OnConfigurationRemovedFromCollection;
- Counters.ItemsLoaded++;
+ Counters.ItemsLoaded.Inc (1);
fileStatusTracker = new FileStatusTracker<SolutionItemEventArgs> (this, OnReloadRequired, new SolutionItemEventArgs (this));
}
@@ -123,7 +123,7 @@ namespace MonoDevelop.Projects
fileStatusTracker.Dispose ();
base.OnDispose ();
- Counters.ItemsLoaded--;
+ Counters.ItemsLoaded.Dec (1);
// items = null;
// wildcardItems = null;
@@ -1080,7 +1080,7 @@ namespace MonoDevelop.Projects
[Obsolete ("Use overload that takes a RunConfiguration")]
protected virtual Task OnExecute (ProgressMonitor monitor, ExecutionContext context, ConfigurationSelector configuration)
{
- return Task.FromResult (0);
+ return Task.CompletedTask;
}
/// <summary>
@@ -1105,7 +1105,7 @@ namespace MonoDevelop.Projects
[Obsolete ("Use overload that takes a RunConfiguration")]
protected virtual Task OnPrepareExecution (ProgressMonitor monitor, ExecutionContext context, ConfigurationSelector configuration)
{
- return Task.FromResult (true);
+ return Task.CompletedTask;
}
bool DoGetCanExecute (ExecutionContext context, ConfigurationSelector configuration, SolutionItemRunConfiguration runConfiguration)
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/UnknownSolutionItem.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/UnknownSolutionItem.cs
index e718d5e03c..e89aa6476e 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/UnknownSolutionItem.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/UnknownSolutionItem.cs
@@ -101,7 +101,7 @@ namespace MonoDevelop.Projects
protected internal override Task OnSave (ProgressMonitor monitor)
{
- return Task.FromResult (0);
+ return Task.CompletedTask;
}
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs
index dafbe867f6..2927163932 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/WorkspaceItem.cs
@@ -280,7 +280,7 @@ namespace MonoDevelop.Projects
protected internal virtual Task OnSave (ProgressMonitor monitor)
{
- return Task.FromResult (0);
+ return Task.CompletedTask;
}
public virtual bool NeedsReload {
@@ -330,7 +330,7 @@ namespace MonoDevelop.Projects
{
Loading = false;
fileStatusTracker.ResetLoadTimes ();
- return Task.FromResult (true);
+ return Task.CompletedTask;
}
/// <summary>
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/CommandSearchCategory.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/CommandSearchCategory.cs
index 4f6e636415..eacb97fb2d 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/CommandSearchCategory.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/CommandSearchCategory.cs
@@ -64,18 +64,8 @@ namespace MonoDevelop.Components.MainToolbar
sortOrder = CommandCategoryOrder;
}
- readonly string[] validTags = { "cmd", "command", "c" };
-
- public override string [] Tags {
- get {
- return validTags;
- }
- }
-
- public override bool IsValidTag (string tag)
- {
- return validTags.Any (t => t == tag);
- }
+ public override string [] Tags { get; } = { "cmd", "command", "c" };
+ public override bool IsValidTag (string tag) => Array.IndexOf (Tags, tag) >= 0;
public override Task GetResults (ISearchResultCallback searchResultCallback, SearchPopupSearchPattern pattern, CancellationToken token)
{
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs
index 76e923f2ac..9c8875a4d6 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/FileSearchCategory.cs
@@ -86,18 +86,8 @@ namespace MonoDevelop.Components.MainToolbar
return list;
}
- string [] validTags = new [] { "file", "f" };
-
- public override string [] Tags {
- get {
- return validTags;
- }
- }
-
- public override bool IsValidTag (string tag)
- {
- return validTags.Any (t => t == tag);
- }
+ public override string [] Tags { get; } = { "file", "f" };
+ public override bool IsValidTag (string tag) => Array.IndexOf (Tags, tag) >= 0;
static List<Tuple<string, string, ProjectFile>> allFilesCache;
static SemaphoreSlim allFilesLock = new SemaphoreSlim (1, 1);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs
index c73b1972b1..959db38cb8 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/MainToolbarController.cs
@@ -575,6 +575,7 @@ namespace MonoDevelop.Components.MainToolbar
currentSolution.StartupConfigurationChanged -= HandleStartupItemChanged;
currentSolution.Saved -= HandleSolutionSaved;
currentSolution.EntrySaved -= HandleSolutionEntrySaved;
+ currentSolution.SolutionItemAdded -= HandleSolutionItemAdded;
}
currentSolution = e.Solution;
@@ -583,6 +584,7 @@ namespace MonoDevelop.Components.MainToolbar
currentSolution.StartupConfigurationChanged += HandleStartupItemChanged;
currentSolution.Saved += HandleSolutionSaved;
currentSolution.EntrySaved += HandleSolutionEntrySaved;
+ currentSolution.SolutionItemAdded += HandleSolutionItemAdded;
}
TrackStartupProject ();
@@ -625,6 +627,14 @@ namespace MonoDevelop.Components.MainToolbar
HandleSolutionSaved (sender, e);
}
+ void HandleSolutionItemAdded (object sender, SolutionItemChangeEventArgs e)
+ {
+ // When a solution item is added due to a reload we need to ensure the configurationMergers dictionary is
+ // using the new project and not the old disposed project.
+ if (e.Reloading)
+ UpdateCombos ();
+ }
+
void HandleStartupItemChanged (object sender, EventArgs e)
{
TrackStartupProject ();
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/RoslynSearchCategory.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/RoslynSearchCategory.cs
index 4bbded7af5..c34ef49227 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/RoslynSearchCategory.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/RoslynSearchCategory.cs
@@ -56,23 +56,14 @@ namespace MonoDevelop.Components.MainToolbar
sortOrder = FirstCategoryOrder;
}
- static readonly string [] tags = new [] {
+ public override string [] Tags { get; } = new [] {
// Types
"type", "t", "class", "struct", "interface", "enum", "delegate",
// Members
"member", "m", "method", "property", "field", "event"
- };
-
- public override string [] Tags {
- get {
- return tags;
- }
- }
-
- public override bool IsValidTag (string tag)
- {
- return tags.Contains (tag);
- }
+ };
+
+ public override bool IsValidTag (string tag) => Array.IndexOf (Tags, tag) >= 0;
static readonly IImmutableSet<string> typeKinds = ImmutableHashSet.Create (
NavigateToItemKind.Class,
@@ -154,7 +145,7 @@ namespace MonoDevelop.Components.MainToolbar
if (string.IsNullOrEmpty (searchPattern.Pattern))
return Task.CompletedTask;
- if (searchPattern.Tag != null && !tags.Contains (searchPattern.Tag) || searchPattern.HasLineNumber)
+ if (searchPattern.Tag != null && Array.IndexOf (Tags, searchPattern.Tag) < 0 || searchPattern.HasLineNumber)
return Task.CompletedTask;
return Task.Run (async delegate {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchInSolutionSearchCategory.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchInSolutionSearchCategory.cs
index d3d6474915..ec317bad20 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchInSolutionSearchCategory.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.MainToolbar/SearchInSolutionSearchCategory.cs
@@ -59,18 +59,9 @@ namespace MonoDevelop.Components.MainToolbar
// return (ISearchDataSource)new SearchInSolutionDataSource (searchPattern);
// });
//}
- static readonly string[] tags = { "search" };
+ public override string [] Tags { get; } = { "search" };
- public override string[] Tags {
- get {
- return tags;
- }
- }
-
- public override bool IsValidTag (string tag)
- {
- return tag == "search";
- }
+ public override bool IsValidTag (string tag) => tag == "search";
class SearchInSolutionSearchResult : SearchResult
{
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.BuildOutputView/BuildOutputViewContent.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.BuildOutputView/BuildOutputViewContent.cs
index ff00434baf..b773ca4a4e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.BuildOutputView/BuildOutputViewContent.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.BuildOutputView/BuildOutputViewContent.cs
@@ -60,7 +60,7 @@ namespace MonoDevelop.Ide.BuildOutputView
{
this.buildOutput = buildOutput;
DocumentTitle = $"{GettextCatalog.GetString ("Build Output")} {DateTime.Now.ToString ("h:mm tt yyyy-MM-dd")}.binlog";
- Counters.OpenedFromIDE++;
+ Counters.OpenedFromIDE.Inc (1);
}
protected override async Task OnInitialize (ModelDescriptor modelDescriptor, Properties status)
@@ -70,7 +70,7 @@ namespace MonoDevelop.Ide.BuildOutputView
if (modelDescriptor is FileDescriptor file) {
FilePath = file.FilePath;
loadedFromFile = true;
- Counters.OpenedFromFile++;
+ Counters.OpenedFromFile.Inc (1);
}
}
@@ -206,7 +206,7 @@ namespace MonoDevelop.Ide.BuildOutputView
[CommandHandler (FileCommands.Save)]
protected override Task OnSave ()
{
- Counters.SavedToFile++;
+ Counters.SavedToFile.Inc (1);
return control.SaveAs ();
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/PadCodon.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/PadCodon.cs
index 27a2ee4598..77a8ba0e26 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/PadCodon.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Codons/PadCodon.cs
@@ -135,7 +135,7 @@ namespace MonoDevelop.Ide.Codons
protected virtual PadContent CreatePad ()
{
- Counters.PadsLoaded++;
+ Counters.PadsLoaded.Inc (1);
return (PadContent) Addin.CreateInstance (ClassName, true);
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/PlatformService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/PlatformService.cs
index 2ecb25f055..47c7c983c9 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/PlatformService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Desktop/PlatformService.cs
@@ -513,6 +513,8 @@ namespace MonoDevelop.Ide.Desktop
public static bool AccessibilityKeyboardFocusInUse { get; protected set; }
+ internal virtual void MakeAccessibilityAnnouncement (string text) { }
+
internal virtual string GetNativeRuntimeDescription ()
{
return null;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/AutoSave.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/AutoSave.cs
index 5d5adc3915..ad93550190 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/AutoSave.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/AutoSave.cs
@@ -111,7 +111,7 @@ namespace MonoDevelop.Ide.Editor
if (File.Exists (autosaveFileName))
File.Delete (autosaveFileName);
content.WriteTextTo (autosaveFileName);
- Counters.AutoSavedFiles++;
+ Counters.AutoSavedFiles.Inc (1);
} catch (Exception e) {
LoggingService.LogError ("Error in auto save while creating: " + fileName +". Disableing auto save.", e);
DisableAutoSave ();
@@ -158,20 +158,20 @@ namespace MonoDevelop.Ide.Editor
}
}
}
- static Task finishedTask = Task.FromResult (true);
+
internal static Task InformAutoSaveThread (ITextSource content, string fileName, bool isDirty)
{
if (content == null)
throw new ArgumentNullException (nameof (content));
if (!autoSaveEnabled || string.IsNullOrEmpty (fileName))
- return finishedTask;
+ return Task.CompletedTask;
if (isDirty) {
return Task.Run (() => {
CreateAutoSave (fileName, content);
});
} else {
RemoveAutoSaveFile (fileName);
- return finishedTask;
+ return Task.CompletedTask;
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/DefaultSourceEditorOptions.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/DefaultSourceEditorOptions.cs
index cc9805e70f..53745babf6 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/DefaultSourceEditorOptions.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Editor/DefaultSourceEditorOptions.cs
@@ -333,7 +333,7 @@ namespace MonoDevelop.Ide.Editor
private Task UpdateContextOptions (object sender, CodingConventionsChangedEventArgs arg)
{
if (context == null)
- return Task.FromResult (false);
+ return Task.CompletedTask;
bool followCodingConventions = IdeApp.Preferences.Editor.FollowCodingConventions;
@@ -368,7 +368,7 @@ namespace MonoDevelop.Ide.Editor
}
}
this.FireChange ();
- return Task.FromResult (true);
+ return Task.CompletedTask;
}
#region new options
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs
index 13b54f8d59..d766d37830 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs
@@ -105,7 +105,7 @@ namespace MonoDevelop.Ide.Gui.Dialogs
contentBox.BorderWidth = 4;
contentBox.PackStart (buf, false, false, 0);
- var asmButton = new Gtk.Button ("Show loaded assemblies");
+ var asmButton = new Gtk.Button (GettextCatalog.GetString ("Show loaded assemblies"));
asmButton.Clicked += (sender, e) => {
asmButton.Hide ();
contentBox.PackStart (CreateAssembliesTable (), false, false, 0);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs
index d7cb48b503..4fe44f4e70 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs
@@ -366,19 +366,22 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
folderFile.Subtype = Subtype.Directory;
project.Files.Add (folderFile);
}
-
var children = FileNestingService.GetDependentOrNestedTree (file);
if (children != null) {
foreach (var child in children.ToArray ()) {
- project.Files.Remove (child);
- if(delete)
+ // Delete file before removing them from the project to avoid Remove items being added
+ // if the project is currently being saved in memory or to disk.
+ if (delete)
FileService.DeleteFile (child.Name);
+ project.Files.Remove (child);
}
}
- project.Files.Remove (file);
+ // Delete file before removing them from the project to avoid Remove items being added
+ // if the project is currently being saved in memory or to disk.
if (delete && !file.IsLink)
FileService.DeleteFile (file.Name);
+ project.Files.Remove (file);
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs
index 5070f796f1..f0404a5e03 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs
@@ -230,19 +230,20 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
break;
projects.Add (project);
-
- //remove the files and link files in the directory
- foreach (var f in files)
- project.Files.Remove (f);
-
- // also remove the folder's own ProjectFile, if it exists
- // FIXME: it probably was already in the files list
- if (folderPf != null)
- project.Files.Remove (folderPf);
}
-
+ // Delete folder before removing it and its files from the project to avoid Remove items being
+ // added to the project if the project is currently being saved in memory or to disk.
DeleteFolder (folder);
-
+
+ //remove the files and link files in the directory
+ foreach (var f in files)
+ project.Files.Remove (f);
+
+ // also remove the folder's own ProjectFile, if it exists
+ // FIXME: it probably was already in the files list
+ if (folderPf != null)
+ project.Files.Remove (folderPf);
+
if (isProjectFolder && folder.Path.ParentDirectory != project.BaseDirectory) {
// If it's the last item in the parent folder, make sure we keep a reference to the parent
// folder, so it is not deleted from the tree.
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs
index cc9212fe44..6ada8f0715 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs
@@ -97,7 +97,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public async void OnReload ()
{
var solutions = new HashSet<Solution> ();
- Task task = Task.FromResult (0);
+ Task task = Task.CompletedTask;
using (ProgressMonitor m = IdeApp.Workbench.ProgressMonitors.GetProjectLoadProgressMonitor (true)) {
m.BeginTask (null, CurrentNodes.Length);
foreach (ITreeNavigator node in CurrentNodes) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs
index c826300f8a..aac3a29b8f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs
@@ -1041,7 +1041,7 @@ namespace MonoDevelop.Ide.Gui.Pads
SetInitialOutputViewSize (control.Allocation.Width);
if (visible) {
- Counters.BuildLogShown++;
+ Counters.BuildLogShown.Inc (1);
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Shell/DefaultWorkbench.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Shell/DefaultWorkbench.cs
index 4dad8a2ecb..253d1f5483 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Shell/DefaultWorkbench.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Shell/DefaultWorkbench.cs
@@ -470,7 +470,7 @@ namespace MonoDevelop.Ide.Gui
PadWindow win = (PadWindow) GetPadWindow (codon);
if (win != null) {
win.NotifyDestroyed ();
- Counters.PadsLoaded--;
+ Counters.PadsLoaded.Dec (1);
padCodons.Remove (win);
}
if (item != null) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Wizard/WizardDialogController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Wizard/WizardDialogController.cs
index 94ee7d76f6..b99021a5cc 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Wizard/WizardDialogController.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Wizard/WizardDialogController.cs
@@ -141,7 +141,7 @@ namespace MonoDevelop.Ide.Gui.Wizard
protected virtual Task OnCompleted (CancellationToken token)
{
- return Task.FromResult (true);
+ return Task.CompletedTask;
}
protected virtual void OnPropertyChanged (string propertyName)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
index 72fc681f2f..90185898da 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Document.cs
@@ -236,7 +236,7 @@ namespace MonoDevelop.Ide.Gui
internal Document (DocumentManager documentManager, IShell shell, DocumentController controller, DocumentControllerDescription controllerDescription, IWorkbenchWindow window)
{
- Counters.OpenDocuments++;
+ Counters.OpenDocuments.Inc (1);
this.shell = shell;
this.documentManager = documentManager;
@@ -377,7 +377,7 @@ namespace MonoDevelop.Ide.Gui
public ITextBuffer TextBuffer => GetContent<ITextBuffer> ();
- Task currentOperationTask = Task.FromResult (true);
+ Task currentOperationTask = Task.CompletedTask;
Task RunAsyncOperation (Func<Task> action)
{
@@ -578,7 +578,7 @@ namespace MonoDevelop.Ide.Gui
shell.CloseView (window, true);
- Counters.OpenDocuments--;
+ Counters.OpenDocuments.Dec (1);
Dispose ();
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs
index 33c9d388a1..b4fa2f72b7 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkNewProjectDialogBackend.cs
@@ -78,23 +78,7 @@ namespace MonoDevelop.Ide.Projects
actionHandler.PerformShowMenu += PerformShowMenu;
}
- void ProjectCreationFailed (object obj, EventArgs args) => ShowProjectCreationAccessibityNotification (true);
- void ProjectCreated(object obj, EventArgs args) => ShowProjectCreationAccessibityNotification (false);
async void NextButtonClicked (object sender, EventArgs e) => await MoveToNextPage ();
-
- void ShowProjectCreationAccessibityNotification (bool hasError)
- {
- var projectTemplate = controller.SelectedTemplate;
-
- string messageText;
-
- if (hasError)
- messageText = GettextCatalog.GetString ("{0} failed to create", projectTemplate.Name);
- else
- messageText = GettextCatalog.GetString ("{0} successfully created", projectTemplate.Name);
-
- this.Accessible.MakeAccessibilityAnnouncement (messageText);
- }
public void ShowDialog ()
{
@@ -114,8 +98,6 @@ namespace MonoDevelop.Ide.Projects
public void RegisterController (INewProjectDialogController controller)
{
this.controller = controller;
- controller.ProjectCreationFailed += ProjectCreationFailed;
- controller.ProjectCreated += ProjectCreated;
languageCellRenderer.SelectedLanguage = controller.SelectedLanguage;
topBannerLabel.Text = controller.BannerText;
LoadTemplates ();
@@ -299,9 +281,6 @@ namespace MonoDevelop.Ide.Projects
if (!controller.IsLastPage)
projectConfigurationWidget.Destroy ();
- controller.ProjectCreationFailed -= ProjectCreationFailed;
- controller.ProjectCreated -= ProjectCreated;
-
base.OnDestroyed ();
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs
index 455929c782..41705740a0 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectController.cs
@@ -613,6 +613,8 @@ namespace MonoDevelop.Ide.Projects
public async Task Create ()
{
+ Runtime.AssertMainThread ();
+ OnProjectCreating ();
projectCreated = new TaskCompletionSource<bool> ();
if (wizardProvider.HasWizard)
@@ -620,7 +622,7 @@ namespace MonoDevelop.Ide.Projects
if (!await CreateProject ()) {
projectCreated.SetResult (false);
- ProjectCreationFailed?.Invoke (this, EventArgs.Empty);
+ OnProjectCreationFailed ();
return;
}
@@ -714,13 +716,41 @@ namespace MonoDevelop.Ide.Projects
UpdateDefaultSettings ();
projectCreated.SetResult (true);
- await Runtime.RunInMainThread (() => ProjectCreated?.Invoke (this, EventArgs.Empty));
+ OnProjectCreated ();
} catch (Exception ex) {
projectCreated.SetException (ex);
throw;
}
}
+ void OnProjectCreating ()
+ {
+ if (IdeServices.DesktopService.AccessibilityInUse) {
+ var announcement = GettextCatalog.GetString ("Creating project {0}", SelectedTemplate.Name);
+ IdeServices.DesktopService.MakeAccessibilityAnnouncement (announcement);
+ }
+ }
+
+ void OnProjectCreationFailed ()
+ {
+ ProjectCreationFailed?.Invoke (this, EventArgs.Empty);
+
+ if (IdeServices.DesktopService.AccessibilityInUse) {
+ var announcement = GettextCatalog.GetString ("{0} failed to create", SelectedTemplate.Name);
+ IdeServices.DesktopService.MakeAccessibilityAnnouncement (announcement);
+ }
+ }
+
+ void OnProjectCreated ()
+ {
+ ProjectCreated?.Invoke (this, EventArgs.Empty);
+
+ if (IdeServices.DesktopService.AccessibilityInUse) {
+ var announcement = GettextCatalog.GetString ("{0} successfully created", SelectedTemplate.Name);
+ IdeServices.DesktopService.MakeAccessibilityAnnouncement (announcement);
+ }
+ }
+
public Task<bool> ProjectCreation => projectCreated?.Task;
TaskCompletionSource<bool> projectCreated;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/PropertyDescriptionTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/PropertyDescriptionTemplate.cs
index 7b223911fe..0294419425 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/PropertyDescriptionTemplate.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/PropertyDescriptionTemplate.cs
@@ -75,7 +75,7 @@ namespace MonoDevelop.Ide.Templates
var fileName = StringParserService.Parse (name, model);
project.ProjectProperties.SetValue (typeAtt.Value, string.IsNullOrEmpty (fileName) ? propertyInnerText : string.Concat (fileName, extension));
- return Task.FromResult(true);
+ return Task.FromResult (true);
}
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs
index bdd4b2039c..0032dd5951 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.TypeSystem/MonoDevelopWorkspace.cs
@@ -336,7 +336,10 @@ namespace MonoDevelop.Ide.TypeSystem
protected override void ClearProjectData (ProjectId projectId)
{
var actualProject = ProjectMap.RemoveProject (projectId);
- UnloadMonoProject (actualProject);
+ // Do not unload the project if there are still project ids mappings defined for this project.
+ // This prevents the Project.Modified event being unsubscribed for the wrong project on project reload.
+ if (actualProject != null && ProjectMap.GetIds (actualProject) == null)
+ UnloadMonoProject (actualProject);
dynamicFileManager?.UnloadProject (projectId);
base.ClearProjectData (projectId);
@@ -994,7 +997,7 @@ namespace MonoDevelop.Ide.TypeSystem
/// Used by tests to validate that project has been saved.
/// </summary>
/// <value>The task that can be awaited to validate saving has finished.</value>
- internal Task ProjectSaveTask { get; private set; } = Task.FromResult<object> (null);
+ internal Task ProjectSaveTask { get; private set; } = Task.CompletedTask;
internal override bool TryApplyChanges (Solution newSolution, IProgressTracker progressTracker)
{
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs
index 37c4cd60c9..a44b14be25 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/DesktopService.cs
@@ -447,6 +447,11 @@ namespace MonoDevelop.Ide
PlatformService.RestartIde (reopenWorkspace);
}
+ public void MakeAccessibilityAnnouncement(string text)
+ {
+ PlatformService.MakeAccessibilityAnnouncement (text);
+ }
+
public bool AccessibilityInUse {
get {
return PlatformService.AccessibilityInUse;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ImageService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ImageService.cs
index b1dc79a125..cd1b75f497 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ImageService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ImageService.cs
@@ -913,7 +913,7 @@ namespace MonoDevelop.Ide
class CustomImageLoader : Xwt.Drawing.IImageLoader
{
RuntimeAddin addin;
- Dictionary<System.Reflection.Assembly, string []> resources = new Dictionary<System.Reflection.Assembly, string[]> ();
+ static Dictionary<System.Reflection.Assembly, List<string>> resources = new Dictionary<System.Reflection.Assembly, List<string>> ();
public CustomImageLoader (RuntimeAddin addin)
{
@@ -924,11 +924,12 @@ namespace MonoDevelop.Ide
{
var r = addin.GetResourceInfo (fileName);
- string [] resourceList;
- if (!resources.TryGetValue (r.ReferencedAssembly, out resourceList))
- resourceList = resources [r.ReferencedAssembly] = r.ReferencedAssembly.GetManifestResourceNames ();
+ if (!resources.TryGetValue (r.ReferencedAssembly, out var resourceList)) {
+ resourceList = resources [r.ReferencedAssembly] = r.ReferencedAssembly.GetManifestResourceNames ().ToList ();
+ resourceList.Sort (); // sort resources by name
+ }
- return resourceList;
+ return resourceList.Where (r => r.StartsWith (baseName) && r.EndsWith (ext));
}
public Stream LoadImage (string fileName)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
index d324842b72..190e9db83b 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
@@ -529,7 +529,7 @@ namespace MonoDevelop.Ide
return SaveAsync ((IWorkspaceFileObject)item);
if (item.ParentObject != null)
return SaveAsync (item.ParentObject);
- return Task.FromResult (0);
+ return Task.CompletedTask;
}
async Task SaveAsync (IWorkspaceFileObject item)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs
index c3303b93ab..0b95aad703 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/RootWorkspace.cs
@@ -429,7 +429,7 @@ namespace MonoDevelop.Ide
Task IBuildTarget.PrepareExecution (ProgressMonitor monitor, ExecutionContext context, ConfigurationSelector configuration)
{
- return Task.FromResult (0);
+ return Task.CompletedTask;
}
public Task Execute (ProgressMonitor monitor, ExecutionContext context, ConfigurationSelector configuration)
diff --git a/main/src/core/MonoDevelop.Startup/app.config b/main/src/core/MonoDevelop.Startup/app.config
index ac6d9c0ea6..31a7a20181 100644
--- a/main/src/core/MonoDevelop.Startup/app.config
+++ b/main/src/core/MonoDevelop.Startup/app.config
@@ -36,20 +36,20 @@
<dependentAssembly><assemblyIdentity name="Mono.Cecil" culture="neutral" publicKeyToken="50cebf1cceb9d05e" /><bindingRedirect oldVersion="0.0.0.0-0.10.1.0" newVersion="0.10.1.0" /></dependentAssembly>
<dependentAssembly><assemblyIdentity name="mscorlib" culture="neutral" publicKeyToken="b77a5c561934e089" /><bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /></dependentAssembly>
<dependentAssembly><assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Commands" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Common" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Configuration" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Credentials" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.DependencyResolver.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Frameworks" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Indexing" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.LibraryModel" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.PackageManagement" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Packaging" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.ProjectModel" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Protocol" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Resolver" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
- <dependentAssembly><assemblyIdentity name="NuGet.Versioning" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.3.0.3" newVersion="5.3.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Commands" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Common" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Configuration" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Credentials" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.DependencyResolver.Core" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Frameworks" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Indexing" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.LibraryModel" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.PackageManagement" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Packaging" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.ProjectModel" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Protocol" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Resolver" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
+ <dependentAssembly><assemblyIdentity name="NuGet.Versioning" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.4.0.3" newVersion="5.4.0.3" /></dependentAssembly>
<dependentAssembly><assemblyIdentity name="SQLitePCLRaw.batteries_v2" culture="neutral" publicKeyToken="8226ea5df37bcae9" /><bindingRedirect oldVersion="0.0.0.0-1.1.12.351" newVersion="1.1.12.351" /></dependentAssembly>
<dependentAssembly><assemblyIdentity name="SQLitePCLRaw.core" culture="neutral" publicKeyToken="1488e028ca7ab535" /><bindingRedirect oldVersion="0.0.0.0-1.1.12.351" newVersion="1.1.12.351" /></dependentAssembly>
<dependentAssembly><assemblyIdentity name="StreamJsonRpc" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" /><bindingRedirect oldVersion="0.0.0.0-1.5.0.0" newVersion="1.5.0.0" /></dependentAssembly>