diff options
author | matthewsotoudeh <matthewsot@outlook.com> | 2014-08-29 22:10:16 -0700 |
---|---|---|
committer | matthewsotoudeh <matthewsot@outlook.com> | 2014-08-29 22:10:16 -0700 |
commit | 4e22d4046d4d024bada6feb34323b737a98e3bbb (patch) | |
tree | 721e0dd6d4c8ace9af64432c502cb4fcc615deb7 | |
parent | 57e2343a9955e5497fd2f1a50cd2ca137a3b1ab4 (diff) |
added more attributes
-rw-r--r-- | CocoaSharp/SharpSwift.Attributes/AmbiguousWrapping.cs | 21 | ||||
-rw-r--r-- | CocoaSharp/SharpSwift.Attributes/Optional.cs | 12 | ||||
-rw-r--r-- | CocoaSharp/SharpSwift.Attributes/SharpSwift.Attributes.csproj | 4 | ||||
-rw-r--r-- | CocoaSharp/SharpSwift.Attributes/UIApplicationMainAttribute.cs | 14 | ||||
-rw-r--r-- | CocoaSharp/SharpSwift.Attributes/Unwrapped.cs | 21 | ||||
-rw-r--r-- | StubGen/StubGen/Scrapers/Finals/ClassFinal.cs | 15 | ||||
-rw-r--r-- | StubGen/StubGen/Scrapers/Finals/MethodFinal.cs | 8 | ||||
-rw-r--r-- | StubGen/StubGen/Scrapers/ScrapedMethod.cs | 3 |
8 files changed, 97 insertions, 1 deletions
diff --git a/CocoaSharp/SharpSwift.Attributes/AmbiguousWrapping.cs b/CocoaSharp/SharpSwift.Attributes/AmbiguousWrapping.cs new file mode 100644 index 00000000..fb6f79fc --- /dev/null +++ b/CocoaSharp/SharpSwift.Attributes/AmbiguousWrapping.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SharpSwift.Attributes +{ + //TODO: handle unwrapping better + public class AmbiguousWrapping<T> + { + static public implicit operator T(AmbiguousWrapping<T> value) + { + return default(T); + } + + static public implicit operator AmbiguousWrapping<T>(T value) + { + return default(AmbiguousWrapping<T>); + } + } +} diff --git a/CocoaSharp/SharpSwift.Attributes/Optional.cs b/CocoaSharp/SharpSwift.Attributes/Optional.cs new file mode 100644 index 00000000..57ffd59b --- /dev/null +++ b/CocoaSharp/SharpSwift.Attributes/Optional.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SharpSwift.Attributes +{ + public class Optional<T> + { + + } +} diff --git a/CocoaSharp/SharpSwift.Attributes/SharpSwift.Attributes.csproj b/CocoaSharp/SharpSwift.Attributes/SharpSwift.Attributes.csproj index cd22426e..7def1083 100644 --- a/CocoaSharp/SharpSwift.Attributes/SharpSwift.Attributes.csproj +++ b/CocoaSharp/SharpSwift.Attributes/SharpSwift.Attributes.csproj @@ -43,6 +43,10 @@ <Compile Include="iOSVersionAttribute.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="RenameParameterAttribute.cs" /> + <Compile Include="UIApplicationMainAttribute.cs" /> + <Compile Include="Optional.cs" /> + <Compile Include="AmbiguousWrapping.cs" /> + <Compile Include="Unwrapped.cs" /> </ItemGroup> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. diff --git a/CocoaSharp/SharpSwift.Attributes/UIApplicationMainAttribute.cs b/CocoaSharp/SharpSwift.Attributes/UIApplicationMainAttribute.cs new file mode 100644 index 00000000..0e77e017 --- /dev/null +++ b/CocoaSharp/SharpSwift.Attributes/UIApplicationMainAttribute.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SharpSwift.Attributes +{ + public class UIApplicationMainAttribute : Attribute + { + public UIApplicationMainAttribute() + { + } + } +} diff --git a/CocoaSharp/SharpSwift.Attributes/Unwrapped.cs b/CocoaSharp/SharpSwift.Attributes/Unwrapped.cs new file mode 100644 index 00000000..2cccd7a8 --- /dev/null +++ b/CocoaSharp/SharpSwift.Attributes/Unwrapped.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace SharpSwift.Attributes +{ + //TODO: handle unwrapping better + public class Unwrapped<T> + { + static public implicit operator T(Unwrapped<T> value) + { + return default(T); + } + + static public implicit operator Unwrapped<T>(T value) + { + return default(Unwrapped<T>); + } + } +} diff --git a/StubGen/StubGen/Scrapers/Finals/ClassFinal.cs b/StubGen/StubGen/Scrapers/Finals/ClassFinal.cs index 855e3d8d..e33b0281 100644 --- a/StubGen/StubGen/Scrapers/Finals/ClassFinal.cs +++ b/StubGen/StubGen/Scrapers/Finals/ClassFinal.cs @@ -40,6 +40,21 @@ namespace StubGen.Scrapers.Finals case 4: Signatures.Add(methodSignature); return ", double NAME_YOUR_PARAMS = 4.2"; + case 5: + Signatures.Add(methodSignature); + return ", uint NAME_YOUR_PARAMS = 4.2"; + case 6: + Signatures.Add(methodSignature); + return ", UInt16 NAME_YOUR_PARAMS = 4.2"; + case 7: + Signatures.Add(methodSignature); + return ", UInt64 NAME_YOUR_PARAMS = 4.2"; + case 8: + Signatures.Add(methodSignature); + return ", long NAME_YOUR_PARAMS = 4.2"; + case 9: + Signatures.Add(methodSignature); + return ", char NAME_YOUR_PARAMS = ' '"; default: Signatures.Add(methodSignature); return ""; diff --git a/StubGen/StubGen/Scrapers/Finals/MethodFinal.cs b/StubGen/StubGen/Scrapers/Finals/MethodFinal.cs index 170a5b42..94179564 100644 --- a/StubGen/StubGen/Scrapers/Finals/MethodFinal.cs +++ b/StubGen/StubGen/Scrapers/Finals/MethodFinal.cs @@ -36,13 +36,18 @@ namespace StubGen.Scrapers.Finals toAddAfterSummary += "/// <returns>" + ParseAsDescription(method.ReturnDescription) + "</returns>" + NewLine; } + + if (method.IsOptional) + { + toOutput += "[Optional]"; + } if (differentiator != "") { toOutput += "[IgnoreParameter(\"NAME_YOUR_PARAMS\")]" + NewLine; } - if (isInterface && (method.Static || method.IsConstructor)) + if (isInterface && (method.Static || method.IsConstructor || method.IsOptional)) { //csharp doesn't allow static things in interfaces toOutput = toOutput.Replace("[", "//["); @@ -59,6 +64,7 @@ namespace StubGen.Scrapers.Finals if (!isInterface) //TODO: comment out private/static methods { output += method.Public ? "public " : "private "; + output += "virtual "; output += method.Static ? "static " : ""; } diff --git a/StubGen/StubGen/Scrapers/ScrapedMethod.cs b/StubGen/StubGen/Scrapers/ScrapedMethod.cs index 64b6a315..d3162bf7 100644 --- a/StubGen/StubGen/Scrapers/ScrapedMethod.cs +++ b/StubGen/StubGen/Scrapers/ScrapedMethod.cs @@ -10,13 +10,16 @@ namespace StubGen public string ReturnDescription { get; set; } public ScrapedType ReturnType { get; set; } public bool IsConstructor { get { return CSharpName == "init"; } } + public bool IsOptional { get; set; } public ScrapedMethod(ScrapedMember baseValues, HtmlNode node) : base(baseValues) { Description = node.SelectSingleNode("./div[@class='abstract']/p").RealInnerText(); Deprecated = Description.ToLower().Contains("deprecat"); + IsOptional = Declaration.Contains("optional "); RawName = Declaration.Split('(')[0].Split("func ").Last(); CSharpName = RawName.ToUpper()[0] + RawName.Substring(1); + if (Declaration.ToLower().Contains("init(")) { CSharpName = "init"; |