Well I want to add support for the PAWN language to Visual Studio 2012.
But because of the lack of experience and lack of tutorials/add-ins which I can edit it's really a difficult task.
For now I only want to add the filetypes and compiler, no need for intellisense and for syntax highlighting the C syntax highlighter can be used.
I know there is the OOK Language implementation and Boo Language but those add-ins are for VS2010 and won't compile for VS2012.
How would I accomplish this?
Is there a language add-in (for VS2012) which I can edit/use as base/ use as example?
My last attempt resulted in a black window / unusable VS2012 IDE.
The official language extension sample for Visual Studio 2010 was the Iron Python Integration sample.
You can download it from here: IronPython Integration. There is a related documentation here: Visual Studio IronPython Integration Deep Dive
Unfortunately this sample was not updated for Visual Studio 2012 to my knowledge. However here are the steps to convert it to Visual Studio 2012.
IronPython.sln
, and accept all upgrade conversionsAnyCpu
to x86
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies
.IronPython.Project
project as the start up project, and update it's Debug parameters: the start action needs to start the C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe
(VS 2012 shell) external program instead of the C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
(VS 2010 shell) one that was set by default. Command line arguments should be set to /RootSuffix Exp
IronPython.targets
string in all .pyproj file and add the VS 2012 case, like this:before:
<PropertyGroup>
<!-- Set the IronPythonPath property by proving in different locations where Iron Python could be installed -->
<!-- Regular LocalAppData -->
<IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
<!-- Experimental LocalAppData -->
<IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
<!-- Integrated Shell -->
<IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0\IronPython.targets')">$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0</IronPythonPath>
</PropertyGroup>
after:
<PropertyGroup>
<!-- Set the IronPythonPath property by proving in different locations where Iron Python could be installed -->
<!-- Regular LocalAppData -->
<IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
<!-- Experimental LocalAppData -->
<IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
<!-- Regular LocalAppData VS10212 -->
<IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\11.0\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\11.0\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
<!-- Experimental LocalAppData VS2012-->
<IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\11.0Exp\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\11.0Exp\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
<!-- Integrated Shell -->
<IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0\IronPython.targets')">$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0</IronPythonPath>
</PropertyGroup>
That's it. Compile and run (both can take a while the first time due to registration mysteries).
Here is the result when starting a new Iron Python project from Visual Studio 2012:
and when building: