2017-05-26 42 views
2

我正在使用Roslyn编写代码编辑器,并且正在调试MDbg。Roslyn:给出一个源位置/行,如何确定是否可以设置断点?

在编辑器中,我的目标是设置类似于视觉工作室的行为来设置断点。也就是说,用户可以点击一条线,我需要弄清楚

  1. 是,在我实际上可以设置一个断点?和
  2. 源的位置,如果是这样,在哪一行应该设置断点吗?

例如,假设用户已经像一个文件:

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行设置一个断点,因为这个事情只是一个语句。

说实话,目前我甚至没有任何想法如何处理这个问题.. 有没有人有任何指导如何从概念上解决这个问题? 我希望罗斯林可能有一些有用的辅助方法,但我没有找到它的来源很大关系断点

只是重复,基本的问题,我觉得可以归结为搞清楚

  1. 被代码中的某一行是我可以实际设置断点的位置?和
  2. 如果是,应在哪一行设置断点?

谢谢!

+0

这似乎做的正是你需要的东西:http://source.roslyn.io/#Microsoft.VisualStudio.LanguageServices.CSharp/Debugging /CSharpBreakpointResolutionService.cs,6a9951745157788a – Tamas

+0

令人惊叹!绝对是,谢谢!随意发布这个答复,我会将其标记为答案 – Bogey

回答

相关问题