VS2010扩展,使用MEF标注器,想要使用代码模型

发布于 2024-11-29 04:00:15 字数 665 浏览 2 评论 0原文

我想编写一个 Visual Studio 2010 扩展,在每个类、方法、属性、字段和事件定义上显示边距字形(单击时带有附加信息的工具提示/弹出窗口)。

新的基于 MEF 的框架确实很简洁,但为了创建边距字形,我唯一可以标记的是快照跨度。不幸的是,他们没有任何类型的代码模型或结构,我被迫通过字符串解析来搜索类名等=>绝对不是我想做的。

我们发现我们可以用来

[Import]
internal SVsServiceProvider ServiceProvider;

检索当前文档的 DTE 对象。不幸的是,我们在调用 fileCodeModel.CodeElementFromPoint() 时仍然遇到问题,因为我们没有 TextPoint 对象。

有人知道如何将 SnapshotSpan 转换为 TextPoint 吗?

有没有其他方法可以直接标记代码模型而不是文本?我在谷歌上发现的唯一一件事是:Visual Studio可扩展性/边距 - 也忘记了如何从 SnapshotSpan 转换为 TextPoint :(

致以诚挚的问候。 DR

I want to write a visual studio 2010 extension displaying a margin glyph on each class, method, property, field and event definition (tooltip/popup window on click with additional info).

The new MEF based framework is really neat but the only thing I can tag in order to create margin glyphs are snapshotspans. unfortunately they dont have any sort of code model or structuring and i am forced to search for class names, etc. by string parsing => absolutely not what i want to do.

We found out that we can use

[Import]
internal SVsServiceProvider ServiceProvider;

to retreive a DTE object for the current document. Unfortunately we still have problems to call fileCodeModel.CodeElementFromPoint() because we have no TextPoint object.

Does somebody know how to convert a SnapshotSpan to a TextPoint?

Is there any other way to directly tag the code model instead of the text? Only thing I found on google has been: Visual Studio Extensibility / Margins - also forgeting about how to convert from SnapshotSpan to TextPoint : (

Best regards.
D.R.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

被翻牌 2024-12-06 04:00:15

我自己不知道如何做到这一点,但您也许可以通过查看 RapidMEF< 的代码来弄清楚/a>.

I don't know how to do this myself, but you might be able to figure it out by looking at the code to RapidMEF.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文