Author: ankit
Date: 2008-01-19 12:55:37 -0500 (Sat, 19 Jan 2008)
New Revision: 93321
Modified:
branches/monodevelop/main/1.0/src/addins/AspNetAddIn/ChangeLog
branches/monodevelop/main/1.0/src/addins/AspNetAddIn/Project/AspNetMSBuildProjectExtension.cs
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/CSharpMSBuildProjectExtension.cs
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/ChangeLog
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/DefaultMSBuildProjectExtension.cs
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildFileFormat.cs
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildProjectExtension.cs
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/SlnFileFormat.cs
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/Utils.cs
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/VBNetMSBuildProjectExtension.cs
Log:
In main/src/addins/AspNetAddIn:
* AspNetMSBuildProjectExtension.cs: Track changes in
MSBuildProjectExtension.
In main/src/addins/prj2make-sharp-lib:
* MSBuildProjectExtension.cs (IsLanguage): New.
(LanguageId): New.
* DefaultMSBuildProjectExtension.cs: Override the language properties.
* CSharpMSBuildProjectExtension.cs: Likewise.
* VBNetMSBuildProjectExtension.cs: Likewise.
* MSBuildFileFormat.cs (ProjectTypeGuids): Rename to ..
(LanguageTypeGuids): .. this. Fill this from the extensions.
* SlnFileFormat.cs: Remove hardcoded .csproj/.vbproj.
* Utils.cs (GetLanguage): Use the extensions for this.
Modified: branches/monodevelop/main/1.0/src/addins/AspNetAddIn/ChangeLog
===================================================================
--- branches/monodevelop/main/1.0/src/addins/AspNetAddIn/ChangeLog
2008-01-19 17:42:42 UTC (rev 93320)
+++ branches/monodevelop/main/1.0/src/addins/AspNetAddIn/ChangeLog
2008-01-19 17:55:37 UTC (rev 93321)
@@ -1,3 +1,7 @@
+2008-01-19 Ankit Jain <[EMAIL PROTECTED]>
+
+ * AspNetMSBuildProjectExtension.cs: Track changes in
MSBuildProjectExtension.
+
2008-01-15 Michael Hutchinson <[EMAIL PROTECTED]>
* Templates/WebService-CodeBehind.xft.xml,
Modified:
branches/monodevelop/main/1.0/src/addins/AspNetAddIn/Project/AspNetMSBuildProjectExtension.cs
===================================================================
---
branches/monodevelop/main/1.0/src/addins/AspNetAddIn/Project/AspNetMSBuildProjectExtension.cs
2008-01-19 17:42:42 UTC (rev 93320)
+++
branches/monodevelop/main/1.0/src/addins/AspNetAddIn/Project/AspNetMSBuildProjectExtension.cs
2008-01-19 17:55:37 UTC (rev 93321)
@@ -115,10 +115,10 @@
if (project.GetType () != typeof (AspNetAppProject))
return null;
- if (!MSBuildFileFormat.ProjectTypeGuids.ContainsKey
(project.LanguageName))
+ if (!MSBuildFileFormat.LanguageTypeGuids.ContainsKey
(project.LanguageName))
return null;
- return String.Format ("{0};{1}", myguid,
MSBuildFileFormat.ProjectTypeGuids [project.LanguageName]);
+ return String.Format ("{0};{1}", myguid,
MSBuildFileFormat.LanguageTypeGuids [project.LanguageName]);
}
}
Modified:
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/CSharpMSBuildProjectExtension.cs
===================================================================
---
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/CSharpMSBuildProjectExtension.cs
2008-01-19 17:42:42 UTC (rev 93320)
+++
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/CSharpMSBuildProjectExtension.cs
2008-01-19 17:55:37 UTC (rev 93321)
@@ -50,6 +50,14 @@
get { return "C#";}
}
+ public override bool IsLanguage {
+ get { return true; }
+ }
+
+ public override string LanguageId {
+ get { return "C#"; }
+ }
+
public override bool Supports (string type_guid, string
filename, string type_guids)
{
if (String.IsNullOrEmpty (type_guid)) {
Modified: branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/ChangeLog
===================================================================
--- branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/ChangeLog
2008-01-19 17:42:42 UTC (rev 93320)
+++ branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/ChangeLog
2008-01-19 17:55:37 UTC (rev 93321)
@@ -1,3 +1,15 @@
+2008-01-19 Ankit Jain <[EMAIL PROTECTED]>
+
+ * MSBuildProjectExtension.cs (IsLanguage): New.
+ (LanguageId): New.
+ * DefaultMSBuildProjectExtension.cs: Override the language properties.
+ * CSharpMSBuildProjectExtension.cs: Likewise.
+ * VBNetMSBuildProjectExtension.cs: Likewise.
+ * MSBuildFileFormat.cs (ProjectTypeGuids): Rename to ..
+ (LanguageTypeGuids): .. this. Fill this from the extensions.
+ * SlnFileFormat.cs: Remove hardcoded .csproj/.vbproj.
+ * Utils.cs (GetLanguage): Use the extensions for this.
+
2008-01-14 Ankit Jain <[EMAIL PROTECTED]>
* VS2003SlnFileFormat.cs: Handle being called in a non-gui mode.
Modified:
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/DefaultMSBuildProjectExtension.cs
===================================================================
---
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/DefaultMSBuildProjectExtension.cs
2008-01-19 17:42:42 UTC (rev 93320)
+++
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/DefaultMSBuildProjectExtension.cs
2008-01-19 17:55:37 UTC (rev 93321)
@@ -48,6 +48,14 @@
get { return "DefaultMSBuildProjectExtension"; }
}
+ public override bool IsLanguage {
+ get { return false; }
+ }
+
+ public override string LanguageId {
+ get { return null; }
+ }
+
public override bool Supports (string type_guid, string
filename, string type_guids)
{
//Should've been handled by now!
Modified:
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildFileFormat.cs
===================================================================
---
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildFileFormat.cs
2008-01-19 17:42:42 UTC (rev 93320)
+++
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildFileFormat.cs
2008-01-19 17:55:37 UTC (rev 93321)
@@ -188,7 +188,7 @@
string type_guid;
string type_guids = String.Empty;
string longest_guid = String.Empty;
- foreach (MSBuildProjectExtension extn in
GuidToExtensions) {
+ foreach (MSBuildProjectExtension extn in
Extensions) {
string g = extn.GetGuidChain (project);
if (g == null)
continue;
@@ -530,16 +530,16 @@
MSBuildProjectExtension GetExtensionChainFromTypeGuid (ref
string type_guids, out string type_guid, string lang, string fname)
{
if (String.IsNullOrEmpty (type_guids)) {
- if
(!MSBuildFileFormat.ProjectTypeGuids.ContainsKey (lang))
+ if
(!MSBuildFileFormat.LanguageTypeGuids.ContainsKey (lang))
throw new Exception (String.Format
("Unknown project type : {0}", fname));
- type_guids = type_guid =
MSBuildFileFormat.ProjectTypeGuids [lang];
+ type_guids = type_guid =
MSBuildFileFormat.LanguageTypeGuids [lang];
}
type_guid = type_guids.Split (';') [0];
string [] type_guid_list = type_guids.Split (new char
[] {';'}, StringSplitOptions.RemoveEmptyEntries);
MSBuildProjectExtension [] extensions = new
MSBuildProjectExtension [type_guid_list.Length + 1];
for (int i = 0; i < type_guid_list.Length; i ++) {
- foreach (MSBuildProjectExtension extn in
GuidToExtensions) {
+ foreach (MSBuildProjectExtension extn in
Extensions) {
if (extn.Supports (type_guid_list [i],
fname, type_guids)) {
extensions [i] = extn;
break;
@@ -835,23 +835,37 @@
return flavor_properties_element;
}
- static List<MSBuildProjectExtension> GuidToExtensions {
+ internal static List<MSBuildProjectExtension> Extensions {
get {
- if (extensions == null) {
- extensions = new
List<MSBuildProjectExtension> ();
- OnProjectExtensionsChanged (null, null);
- AddinManager.AddExtensionNodeHandler
("/MonoDevelop/Prj2Make/MSBuildProjectExtension", OnProjectExtensionsChanged);
- }
+ if (extensions == null)
+ InitExtensions ();
return extensions;
}
}
+ static void InitExtensions ()
+ {
+ if (extensions != null)
+ return;
+
+ extensions = new List<MSBuildProjectExtension> ();
+ OnProjectExtensionsChanged (null, null);
+ AddinManager.AddExtensionNodeHandler
("/MonoDevelop/Prj2Make/MSBuildProjectExtension", OnProjectExtensionsChanged);
+ }
+
static void OnProjectExtensionsChanged (object s,
ExtensionNodeEventArgs args)
{
extensions.Clear ();
+ if (languageTypeGuids == null)
+ languageTypeGuids = new
Dictionary<string,string> ();
+ else
+ LanguageTypeGuids.Clear ();
+
foreach (MSBuildProjectExtension extn in
AddinManager.GetExtensionObjects
("/MonoDevelop/Prj2Make/MSBuildProjectExtension", typeof
(MSBuildProjectExtension))) {
extensions.Add (extn);
+ if (extn.IsLanguage)
+ LanguageTypeGuids [extn.LanguageId] =
extn.TypeGuid;
}
extensions.Add (new DefaultMSBuildProjectExtension ());
}
@@ -883,21 +897,14 @@
return assemblyNamesTable;
}
-
}
- static Dictionary<string, string> projectTypeGuids = null;
- public static Dictionary<string, string> ProjectTypeGuids {
+ static Dictionary<string, string> languageTypeGuids = null;
+ public static Dictionary<string, string> LanguageTypeGuids {
get {
- if (projectTypeGuids == null) {
- projectTypeGuids = new
Dictionary<string, string> ();
- // values must be in UpperCase
- projectTypeGuids ["C#"] =
"{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}";
- projectTypeGuids ["VBNet"] =
"{F184B08F-C81C-45F6-A57F-5ABD9991F28F}";
- }
- return projectTypeGuids;
+ InitExtensions ();
+ return languageTypeGuids;
}
}
-
}
}
Modified:
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildProjectExtension.cs
===================================================================
---
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildProjectExtension.cs
2008-01-19 17:42:42 UTC (rev 93320)
+++
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/MSBuildProjectExtension.cs
2008-01-19 17:55:37 UTC (rev 93321)
@@ -47,6 +47,15 @@
get { return "MSBuildProjectExtension"; }
}
+ public virtual bool IsLanguage {
+ get { return false; }
+ }
+
+ // Must match the Id used by MonoDevelop for the language
+ public virtual string LanguageId {
+ get { return null; }
+ }
+
public virtual bool Supports (string guid, string filename,
string type_guids)
{
return Next.Supports (guid, filename, type_guids);
Modified:
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/SlnFileFormat.cs
===================================================================
---
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/SlnFileFormat.cs
2008-01-19 17:42:42 UTC (rev 93320)
+++
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/SlnFileFormat.cs
2008-01-19 17:55:37 UTC (rev 93321)
@@ -213,7 +213,7 @@
continue;
}
- if
(!MSBuildFileFormat.ProjectTypeGuids.ContainsKey (project.LanguageName)) {
+ if
(!MSBuildFileFormat.LanguageTypeGuids.ContainsKey (project.LanguageName)) {
// FIXME: Should not happen,
temp
monitor.ReportWarning
(GettextCatalog.GetString ("Saving for project {0} not supported. Ignoring.",
ce.FileName));
@@ -240,7 +240,7 @@
l = msbData.Extra;
writer.WriteLine (@"Project(""{0}"") =
""{1}"", ""{2}"", ""{3}""",
-
MSBuildFileFormat.ProjectTypeGuids [project.LanguageName],
+
MSBuildFileFormat.LanguageTypeGuids [project.LanguageName],
project.Name,
FileService.NormalizeRelativePath (FileService.AbsoluteToRelativePath (
baseDirectory,
project.FileName)).Replace ('/', '\\'),
@@ -487,8 +487,8 @@
continue;
}
- if
(!MSBuildFileFormat.ProjectTypeGuids.ContainsValue (projTypeGuid)) {
- LoggingService.LogDebug
(GettextCatalog.GetString (
+ if
(!MSBuildFileFormat.LanguageTypeGuids.ContainsValue (projTypeGuid)) {
+ LoggingService.LogWarning
(GettextCatalog.GetString (
"Unknown project type guid
'{0}' on line #{1}. Ignoring.",
projTypeGuid,
sec.Start + 1));
@@ -498,50 +498,49 @@
continue;
}
- if (!projectPath.StartsWith("http://") &&
- (projectPath.EndsWith (".csproj") ||
projectPath.EndsWith (".vbproj")))
- {
- DotNetProject project = null;
- string path = SlnMaker.MapPath
(Path.GetDirectoryName (fileName), projectPath);
- if (String.IsNullOrEmpty (path)) {
- monitor.ReportWarning
(GettextCatalog.GetString (
- "Invalid project path
found in {0} : {1}", fileName, projectPath));
- Console.WriteLine
(GettextCatalog.GetString (
- "Invalid project path
found in {0} : {1}", fileName, projectPath));
+ if (projectPath.StartsWith("http://")) {
+ monitor.ReportWarning
(GettextCatalog.GetString (
+ "{0}({1}): Projects with
non-local source (http://...) not supported. '{2}'.",
+ fileName, sec.Start + 1,
projectPath));
+ data.UnknownProjects.AddRange
(lines.GetRange (sec.Start, sec.Count));
+ continue;
+ }
+ DotNetProject project = null;
+ string path = SlnMaker.MapPath
(Path.GetDirectoryName (fileName), projectPath);
+ if (String.IsNullOrEmpty (path)) {
+ monitor.ReportWarning
(GettextCatalog.GetString (
+ "Invalid project path found in
{0} : {1}", fileName, projectPath));
+ LoggingService.LogWarning
(GettextCatalog.GetString (
+ "Invalid project path found in
{0} : {1}", fileName, projectPath));
+
+ continue;
+ }
+
+ projectPath = Path.GetFullPath (path);
+ try {
+ project =
Services.ProjectService.ReadCombineEntry (projectPath, monitor) as
DotNetProject;
+ if (project == null) {
+ LoggingService.LogError
("Internal Error: Didn't get the expected DotNetProject for {0} project.",
+ projectPath);
continue;
}
- projectPath = Path.GetFullPath (path);
- try {
- project =
Services.ProjectService.ReadCombineEntry (projectPath, monitor) as
DotNetProject;
- if (project == null) {
- Console.WriteLine
("Internal Error: Didn't get the expected DotNetProject for {0} project.",
- projectPath);
- continue;
- }
+ MSBuildData msdata =
Utils.GetMSBuildData (project);
+ entries [projectGuid] = project;
+ data.ProjectsByGuid [msdata.Guid] =
project;
- MSBuildData msdata =
Utils.GetMSBuildData (project);
- entries [projectGuid] = project;
- data.ProjectsByGuid
[msdata.Guid] = project;
+ msdata.Extra = lines.GetRange
(sec.Start + 1, sec.Count - 2);
+ } catch (Exception e) {
+ LoggingService.LogError
(GettextCatalog.GetString (
+ "Error while
trying to load the project {0}. Exception : {1}",
+ projectPath,
e.ToString ()));
+ monitor.ReportWarning
(GettextCatalog.GetString (
+ "Error while trying to load the
project {0}. Exception : {1}", projectPath, e.Message));
- msdata.Extra = lines.GetRange
(sec.Start + 1, sec.Count - 2);
- } catch (Exception e) {
- Console.WriteLine ("Error while
trying to load the project {0}", projectPath);
- Console.WriteLine (e);
- monitor.ReportWarning
(GettextCatalog.GetString (
- "Error while trying to
load the project {0}. Exception : {1}", projectPath, e.Message));
-
- if (project == null)
-
data.UnknownProjects.AddRange (lines.GetRange (sec.Start, sec.Count));
- }
- continue;
+ if (project == null)
+ data.UnknownProjects.AddRange
(lines.GetRange (sec.Start, sec.Count));
}
- //FIXME: Non .csproj/.vbproj projects not
supported (yet)
- monitor.ReportWarning (GettextCatalog.GetString
(
- "{0}({1}): Unsupported or unrecognized
project : '{2}'. See logs.", fileName, sec.Start + 1, projectPath));
-
- data.UnknownProjects.AddRange (lines.GetRange
(sec.Start, sec.Count));
}
monitor.EndTask ();
Modified: branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/Utils.cs
===================================================================
--- branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/Utils.cs
2008-01-19 17:42:42 UTC (rev 93320)
+++ branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/Utils.cs
2008-01-19 17:55:37 UTC (rev 93321)
@@ -294,11 +294,10 @@
public static string GetLanguage (string fileName)
{
- string extn = Path.GetExtension (fileName);
- if (String.Compare (extn, ".csproj", true) == 0)
- return "C#";
- if (String.Compare (extn, ".vbproj", true) == 0)
- return "VBNet";
+ foreach (MSBuildProjectExtension extn in
MSBuildFileFormat.Extensions) {
+ if (extn.IsLanguage && extn.Supports (null,
fileName, null))
+ return extn.LanguageId;
+ }
return null;
}
Modified:
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/VBNetMSBuildProjectExtension.cs
===================================================================
---
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/VBNetMSBuildProjectExtension.cs
2008-01-19 17:42:42 UTC (rev 93320)
+++
branches/monodevelop/main/1.0/src/addins/prj2make-sharp-lib/VBNetMSBuildProjectExtension.cs
2008-01-19 17:55:37 UTC (rev 93321)
@@ -51,6 +51,14 @@
get { return "VBNet";}
}
+ public override bool IsLanguage {
+ get { return true; }
+ }
+
+ public override string LanguageId {
+ get { return "VBNet"; }
+ }
+
public override bool Supports (string type_guid, string
filename, string type_guids)
{
if (String.IsNullOrEmpty (type_guid)) {
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches