- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在 Visual Studio 中开发一种语言服务,到目前为止,我已经能够为高亮显示和跨度实现基本的标记器:
但是,我想更进一步,在“文本编辑器”下添加我自己的部分,以便我可以维护选项卡设置,以及语言的类似设置(如下所示):
我发现很难在线找到有关 Visual Studio 可扩展性的资源,因为您可以做很多事情,但通常很难知道从哪里开始。我也对自定义项目/项目服务感兴趣,但在查找示例时遇到类似问题。
我可能已经很接近了(由于自定义标记器),我只是不知道用什么来装饰导出的类型,或者我有很多基础工作要做。方向表示赞赏。
最佳答案
我找到了这个 blog post它有很多 Visual Studio 扩展项目示例。其中有一个项目叫Options Page – VS 2013。我想这就是您要找的:
对于您的具体情况,您应该调整类中的以下属性(取自示例)OptionsPagePackage.cs
。特别是这些属性:
将“类别”作为第二个传递参数(对应于“工具”菜单中的主要类别)。
[ProvideOptionPageAttribute(typeof(OptionsPageGeneral),"Text Editor","General", 100, 101, true, new string[] { "Change sample general options (C#)" })]
[ProvideProfileAttribute(typeof(OptionsPageGeneral), "Text Editor", "General Options", 100, 101, true, DescriptionResourceID = 100)]
[ProvideOptionPageAttribute(typeof(OptionsPageCustom), "Text Editor", "Custom", 100, 102, true, new string[] { "Change sample custom options (C#)" })]
[InstalledProductRegistration("Text Editor", "My Options Page (C#) Sample", "1.0")]
[Guid(GuidStrings.GuidPackage)]
public class OptionsPagePackageCS : Package
{
.....
}
DescriptionResourceID(100,101,102 等)在 xml 文件 VsPackage.resx
中定义,vsix 安装程序将使用它在工具菜单中插入标签:
<data name="100" xml:space="preserve">
<value>My Managed Options (C#)</value>
<comment>Options category</comment>
</data>
<data name="101" xml:space="preserve">
<value>My Options</value>
<comment>General page</comment>
</data>
<data name="102" xml:space="preserve">
<value>Custom</value>
<comment>Custom page</comment>
</data>
这是我的尝试:
请小心,因为使用现有类别会覆盖现有类别。正如您在图片中看到的,没有所有其他语言的选项。
编辑:
正如 Alexander 指出的那样,为了避免覆盖现有配置(如果想将他的类别添加到“工具”菜单中的现有类别),必须将反斜杠添加到所提到的属性中的类别参数多于。例如:
[ProvideOptionPageAttribute(typeof(OptionsPageGeneral),"Text Editor","General", 100, 101, true, new string[] { "Change sample general options (C#)" })]
变成:
[ProvideOptionPageAttribute(typeof(OptionsPageGeneral),"Text Editor\\MyOptionPage","General", 100, 101, true, new string[] { "Change sample general options (C#)" })]
在这种情况下,MyOptionPage 将成为文本编辑器的子项,并且不会覆盖现有配置。
希望对您有所帮助。
关于c# - Visual Studio 可扩展性 - 自定义语言文本编辑器设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29045671/
我最近的任务是估计 IIS 可以处理的并发用户数。不幸的是,我对 IIS 的经验为 0,所以我希望有人能指导我去哪里寻找。我希望在这个阶段我不必做我自己的基准测试。 我想知道它可以处理的并发连接数是多
我们正在考虑建立一个具有约 8000 个客户端和每个客户端一个队列的 MSMQ 系统。平均而言,系统每天需要处理来自每个客户端的约 2000 条消息,其中消息大小范围从 1K 到 MSMQ 最大大小
我们即将从一个内容丰富的网站开始,我们正在考虑使用 Dotnetnuke。 与联合国网站(http://www.un.org/en/index.shtml)相比,该网站将是多语言的 问题是:DotNe
我正在寻找有关 DB4O 对象数据库的信息。我知道它有客户端/服务器模式,但我不知道它的可扩展性如何。我非常喜欢对象数据库的想法,但仍然找不到合适的 OODB 用于我的任何项目。所以我的问题是: 我想
我目前使用 Sphinx Search 来优化我们的搜索页面。 该网站越来越受欢迎,这给 Sphinx 带来了更多负载。虽然此时没有什么可担心的,但我想知道 Sphinx 是如何扩展的。我在他们的网站
我对具有 OpenEJB 水平可扩展性配置的 Tomcat 感兴趣,以及它将如何管理分布式无状态 ejb:在每次调用时,是否可以从另一个 tomcat 服务器分配一个实例,例如在应用程序服务器中 -
SQLite 可以替代高流量网站中的 mysql 吗?谢谢 最佳答案 SQLite usually will work great as the database engine for low to
我想开发一个 iOS 应用程序,您可以在其中找到附近的人并与他们聊天。但是,我不知道 firebase 如何处理大量数据。 例子:所以,如果应用程序有 10 万用户。而且他们中的很多人总是在聊天,搜索
我正在尝试在我的新项目中使用 CQRS 和 EventSorcing。我正在遵循 Greg Young 几年前建议的方式(Mark Nijhof 实现 - http://cre8ivethought.
我有一个即将开展的项目,将与 70,000 多个用户(教育)打交道。我想知道 ASP.NET SqlMembership Provider 是否已经以如此大的容量使用过?假设硬件在那里,是否需要做一些
我们有非常简单的 Spark Streaming 作业(用 Java 实现),它是: 通过 DirectStream 从 Kafka 读取 JSON(关闭 Kafka 消息的确认) 将 JSON 解析
我正在使用tensorflow来训练DNN,我的网络结构非常简单,当只有一个参数服务器和一个worker时,每个minibatch大约需要50ms。为了处理巨大的样本,我使用分布式ASGD训练,但是,
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我正在使用 Crawler4j 爬虫来爬取一些域。现在我想提高爬虫的效率,我希望我的爬虫使用我的全部带宽并在给定时间段内爬取尽可能多的 url。为此我采用以下设置:- 我增加了编号。爬虫线程数到 10
我一直在寻找在 NUnit 中获取错误消息的方法。到目前为止,我找到了一些使用 IAddin 和 EventListener 来获取消息的类,但是没有用。我将此代码基于以下链接: About exte
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我已经使用 Poco 为 Linux 编写了一个代理服务器,但此后一直在阅读实现 TCP/IP 服务器可伸缩性的各种方法。我将需要服务器处理持久连接(不是 HTTP 流量),上限为大约 250 个同时
我正在尝试为自定义审计要求编写一个 SSMS 插件(需要审计用户在生产环境中运行的所有查询)。我有位于适当文件夹中的 .addin 文件,它在我的 Connect.Exec 方法中命中断点,我能够从事
我正在用 spark 处理数据,它可以处理一天的数据(40G),但失败了 OOM 一周的数据: import pyspark import datetime import operator sc =
当我将无服务器框架代码库部署到 AWS 时,我很好奇哪种方法会更好。 目前,有两种选择。 使用 Nest.js 或 Express.js,因此我将一个函数部署到 Lambda,该函数将处理所有 API
我是一名优秀的程序员,十分优秀!