Roslyn:给定源 location/line,如何确定是否可以设置断点以及设置断点的位置
Roslyn: Given a source location/line, how to figure out if - and where - breakpoint can be set
我正在使用 Roslyn 和 MDbg 开发代码编辑器。
在编辑器中,我的目标是 visual studio 类似行为来设置断点。也就是用户可以点击一行,我需要搞清楚
- 那是我可以实际设置断点的源位置吗?
- 如果是,应该在哪一行设置断点?
例如,假设用户有如下文档:
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行设置断点,因为这东西只是一条语句。
老实说,目前我什至不知道如何处理这个问题..
有人会对如何从概念上解决这个问题有任何指示吗?
我希望 Roslyn 可能有一些有用的辅助方法,但我在其源代码中没有发现太多与断点相关的内容
重复一遍,我认为基本问题归结为弄清楚
- 代码中的某行是我可以实际设置断点的位置吗?
- 如果是,应该在哪一行设置断点?
谢谢!
我正在使用 Roslyn 和 MDbg 开发代码编辑器。
在编辑器中,我的目标是 visual studio 类似行为来设置断点。也就是用户可以点击一行,我需要搞清楚
- 那是我可以实际设置断点的源位置吗?
- 如果是,应该在哪一行设置断点?
例如,假设用户有如下文档:
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行设置断点,因为这东西只是一条语句。
老实说,目前我什至不知道如何处理这个问题.. 有人会对如何从概念上解决这个问题有任何指示吗? 我希望 Roslyn 可能有一些有用的辅助方法,但我在其源代码中没有发现太多与断点相关的内容
重复一遍,我认为基本问题归结为弄清楚
- 代码中的某行是我可以实际设置断点的位置吗?
- 如果是,应该在哪一行设置断点?
谢谢!