I'm working on a DSL tool, and for this tool, there exists a custom code generation tool that creates output files. Currently, this tool is registered with C# using a RegistrationAttribute on the DslPackage with the following code:
class FileGenerationRegistrationAttribute : RegistrationAttribute
{
private const string CSharpGeneratorsGuid = "{fae04ec1-301f-11d3-bf4b-00c04f79efbc}";
private const string CSharpProjectGuid = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}";
public override void Register( RegistrationAttribute.RegistrationContext context )
{
// register custom generator
key = context.CreateKey( @"Generators\ " + CSharpGeneratorsGuid );
...
key.Close();
// register editor notification
key = context.CreateKey( @"Projects\ " + CSharpProjectGuid + @"\FileExtensions" );
...
key.Close();
}
}
This works, but the thing is, the code generated by the tool is going to be language neutral (through the use of CodeDOM). It doesn't require the project to be of the type C#. So my question is this: What GUIDs can I use instead of the demonstrated CSharpGeneratorsGuid
and CSharpProjectGuid
in order to let my tool be used in any kind of project? (Like VB, F#, IronPython, et. al.)