diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs
index fd84edaebf..1fb2c1b0bf 100644
--- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs
+++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs
@@ -150,7 +150,7 @@ namespace ICSharpCode.AspNet.Mvc
DisposeProcessMonitor();
this.monitor = new ProcessMonitor(processName);
this.monitor.ProcessCreated += delegate {
- WorkbenchSingleton.SafeThreadCall((Action)(() => OnProcessCreated(properties, withDebugging)));
+ SD.MainThread.InvokeAsyncAndForget(() => OnProcessCreated(properties, withDebugging));
};
this.monitor.Start();
}
diff --git a/src/AddIns/BackendBindings/WixBinding/Test/Project/WixBuilderCannotBuildNonWixProjectTestFixture.cs b/src/AddIns/BackendBindings/WixBinding/Test/Project/WixBuilderCannotBuildNonWixProjectTestFixture.cs
index 71a3b1bee9..f0ebd7c0f7 100644
--- a/src/AddIns/BackendBindings/WixBinding/Test/Project/WixBuilderCannotBuildNonWixProjectTestFixture.cs
+++ b/src/AddIns/BackendBindings/WixBinding/Test/Project/WixBuilderCannotBuildNonWixProjectTestFixture.cs
@@ -4,12 +4,9 @@
using System;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
-using ICSharpCode.SharpDevelop.Internal.Templates;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.WixBinding;
using NUnit.Framework;
-using Rhino.Mocks;
-using Rhino.Mocks;
using WixBinding.Tests.Utils;
namespace WixBinding.Tests.Project
diff --git a/src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs b/src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs
index 4bdf58d767..ce43a67a04 100644
--- a/src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs
+++ b/src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs
@@ -95,7 +95,7 @@ namespace Debugger.AddIn.Visualizers.Utils
Value valueHashCode;
try {
valueHashCode = Eval.InvokeMethod(WindowsDebugger.EvalThread, hashCodeMethod, null, new Value[]{value});
- } catch(InvalidComObjectException ex) {
+ } catch(InvalidComObjectException) {
// debuggee was restarted
hashCodeMethod = findDebuggeeHashCodeMethod(value);
valueHashCode = Eval.InvokeMethod(WindowsDebugger.EvalThread, hashCodeMethod, null, new Value[]{value});
diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/FocusNavigator.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/FocusNavigator.cs
index 07ef5c4b2d..c38d3515dc 100644
--- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/FocusNavigator.cs
+++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/FocusNavigator.cs
@@ -106,7 +106,6 @@ namespace ICSharpCode.WpfDesign.Designer
///
/// Checks if focus navigation should be for down-the-tree be done.
///
- /// Design Surface
bool CanMoveFocusForward()
{
var designSurface = _surface;
@@ -158,7 +157,6 @@ namespace ICSharpCode.WpfDesign.Designer
///
/// Checks if focus navigation for the up-the-tree should be done.
///
- /// Design Surface
bool CanMoveFocusBack()
{
var designSurface = _surface;
diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs
index adcdee27db..83c3e80b21 100644
--- a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs
+++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs
@@ -33,10 +33,7 @@ namespace ICSharpCode.PackageManagement
public void RefreshProjectBrowser()
{
- SD.MainThread.InvokeIfRequired(() => {
- var refreshCommand = new RefreshProjectBrowser();
- refreshCommand.Run();
- });
+ SD.MainThread.InvokeAsyncAndForget(ProjectBrowserPad.RefreshViewAsync);
}
void InvokeIfRequired(Action action)
diff --git a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs
index 461a2a8671..20eee2c2a0 100644
--- a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs
+++ b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs
@@ -73,11 +73,10 @@ namespace SearchAndReplace
void LookInBrowseButtonClicked(object sender, EventArgs e)
{
ComboBox lookinComboBox = Get("lookIn");
- using (FolderBrowserDialog dlg = FileService.CreateFolderBrowserDialog("${res:Dialog.NewProject.SearchReplace.LookIn.SelectDirectory}", lookinComboBox.Text)) {
- if (dlg.ShowDialog() == DialogResult.OK) {
- lookinComboBox.SelectedIndex = customDirectoryIndex;
- lookinComboBox.Text = dlg.SelectedPath;
- }
+ string path = SD.FileService.BrowseForFolder("${res:Dialog.NewProject.SearchReplace.LookIn.SelectDirectory}", lookinComboBox.Text);
+ if (path != null) {
+ lookinComboBox.SelectedIndex = customDirectoryIndex;
+ lookinComboBox.Text = path;
}
}
diff --git a/src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs b/src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs
index 161b828214..a0839adb80 100644
--- a/src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs
+++ b/src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs
@@ -12,6 +12,7 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
+using ICSharpCode.Core;
using ICSharpCode.Core.Presentation;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
@@ -89,7 +90,7 @@ namespace ICSharpCode.StartPage
{
RecentOpenItem item = (RecentOpenItem)lastProjectsListView.SelectedItem;
if (item != null) {
- ProjectService.LoadSolutionOrProject(item.Path);
+ SD.ProjectService.OpenSolutionOrProject(FileName.Create(item.Path));
}
}
@@ -103,7 +104,7 @@ namespace ICSharpCode.StartPage
void listViewHyperlinkClick(object sender, RoutedEventArgs e)
{
RecentOpenItem item = (RecentOpenItem)((Hyperlink)sender).Tag;
- ProjectService.LoadSolutionOrProject(item.Path);
+ SD.ProjectService.OpenSolutionOrProject(FileName.Create(item.Path));
}
void openSolutionClick(object sender, RoutedEventArgs e)
diff --git a/src/AddIns/VersionControl/SubversionAddIn/Src/Commands/ProjectBrowserCommands.cs b/src/AddIns/VersionControl/SubversionAddIn/Src/Commands/ProjectBrowserCommands.cs
index 50359279dc..321448bcce 100644
--- a/src/AddIns/VersionControl/SubversionAddIn/Src/Commands/ProjectBrowserCommands.cs
+++ b/src/AddIns/VersionControl/SubversionAddIn/Src/Commands/ProjectBrowserCommands.cs
@@ -155,7 +155,7 @@ namespace ICSharpCode.Svn.Commands
"${res:ICSharpCode.SharpDevelop.Project.ReloadSolution}", "${res:ICSharpCode.SharpDevelop.Project.KeepOldSolution}")
== 0)
{
- ProjectService.LoadSolution(solution.FileName);
+ SD.ProjectService.OpenSolution(solution.FileName);
}
}
}
diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingEngine.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingEngine.cs
index bd279a21d4..b60473d454 100644
--- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingEngine.cs
+++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingEngine.cs
@@ -20,6 +20,9 @@ namespace ICSharpCode.AvalonEdit.Highlighting
readonly HighlightingRuleSet mainRuleSet;
SpanStack spanStack = SpanStack.Empty;
+ ///
+ /// Creates a new HighlightingEngine instance.
+ ///
public HighlightingEngine(HighlightingRuleSet mainRuleSet)
{
if (mainRuleSet == null)
diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CompressingTreeList.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CompressingTreeList.cs
index 24a66b60b0..0ba831cc0a 100644
--- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CompressingTreeList.cs
+++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CompressingTreeList.cs
@@ -113,8 +113,8 @@ namespace ICSharpCode.AvalonEdit.Utils
///
/// Creates a new CompressingTreeList instance.
///
- /// A function that checks two values for equality. If this
- /// function returns true, a single node may be used to store the two values.
+ /// The equality comparer used for comparing consequtive values.
+ /// A single node may be used to store the multiple values that are considered equal.
public CompressingTreeList(IEqualityComparer equalityComparer)
{
if (equalityComparer == null)
diff --git a/src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionDataUsageCache.cs b/src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionDataUsageCache.cs
index 74b1749dc9..4ec70a373c 100644
--- a/src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionDataUsageCache.cs
+++ b/src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionDataUsageCache.cs
@@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion
static void LoadCache()
{
dict = new Dictionary();
- ProjectService.SolutionClosed += delegate { SaveCache(); };
+ SD.ProjectService.SolutionClosed += delegate { SaveCache(); };
string cacheFileName = CodeCompletionDataUsageCache.CacheFilename;
if (string.IsNullOrEmpty(cacheFileName) || !File.Exists(cacheFileName))
return;
diff --git a/src/Main/Base/Project/Parser/ProjectContentContainer.cs b/src/Main/Base/Project/Parser/ProjectContentContainer.cs
index a0aba4cf12..8e64f610a2 100644
--- a/src/Main/Base/Project/Parser/ProjectContentContainer.cs
+++ b/src/Main/Base/Project/Parser/ProjectContentContainer.cs
@@ -56,8 +56,8 @@ namespace ICSharpCode.SharpDevelop.Parser
this.cacheFileName = GetCacheFileName(project.FileName);
- ProjectService.ProjectItemAdded += OnProjectItemAdded;
- ProjectService.ProjectItemRemoved += OnProjectItemRemoved;
+ SD.ProjectService.ProjectItemAdded += OnProjectItemAdded;
+ SD.ProjectService.ProjectItemRemoved += OnProjectItemRemoved;
var parserService = SD.ParserService;
List filesToParse = new List();
@@ -76,8 +76,8 @@ namespace ICSharpCode.SharpDevelop.Parser
public void Dispose()
{
- ProjectService.ProjectItemAdded -= OnProjectItemAdded;
- ProjectService.ProjectItemRemoved -= OnProjectItemRemoved;
+ SD.ProjectService.ProjectItemAdded -= OnProjectItemAdded;
+ SD.ProjectService.ProjectItemRemoved -= OnProjectItemRemoved;
IProjectContent pc;
bool serializeOnDispose;
lock (lockObj) {
diff --git a/src/Main/Base/Project/Project/Configuration/ConfigurationMapping.cs b/src/Main/Base/Project/Project/Configuration/ConfigurationMapping.cs
index 2c9c7ef429..05ae85d09a 100644
--- a/src/Main/Base/Project/Project/Configuration/ConfigurationMapping.cs
+++ b/src/Main/Base/Project/Project/Configuration/ConfigurationMapping.cs
@@ -25,6 +25,11 @@ namespace ICSharpCode.SharpDevelop.Project
{
this.Config = config;
}
+
+ public Entry Clone()
+ {
+ return (Entry)MemberwiseClone();
+ }
}
///
@@ -142,5 +147,34 @@ namespace ICSharpCode.SharpDevelop.Project
if (result)
Changed(this, EventArgs.Empty);
}
+
+ ///
+ /// Copies an entry.
+ ///
+ public void CopySolutionConfiguration(ConfigurationAndPlatform sourceSolutionConfiguration, ConfigurationAndPlatform targetSolutionConfiguration)
+ {
+ lock (dict) {
+ Entry entry;
+ if (dict.TryGetValue(sourceSolutionConfiguration, out entry)) {
+ dict[targetSolutionConfiguration] = entry.Clone();
+ }
+ }
+ Changed(this, EventArgs.Empty);
+ }
+
+ ///
+ /// Renames an entry.
+ ///
+ public void RenameSolutionConfiguration(ConfigurationAndPlatform sourceSolutionConfiguration, ConfigurationAndPlatform targetSolutionConfiguration)
+ {
+ lock (dict) {
+ Entry entry;
+ if (dict.TryGetValue(sourceSolutionConfiguration, out entry)) {
+ dict.Remove(sourceSolutionConfiguration);
+ dict.Add(targetSolutionConfiguration, entry);
+ }
+ }
+ Changed(this, EventArgs.Empty);
+ }
}
}
diff --git a/src/Main/Base/Project/Src/Commands/FileCommands.cs b/src/Main/Base/Project/Src/Commands/FileCommands.cs
index 1f2c0ce2e1..084b4871fa 100644
--- a/src/Main/Base/Project/Src/Commands/FileCommands.cs
+++ b/src/Main/Base/Project/Src/Commands/FileCommands.cs
@@ -177,11 +177,11 @@ namespace ICSharpCode.SharpDevelop.Commands
}
if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) {
- string fileName = fdiag.FileName;
+ FileName fileName = FileName.Create(fdiag.FileName);
if (!FileService.CheckFileName(fileName)) {
return;
}
- if (FileUtility.ObservedSave(new NamedFileOperationDelegate(file.SaveToDisk), FileName.Create(fileName)) == FileOperationResult.OK) {
+ if (FileUtility.ObservedSave(new NamedFileOperationDelegate(file.SaveToDisk), fileName) == FileOperationResult.OK) {
SD.FileService.RecentOpen.AddRecentFile(fileName);
MessageService.ShowMessage(fileName, "${res:ICSharpCode.SharpDevelop.Commands.SaveFile.FileSaved}");
}
diff --git a/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs b/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs
index 470e993519..2d0b0540fe 100644
--- a/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs
+++ b/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs
@@ -29,7 +29,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
fdiag.Multiselect = false;
fdiag.CheckFileExists = true;
if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) {
- ProjectService.LoadSolutionOrProject(fdiag.FileName);
+ SD.ProjectService.OpenSolutionOrProject(FileName.Create(fdiag.FileName));
}
}
}
diff --git a/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs b/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs
index 118a0eef51..6cd2acc683 100644
--- a/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs
+++ b/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs
@@ -173,13 +173,13 @@ namespace ICSharpCode.SharpDevelop.Commands
for (int i = 0; i < recentOpen.RecentProjects.Count; ++i) {
// variable inside loop, so that anonymous method refers to correct recent file
- string recentProject = recentOpen.RecentProjects[i];
+ FileName recentProject = recentOpen.RecentProjects[i];
string accelaratorKeyPrefix = i < 10 ? "_" + ((i + 1) % 10) + " " : "";
items[i] = new System.Windows.Controls.MenuItem() {
Header = accelaratorKeyPrefix + recentProject
};
items[i].Click += delegate {
- ProjectService.LoadSolution(recentProject);
+ SD.ProjectService.OpenSolutionOrProject(recentProject);
};
}
return items;
diff --git a/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs b/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs
index c0b1dc4217..2175acc880 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs
@@ -223,12 +223,12 @@ namespace ICSharpCode.SharpDevelop.Gui
SetWordWrap();
DisplayActiveCategory();
- ProjectService.SolutionLoaded += SolutionLoaded;
+ SD.ProjectService.CurrentSolutionChanged += OnSolutionLoaded;
textEditor.TextArea.DefaultInputHandler.NestedInputHandlers.Add(new SearchInputHandler(textEditor.TextArea));
}
- void SolutionLoaded(object sender, SolutionEventArgs e)
+ void OnSolutionLoaded(object sender, EventArgs e)
{
foreach (MessageViewCategory category in messageCategories) {
category.ClearText();
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs b/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
index c3b88c0b1f..0b903f9c21 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
@@ -89,8 +89,8 @@ namespace ICSharpCode.SharpDevelop.Gui
};
SD.BuildService.BuildFinished += ProjectServiceEndBuild;
- ProjectService.SolutionLoaded += OnSolutionOpen;
- ProjectService.SolutionClosed += OnSolutionClosed;
+ SD.ProjectService.SolutionOpened += OnSolutionOpen;
+ SD.ProjectService.SolutionClosed += OnSolutionClosed;
taskView.CreateControl();
contentPanel.Controls.Add(taskView);
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
index 581a743b67..212b724c30 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
@@ -84,7 +84,7 @@ namespace ICSharpCode.SharpDevelop.Project
FileService.FileRenamed += FileServiceFileRenamed;
FileService.FileRemoved += FileServiceFileRemoved;
- ProjectService.ProjectItemAdded += ProjectServiceProjectItemAdded;
+ SD.ProjectService.ProjectItemAdded += ProjectServiceProjectItemAdded;
treeView.DrawNode += TreeViewDrawNode;
treeView.DragDrop += TreeViewDragDrop;
}
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs
index 536e8cb407..fd4d94c950 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs
@@ -76,8 +76,8 @@ namespace ICSharpCode.SharpDevelop.Project
public ProjectBrowserPad()
{
instance = this;
- ProjectService.SolutionLoaded += ProjectServiceSolutionLoaded;
- ProjectService.SolutionClosed += ProjectServiceSolutionClosed;
+ SD.ProjectService.SolutionOpened += ProjectServiceSolutionLoaded;
+ SD.ProjectService.SolutionClosed += ProjectServiceSolutionClosed;
SD.Workbench.ActiveContentChanged += ActiveContentChanged;
if (ProjectService.OpenSolution != null) {
diff --git a/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs b/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs
index a6cc362f74..264fddc805 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs
@@ -184,7 +184,7 @@ namespace ICSharpCode.SharpDevelop.Gui
panel.Controls.Add(comboBox);
SD.WinForms.SetContent(contentControl, panel);
- ProjectService.SolutionClosed += SolutionClosedEvent;
+ SD.ProjectService.SolutionClosed += SolutionClosedEvent;
grid.PropertyValueChanged += new PropertyValueChangedEventHandler(PropertyChanged);
grid.ContextMenuStrip = SD.WinForms.MenuService.CreateContextMenu(this, "/SharpDevelop/Views/PropertyPad/ContextMenu");
@@ -391,7 +391,7 @@ namespace ICSharpCode.SharpDevelop.Gui
base.Dispose();
if (grid != null) {
this.ideContainer.Disconnect();
- ProjectService.SolutionClosed -= SolutionClosedEvent;
+ SD.ProjectService.SolutionClosed -= SolutionClosedEvent;
try {
grid.SelectedObjects = null;
} catch {}
diff --git a/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs b/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs
index 4cd1938568..353e8e2ab2 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs
@@ -79,9 +79,9 @@ namespace ICSharpCode.SharpDevelop.Gui
WorkbenchActiveViewContentChanged(null, null);
}
- ProjectService.SolutionLoaded += OnSolutionOpen;
- ProjectService.SolutionClosed += OnSolutionClosed;
- ProjectService.CurrentProjectChanged += ProjectServiceCurrentProjectChanged;
+ SD.ProjectService.SolutionOpened += OnSolutionOpen;
+ SD.ProjectService.SolutionClosed += OnSolutionClosed;
+ SD.ProjectService.CurrentProjectChanged += ProjectServiceCurrentProjectChanged;
this.isInitialized = true;
}
diff --git a/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs b/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs
index 480a21a54f..7a534922cf 100644
--- a/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs
+++ b/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs
@@ -137,7 +137,7 @@ namespace ICSharpCode.SharpDevelop.Project
showingMessageBox = false;
wasChangedExternally = false;
if (result == 0)
- ProjectService.LoadSolution(ProjectService.OpenSolution.FileName);
+ SD.ProjectService.OpenSolutionOrProject(ProjectService.OpenSolution.FileName);
else if (result == 2)
new CloseSolution().Run();
} else {
diff --git a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
index 094129002d..2c71ea75f6 100644
--- a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
+++ b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
@@ -20,7 +20,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
static DebuggerService()
{
- ProjectService.SolutionLoaded += delegate {
+ SD.ProjectService.SolutionOpened += delegate {
ClearDebugMessages();
};
diff --git a/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs b/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs
index 369e3cfdf4..31bd0d258f 100644
--- a/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs
+++ b/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs
@@ -72,8 +72,8 @@ namespace ICSharpCode.SharpDevelop
// trap changes in the secondary tab via the workbench's ActiveViewContentChanged event
SD.Workbench.ActiveViewContentChanged += ActiveViewContentChanged;
- FileService.FileRenamed += FileService_FileRenamed;
- ProjectService.SolutionClosed += ProjectService_SolutionClosed;
+ SD.FileService.FileRenamed += FileService_FileRenamed;
+ SD.ProjectService.SolutionClosed += ProjectService_SolutionClosed;
serviceInitialized = true;
}
}
diff --git a/src/Main/Base/Project/Src/Services/Tasks/TaskService.cs b/src/Main/Base/Project/Src/Services/Tasks/TaskService.cs
index 379d74f63c..eff73bfbc6 100644
--- a/src/Main/Base/Project/Src/Services/Tasks/TaskService.cs
+++ b/src/Main/Base/Project/Src/Services/Tasks/TaskService.cs
@@ -79,8 +79,8 @@ namespace ICSharpCode.SharpDevelop
// avoid trouble with double initialization
SD.ParserService.ParseInformationUpdated -= ParserService_ParseInformationUpdated;
SD.ParserService.ParseInformationUpdated += ParserService_ParseInformationUpdated;
- ProjectService.SolutionClosed -= ProjectServiceSolutionClosed;
- ProjectService.SolutionClosed += ProjectServiceSolutionClosed;
+ SD.ProjectService.SolutionClosed -= ProjectServiceSolutionClosed;
+ SD.ProjectService.SolutionClosed += ProjectServiceSolutionClosed;
}
static void ParserService_ParseInformationUpdated(object sender, ParseInformationEventArgs e)
diff --git a/src/Main/Base/Project/Workbench/File/IRecentOpen.cs b/src/Main/Base/Project/Workbench/File/IRecentOpen.cs
index a2a0094fe0..8007b7d106 100644
--- a/src/Main/Base/Project/Workbench/File/IRecentOpen.cs
+++ b/src/Main/Base/Project/Workbench/File/IRecentOpen.cs
@@ -3,18 +3,19 @@
using System;
using System.Collections.Generic;
+using ICSharpCode.Core;
namespace ICSharpCode.SharpDevelop.Workbench
{
///
public interface IRecentOpen
{
- IReadOnlyList RecentFiles { get; }
- IReadOnlyList RecentProjects { get; }
+ IReadOnlyList RecentFiles { get; }
+ IReadOnlyList RecentProjects { get; }
void ClearRecentFiles();
void ClearRecentProjects();
- void AddRecentFile(string fileName);
- void AddRecentProject(string fileName);
+ void AddRecentFile(FileName fileName);
+ void AddRecentProject(FileName fileName);
}
}
diff --git a/src/Main/SharpDevelop/Project/Configuration/SolutionConfigurationOrPlatformNameCollection.cs b/src/Main/SharpDevelop/Project/Configuration/SolutionConfigurationOrPlatformNameCollection.cs
index 831aba036b..6044b789ac 100644
--- a/src/Main/SharpDevelop/Project/Configuration/SolutionConfigurationOrPlatformNameCollection.cs
+++ b/src/Main/SharpDevelop/Project/Configuration/SolutionConfigurationOrPlatformNameCollection.cs
@@ -96,9 +96,7 @@ namespace ICSharpCode.SharpDevelop.Project
foreach (string otherName in isPlatform ? solution.ConfigurationNames : solution.PlatformNames) {
var sourceSolutionConfig = isPlatform ? new ConfigurationAndPlatform(otherName, copyFrom) : new ConfigurationAndPlatform(copyFrom, otherName);
var newSolutionConfig = isPlatform ? new ConfigurationAndPlatform(otherName, newName) : new ConfigurationAndPlatform(newName, otherName);
- mapping.SetProjectConfiguration(newSolutionConfig, mapping.GetProjectConfiguration(sourceSolutionConfig));
- mapping.SetBuildEnabled(newSolutionConfig, mapping.IsBuildEnabled(sourceSolutionConfig));
- mapping.SetDeployEnabled(newSolutionConfig, mapping.IsDeployEnabled(sourceSolutionConfig));
+ mapping.CopySolutionConfiguration(sourceSolutionConfig, newSolutionConfig);
}
}
}
@@ -150,13 +148,7 @@ namespace ICSharpCode.SharpDevelop.Project
foreach (string otherName in isPlatform ? solution.ConfigurationNames : solution.PlatformNames) {
var oldSolutionConfig = isPlatform ? new ConfigurationAndPlatform(otherName, oldName) : new ConfigurationAndPlatform(oldName, otherName);
var newSolutionConfig = isPlatform ? new ConfigurationAndPlatform(otherName, newName) : new ConfigurationAndPlatform(newName, otherName);
- var projectConfig = mapping.GetProjectConfiguration(oldSolutionConfig);
- var buildEnabled = mapping.IsBuildEnabled(oldSolutionConfig);
- var deployEnabled = mapping.IsDeployEnabled(oldSolutionConfig);
- mapping.Remove(oldSolutionConfig);
- mapping.SetProjectConfiguration(newSolutionConfig, projectConfig);
- mapping.SetBuildEnabled(newSolutionConfig, buildEnabled);
- mapping.SetDeployEnabled(newSolutionConfig, deployEnabled);
+ mapping.RenameSolutionConfiguration(oldSolutionConfig, newSolutionConfig);
}
}
}
diff --git a/src/Main/SharpDevelop/Project/ProjectService.cs b/src/Main/SharpDevelop/Project/ProjectService.cs
index 7dc817f9f5..3bf70e4895 100644
--- a/src/Main/SharpDevelop/Project/ProjectService.cs
+++ b/src/Main/SharpDevelop/Project/ProjectService.cs
@@ -8,7 +8,6 @@ using System.Windows.Input;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui;
-using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.SharpDevelop.Project
diff --git a/src/Main/SharpDevelop/Sda/CallHelper.cs b/src/Main/SharpDevelop/Sda/CallHelper.cs
index 817391075f..4363c812d8 100644
--- a/src/Main/SharpDevelop/Sda/CallHelper.cs
+++ b/src/Main/SharpDevelop/Sda/CallHelper.cs
@@ -217,13 +217,12 @@ namespace ICSharpCode.SharpDevelop.Sda
public void OpenProject(string fileName)
{
- SD.MainThread.InvokeIfRequired(() => Project.ProjectService.LoadSolutionOrProject(fileName));
+ SD.MainThread.InvokeIfRequired(() => SD.ProjectService.OpenSolutionOrProject(FileName.Create(fileName)));
}
- [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
public bool IsSolutionOrProject(string fileName)
{
- return Project.ProjectService.HasProjectLoader(fileName);
+ return SD.ProjectService.IsSolutionOrProjectFile(FileName.Create(fileName));
}
public bool CloseWorkbench(bool force)
diff --git a/src/Main/SharpDevelop/Startup/SharpDevelopMain.cs b/src/Main/SharpDevelop/Startup/SharpDevelopMain.cs
index 23e3480a71..e81f475481 100644
--- a/src/Main/SharpDevelop/Startup/SharpDevelopMain.cs
+++ b/src/Main/SharpDevelop/Startup/SharpDevelopMain.cs
@@ -218,7 +218,7 @@ namespace ICSharpCode.SharpDevelop.Startup
{
try {
foreach (string file in fileList) {
- if (ProjectService.HasProjectLoader(file)) {
+ if (SD.ProjectService.IsSolutionOrProjectFile(FileName.Create(file))) {
return false;
}
}
diff --git a/src/Main/SharpDevelop/Workbench/RecentOpen.cs b/src/Main/SharpDevelop/Workbench/RecentOpen.cs
index 0bfb20aa3f..ee677ac58b 100644
--- a/src/Main/SharpDevelop/Workbench/RecentOpen.cs
+++ b/src/Main/SharpDevelop/Workbench/RecentOpen.cs
@@ -24,15 +24,15 @@ namespace ICSharpCode.SharpDevelop
///
int MAX_LENGTH = 10;
- ObservableCollection recentFiles = new ObservableCollection();
- ObservableCollection recentProjects = new ObservableCollection();
+ ObservableCollection recentFiles = new ObservableCollection();
+ ObservableCollection recentProjects = new ObservableCollection();
Properties properties;
- public IReadOnlyList RecentFiles {
+ public IReadOnlyList RecentFiles {
get { return recentFiles; }
}
- public IReadOnlyList RecentProjects {
+ public IReadOnlyList RecentProjects {
get { return recentProjects; }
}
@@ -41,17 +41,13 @@ namespace ICSharpCode.SharpDevelop
// don't check whether files exist because that might be slow (e.g. if file is on network
// drive that's unavailable)
this.properties = p;
- recentFiles.AddRange(p.GetList("Files"));
- recentProjects.AddRange(p.GetList("Projects"));
+ recentFiles.AddRange(p.GetList("Files").Select(FileName.Create));
+ recentProjects.AddRange(p.GetList("Projects").Select(FileName.Create));
}
- public void AddRecentFile(string name)
+ public void AddRecentFile(FileName name)
{
- for (int i = 0; i < recentFiles.Count; ++i) {
- if (recentFiles[i].Equals(name, StringComparison.OrdinalIgnoreCase)) {
- recentFiles.RemoveAt(i);
- }
- }
+ recentFiles.Remove(name); // remove if the filename is already in the list
while (recentFiles.Count >= MAX_LENGTH) {
recentFiles.RemoveAt(recentFiles.Count - 1);
@@ -73,13 +69,9 @@ namespace ICSharpCode.SharpDevelop
properties.SetList("Projects", recentProjects);
}
- public void AddRecentProject(string name)
+ public void AddRecentProject(FileName name)
{
- for (int i = 0; i < recentProjects.Count; ++i) {
- if (recentProjects[i].ToString().Equals(name, StringComparison.OrdinalIgnoreCase)) {
- recentProjects.RemoveAt(i);
- }
- }
+ recentProjects.Remove(name);
while (recentProjects.Count >= MAX_LENGTH) {
recentProjects.RemoveAt(recentProjects.Count - 1);
@@ -107,7 +99,7 @@ namespace ICSharpCode.SharpDevelop
string file = recentFiles[i].ToString();
if (e.SourceFile == file) {
recentFiles.RemoveAt(i);
- recentFiles.Insert(i, e.TargetFile);
+ recentFiles.Insert(i, FileName.Create(e.TargetFile));
break;
}
}
diff --git a/src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs b/src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs
index 85e0f78ff6..4bf21b7a0b 100644
--- a/src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs
+++ b/src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs
@@ -106,7 +106,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
// load previous solution
if (!didLoadSolutionOrFile && PropertyService.Get("SharpDevelop.LoadPrevProjectOnStartup", false)) {
if (SD.FileService.RecentOpen.RecentProjects.Count > 0) {
- ProjectService.LoadSolution(SD.FileService.RecentOpen.RecentProjects[0]);
+ SD.ProjectService.OpenSolutionOrProject(SD.FileService.RecentOpen.RecentProjects[0]);
didLoadSolutionOrFile = true;
}
}