diff --git a/External/Plugins/HaXeContext/Context.cs b/External/Plugins/HaXeContext/Context.cs index cd089fd977..4a3f2b3677 100644 --- a/External/Plugins/HaXeContext/Context.cs +++ b/External/Plugins/HaXeContext/Context.cs @@ -1212,7 +1212,7 @@ public override MemberList ResolveDotContext(ScintillaNet.ScintillaControl sci, HaxeComplete GetHaxeComplete(ScintillaControl sci, ASExpr expression, bool autoHide, HaxeCompilerService compilerService) { var sdkVersion = GetCurrentSDKVersion(); - if (hxsettings.CompletionMode == HaxeCompletionModeEnum.CompletionServer && new SemVer("3.2.1").IsOlderThan(sdkVersion)) + if (hxsettings.CompletionMode == HaxeCompletionModeEnum.CompletionServer && sdkVersion.IsGreaterThanOrEquals(new SemVer("3.3.0"))) return new HaxeComplete330(sci, expression, autoHide, completionModeHandler, compilerService, sdkVersion); return new HaxeComplete(sci, expression, autoHide, completionModeHandler, compilerService, sdkVersion); } diff --git a/FlashDevelop.sln b/FlashDevelop.sln index fa646274ca..0c96eb9e20 100644 --- a/FlashDevelop.sln +++ b/FlashDevelop.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.25123.0 +VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlashDevelop", "FlashDevelop\FlashDevelop.csproj", "{EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}" ProjectSection(ProjectDependencies) = postProject @@ -83,6 +83,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ASCompletion.Tests", "Tests EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeRefactor.Tests", "Tests\External\Plugins\CodeRefactor.Tests\CodeRefactor.Tests.csproj", "{19C1FEE5-CEC3-442B-99B2-3F3FC955CAB4}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PluginCore.Tests", "Tests\PluginCore\PluginCore.Tests\PluginCore.Tests.csproj", "{F44D3125-12E8-4143-B250-84C5D89D253C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -493,6 +495,17 @@ Global {19C1FEE5-CEC3-442B-99B2-3F3FC955CAB4}.Release+Tests|Any CPU.Build.0 = Release|Any CPU {19C1FEE5-CEC3-442B-99B2-3F3FC955CAB4}.Release+Tests|x86.ActiveCfg = Release|x86 {19C1FEE5-CEC3-442B-99B2-3F3FC955CAB4}.Release+Tests|x86.Build.0 = Release|x86 + {F44D3125-12E8-4143-B250-84C5D89D253C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Debug|x86.ActiveCfg = Debug|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Debug|x86.Build.0 = Debug|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Release|Any CPU.Build.0 = Release|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Release|x86.ActiveCfg = Release|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Release|x86.Build.0 = Release|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Release+Tests|Any CPU.ActiveCfg = Release|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Release+Tests|Any CPU.Build.0 = Release|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Release+Tests|x86.ActiveCfg = Release|Any CPU + {F44D3125-12E8-4143-B250-84C5D89D253C}.Release+Tests|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PluginCore/PluginCore/Utilities/SemVer.cs b/PluginCore/PluginCore/Utilities/SemVer.cs index 0fbd75ce23..98173efa14 100644 --- a/PluginCore/PluginCore/Utilities/SemVer.cs +++ b/PluginCore/PluginCore/Utilities/SemVer.cs @@ -19,17 +19,13 @@ public SemVer(string version) { // ignore the pre-release denotation if present int hyphenIndex = version.IndexOf('-'); - if (hyphenIndex >= 0) - version = version.Substring(0, hyphenIndex); + if (hyphenIndex >= 0) version = version.Substring(0, hyphenIndex); string[] numbers = version.Split('.'); - if (numbers.Length >= 1) - int.TryParse(numbers[0], out Major); - if (numbers.Length >= 2) - int.TryParse(numbers[1], out Minor); - if (numbers.Length >= 3) - int.TryParse(numbers[2], out Patch); + if (numbers.Length >= 1) int.TryParse(numbers[0], out Major); + if (numbers.Length >= 2) int.TryParse(numbers[1], out Minor); + if (numbers.Length >= 3) int.TryParse(numbers[2], out Patch); } public override string ToString() @@ -39,13 +35,26 @@ public override string ToString() public bool IsOlderThan(SemVer semVer) { - if (semVer.Major > Major) - return true; - if (semVer.Major == Major && semVer.Minor > Minor) - return true; - if (semVer.Major == Major && semVer.Minor == Minor && semVer.Patch > Patch) - return true; - return false; + return (semVer.Major > Major) + || (semVer.Major == Major && semVer.Minor > Minor) + || (semVer.Major == Major && semVer.Minor == Minor && semVer.Patch > Patch); + } + + public bool Equals(SemVer semVer) + { + return semVer.Major == Major && semVer.Minor == Minor && semVer.Patch == Patch; + } + + public bool IsGreaterThan(SemVer semVer) + { + return (semVer.Major < Major) + || (semVer.Major == Major && semVer.Minor < Minor) + || (semVer.Major == Major && semVer.Minor == Minor && semVer.Patch < Patch); + } + + public bool IsGreaterThanOrEquals(SemVer semVer) + { + return Equals(semVer) || IsGreaterThan(semVer); } } } diff --git a/Tests/External/Plugins/CodeRefactor.Tests/Properties/AssemblyInfo.cs b/Tests/External/Plugins/CodeRefactor.Tests/Properties/AssemblyInfo.cs index aa20076b7e..ff0b63546a 100644 --- a/Tests/External/Plugins/CodeRefactor.Tests/Properties/AssemblyInfo.cs +++ b/Tests/External/Plugins/CodeRefactor.Tests/Properties/AssemblyInfo.cs @@ -6,9 +6,9 @@ // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("CodeRefactor.Tests")] -[assembly: AssemblyDescription("DistroConfig.DISTRIBUTION_COMPANY")] +[assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("DistroConfig.DISTRIBUTION_COMPANY")] [assembly: AssemblyProduct("CodeRefactor.Tests")] [assembly: AssemblyCopyright("DistroConfig.DISTRIBUTION_COPYRIGHT")] [assembly: AssemblyTrademark("")] diff --git a/Tests/PluginCore/PluginCore.Tests/PluginCore.Tests.csproj b/Tests/PluginCore/PluginCore.Tests/PluginCore.Tests.csproj new file mode 100644 index 0000000000..d8b44482df --- /dev/null +++ b/Tests/PluginCore/PluginCore.Tests/PluginCore.Tests.csproj @@ -0,0 +1,70 @@ + + + + + Debug + AnyCPU + {F44D3125-12E8-4143-B250-84C5D89D253C} + Library + Properties + PluginCore + PluginCore.Tests + v3.5 + 512 + + + true + full + false + ..\..\..\Bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Bin\Debug\ + TRACE + prompt + 4 + + + + ..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll + + + + + + + + + Settings.settings + True + True + + + + + {61885F70-B4DC-4B44-852D-5D6D03F2A734} + PluginCore + + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + \ No newline at end of file diff --git a/Tests/PluginCore/PluginCore.Tests/PluginCore/Utilities/SemVerTests.cs b/Tests/PluginCore/PluginCore.Tests/PluginCore/Utilities/SemVerTests.cs new file mode 100644 index 0000000000..0b7276c2db --- /dev/null +++ b/Tests/PluginCore/PluginCore.Tests/PluginCore/Utilities/SemVerTests.cs @@ -0,0 +1,42 @@ +using NUnit.Framework; +using PluginCore.Utilities; + +namespace PluginCore.PluginCore.Utilities +{ + [TestFixture] + class SemVerTests + { + [Test] + public void IsOlderThan() + { + var ver = new SemVer("3.2.1"); + Assert.IsTrue(ver.IsOlderThan(new SemVer("3.3.0"))); + Assert.IsFalse(ver.IsOlderThan(new SemVer("3.0.0"))); + } + + [Test] + public void Equals() + { + var ver = new SemVer("3.3.0"); + Assert.IsTrue(ver.Equals(new SemVer("3.3.0"))); + Assert.IsFalse(ver.Equals(new SemVer("3.2.1"))); + } + + [Test] + public void IsGreaterThan() + { + var ver = new SemVer("3.3.0"); + Assert.IsTrue(ver.IsGreaterThan(new SemVer("3.2.1"))); + Assert.IsFalse(ver.IsGreaterThan(new SemVer("3.3.0"))); + } + + [Test] + public void IsGreaterThanOrEquals() + { + var ver = new SemVer("3.3.0"); + Assert.IsTrue(ver.IsGreaterThanOrEquals(new SemVer("3.2.1"))); + Assert.IsTrue(ver.IsGreaterThanOrEquals(new SemVer("3.3.0"))); + Assert.IsFalse(ver.IsGreaterThanOrEquals(new SemVer("3.4.0"))); + } + } +} diff --git a/Tests/PluginCore/PluginCore.Tests/Properties/AssemblyInfo.cs b/Tests/PluginCore/PluginCore.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..271d59c24e --- /dev/null +++ b/Tests/PluginCore/PluginCore.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("PluginCore.Tests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("DistroConfig.DISTRIBUTION_COMPANY")] +[assembly: AssemblyProduct("PluginCore.Tests")] +[assembly: AssemblyCopyright("DistroConfig.DISTRIBUTION_COPYRIGHT")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("f44d3125-12e8-4143-b250-84c5d89d253c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tests/PluginCore/PluginCore.Tests/Properties/Settings.Designer.cs b/Tests/PluginCore/PluginCore.Tests/Properties/Settings.Designer.cs new file mode 100644 index 0000000000..8ece4ac8b8 --- /dev/null +++ b/Tests/PluginCore/PluginCore.Tests/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace CodeRefactor.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Tests/PluginCore/PluginCore.Tests/Properties/Settings.settings b/Tests/PluginCore/PluginCore.Tests/Properties/Settings.settings new file mode 100644 index 0000000000..049245f401 --- /dev/null +++ b/Tests/PluginCore/PluginCore.Tests/Properties/Settings.settings @@ -0,0 +1,6 @@ + + + + + +