diff --git a/TODOnewNR.txt b/TODOnewNR.txt index b5861e3168..826d2f845d 100644 --- a/TODOnewNR.txt +++ b/TODOnewNR.txt @@ -200,3 +200,7 @@ Context Actions vs. Member Context Menu: Refactorings that don't make sense without opening the file shouldn't be in the member menu. The context actions menu should show all refactorings (even those that are also in the members context menu). + +Automatic Translation: + WorkbenchSingleton.AssertMainThread() -> SD.MainThread.VerifyAccess() + AbstractMenuCommand-derived classes that do not override IsEnabled -> SimpleCommand diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/AnchorSnippetElementProvider.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/AnchorSnippetElementProvider.cs index 50f46c9366..7f642b60c4 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/AnchorSnippetElementProvider.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/AnchorSnippetElementProvider.cs @@ -3,7 +3,7 @@ using System; using ICSharpCode.AvalonEdit.Snippets; -using ICSharpCode.SharpDevelop.Editor.AvalonEdit; +using ICSharpCode.SharpDevelop.Editor; namespace ICSharpCode.AvalonEdit.AddIn.Snippets { diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/DefaultSnippetElementProvider.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/DefaultSnippetElementProvider.cs index d88c422f77..c88a286e6f 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/DefaultSnippetElementProvider.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/DefaultSnippetElementProvider.cs @@ -3,7 +3,7 @@ using System; using ICSharpCode.AvalonEdit.Snippets; -using ICSharpCode.SharpDevelop.Editor.AvalonEdit; +using ICSharpCode.SharpDevelop.Editor; namespace ICSharpCode.AvalonEdit.AddIn.Snippets { diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/SnippetManager.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/SnippetManager.cs index dd1f890265..73cb500db4 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/SnippetManager.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Snippets/SnippetManager.cs @@ -8,7 +8,7 @@ using System.Linq; using ICSharpCode.Core; using ICSharpCode.SharpDevelop; -using ICSharpCode.SharpDevelop.Editor.AvalonEdit; +using ICSharpCode.SharpDevelop.Editor; namespace ICSharpCode.AvalonEdit.AddIn.Snippets { diff --git a/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextEditorAdapter.cs b/src/Main/Base/Project/Editor/AvalonEditTextEditorAdapter.cs old mode 100755 new mode 100644 similarity index 99% rename from src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextEditorAdapter.cs rename to src/Main/Base/Project/Editor/AvalonEditTextEditorAdapter.cs index e307b5a30b..d2ce66aad1 --- a/src/Main/Base/Project/Src/Editor/AvalonEdit/AvalonEditTextEditorAdapter.cs +++ b/src/Main/Base/Project/Editor/AvalonEditTextEditorAdapter.cs @@ -15,7 +15,7 @@ using ICSharpCode.NRefactory; using ICSharpCode.NRefactory.Editor; using ICSharpCode.SharpDevelop.Editor.CodeCompletion; -namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit +namespace ICSharpCode.SharpDevelop.Editor { using ICSharpCode.AvalonEdit; diff --git a/src/Main/Base/Project/Src/Editor/IBracketSearcher.cs b/src/Main/Base/Project/Editor/IBracketSearcher.cs similarity index 97% rename from src/Main/Base/Project/Src/Editor/IBracketSearcher.cs rename to src/Main/Base/Project/Editor/IBracketSearcher.cs index ea08f340b1..845193ab42 100644 --- a/src/Main/Base/Project/Src/Editor/IBracketSearcher.cs +++ b/src/Main/Base/Project/Editor/IBracketSearcher.cs @@ -1,53 +1,53 @@ -// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) -// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) - -using System; -using ICSharpCode.NRefactory.Editor; - -namespace ICSharpCode.SharpDevelop.Editor -{ - /// - /// Allows language specific search for matching brackets. - /// - public interface IBracketSearcher - { - /// - /// Searches for a matching bracket from the given offset to the start of the document. - /// - /// A BracketSearchResult that contains the positions and lengths of the brackets. Return null if there is nothing to highlight. - BracketSearchResult SearchBracket(IDocument document, int offset); - } - - public class DefaultBracketSearcher : IBracketSearcher - { - public static readonly DefaultBracketSearcher DefaultInstance = new DefaultBracketSearcher(); - - public BracketSearchResult SearchBracket(IDocument document, int offset) - { - return null; - } - } - - /// - /// Describes a pair of matching brackets found by IBracketSearcher. - /// - public class BracketSearchResult - { - public int OpeningBracketOffset { get; private set; } - - public int OpeningBracketLength { get; private set; } - - public int ClosingBracketOffset { get; private set; } - - public int ClosingBracketLength { get; private set; } - - public BracketSearchResult(int openingBracketOffset, int openingBracketLength, - int closingBracketOffset, int closingBracketLength) - { - this.OpeningBracketOffset = openingBracketOffset; - this.OpeningBracketLength = openingBracketLength; - this.ClosingBracketOffset = closingBracketOffset; - this.ClosingBracketLength = closingBracketLength; - } - } -} +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using ICSharpCode.NRefactory.Editor; + +namespace ICSharpCode.SharpDevelop.Editor +{ + /// + /// Allows language specific search for matching brackets. + /// + public interface IBracketSearcher + { + /// + /// Searches for a matching bracket from the given offset to the start of the document. + /// + /// A BracketSearchResult that contains the positions and lengths of the brackets. Return null if there is nothing to highlight. + BracketSearchResult SearchBracket(IDocument document, int offset); + } + + public class DefaultBracketSearcher : IBracketSearcher + { + public static readonly DefaultBracketSearcher DefaultInstance = new DefaultBracketSearcher(); + + public BracketSearchResult SearchBracket(IDocument document, int offset) + { + return null; + } + } + + /// + /// Describes a pair of matching brackets found by IBracketSearcher. + /// + public class BracketSearchResult + { + public int OpeningBracketOffset { get; private set; } + + public int OpeningBracketLength { get; private set; } + + public int ClosingBracketOffset { get; private set; } + + public int ClosingBracketLength { get; private set; } + + public BracketSearchResult(int openingBracketOffset, int openingBracketLength, + int closingBracketOffset, int closingBracketLength) + { + this.OpeningBracketOffset = openingBracketOffset; + this.OpeningBracketLength = openingBracketLength; + this.ClosingBracketOffset = closingBracketOffset; + this.ClosingBracketLength = closingBracketLength; + } + } +} diff --git a/src/Main/Base/Project/Editor/IDocumentVersionProvider.cs b/src/Main/Base/Project/Editor/IDocumentVersionProvider.cs new file mode 100644 index 0000000000..265f2beec3 --- /dev/null +++ b/src/Main/Base/Project/Editor/IDocumentVersionProvider.cs @@ -0,0 +1,51 @@ +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using System.Collections.Generic; +using System.IO; + +using ICSharpCode.Core; +using ICSharpCode.SharpDevelop.Gui; + +namespace ICSharpCode.SharpDevelop.Editor +{ + /// + /// Provides the BASE-version for a given file - the original unmodified + /// copy from the last commit. + /// This interface is implemented by the version control AddIns. + /// + public interface IDocumentVersionProvider + { + /// + /// Provides the BASE-Version for a file. This can be either the file saved + /// to disk or a base version provided by any VCS. + /// + Stream OpenBaseVersion(string fileName); + + /// + /// Starts watching for changes to the BASE-version of the specified file. + /// The callback delegate gets called whenever the BASE-version has changed. + /// + /// Returns a disposable that can be used to stop watching for changes. + /// You must dispose the disposable to prevent a memory leak, the GC will + /// not help out in this case! + IDisposable WatchBaseVersionChanges(string fileName, EventHandler callback); + } + + public class VersioningServices + { + public static readonly VersioningServices Instance = new VersioningServices(); + + List baseVersionProviders; + + public List DocumentVersionProviders { + get { + if (baseVersionProviders == null) + baseVersionProviders = AddInTree.BuildItems("/Workspace/DocumentVersionProviders", this, false); + + return baseVersionProviders; + } + } + } +} diff --git a/src/Main/Base/Project/Src/Editor/AvalonEdit/ISnippetElementProvider.cs b/src/Main/Base/Project/Editor/ISnippetElementProvider.cs similarity index 93% rename from src/Main/Base/Project/Src/Editor/AvalonEdit/ISnippetElementProvider.cs rename to src/Main/Base/Project/Editor/ISnippetElementProvider.cs index dfa02bee41..9fac59d0be 100644 --- a/src/Main/Base/Project/Src/Editor/AvalonEdit/ISnippetElementProvider.cs +++ b/src/Main/Base/Project/Editor/ISnippetElementProvider.cs @@ -4,7 +4,7 @@ using System; using ICSharpCode.AvalonEdit.Snippets; -namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit +namespace ICSharpCode.SharpDevelop.Editor { /// /// Used in "/SharpDevelop/ViewContent/AvalonEdit/SnippetElementProviders" to allow AddIns to provide custom snippet elements. diff --git a/src/Main/Base/Project/Src/Editor/ITextAreaToolTipProvider.cs b/src/Main/Base/Project/Editor/ITextAreaToolTipProvider.cs similarity index 100% rename from src/Main/Base/Project/Src/Editor/ITextAreaToolTipProvider.cs rename to src/Main/Base/Project/Editor/ITextAreaToolTipProvider.cs diff --git a/src/Main/Base/Project/Src/Editor/ITooltip.cs b/src/Main/Base/Project/Editor/ITooltip.cs similarity index 100% rename from src/Main/Base/Project/Src/Editor/ITooltip.cs rename to src/Main/Base/Project/Editor/ITooltip.cs diff --git a/src/Main/Base/Project/Src/Editor/PermanentAnchor.cs b/src/Main/Base/Project/Editor/PermanentAnchor.cs similarity index 100% rename from src/Main/Base/Project/Src/Editor/PermanentAnchor.cs rename to src/Main/Base/Project/Editor/PermanentAnchor.cs diff --git a/src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs b/src/Main/Base/Project/Editor/RepoChangeWatcher.cs similarity index 73% rename from src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs rename to src/Main/Base/Project/Editor/RepoChangeWatcher.cs index 5cfc77788e..c8aaef21aa 100644 --- a/src/Main/Base/Project/Src/Editor/IDocumentBaseVersionProvider.cs +++ b/src/Main/Base/Project/Editor/RepoChangeWatcher.cs @@ -10,33 +10,15 @@ using ICSharpCode.SharpDevelop.Gui; namespace ICSharpCode.SharpDevelop.Editor { - public interface IDocumentVersionProvider - { - /// - /// Provides the BASE-Version for a file. This can be either the file saved - /// to disk or a base version provided by any VCS. - /// - Stream OpenBaseVersion(string fileName); - - IDisposable WatchBaseVersionChanges(string fileName, EventHandler callback); - } - - public class VersioningServices - { - public static readonly VersioningServices Instance = new VersioningServices(); - - List baseVersionProviders; - - public List DocumentVersionProviders { - get { - if (baseVersionProviders == null) - baseVersionProviders = AddInTree.BuildItems("/Workspace/DocumentVersionProviders", this, false); - - return baseVersionProviders; - } - } - } - + /// + /// A helper class that can be used to register an action to be called + /// when the contents of a directory change. + /// The action is called only once if there were multiple changes, + /// and the call may wait until SharpDevelop gets the focus. + /// If multiple actions are registered for the same directory, the underlying + /// FileSystemWatcher will be reused. + /// This class is usually used to watch a .svn or .git directory. + /// public class RepoChangeWatcher { static readonly Dictionary watchers @@ -58,10 +40,10 @@ namespace ICSharpCode.SharpDevelop.Editor watcher.Changed += FileChanged; watcher.Renamed += FileChanged; -// watcher.IncludeSubdirectories = true; + // watcher.IncludeSubdirectories = true; watcher.EnableRaisingEvents = true; } - + void MainWindowActivated(object sender, EventArgs e) { if (alreadyCalled) { diff --git a/src/Main/Base/Project/Src/Editor/ToolTipRequestEventArgs.cs b/src/Main/Base/Project/Editor/ToolTipRequestEventArgs.cs similarity index 100% rename from src/Main/Base/Project/Src/Editor/ToolTipRequestEventArgs.cs rename to src/Main/Base/Project/Editor/ToolTipRequestEventArgs.cs diff --git a/src/Main/Base/Project/Src/Editor/ToolTipService.cs b/src/Main/Base/Project/Editor/ToolTipService.cs similarity index 100% rename from src/Main/Base/Project/Src/Editor/ToolTipService.cs rename to src/Main/Base/Project/Editor/ToolTipService.cs diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin index 741367c218..0ef46548f4 100755 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.addin @@ -23,14 +23,14 @@ - + - + diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj index 3ee2cca104..513d9a91ea 100644 --- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj +++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj @@ -107,6 +107,7 @@ + @@ -119,13 +120,28 @@ + + + + + ToolTipService.cs + + + ToolTipService.cs + + + + + ToolTipService.cs + + @@ -153,11 +169,7 @@ - - - - UserControl @@ -167,7 +179,6 @@ - @@ -184,25 +195,13 @@ - - - - ToolTipService.cs - - - ToolTipService.cs - - - ToolTipService.cs - - ColorPickerButton.xaml diff --git a/src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs b/src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs index 1ff3c7c6c2..a0e9d60342 100755 --- a/src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs @@ -39,7 +39,7 @@ namespace ICSharpCode.SharpDevelop.Gui /// public DefinitionViewPad() { - ctl = Editor.AvalonEdit.AvalonEditTextEditorAdapter.CreateAvalonEditInstance(); + ctl = Editor.AvalonEditTextEditorAdapter.CreateAvalonEditInstance(); ctl.IsReadOnly = true; ctl.MouseDoubleClick += OnDoubleClick; throw new NotImplementedException(); diff --git a/src/Main/Base/Project/Src/Editor/AvalonEdit/TextContentCondition.cs b/src/Main/SharpDevelop/Editor/TextContentCondition.cs similarity index 87% rename from src/Main/Base/Project/Src/Editor/AvalonEdit/TextContentCondition.cs rename to src/Main/SharpDevelop/Editor/TextContentCondition.cs index fe8d40da65..e796305304 100644 --- a/src/Main/Base/Project/Src/Editor/AvalonEdit/TextContentCondition.cs +++ b/src/Main/SharpDevelop/Editor/TextContentCondition.cs @@ -2,10 +2,11 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using ICSharpCode.AvalonEdit.Highlighting; using ICSharpCode.Core; using ICSharpCode.SharpDevelop.Gui; -namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit +namespace ICSharpCode.SharpDevelop.Editor { /// /// Tests the name of the highlighting strategy of the text editor. @@ -16,7 +17,7 @@ namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit /// /// <Condition name = "TextContent" textcontent="XML"> /// - public class TextContentConditionEvaluator : IConditionEvaluator + sealed class TextContentConditionEvaluator : IConditionEvaluator { public bool IsValid(object caller, Condition condition) { diff --git a/src/Main/Base/Project/Src/Editor/AvalonEdit/TextSelectedCondition.cs b/src/Main/SharpDevelop/Editor/TextSelectedCondition.cs similarity index 82% rename from src/Main/Base/Project/Src/Editor/AvalonEdit/TextSelectedCondition.cs rename to src/Main/SharpDevelop/Editor/TextSelectedCondition.cs index fef323c43c..cfa12ba687 100644 --- a/src/Main/Base/Project/Src/Editor/AvalonEdit/TextSelectedCondition.cs +++ b/src/Main/SharpDevelop/Editor/TextSelectedCondition.cs @@ -5,9 +5,9 @@ using System; using ICSharpCode.Core; using ICSharpCode.SharpDevelop.Gui; -namespace ICSharpCode.SharpDevelop.Editor.AvalonEdit +namespace ICSharpCode.SharpDevelop.Editor { - public class TextSelectedCondition : IConditionEvaluator + sealed class TextSelectedCondition : IConditionEvaluator { public bool IsValid(object owner, Condition condition) { diff --git a/src/Main/SharpDevelop/SharpDevelop.csproj b/src/Main/SharpDevelop/SharpDevelop.csproj index 84d7283932..f9b3e09988 100644 --- a/src/Main/SharpDevelop/SharpDevelop.csproj +++ b/src/Main/SharpDevelop/SharpDevelop.csproj @@ -88,6 +88,8 @@ + + LoadSaveOptions.xaml Code