我正在使用Roslyn编写代码编辑器,并且正在调试MDbg。Roslyn:给出一个源位置/行,如何确定是否可以设置断点?
在编辑器中,我的目标是设置类似于视觉工作室的行为来设置断点。也就是说,用户可以点击一条线,我需要弄清楚
- 是,在我实际上可以设置一个断点?和
- 源的位置,如果是这样,在哪一行应该设置断点吗?
例如,假设用户已经像一个文件:
line 01: using System;
line 02:
line 03: public class SomeClass
line 04: {
line 05: public string someMethod()
line 06: {
line 07: return @"
line 08: abcdefg
line 09: ";
line 10: }
line 11: }
当线路1点击,没有什么应该发生 - 真的不能设置using语句断点。
当单击第3行时,它应该在第4行设置断点(不能在方法定义本身上设置断点,而是在方法执行开始时的开始大括号标记处设置断点)。
当点击7,8或9行时,它应该在第7行设置一个断点,因为这个事情只是一个语句。
说实话,目前我甚至没有任何想法如何处理这个问题.. 有没有人有任何指导如何从概念上解决这个问题? 我希望罗斯林可能有一些有用的辅助方法,但我没有找到它的来源很大关系断点
只是重复,基本的问题,我觉得可以归结为搞清楚
- 被代码中的某一行是我可以实际设置断点的位置?和
- 如果是,应在哪一行设置断点?
谢谢!
这似乎做的正是你需要的东西:http://source.roslyn.io/#Microsoft.VisualStudio.LanguageServices.CSharp/Debugging /CSharpBreakpointResolutionService.cs,6a9951745157788a – Tamas
令人惊叹!绝对是,谢谢!随意发布这个答复,我会将其标记为答案 – Bogey