As for adding file types - you have to add Item Template for every type you wish to support. For instance, for text file you should add a vs template (as well as __TemplateIcon.ico and TextFile.txt file) like this:
<VSTemplate Version="2.0.0" Type="Item" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
<TemplateData>
<DefaultName>TextFile.txt</DefaultName>
<Name>Text File</Name>
<Description>An empty text file</Description>
<Icon>__TemplateIcon.ico</Icon>
<ProjectType>[string which is your project type from ProvideProjectFactory attribute]</ProjectType>
<SortOrder>50</SortOrder>
</TemplateData>
<TemplateContent>
<ProjectItem>TextFile.txt</ProjectItem>
</TemplateContent>
</VSTemplate>
In your custom ProjectNode class you create items and folders via these overridden methods: protected internal override FolderNode CreateFolderNode(string path, ProjectElement item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
return new CustomFolderNode(this, path, item);
}
public override FileNode CreateFileNode(ProjectElement item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
return new CustomFileNode(this, item);
}