Beispiel #1
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Help();
                return;
            }
            var assemblyFile = args[0];

            var exefile = Assembly.GetEntryAssembly().Location;
            var exedir  = Path.GetDirectoryName(exefile);

            Directory.SetCurrentDirectory(exedir);
            assemblyFile = Path.GetFullPath(assemblyFile);
            var targetAssembly = Assembly.LoadFile(assemblyFile);
            var w       = new TypescriptDefinitionWriter();
            var outdir  = Path.Combine(exedir, "output");
            var outdata = w.MakeDefineFile(new[] { targetAssembly }, outdir + Path.DirectorySeparatorChar);
            var outfile = Path.Combine(outdir, Path.ChangeExtension(Path.GetFileName(assemblyFile), "d.ts"));

            Directory.CreateDirectory(outdir);
            Console.WriteLine(string.Format("Output file: {0}", outfile));
            var sb   = new StringBuilder();
            var keys = outdata.Keys.ToList();

            keys.Sort();
            foreach (var k in keys)
            {
                var val = outdata[k];
                sb.AppendLine("// " + Path.GetFileName(k));
                sb.AppendLine(val);
            }
            File.WriteAllText(outfile, sb.ToString());
            Console.WriteLine(string.Format("Finish output {0} types", outdata.Keys.Count));
        }
Beispiel #2
0
    void Extract(Assembly[] ass)
    {
        var f = EditorUtility.SaveFilePanel("Write to", "./", "UnityEngine.d.ts", "d.ts");

        if (string.IsNullOrEmpty(f))
        {
            return;
        }
        var tw   = new TypescriptDefinitionWriter.TypescriptDefinitionWriter();
        var defs = tw.MakeDefineFile(ass);
        var txt  = new System.Text.StringBuilder();

        txt.AppendLine("/*");
        txt.AppendLine(" Unity Version(" + Application.unityVersion + ")");
        txt.AppendLine("");
        txt.AppendLine(" Assemblies");
        foreach (var a in ass.OrderBy(e => e.FullName))
        {
            txt.AppendLine("   " + a.FullName);
        }
        txt.AppendLine(" */");
        txt.AppendLine("");
        foreach (var kv in defs)
        {
            txt.Append(kv.Value);
        }
        System.IO.File.WriteAllText(f, txt.ToString());
    }