我想在Visual Studio 2012中添加对the PAWN language的支持。
但由于缺乏经验和缺乏可编辑的教程/插件,这真的是一项艰巨的任务。
现在我只想添加文件类型和编译器,不需要智能感知,并且语法突出显示可以使用C语法高亮显示。
我知道有OOK语言实现和Boo语言,但这些加载项适用于VS2010,不会为VS2012编译。
我将如何做到这一点?
是否有语言加载项(对于VS2012)我可以编辑/使用作为基础/用作示例?
我的最后一次尝试导致黑色窗口/无法使用的VS2012 IDE。
答案 0 :(得分:18)
Visual Studio 2010的官方语言extension sample是Iron Python集成示例。
您可以从此处下载:IronPython Integration。这里有一个相关的文档:Visual Studio IronPython Integration Deep Dive
不幸的是,据我所知,此示例并未针对Visual Studio 2012进行更新。但是,以下是将其转换为Visual Studio 2012的步骤。
IronPython.sln
,并接受所有升级转化AnyCpu
更改为x86
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies
中的等效文件。IronPython.Project
项目定义为启动项目,并更新它的Debug参数:启动操作需要启动C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe
(VS 2012 shell)外部程序而不是C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
(VS 2010 shell)默认设置的一个。命令行参数应设置为/RootSuffix Exp
IronPython.targets
字符串并添加VS 2012案例,如下所示:之前:
<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>
后:
<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>
就是这样。编译和运行(由于注册神秘,两者都可能需要一段时间)。
以下是从Visual Studio 2012启动新的Iron Python项目时的结果:
并在建造时:
答案 1 :(得分:5)
使用C#和源代码来查看此CodeProject article Developing extension packages,该代码似乎已针对Visual Studio 2012以及旧版本的Visual Studio进行了更新。
以下是Microsoft on the subject of Creating an Add-in的文章。
这是第二个CodeProject article, part of a series Extending Visual Studio Part 2 Creating Addins。