Use correct version of xbuild 4.0 targets
[mono.git] / mcs / tools / monop / TODO
index 8adbf660a79c5c35762440fc405c21d6e1cb64df..f80cf256164a88eaa864fbb964f77114630af9a6 100644 (file)
@@ -1,12 +1,74 @@
-TODO
-----
-
-       * Add options like /show-private. For example, if you view System.String
-         you should only see public methods etc unless you specify /private. Similar
-         thing for other scope things.
-       * Add support for events
-       * Support for params (show the params keyword)
-       * Handle interfaces:
-               * handle explicit vs. implicit impl
-       * Fields
-       * Do delegates
\ No newline at end of file
+* Handle explicit vs implicit interfaces
+
+Partially done. Needs alot of testing. Some of the more exotic stuff
+that C# can do is not handled. eg.
+
+interface IFoo {
+       void Blah ();
+}
+
+class A {
+       void Blah ();
+}
+
+class B : A, IFoo {
+}
+
+C# makes a stub in B that calls A.Blah in order to implement IFoo.Blah
+
+* Handle printing out constants
+** String/char consts
+Mostly done. The only work we need is to escape stuff:
+
+       class X {
+               const string Z = "\t";
+       }
+
+** Numerical constants
+Integers generally work. Need to check things like decimal.
+
+** Enumeration constants
+Needs alot of work. We should print out
+
+       const MyEnum x = MyEnum.Y
+
+       const MyFlags z = MyFlags.X | MyFlags.Y
+
+etc.
+
+* Enumerations
+Need to print out the values. This should idealy be done in the most
+sane way possible:
+     * In the case where values are not needed (eg, sequential from
+     1...n), don't print out the enumeration values.
+     * For flags enums, values of members that are 2^n would be
+     printed as (1 << n). Values that are combinations of other values
+     would be printed as MyFlags.X | MyFlags.Y
+
+The goals here are (in order)
+    * To print something that will compiler correctly (with the same
+    values as the origional)
+    * To print something that is as clean/humanly readable/looks like
+    it was written by a person as possible.
+
+* Generics
+** Console Parsing
+It is a PITA to type:
+
+monop2 'System.Collections.Generic.List`1'
+
+We should allow people to type System.Collections.Generic.List and
+have it guess the arity. For something like Nullable where it is
+overloaded by arity, we'd have to print a message.
+
+* Console Coloring
+It'd be cool to have syntax highlighting for the console. Some
+examples of this are:
+
+        * colorgcc
+        * ls --color=auto
+
+* Attributes
+.NET 2.0 has support for getting the data that custom attributes
+have. This would allow us to correctly print stuff out. Probably want
+this to be a command line option.