Author: mkrueger
Date: 2008-02-06 22:06:21 -0500 (Wed, 06 Feb 2008)
New Revision: 95108
Added:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/AmbienceService.cs
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/OutputFlags.cs
Modified:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/ChangeLog
trunk/monodevelop/main/src/core/MonoDevelop.Ide/Makefile.am
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/Ambience.cs
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/NetAmbience.cs
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/ClassType.cs
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/DomType.cs
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/IType.cs
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/Modifiers.cs
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.mdp
Log:
* MonoDevelop.Ide.Dom.Output/OutputFlags.cs,
MonoDevelop.Ide.Dom.Output/Ambience.cs,
MonoDevelop.Ide.Dom.Output/AmbienceService.cs,
MonoDevelop.Ide.Dom.Output/NetAmbience.cs,
MonoDevelop.Ide.Dom/DomType.cs, MonoDevelop.Ide.Dom/ClassType.cs,
MonoDevelop.Ide.Dom/Modifiers.cs, MonoDevelop.Ide.Dom/IType.cs:
Worked on Dom output.
Modified: trunk/monodevelop/main/src/core/MonoDevelop.Ide/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/core/MonoDevelop.Ide/ChangeLog 2008-02-07
03:05:50 UTC (rev 95107)
+++ trunk/monodevelop/main/src/core/MonoDevelop.Ide/ChangeLog 2008-02-07
03:06:21 UTC (rev 95108)
@@ -1,3 +1,13 @@
+2008-02-07 Mike Krüger <[EMAIL PROTECTED]>
+
+ * MonoDevelop.Ide.Dom.Output/OutputFlags.cs,
+ MonoDevelop.Ide.Dom.Output/Ambience.cs,
+ MonoDevelop.Ide.Dom.Output/AmbienceService.cs,
+ MonoDevelop.Ide.Dom.Output/NetAmbience.cs,
+ MonoDevelop.Ide.Dom/DomType.cs, MonoDevelop.Ide.Dom/ClassType.cs,
+ MonoDevelop.Ide.Dom/Modifiers.cs, MonoDevelop.Ide.Dom/IType.cs: Worked
+ on Dom output.
+
2008-02-06 Mike Krüger <[EMAIL PROTECTED]>
* MonoDevelop.Ide.Gui.Pads/NodeState.cs,
Modified: trunk/monodevelop/main/src/core/MonoDevelop.Ide/Makefile.am
===================================================================
--- trunk/monodevelop/main/src/core/MonoDevelop.Ide/Makefile.am 2008-02-07
03:05:50 UTC (rev 95107)
+++ trunk/monodevelop/main/src/core/MonoDevelop.Ide/Makefile.am 2008-02-07
03:06:21 UTC (rev 95108)
@@ -97,7 +97,9 @@
MonoDevelop.Ide.Commands/ViewCommands.cs \
MonoDevelop.Ide.Commands/WindowCommands.cs \
MonoDevelop.Ide.Dom.Output/Ambience.cs \
+ MonoDevelop.Ide.Dom.Output/AmbienceService.cs \
MonoDevelop.Ide.Dom.Output/NetAmbience.cs \
+ MonoDevelop.Ide.Dom.Output/OutputFlags.cs \
MonoDevelop.Ide.Dom.Parser/AbstractParser.cs \
MonoDevelop.Ide.Dom.Parser/IParser.cs \
MonoDevelop.Ide.Dom.Parser/ProjectDom.cs \
Modified:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/ClassType.cs
===================================================================
---
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/ClassType.cs
2008-02-07 03:05:50 UTC (rev 95107)
+++
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/ClassType.cs
2008-02-07 03:06:21 UTC (rev 95108)
@@ -31,11 +31,11 @@
namespace MonoDevelop.Ide.Dom
{
public enum ClassType {
- Unknown,
- Class,
- Enum,
- Interface,
- Struct,
- Delegate
+ Unknown = 0,
+ Class = 1,
+ Enum = 2,
+ Interface = 3,
+ Struct = 4,
+ Delegate = 5
}
}
Modified:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/DomType.cs
===================================================================
---
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/DomType.cs
2008-02-07 03:05:50 UTC (rev 95107)
+++
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/DomType.cs
2008-02-07 03:06:21 UTC (rev 95108)
@@ -35,17 +35,19 @@
{
protected object sourceProject;
protected List<ICompilationUnit> compilationUnits = new
List<ICompilationUnit> ();
- protected IType baseType;
+ protected IReturnType baseType;
protected List<TypeParameter> typeParameters = new
List<TypeParameter> ();
protected List<IDomItem> members = new List<IDomItem> ();
+ protected List<IReturnType> implementedInterfaces = new
List<IReturnType> ();
protected ClassType classType = ClassType.Unknown;
+
public object SourceProject {
get {
return sourceProject;
}
}
-
+
public IEnumerable<ICompilationUnit> CompilationUnits {
get {
return compilationUnits;
@@ -58,19 +60,25 @@
}
}
- public IType BaseType {
+ public IReturnType BaseType {
get {
return baseType;
}
}
+ public IEnumerable<IReturnType> ImplementedInterfaces {
+ get {
+ return implementedInterfaces;
+ }
+ }
+
public IEnumerable<TypeParameter> TypeParameters {
get {
return typeParameters;
}
}
- public IEnumerable<IDomItem> Members {
+ public virtual IEnumerable<IDomItem> Members {
get {
return members;
}
Modified:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/IType.cs
===================================================================
---
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/IType.cs
2008-02-07 03:05:50 UTC (rev 95107)
+++
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/IType.cs
2008-02-07 03:06:21 UTC (rev 95108)
@@ -45,10 +45,14 @@
get;
}
- IType BaseType {
+ IReturnType BaseType {
get;
}
+ IEnumerable<IReturnType> ImplementedInterfaces {
+ get;
+ }
+
IEnumerable<TypeParameter> TypeParameters {
get;
}
Modified:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/Modifiers.cs
===================================================================
---
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/Modifiers.cs
2008-02-07 03:05:50 UTC (rev 95107)
+++
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom/Modifiers.cs
2008-02-07 03:06:21 UTC (rev 95108)
@@ -61,7 +61,7 @@
ProtectedAndInternal = Internal | Protected,
ProtectedOrInternal = 0x8000,
SpecialName = 0x20000,
-
Final = 0x40000,
+ Literal = 0x80000,
VisibilityMask = Private | Internal | Protected | Public,
}}
Modified:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/Ambience.cs
===================================================================
---
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/Ambience.cs
2008-02-07 03:05:50 UTC (rev 95107)
+++
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/Ambience.cs
2008-02-07 03:06:21 UTC (rev 95108)
@@ -33,7 +33,7 @@
namespace MonoDevelop.Ide.Dom.Output
{
- public class Ambience : IDomVisitor
+ public abstract class Ambience
{
string name;
protected Dictionary<Modifiers, string> modifiers = new
Dictionary<Modifiers, string> ();
@@ -81,76 +81,30 @@
}
return result.ToString ();
}
-
-
- public virtual object Visit
(MonoDevelop.Ide.Dom.ICompilationUnit unit, object data)
+ #region FlagShortcuts
+ protected static bool UseFullName (OutputFlags outputFlags)
{
- return "";
+ return (outputFlags & OutputFlags.UseFullName) ==
OutputFlags.UseFullName;
}
-
- public virtual object Visit (MonoDevelop.Ide.Dom.IAttribute
attr, object data)
+ protected static bool IncludeParameters (OutputFlags
outputFlags)
{
- return "";
-// StringBuilder arguments = new StringBuilder ();
-// arguments.Append ('(');
-// foreach (object o in attr.PositionalArguments) {
-// if (arguments.Length > 1)
-// arguments.Append (',');
-// arguments.Append (o.ToString ());
-// }
-// foreach (KeyValuePair<string, object> pair in
attr.PositionalArguments) {
-// if (arguments.Length > 1)
-// arguments.Append (',');
-// arguments.Append (pair.Key.ToString ());
-// arguments.Append ('=');
-// arguments.Append (pair.Value.ToString ());
-// }
-//
-// arguments.Append (')');
-// return StringParserService.Parse
(constructs[Attribute], new string[,] {
-// {"Type", Visit (attr.AttributeType,
data).ToString ()},
-// {"ArgumentList", arguments.ToString}
-// });
+ return (outputFlags & OutputFlags.IncludeParameters) ==
OutputFlags.IncludeParameters;
}
-
- public virtual object Visit (MonoDevelop.Ide.Dom.IType type,
object data)
+ protected static bool IncludeReturnType (OutputFlags
outputFlags)
{
- return "";
+ return (outputFlags & OutputFlags.IncludeReturnType) ==
OutputFlags.IncludeReturnType;
}
-
- public virtual object Visit (MonoDevelop.Ide.Dom.IField field,
object data)
+ protected static bool IncludeParameterName (OutputFlags
outputFlags)
{
- return "";
+ return (outputFlags & OutputFlags.IncludeParameterName)
== OutputFlags.IncludeParameterName;
}
-
- public virtual object Visit (MonoDevelop.Ide.Dom.IMethod
method, object data)
- {
- return "";
- }
-
- public virtual object Visit (MonoDevelop.Ide.Dom.IProperty
property, object data)
- {
- return "";
- }
-
- public virtual object Visit (MonoDevelop.Ide.Dom.IEvent e,
object data)
- {
- return "";
- }
-
- public virtual object Visit (MonoDevelop.Ide.Dom.IReturnType
type, object data)
- {
- return "";
- }
-
- public virtual object Visit (MonoDevelop.Ide.Dom.IParameter
parameter, object data)
- {
- return "";
- }
-
- public virtual object Visit (MonoDevelop.Ide.Dom.IUsing u,
object data)
- {
- return "";
- }
+ #endregion
+
+ public abstract string GetString (IField field, OutputFlags
flags);
+ public abstract string GetString (IProperty property,
OutputFlags flags);
+ public abstract string GetString (IReturnType returnType,
OutputFlags flags);
+ public abstract string GetString (IMethod method, OutputFlags
flags);
+ public abstract string GetString (IParameter parameter,
OutputFlags flags);
+
}
}
Added:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/AmbienceService.cs
===================================================================
---
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/AmbienceService.cs
2008-02-07 03:05:50 UTC (rev 95107)
+++
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/AmbienceService.cs
2008-02-07 03:06:21 UTC (rev 95108)
@@ -0,0 +1,41 @@
+//
+// AmbienceService.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace MonoDevelop.Ide.Dom.Output
+{
+ public static class AmbienceService
+ {
+ public static Ambience Default {
+ get {
+ return new NetAmbience ();
+ }
+ }
+ }
+}
Modified:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/NetAmbience.cs
===================================================================
---
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/NetAmbience.cs
2008-02-07 03:05:50 UTC (rev 95107)
+++
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/NetAmbience.cs
2008-02-07 03:06:21 UTC (rev 95108)
@@ -27,11 +27,13 @@
//
using System;
+using System.Text;
namespace MonoDevelop.Ide.Dom.Output
{
public class NetAmbience : Ambience
{
+ const string nullString = "Null";
public NetAmbience () : base ("NET")
{
classTypes[ClassType.Class] = "Class";
@@ -68,5 +70,100 @@
modifiers[Modifiers.ProtectedAndInternal] = "Protected
Internal";
modifiers[Modifiers.ProtectedOrInternal] = "Internal
Protected";
}
+
+ public override string GetString (IProperty property,
OutputFlags flags)
+ {
+ if (property == null)
+ return nullString;
+ StringBuilder result = new StringBuilder ();
+ if (UseFullName (flags)) {
+ result.Append (property.FullName);
+ } else {
+ result.Append (property.Name);
+ }
+ if (IncludeReturnType (flags)) {
+ result.Append (" : ");
+ result.Append (GetString (property.ReturnType,
flags));
+ }
+ return result.ToString ();
+ }
+
+ public override string GetString (IField field, OutputFlags
flags)
+ {
+ if (field == null)
+ return nullString;
+ StringBuilder result = new StringBuilder ();
+ if (UseFullName (flags)) {
+ result.Append (field.FullName);
+ } else {
+ result.Append (field.Name);
+ }
+ if (IncludeReturnType (flags)) {
+ result.Append (" : ");
+ result.Append (GetString (field.ReturnType,
flags));
+ }
+ return result.ToString ();
+ }
+
+ public override string GetString (IReturnType returnType,
OutputFlags flags)
+ {
+ if (returnType == null)
+ return nullString;
+ StringBuilder result = new StringBuilder ();
+ if (UseFullName (flags)) {
+ result.Append (returnType.FullName);
+ } else {
+ result.Append (returnType.Name);
+ }
+ return result.ToString ();
+ }
+
+ public override string GetString (IMethod method, OutputFlags
flags)
+ {
+ if (method == null)
+ return nullString;
+ StringBuilder result = new StringBuilder ();
+ if (UseFullName (flags)) {
+ result.Append (method.FullName);
+ } else {
+ result.Append (method.Name);
+ }
+
+ if (IncludeParameters (flags)) {
+ result.Append ("(");
+ bool first = true;
+ foreach (IParameter parameter in
method.Parameters) {
+ if (!first)
+ result.Append (", ");
+ result.Append (GetString (parameter,
flags));
+ first = false;
+ }
+ result.Append (")");
+ }
+
+ if (IncludeReturnType (flags)) {
+ result.Append (" : ");
+ result.Append (GetString (method.ReturnType,
flags));
+ }
+
+ return result.ToString ();
+ }
+
+ public override string GetString (IParameter parameter,
OutputFlags flags)
+ {
+ if (parameter == null)
+ return nullString;
+ StringBuilder result = new StringBuilder ();
+ if (IncludeParameterName (flags)) {
+ result.Append (parameter.Name);
+ if (IncludeReturnType (flags)) {
+ result.Append (" : ");
+ result.Append (GetString
(parameter.ReturnType, flags));
+ }
+ } else {
+ result.Append (GetString (parameter.ReturnType,
flags));
+ }
+ return result.ToString ();
+ }
}
}
Added:
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/OutputFlags.cs
===================================================================
---
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/OutputFlags.cs
2008-02-07 03:05:50 UTC (rev 95107)
+++
trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Dom.Output/OutputFlags.cs
2008-02-07 03:06:21 UTC (rev 95108)
@@ -0,0 +1,45 @@
+//
+// OutputFlags.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2008 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+namespace MonoDevelop.Ide.Dom.Output
+{
+ [Flags]
+ public enum OutputFlags {
+ None = 0,
+
+ // Flags
+ UseFullName = 0x1,
+ IncludeReturnType = 0x2,
+ IncludeParameters = 0x4,
+ IncludeParameterName = 0x8,
+
+ ClassBrowserEntries = IncludeReturnType | IncludeParameters
+ }
+}
Modified: trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.mdp
===================================================================
--- trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.mdp
2008-02-07 03:05:50 UTC (rev 95107)
+++ trunk/monodevelop/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.mdp
2008-02-07 03:06:21 UTC (rev 95108)
@@ -377,6 +377,8 @@
<File name="MonoDevelop.Ide.Dom/TypeParameter.cs" subtype="Code"
buildaction="Compile" />
<File name="MonoDevelop.Ide.Gui.Content/IFoldable.cs" subtype="Code"
buildaction="Compile" />
<File name="MonoDevelop.Ide.Gui/MonoDevelopTreeView.cs" subtype="Code"
buildaction="Compile" />
+ <File name="MonoDevelop.Ide.Dom.Output/OutputFlags.cs" subtype="Code"
buildaction="Compile" />
+ <File name="MonoDevelop.Ide.Dom.Output/AmbienceService.cs" subtype="Code"
buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="False" refto="System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches