问题标签 [languageservice]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
310 浏览

.net - Visual Studio 2008 和覆盖现有文件扩展名的语言服务

我为 JavaScript 语言编写了简单的 LanguageService。目标 IDE 是 Visual Studio 2008。我想为 .js 扩展文件(JavaScript 语言的默认扩展名)运行我的 LanguageService。但是对于这个扩展,我的 LanguageService 不起作用。当我为扩展 .jsp 运行我的 LanguageService 时(可能是 VS IDE 不支持的任何扩展) - LanguageService 运行良好。

我的问题:如何覆盖 JavaScript 语言的现有 LanguageService?如何禁用 JS 的默认 LanguageService?

真挚地,

米哈伊洛

0 投票
2 回答
2805 浏览

visual-studio-2010 - Visual Studio 2010 可扩展性、MPF 和语言服务

我正在尝试扩展 Visual Studio 2010 RC 以便能够使用自定义编程语言。

我尝试做的前两件事是语法高亮/智能感知功能(很容易做到,这要归功于 PDC09 中的“Ok!”示例)和创建新项目模板的可能性(即能够打开 *.myproj 文件) .

对于第二个任务,我找不到任何简单的教程或示例。大多数示例适用于 Visual Studio 2008(如 IronPython 集成)甚至 VS2003。可用于 VS2010 的少数示例无法工作(包括 MPFProj)或无法编译,并且难以理解。

是否有任何易于理解的示例(使用 MPFProj 或独立解决方案)展示如何在 Visual Studio 2010 中集成自定义语言的模板?

0 投票
1 回答
814 浏览

c# - 如何创建使用语言服务的 VS2010 扩展

使用 Vs2010 创建扩展变得更加容易,但似乎并非所有事情都如此......

我的目标:我想对 STATIC 类 ITALIC 进行方法调用和属性使用。(就像 Eclipse 和 Java)

我想我需要与 C# 语言服务讨论此信息,但搜索“语言服务”只会产生关于如何创建一个的结果,而不是如何使用现有的一个......

为了让这个问题更笼统一点:如何获取有关代码属性(静态/可见性等)的信息,以便在 VSX 中使用它?

0 投票
1 回答
802 浏览

c# - 集成语言服务 (MPF) 和编辑器扩展 (MEF)

有没有人在 Visual Studio 2010 中将语言服务 (MPF) 与编辑器扩展 (MEF) 集成的正确方法。

在哪里实现成员补全、语法高亮、快速信息等?

有什么可用的例子吗?

谢谢!

0 投票
2 回答
1269 浏览

visual-studio - 安装自定义 Visual Studio 语言服务

我按照非常有用的文章编写您的第一个 Visual Studio 语言服务的指导,为我的软件工作室的内部脚本语言编写了一个新的 Visual Studio 语言服务。我的语法运行良好,一些简单的 goto 案例启动并运行,以及文本着色。我已经在 Irony GrammarExplorer 和 Visual Studio Experimental Hive 中完成了我的测试,我觉得我已经准备好在 Visual Studio 中正常使用它,并将它部署给其他一些程序员进行一些早期测试和反馈。

问题是我不知道如何安装语言服务。我有一个在 Experimental Hive 中工作的漂亮的小 DLL,但不知道如何在我启动 Visual Studio 时运行它。我浏览了整个互联网,发现我所看到的任何地方都掩盖了特定的步骤。也许我只是个盲人,或者它比我想象的要容易得多,但如果有人能给我详细说明如何安装我的语言服务的步骤,我将不胜感激。

提前致谢!

0 投票
7 回答
26333 浏览

c# - 如何创建在 Visual Studio 中使用的新语言

我想编写一种新的模板语言,并且我希望 Visual Studio 能够“支持”它。我需要知道的是:

  1. 如何解析我的新语言?
    给定我的新模板语言中的一些代码,我如何将其翻译成 HTML?现在我正在使用正则表达式逐个令牌解析它,但我认为随着语言变得更加复杂,这不会很好地扩展,并且没有错误检查。我听说过 ANTLR,但从未使用过。这将是这项工作的正确工具,还是可能有更简单的工具?理想情况下,我想将任何语法错误发送到错误窗口,其中包含尽可能多的信息(行号、错误类型),就像其他语言一样。
  2. 如何为 Visual Studio 创建新的文件类型?
  3. 如何获得语法突出显示?
    我可以使用在步骤 1 中创建的相同解析器,还是完全不同?
  4. 如何获得智能感知?

我更喜欢用 C# 编写我的解析器。

0 投票
1 回答
412 浏览

visual-studio - 从文件路径获取 IVsTextLines

我为我工作室的专有脚本语言编写了 Visual Studio 2008 的基本 LanguageService 扩展。它工作得非常好,我已经实现了一个基本的符号表来跟踪脚本定义和允许 goto 定义功能的调用。

我遇到的问题是我只知道如何解析当前的活动视图,我想扫描整个解决方案的内容,以便用户可以转到他们尚未定义的文件中定义的脚本的定义打开并解析。我已经弄清楚如何生成解决方案中所有文件的列表,但现在我需要创建一个新的 Microsoft.VisualStudio.Package。需要 Microsoft.VisualStudio.TextManager.Interop 的源。IVsTextLines,我不知道如何根据我拥有的文件创建一个新文件。

也许我以错误的方式解决问题,有人可以为我指出一种更好的方法来使 LanguageService 解析文件。

问候,科林

0 投票
1 回答
1124 浏览

c# - 使用托管包框架实现语言服务

我已按照演练 ( http://msdn.microsoft.com/en-us/library/bb166360.aspx ) 中列出的步骤来实施和注册 LanguageService,但我根本无法让它工作。

我的包正确加载,我可以添加功能菜单项和选项页面,但我无法打开注册到我的服务的文件。当我附加一个调试器时,我可以看到我的 VSPackage 正在构建、加载,并且它的 FDoIdle 方法被调用了两次。在那之后,实验性的 Visual Studio 会话陷入困境,似乎陷入了无限循环。如果我尝试将 .txt 文件保存为我的文件类型,则该文件会正确保存,但不会在 Visual Studio 中加载,并且会出现 Object null 异常。

我可以看到这个问题中提到的我的问题:Visual Studio 2010 colourizers, intellisense and the rest。从哪儿开始!

解决方案似乎是不使用托管包框架,而是使用管理可扩展性框架。这很好,但我真的很想知道我的 MPF LanguageService 实现有什么问题。

有没有人使用 MPF 成功创建了 LanguageService?谁能指导我一个工作示例或演练?

问题解决了!:

我做了一些进一步的调试,并注意到实验性的 Visual Studio 实例反复调用以下内容时卡住了:

Microsoft.VisualStudio.Editor.Implementation.VsFontsAndColorsInformation.TryGetIndexForNativeItem(字符串名称,IVsColorTable colorTable,Int32& colorTableIndex)

凭直觉,我在 ProvideLanguageServiceAttribute 中将 RequestStockColors 参数指定为 true,现在我可以打开我的文件类型。我的简单扫描仪甚至可以使用语法着色!

0 投票
1 回答
945 浏览

visual-studio - 在vsx中不打开文档如何判断ProjectItem语言类型?

在 Visual Studio 编辑器中打开文件时,通过EnvDTE.Document.Language属性返回字符串结果,例如“CSharp”、“C/C++”、“HTML”、“JScript”等,指定语言一份文件。我希望能够在文件未打开时(即从 ProjectItem 上下文)访问相同的语言信息。

EnvDTE.ProjectItem.FileCodeModel.Language似乎很有希望,但只给了我一个 CSharp 文件的结果。没有可用于 HTML、XAML 等的信息。

我可以根据文件扩展名做出假设,但是能够检索由 Visual Studio 解释的语言(可能是通过语言服务)会更加健壮。信息似乎是可用的,因为它存储在文档中,但我无法找到正确的 API 来访问它。

任何帮助或建议将不胜感激。:)

0 投票
2 回答
230 浏览

visual-studio-2008 - Visual Studio 2008:为什么我的语言服务插件不起作用?(“抱歉,解析无法恢复”)

我正在尝试在 Visual Studio 2008 SP1 中创建自己的语言服务,但是当我运行程序(启动 Visual Studio Experimental Hive)并尝试打开源文件时,出现以下错误:

包“Microsoft VisualStudio CodeTools PropertyPage Package”未能正确加载(GUID = {072DD0C6-AE1E-4ED6-A0BF-B99D5B68D29E})。

任何想法如何解决它?(我已经尝试卸载并重新安装VS,它没有工作。:()


更新

事实证明,这是由于 Spec# 的卸载不当造成的。我清理了它,但现在的问题是我的语言服务实际上并没有突出任何东西......我认为这是原因,但看到我仍然得到错误以及它是如何无关紧要的,我不知道问题是什么。

我正在使用带有默认标记的默认词法分析器/解析器文件,所以我想我的文件类型会有某种突出显示,但没有......任何想法?