我正在使用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