- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下午好
我创建了一个将 Verilog 语言注册为有效内容类型的 visual studio 包。
我的语法高亮、大纲、智能缩进等都可以正常工作。
但是,我希望能够让 Visual Studio 通过 Edit->Advanced->Format Document/Selection
自动格式化整个文档。目前这些选项是不可见的,我希望我必须让 VS2010 知道(以某种方式)可以调用这些方法,并提供正确的方法来进行这种格式化。
我似乎无法在 VS2010 SDK 和文档中找到任何关于格式化的引用。我希望 ISmartIndent
是我正在寻找的解决方案,但似乎这段代码只在空行上运行,或者在按下回车键时运行。
有没有人对我如何解决这个问题有任何提示或想法?
谢谢,
吉瓦
编辑:我正在使用随 VS2010 引入的托管扩展框架来完成此任务。我正在用 C# 编写(并且只是将 c# 标记添加到我的问题中)。谢谢
最佳答案
MEF 不是完成创建语言服务任务的正确方法。相反,应使用托管包框架 (MPF) 来注册语言服务并执行语法高亮、大纲、解析、格式化、解析等任务。
因为我的问题是关于格式化的,所以我会在我的回答中稍微介绍一下。您必须覆盖 ReformatSpan自定义方法 Source您为语言服务创建的对象。 MSDN webpages for VS2005 上有一个很好的例子(同样适用于 VS2010)。
您也可以随时通过直接调用 ReformatSpan 方法强制格式化。这是我的代码中的一个工作示例:
Region region = service.GetRegionContainingLine((line > 0 ? line - 1 : 0));
if (region != null)
{
using (EditArray mgr = new EditArray(this, service.LastActiveTextView, true, "Reformat Brace"))
this.ReformatSpan(mgr, region.ToSpan());
}
感谢@James McNellis为我指明了正确的方向。
关于c# - VS2010 扩展性 : Custom document formatting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6768282/
下午好 我创建了一个将 Verilog 语言注册为有效内容类型的 visual studio 包。 我的语法高亮、大纲、智能缩进等都可以正常工作。 但是,我希望能够让 Visual Studio 通过
我处于工具窗口的焦点中。通过在 TreeView 节点上双击,光标必须移动到打开的源代码文档中的特定行。我通过调用 Edit.GoTo Line 命令解决了这个问题,如下所示: var command
我需要为自定义项目模板实现某种可扩展性。 打开 C# 代码文件,如果...: ...当前项目有一些特定的类型 ID。 ...代码文件是一个类,继承了一些具体的基类。 ...用户按下了 F5。 ...我
我已经阅读了大量关于 VS2010 中可扩展性故事的改进(即基于 MEF 等)的大量改进,但还没有弄脏我的手。我最近遇到了一个让我想深入研究的真实场景,但我很惊讶没有找到很多关于启动和运行我想要构建的
我的一位客户要求我们开发一个“VBA 宏”。然而,在 2010 年代,仍然使用这种过时的语言对我来说似乎很奇怪,我正在考虑尝试说服客户使用 VSTO dev。然而,由于我对这两个世界都是新手,我需要帮
我正在将 Git 集成添加到我的 Visual Studio 扩展 Diff All Files ,它允许快速比较(即比较)Team Explorer 窗口中的所有文件与以前的版本。我让它与 Git
我是一名优秀的程序员,十分优秀!