问题标签 [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 投票
2 回答
88 浏览

visual-studio - 自定义 Visual Studio 语言服务导航栏中第一个条目的重复

我正在为我公司内部使用的自定义脚本语言实现 Visual Studio 语言服务,我遇到了作为TypeAndMemberDropdownBars的子类实现的导航栏的问题。该子类由我的 LanguageService 子类的LanguageService.CreateDropDownHelper方法创建。

OnSynchronizeDropdowns方法中,我遍历文件中定义的类型并将DropDownMembers添加到传入的数组以填充导航栏。我看到的问题是数组中的第一项被复制并通过我无权访问的代码放置在列表的末尾。这个额外的项目在选择时行为不正确(没有任何反应),但似乎不会导致任何其他问题;列表中的其余项目工作正常。此外,这似乎只发生在类型下拉框 - 成员下拉框不显示此行为。

我希望其他人已经看到并解决了这个问题,并可以提供一些帮助。谢谢!

0 投票
2 回答
187 浏览

languageservice - 语言服务:有没有办法强制解析?

我正在开发一种语言服务,并希望用户键入代码后的解析速度更快。

现在我依赖于 MSDN 上记录的ParseReason.CheckandOnIdle机制,但它通常在用户输入代码后很长时间才被调用。有时它有助于将光标移动到另一行以更快地触发它。

我想做的是在检测到用户输入文件后强制解析文件。我能够检测到用户何时键入,但我不知道如何使用ParseRequest.

0 投票
3 回答
182 浏览

visual-studio-2010 - 语言服务:迁移到 VS2010 后从未调用 ParseReason.Check

我刚刚将我的语言服务从 VS2008 迁移到 VS2010。一切正常,除了一件重要的事情:我不再被LanguageService.ParseSource调用 for ParseReason.Check。打开文件后,它确实会获得一次调用。但是在编辑代码后,它不再被调用。

有什么想法可能导致这种情况吗?

0 投票
2 回答
756 浏览

c# - Visual Studio 自定义语言服务

我正在尝试使用 MPF 在 VSPackage 中实现语言服务,但它并没有像我理解的那样工作。

我已经有几个实现,例如ParseSource使用ParseRequest. 但是,当它发现错误时,它会将其添加到AuthoringSink.AddError. 这方面的文档意味着它将它添加到我的错误列表中;它没有。

我也有一个简单MySource的类,一个Source. 我用一个重写的LanguageService.CreateSource方法返回这个新类。的文档OnCommand说它在“输入命令时”被触发。然而,事实并非如此。

显然有一些中间步骤我没有正确完成。我已经说得够多了,所以我很乐意应要求提供任何其他详细信息。

任何澄清都非常感谢。

0 投票
1 回答
265 浏览

visual-studio-2010 - 向 Visual Studio 2010 添加简单语言支持

我正在使用 Visual Studio 2010 开发一些 VBScript。对这种语言的本机支持不是很好,因此我希望能够利用语言服务/VS 扩展来改进对这些语言的支持。不过,目前我只想通过添加一些功能来简化我的生活:

  • 允许 VS 任务列表识别我的 'todo:评论
  • 允许像#region...#endregion这样的 c#功能可以轻松地将脚本分解为更易于阅读的块(为了符合 VBScript,我会在散列之前添加一个撇号以使其成为注释)。

有没有一种简单的方法可以通过 VS 中的配置来做到这一点,还是我必须创建一个完整的语言服务才能获得这个功能?我要问的可能是不可能的;但认为值得一试。

提前致谢。

0 投票
1 回答
755 浏览

typescript - 实现大量语言服务

阅读src\services代码后,似乎这是任何语言服务主机必须满足的接口:

我找不到任何文档或示例,虽然有些方法是不言自明的,但有些方法不是,特别是:

语言服务 API 是否可以使用?有人可以简要解释上述方法的目的吗?

0 投票
1 回答
2885 浏览

visual-studio - 在自定义 Visual Studio 语言服务中支持用户指定的文件扩展名

我正在开发自定义 Visual Studio 语言服务,并且对文件扩展名绑定到特定语言服务的方式有几个问题。

语言“示例语言”的源文件有两个主要文件扩展名:.e1.e2. 我的扩展有一个扩展ExampleLanguagePackagePackage

  1. 当您使用文件 → 打开命令并选择 C# 文件(例如)时,“打开”按钮有一个下拉箭头,可让您选择“打开方式...”。当您单击该按钮时,您会看到在“CSharp Editor(默认)”、“CSharp Editor with Encoding”或其他几个选项中打开文件的选项。如何为我的语言提供类似的功能,提供“示例语言(默认)”和“带编码的示例语言”选项?

  2. 当您打开工具 → 选项... → 文本编辑器 → 文件扩展名时,您可以将(例如).foo扩展名绑定到“Microsoft Visual C#”或其他几个选项中的任何一个。如何扩展此页面以允许用户定义的文件扩展名与“示例语言”相关联?

  3. 注册这些项目时我还应该注意什么?

0 投票
0 回答
95 浏览

c# - 如何在我的 Visual Studio 语言包中自动进行代码格式化?

我有一个正在开发的语言包,并且我已经在包中加入了一些代码格式。我知道如何通过进入 EDIT>ADVANCED>FORMAT DOCUMENT 来让它工作,但是文档说它可以在用户输入时自动发生。但是,它没有详细介绍我能看到的任何细节。

那么,如何让我的语言包在编写代码时实时进行格式化?

编辑:这是我到目前为止所引用的内容:http: //msdn.microsoft.com/en-us/library/bb164633.aspx

0 投票
1 回答
242 浏览

visual-studio-extensions - 在没有包的情况下使用 HTML 编辑器注册 HTML 派生的内容类型?

我正在尝试注册自定义内容类型,类似于MSDN 论坛上的这个问题:我想注册一个本质上是 HTML 文件的自定义扩展,例如:

因此,通过指定BaseDefinitionas html,我可以在.mycustom文件中突出显示 HTML,不幸的是,我什么也得不到,特别是 HTML 智能感知。从上面的链接看来,让 Visual Studio 将自定义扩展识别为特定编辑器类型的唯一方法,但我必须破解注册表(或者更具体地说,通过ProvideEditorExtension属性提供它,但它仅适用于 VSPackage )。

所以我的问题是,基本上,是否有另一种方法可以以编程方式向编辑器注册自定义扩展,但不为其创建自定义 VSPackage?当然,除了入侵注册表之外?

(我的方法可能完全错误,在这种情况下,非常感谢您的帮助!)

0 投票
1 回答
655 浏览

c# - 在 Visual Studio 2010 语言服务中实现查找引用

我正在为自定义脚本语言实现 Visual Studio 语言服务。我设法实现了语法高亮、错误检查、代码完成和“转到定义”。我无法弄清楚如何连接到“查找所有参考”菜单选项(或者甚至在此时显示它)。

谁能指出我在 Visual Studio 中为自定义语言实现“查找所有引用”功能的有用资源? 我试过谷歌搜索有关它的任何信息,但我似乎找不到任何东西。