是否有Visual Studio 2012/VS11的自定义语言加载项?

4 c# vb.net visual-studio-addins visual-c++ visual-studio-2012

好吧,我想在Visual Studio 2012中添加对PAWN语言的支持.

但由于缺乏经验和缺乏教程/插件,我可以编辑它真的是一项艰巨的任务.

现在我只想添加文件类型和编译器,不需要intellisense,并且语法突出显示可以使用C语法高亮显示器.

我知道有OOK语言实现和Boo语言,但这些加载项适用于VS2010,不会为VS2012编译.

我怎么做到这一点?

是否有语言加载项(对于VS2012)我可以编辑/使用作为基础/用作示例?

我的最后一次尝试导致黑色窗口/无法使用的VS2012 IDE.

Sim*_*ier 18

Visual Studio 2010 的官方语言扩展示例Iron Python Integration示例.

您可以从这里下载:IronPython集成.这里有一个相关的文档:Visual Studio IronPython Integration Deep Dive

不幸的是,据我所知,此示例未针对Visual Studio 2012进行更新.但是,以下是将其转换为Visual Studio 2012的步骤.

  1. 从此处安装Visual Studio 2012 SDK:Microsoft Visual Studio 2012 SDK
  2. 下载Iron Python集成示例,在磁盘上的某处提取
  3. 打开IronPython.sln,并接受所有升级转换
  4. 将项目的平台目标从更改AnyCpux86
  5. 某些项目对Visual Studio 11程序集(针对.NET 4.5构建)的引用不正确(自动提示),因此它们不会按原样编译.将它们更改回Visual Studio 10程序集.例如,IronPython.Console项目中的Microsoft.VisualStudio.ExtensibilityHosting.dll需要指向等效文件C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies.
  6. 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
  7. 更新所有基本模板以使用VS 2012目录而不是仅使用VS 2010目录:IronPython.targets在所有.pyproj文件中搜索字符串并添加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>
Run Code Online (Sandbox Code Playgroud)

后:

  <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>
Run Code Online (Sandbox Code Playgroud)

而已.编译和运行(由于注册神秘,两者都可能需要一段时间).

以下是从Visual Studio 2012启动新的Iron Python项目时的结果: 在此输入图像描述

并在建设时: 在此输入图像描述


Ric*_*ers 5

看看这个CodeProject文章使用C#开发扩展包和看起来已经为Visual Studio 2012以及旧版Visual Studio更新的源.

以下是Microsoft关于创建外接程序主题的文章.

这是第二篇CodeProject文章,它是"扩展Visual Studio第2部分创建插件"系列的一部分.