summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatthewsotoudeh <matthewsot@outlook.com>2014-08-29 22:10:16 -0700
committermatthewsotoudeh <matthewsot@outlook.com>2014-08-29 22:10:16 -0700
commit4e22d4046d4d024bada6feb34323b737a98e3bbb (patch)
tree721e0dd6d4c8ace9af64432c502cb4fcc615deb7
parent57e2343a9955e5497fd2f1a50cd2ca137a3b1ab4 (diff)
added more attributes
-rw-r--r--CocoaSharp/SharpSwift.Attributes/AmbiguousWrapping.cs21
-rw-r--r--CocoaSharp/SharpSwift.Attributes/Optional.cs12
-rw-r--r--CocoaSharp/SharpSwift.Attributes/SharpSwift.Attributes.csproj4
-rw-r--r--CocoaSharp/SharpSwift.Attributes/UIApplicationMainAttribute.cs14
-rw-r--r--CocoaSharp/SharpSwift.Attributes/Unwrapped.cs21
-rw-r--r--StubGen/StubGen/Scrapers/Finals/ClassFinal.cs15
-rw-r--r--StubGen/StubGen/Scrapers/Finals/MethodFinal.cs8
-rw-r--r--StubGen/StubGen/Scrapers/ScrapedMethod.cs3
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";
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback