Need help with creating tools set for Visual Studio

Jan 15 at 2:43 AM
Edited Jan 15 at 2:54 AM
Hello guys,

My team is looking to create a new project type template for Visual Studio. I looked online but everything is pointing towards creating a template that is under already existing programming language (i.e. C#)

We are looking for something similar to Python Tools for Visual Studio. Basically, you select New Project and choose our template and create a new project of that type.

Later on when you try to add a new item, it only shows items that we made to be compatible with our project type (i.e. no .cs files).

When you compile, it would use our compiler, we remove items from menu and tools that do not make sense for us, etc.

Is there a quick place to jump start into this? I tried to take a look into Python tools but it would take a lot of time to figure out which does what, I would really rather have another source that is either start from scratch or do something simple.

Thank you so much
Coordinator
Jan 15 at 3:04 AM
What you're trying to do - especially once it goes past "just templates" and starts involving compilers, building, syntax highlighting, code completion etc - is inherently not simple, unfortunately.

PTVS should provide you with a fairly decent starting point for a lot of this. We know that several third-party VS extensions have forked parts of it, or at least used them as sample code. It is not a substitute for MSDN documentation on VS extensibility, but the biggest problem with the latter is not knowing what to look for; looking at how it's done in the source and then looking up the corresponding interfaces and methods on MSDN is usually much easier. At the same time, for some topics, it may be easier to first read the MSDN overview & tutorials, and then look for the interfaces/methods that it mentions in PTVS code base to see a real-world implementation of the same.

For example, here is the MSDN doc page for project templates. This talks about .vstemplate files, and if you look them up in PTVS source code, you'll find this. And if you look for other .vstemplate files, you'll see how to hook up file templates so that they show up for your projects.

If you have any specific questions about parts of code responsible for certain features, feel free to ask for further directions.