问题标签 [mpf]

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 回答
654 浏览

c# - 如何使用 MPF 创建从 c# 继承的自定义项目?

使用 Visual Studio 的托管包框架,我如何从 C# 继承,以便拥有 C# 属性页和 C# 项目项?我尝试过制作一个风味项目,但它在制作我们自己的自定义节点和自定义文件属性方面受到限制。但是,在使用 MPF 时,我似乎无法获得随风味项目提供的那些 C# 属性。

谢谢

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 回答
731 浏览

c - MPFR 将 0.9999 舍入为 1?

我正在尝试使用 mpfr_set_str() 函数将值 0.9999 存储到 mpfr_t 变量中

但 0.9999 在存储期间被舍入为 1(或其他值!= 0.9999),无论舍入值如何(GMP_RNDD、GMP_RNDU、GMP_RNDN、GMP_RNDZ)

那么使用 mpfr_set_str() 将 0.9999 存储在 mpfr_t 变量中的最佳方法是什么?是否可以?

这是我的测试程序,它打印“缓冲区为:1”,而不是想要的“缓冲区为:0.9999”:

谢谢您的帮助

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 投票
2 回答
578 浏览

visual-studio-2010 - VS 可扩展性架构(包 API/Visual Studio 库)

MSDN 扩展平台描述

最近我发现上面显示的来自微软的 Visual Studio 可扩展性平台图表。

大多数事情对我来说都很清楚。但是,我想知道 Package API 和 VSL(Visual Studio 库)。

我试图找到更多,但找不到任何信息。

我不太明白
的事情:-Package API 到底是什么?
- VSL 到底是什么?
- InteropAssemblies/VSL 和 Package API 之间有什么关系?InteropAssemblies 是否包装了对 Package API 的访问?
- 为什么要在实现原生包时使用 VSL?有什么好处?

有没有人有更多关于这些主题的信息,或者有人知道一些资源?

0 投票
2 回答
1279 浏览

c# - VS2010 MPF:为自定义项目填充“添加->新项目...”列表

我创建了一个自定义语言包,它扩展了 ProjectPackage。我可以正确创建新项目。我希望能够使用 Add->New Item... (Ctrl+Shift+A) 菜单项将新的源文件添加到项目中。但是,当我此时单击此选项时,可用模板列表为空。我想将我自己的自定义模板添加到此项目类型的可用模板菜单中。是否有一些文档可以完成此操作?我看到的唯一提及是注册表黑客,但我认为必须有一种方法可以以编程方式进行。

有没有可以覆盖的特定方法来填充列表?我真的需要制作模板吗,或者我可以只显示“模板名称”、“图标”并提供正确的文件扩展名(创建时文件应该是空的,所以我认为模板很大程度上浪费在我想要的东西上去做)。

这是我到目前为止一直在走的路。我想我可以在我的自定义 .vproj 文件中设置我的项目类型和 GUID(.vproj 是我的自定义项目注册的文件扩展名)。我想我可以快速创建一个与我的 .vproj 文件具有相同 ProjectType 的项目模板。

唉,这个模板根本没有出现,即使我已经将它包含在 VSIX 中并将它复制到输出目录中。如果我将此模板放在与我的 .vproj 相同的文件夹中,它将显示为用于创建新项目的模板(错误!)并且仍然不会出现在我的新项目列表中。这都可能源于我不使用 VSTemplate 来创建我的项目这一事实。相反,我使用 [ProvideProjectFactoryAttribute] 让 VS2010 知道我的 vproj 文件在哪里,它将使用 vproj 文件(我猜你可以称之为模板,但它不是 VSTemplate,它是一个项目)作为新的基础项目关闭。

这就是我目前所处的位置,并且我将继续尝试新事物。我希望有人可能有我正在寻找的答案。谢谢,

贾瓦

0 投票
3 回答
5614 浏览

c# - 如何从 VSPackage 订阅解决方案和项目事件

我正在通过 VSPackage 为 Visual Studio 开发语言服务。每当从解决方案的项目中添加/删除文件时,我都需要更新我的解析数据。

我想订阅解决方案和项目事件。

我尝试如下,但是当我向解决方案添加/删除项目或向项目添加/删除项目时,这些事件都不会被触发。

从 VSPackage 订阅这些事件的最佳方式是什么?

0 投票
3 回答
1330 浏览

c# - Visual Studio 2010 MEF 与 MPF?

我正在考虑在 Visual sudio 2010 中添加一种新的编程语言,但我对采用的最佳方法有点困惑。

我查看了 MPF 并找到了一些关于如何进行语法突出显示、链接外部解析器等的示例,它看起来非常简单。

然后我读到了一个叫做 MEF 的东西,以及它是如何成为 Visual Studio 的新可扩展模型的。我已经玩过它,并且通过遵循一些示例,我的语法突出显示工作。现在,有了 MEF,我不知道如何在我的解析器中链接我的语言,就像 MPF 使用 ParseSource 等一样。我正在使用 ANTLR 顺便说一句。

MEF 是否仅用于编辑器的视觉方面,例如突出显示、装饰等……或者是否可以/建议使用它来实现语言服务?

据我所知,MEF 是新的推荐方法,但创建新语言似乎比使用常规 MPF 更难。强积金仍然是一个好方法吗?

0 投票
2 回答
756 浏览

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

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

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

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

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

任何澄清都非常感谢。

0 投票
1 回答
92 浏览

overloading - 这是 mpf_class 类型中的错误吗?

我今天在玩更高精度的数据类型 mpf_class 时遇到了一件奇怪的事情:似乎任何类型的对象多次乘都是有问题的,但是单次预乘很好,就像 post - 这些对象乘以几个对象:complex <mpf_class>mpf_classmpf_class

似乎如果你不止一次地预乘complex这些对象中的一个,你就会遇到麻烦。mpf_class然而,后乘法多次都很好。同样,将对象之间相乘mpf_class也可以任意多次。

这里发生了什么?