From f6aeb7859a46372b7f19a2ca22fea52f356f42a5 Mon Sep 17 00:00:00 2001 From: Andreas Weizel Date: Thu, 24 Jan 2013 20:25:32 +0100 Subject: [PATCH 01/20] Added a "show log" menu command in Git AddIn. --- src/AddIns/VersionControl/GitAddIn/GitAddIn.addin | 4 ++++ src/AddIns/VersionControl/GitAddIn/Src/Commands.cs | 8 ++++++++ src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs | 5 +++++ 3 files changed, 17 insertions(+) diff --git a/src/AddIns/VersionControl/GitAddIn/GitAddIn.addin b/src/AddIns/VersionControl/GitAddIn/GitAddIn.addin index a8f7c47bda..2bbb32c7f1 100644 --- a/src/AddIns/VersionControl/GitAddIn/GitAddIn.addin +++ b/src/AddIns/VersionControl/GitAddIn/GitAddIn.addin @@ -36,6 +36,10 @@ label = "Git ${res:AddIns.Subversion.Diff}..." icon = "Svn.Diff" class = "ICSharpCode.GitAddIn.GitDiffCommand"/> + + diff --git a/src/AddIns/VersionControl/GitAddIn/Src/Commands.cs b/src/AddIns/VersionControl/GitAddIn/Src/Commands.cs index 232b58368e..d0af47f6c2 100644 --- a/src/AddIns/VersionControl/GitAddIn/Src/Commands.cs +++ b/src/AddIns/VersionControl/GitAddIn/Src/Commands.cs @@ -92,4 +92,12 @@ namespace ICSharpCode.GitAddIn GitGuiWrapper.Diff(filename, callback); } } + + public class GitLogCommand : GitCommand + { + protected override void Run(string filename, Action callback) + { + GitGuiWrapper.Log(filename, callback); + } + } } diff --git a/src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs b/src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs index 5825d08223..ee8f962536 100644 --- a/src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs +++ b/src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs @@ -95,5 +95,10 @@ namespace ICSharpCode.GitAddIn { Proc("diff", fileName, callback); } + + public static void Log(string fileName, Action callback) + { + Proc("log", fileName, callback); + } } } From d8e27befb9d2fb0e209696cb96cf567e0d45991c Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sat, 26 Jan 2013 17:19:42 +0000 Subject: [PATCH 02/20] Fix xml completion for SubstitutionGroup elements. --- .../Project/Src/XmlSchemaCompletion.cs | 14 +- .../XmlEditor/Test/Resources/xslt.xsd | 1134 +++++++++++++++++ .../XmlEditor/Test/Schema/XsltSchemaTests.cs | 48 + .../XmlEditor/Test/Utils/ResourceManager.cs | 8 + .../XmlEditor/Test/XmlEditor.Tests.csproj | 4 + .../DisplayBindings/XmlEditor/XmlEditor.sln | 2 +- 6 files changed, 1208 insertions(+), 2 deletions(-) create mode 100644 src/AddIns/DisplayBindings/XmlEditor/Test/Resources/xslt.xsd create mode 100644 src/AddIns/DisplayBindings/XmlEditor/Test/Schema/XsltSchemaTests.cs diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs index 63906827bb..48b2b9f33c 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs @@ -335,11 +335,23 @@ namespace ICSharpCode.XmlEditor { XmlSchemaComplexType complexType = element.SchemaType as XmlSchemaComplexType; if (complexType == null) { - complexType = FindNamedType(schema, element.SchemaTypeName); + if (element.SchemaTypeName.IsEmpty) { + return GetComplexTypeFromSubstitutionGroup(element); + } + return FindNamedType(schema, element.SchemaTypeName); } return complexType; } + XmlSchemaComplexType GetComplexTypeFromSubstitutionGroup(XmlSchemaElement element) + { + if (!element.SubstitutionGroup.IsEmpty) { + XmlSchemaElement substitutedElement = FindElement(element.SubstitutionGroup); + return GetElementAsComplexType(substitutedElement); + } + return null; + } + /// /// Handler for schema validation errors. /// diff --git a/src/AddIns/DisplayBindings/XmlEditor/Test/Resources/xslt.xsd b/src/AddIns/DisplayBindings/XmlEditor/Test/Resources/xslt.xsd new file mode 100644 index 0000000000..2b71d914c5 --- /dev/null +++ b/src/AddIns/DisplayBindings/XmlEditor/Test/Resources/xslt.xsd @@ -0,0 +1,1134 @@ + + + + + + + + This is a schema for XSLT 2.0 stylesheets. + + It defines all the elements that appear in the XSLT namespace; it also + provides hooks that allow the inclusion of user-defined literal result elements, + extension instructions, and top-level data elements. + + The schema is derived (with kind permission) from a schema for XSLT 1.0 stylesheets + produced by Asir S Vedamuthu of WebMethods Inc. + + This schema is available for use under the conditions of the W3C Software License + published at http://www.w3.org/Consortium/Legal/copyright-software-19980720 + + The schema is organized as follows: + + PART A: definitions of complex types and model groups used as the basis + for element definitions + PART B: definitions of individual XSLT elements + PART C: definitions for literal result elements + PART D: definitions of simple types used in attribute definitions + + This schema does not attempt to define all the constraints that apply to a valid + XSLT 2.0 stylesheet module. It is the intention that all valid stylesheet modules + should conform to this schema; however, the schema is non-normative and in the event + of any conflict, the text of the Recommendation takes precedence. + + This schema does not implement the special rules that apply when a stylesheet + has sections that use forwards-compatible-mode. In this mode, setting version="3.0" + allows elements from the XSLT namespace to be used that are not defined in XSLT 2.0. + + Simplified stylesheets (those with a literal result element as the outermost element) + will validate against this schema only if validation starts in lax mode. + + This version is dated 2007-03-16 + Authors: Michael H Kay, Saxonica Limited + Jeni Tennison, Jeni Tennison Consulting Ltd. + + 2007-03-15: added xsl:document element + revised xsl:sequence element + see http://www.w3.org/Bugs/Public/show_bug.cgi?id=4237 + + + + + + + + + + + + + + + + + PART A: definitions of complex types and model groups used as the basis + for element definitions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PART B: definitions of individual XSLT elements + Elements are listed in alphabetical order. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PART C: definition of literal result elements + + There are three ways to define the literal result elements + permissible in a stylesheet. + + (a) do nothing. This allows any element to be used as a literal + result element, provided it is not in the XSLT namespace + + (b) declare all permitted literal result elements as members + of the xsl:literal-result-element substitution group + + (c) redefine the model group xsl:result-elements to accommodate + all permitted literal result elements. + + Literal result elements are allowed to take certain attributes + in the XSLT namespace. These are defined in the attribute group + literal-result-element-attributes, which can be included in the + definition of any literal result element. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PART D: definitions of simple types used in stylesheet attributes + + + + + + + + This type is used for all attributes that allow an attribute value template. + The general rules for the syntax of attribute value templates, and the specific + rules for each such attribute, are described in the XSLT 2.0 Recommendation. + + + + + + + + + A string containing exactly one character. + + + + + + + + + + + An XPath 2.0 expression. + + + + + + + + + + + Describes how type annotations in source documents are handled. + + + + + + + + + + + + + The level attribute of xsl:number: + one of single, multiple, or any. + + + + + + + + + + + + + The mode attribute of xsl:apply-templates: + either a QName, or #current, or #default. + + + + + + + + + + + + + + + + The mode attribute of xsl:template: + either a list, each member being either a QName or #default; + or the value #all + + + + + + + + + + + + + + + + + + + + + + + + + + + + A list of NameTests, as defined in the XPath 2.0 Recommendation. + Each NameTest is either a QName, or "*", or "prefix:*", or "*:localname" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The method attribute of xsl:output: + Either one of the recognized names "xml", "xhtml", "html", "text", + or a QName that must include a prefix. + + + + + + + + + + + + + + + + + + + + + + + A match pattern as defined in the XSLT 2.0 Recommendation. + The syntax for patterns is a restricted form of the syntax for + XPath 2.0 expressions. + + + + + + + + + Either a namespace prefix, or #default. + Used in the xsl:namespace-alias element. + + + + + + + + + + + + + + + A list of QNames. + Used in the [xsl:]use-attribute-sets attribute of various elements, + and in the cdata-section-elements attribute of xsl:output + + + + + + + + + A QName. + This schema does not use the built-in type xs:QName, but rather defines its own + QName type. Although xs:QName would define the correct validation on these attributes, + a schema processor would expand unprefixed QNames incorrectly when constructing the PSVI, + because (as defined in XML Schema errata) an unprefixed xs:QName is assumed to be in + the default namespace, which is not the correct assumption for XSLT. + The data type is defined as a restriction of the built-in type Name, restricted + so that it can only contain one colon which must not be the first or last character. + + + + + + + + + + + The description of a data type, conforming to the + SequenceType production defined in the XPath 2.0 Recommendation + + + + + + + + + + + + + + + Describes different ways of type-annotating an element or attribute. + + + + + + + + + + + + Describes different ways of type-annotating an element or attribute. + + + + + + + + + + + + + + One of the values "yes" or "no". + + + + + + + + + + + + One of the values "yes" or "no" or "omit". + + + + + + + + + + \ No newline at end of file diff --git a/src/AddIns/DisplayBindings/XmlEditor/Test/Schema/XsltSchemaTests.cs b/src/AddIns/DisplayBindings/XmlEditor/Test/Schema/XsltSchemaTests.cs new file mode 100644 index 0000000000..7b47dda446 --- /dev/null +++ b/src/AddIns/DisplayBindings/XmlEditor/Test/Schema/XsltSchemaTests.cs @@ -0,0 +1,48 @@ +// 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.XmlEditor; +using NUnit.Framework; +using XmlEditor.Tests.Utils; + +namespace XmlEditor.Tests.Schema +{ + [TestFixture] + public class XsltSchemaTests + { + string namespaceURI = "http://www.w3.org/1999/XSL/Transform"; + XmlSchemaCompletion schemaCompletion; + + [TestFixtureSetUp] + public void SetUp() + { + schemaCompletion = new XmlSchemaCompletion(ResourceManager.ReadXsltSchema()); + } + + [Test] + public void GetChildElementCompletion_StylesheetElement_SubstitutionGroupUsedForTemplateAndTemplateElementReturned() + { + var path = new XmlElementPath(); + path.AddElement(new QualifiedName("stylesheet", namespaceURI)); + + XmlCompletionItemCollection completionItems = schemaCompletion.GetChildElementCompletion(path); + bool contains = completionItems.Contains("template"); + + Assert.IsTrue(contains); + } + + [Test] + public void GetAttributeCompletion_TemplateElementIsChildOfStylesheetElement_SubstitutionGroupUsedForTemplateAndMatchAttributeReturned() + { + var path = new XmlElementPath(); + path.AddElement(new QualifiedName("stylesheet", namespaceURI)); + path.AddElement(new QualifiedName("template", namespaceURI)); + + XmlCompletionItemCollection completionItems = schemaCompletion.GetAttributeCompletion(path); + bool contains = completionItems.Contains("match"); + + Assert.IsTrue(contains); + } + } +} diff --git a/src/AddIns/DisplayBindings/XmlEditor/Test/Utils/ResourceManager.cs b/src/AddIns/DisplayBindings/XmlEditor/Test/Utils/ResourceManager.cs index 6df5d1d277..39bb1ef7ff 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Test/Utils/ResourceManager.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Test/Utils/ResourceManager.cs @@ -35,6 +35,14 @@ namespace XmlEditor.Tests.Utils return manager.ReadXml("XMLSchema.xsd"); } + /// + /// Reads the XSL Transforms schema. + /// + public static StreamReader ReadXsltSchema() + { + return manager.ReadXml("xslt.xsd"); + } + /// /// Returns the xml read from the specified file which is embedded /// in this assembly as a resource. diff --git a/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj b/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj index f34b08fa5f..abe19aa494 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj +++ b/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj @@ -168,6 +168,7 @@ + @@ -386,5 +387,8 @@ + + + \ No newline at end of file diff --git a/src/AddIns/DisplayBindings/XmlEditor/XmlEditor.sln b/src/AddIns/DisplayBindings/XmlEditor/XmlEditor.sln index 49f718f1d1..2085830909 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/XmlEditor.sln +++ b/src/AddIns/DisplayBindings/XmlEditor/XmlEditor.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -# SharpDevelop 4.1.0.7289-alpha +# SharpDevelop 4.3 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "Project\XmlEditor.csproj", "{DCA2703D-250A-463E-A68A-07ED105AE6BD}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor.Tests", "Test\XmlEditor.Tests.csproj", "{FC0FE702-A87D-4D70-A9B6-1ECCD611125F}" From ab5982d2e0f5959a5607381b6fc797621709d9f8 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sat, 26 Jan 2013 17:29:10 +0000 Subject: [PATCH 03/20] Fix NullReferenceException for incorrect SubstitutionGroup in XML schema. Handle XML schema that defines an element that uses a SubstitutionGroup element but does not define the corresponding element. --- .../Project/Src/XmlSchemaCompletion.cs | 4 +- .../Test/Schema/SubstitutionGroupTests.cs | 38 +++++++++++++++++++ .../XmlEditor/Test/XmlEditor.Tests.csproj | 1 + 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/AddIns/DisplayBindings/XmlEditor/Test/Schema/SubstitutionGroupTests.cs diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs index 48b2b9f33c..4ac0f68b85 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs @@ -347,7 +347,9 @@ namespace ICSharpCode.XmlEditor { if (!element.SubstitutionGroup.IsEmpty) { XmlSchemaElement substitutedElement = FindElement(element.SubstitutionGroup); - return GetElementAsComplexType(substitutedElement); + if (substitutedElement != null) { + return GetElementAsComplexType(substitutedElement); + } } return null; } diff --git a/src/AddIns/DisplayBindings/XmlEditor/Test/Schema/SubstitutionGroupTests.cs b/src/AddIns/DisplayBindings/XmlEditor/Test/Schema/SubstitutionGroupTests.cs new file mode 100644 index 0000000000..586ab3de4a --- /dev/null +++ b/src/AddIns/DisplayBindings/XmlEditor/Test/Schema/SubstitutionGroupTests.cs @@ -0,0 +1,38 @@ +// 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.XmlEditor; +using NUnit.Framework; + +namespace XmlEditor.Tests.Schema +{ + [TestFixture] + public class SubstitutionGroupTests : SchemaTestFixtureBase + { + string namespaceURI = "http://www.w3.org/1999/XSL/Transform"; + + protected override string GetSchema() + { + return + "\r\n" + + " \r\n" + + ""; + } + + [Test] + public void GetChildElementCompletion_ParentElementIsSubstitutionGroupButNoCorrespondingElementInSchema_NullReferenceExceptionIsNotThrown() + { + var path = new XmlElementPath(); + path.AddElement(new QualifiedName("stylesheet", namespaceURI)); + + XmlCompletionItemCollection items = SchemaCompletion.GetChildElementCompletion(path); + + Assert.AreEqual(0, items.Count); + } + } +} diff --git a/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj b/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj index abe19aa494..963c0bb370 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj +++ b/src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj @@ -168,6 +168,7 @@ + From 57949641743fb88b6ac1ccff570c4c24c635ab49 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sun, 27 Jan 2013 14:30:05 +0000 Subject: [PATCH 04/20] Fix incorrect WinForm resource names generated for Boo. --- .../Boo/RequiredLibraries/Boo.Microsoft.Build.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Microsoft.Build.targets b/src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Microsoft.Build.targets index d8e77f16c1..df07846f99 100644 --- a/src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Microsoft.Build.targets +++ b/src/AddIns/BackendBindings/Boo/RequiredLibraries/Boo.Microsoft.Build.targets @@ -77,8 +77,8 @@ Name="CreateManifestResourceNames" DependsOnTargets="$(CreateManifestResourceNamesDependsOn)" > - - + + Date: Sun, 27 Jan 2013 20:24:37 +0100 Subject: [PATCH 05/20] Remove "alpha" designation --- src/Main/GlobalAssemblyInfo.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Main/GlobalAssemblyInfo.template b/src/Main/GlobalAssemblyInfo.template index 38879bd325..017a18c8e1 100644 --- a/src/Main/GlobalAssemblyInfo.template +++ b/src/Main/GlobalAssemblyInfo.template @@ -30,7 +30,7 @@ internal static class RevisionClass public const string Minor = "3"; public const string Build = "0"; public const string Revision = "$INSERTREVISION$"; - public const string VersionName = "alpha"; + public const string VersionName = ""; public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$"; } From c33a9c3cc549309dfa00c0e2c3edbb2e4a56800c Mon Sep 17 00:00:00 2001 From: Christoph Wille Date: Sun, 27 Jan 2013 20:36:57 +0100 Subject: [PATCH 06/20] GetMajorVersion() assumes VersionInfo string to be either null or non-empty --- src/Main/GlobalAssemblyInfo.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Main/GlobalAssemblyInfo.template b/src/Main/GlobalAssemblyInfo.template index 017a18c8e1..742b78d46a 100644 --- a/src/Main/GlobalAssemblyInfo.template +++ b/src/Main/GlobalAssemblyInfo.template @@ -30,7 +30,7 @@ internal static class RevisionClass public const string Minor = "3"; public const string Build = "0"; public const string Revision = "$INSERTREVISION$"; - public const string VersionName = ""; + public const string VersionName = null; // "" is not valid for no version name, you have to use null if you don't want a version name (eg "Beta 1") public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$"; } From a59c26f744cc18bd52c1999354e1c6b26fbc4806 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Tue, 29 Jan 2013 20:23:31 +0000 Subject: [PATCH 07/20] FxCop - Return default strings if resources cannot be found. --- src/Libraries/ICSharpCode.Build.Tasks/Project/Resources.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Libraries/ICSharpCode.Build.Tasks/Project/Resources.cs b/src/Libraries/ICSharpCode.Build.Tasks/Project/Resources.cs index e6315d40e7..1bf30034d0 100644 --- a/src/Libraries/ICSharpCode.Build.Tasks/Project/Resources.cs +++ b/src/Libraries/ICSharpCode.Build.Tasks/Project/Resources.cs @@ -36,7 +36,11 @@ namespace ICSharpCode.Build.Tasks } if (resourceService != null) { const BindingFlags flags = BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static; - return (string)resourceService.InvokeMember("Parse", flags, null, null, new object[] { key }); + string translation = (string)resourceService.InvokeMember("Parse", flags, null, null, new object[] { key }); + if (translation != null && translation.StartsWith("${res")) { + return null; + } + return translation; } else { return null; } From 36942a8c9abef3945900bfad386b9252d284e890 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Wed, 6 Feb 2013 19:26:56 +0100 Subject: [PATCH 08/20] http://community.sharpdevelop.net/forums/t/16600.aspx (3. Item) --- .../Dialogs/OptionPanels/ExternalToolPanel.xaml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.xaml b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.xaml index 927641d53d..4fab456852 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.xaml +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.xaml @@ -73,7 +73,7 @@ + Text="{Binding SelectedTool.MenuCommand,UpdateSourceTrigger=PropertyChanged}">