9
考慮到我已經創建使用SymbolFactory.CreateProperty的象徵,我將如何添加空白。目前,我在編寫文檔時將可訪問性,修飾符,名稱,類型等全部串起來。也許我寫錯了,或者我需要添加額外的步驟來添加空白?我使用document.GetText()將它寫出到控制檯。如何添加空格和/或格式代碼?
考慮到我已經創建使用SymbolFactory.CreateProperty的象徵,我將如何添加空白。目前,我在編寫文檔時將可訪問性,修飾符,名稱,類型等全部串起來。也許我寫錯了,或者我需要添加額外的步驟來添加空白?我使用document.GetText()將它寫出到控制檯。如何添加空格和/或格式代碼?
不,這是你所期望的。生成的節點沒有空格,意圖是一旦完成就可以處理它。
有兩種選擇:
Microsoft.CodeAnalysis.Formatting
。這是一個花哨的格式化程序,它將嘗試保留現有的空白等,並且只會更新需要修復的節點。如果你正在更新用戶代碼並且你不想跺腳,這是最好的。我有同樣的問題,我發現這個工作最好的:
node.WithTrailingTrivia(SyntaxFactory.Space)
其中節點是任何形式的SyntaxToken
。
再次感謝,但還有一個問題,我怎麼做它,所以它不會寫的完全限定的類型名稱,如全球:: ...的人,而我只是想人,我將導入所需命名空間? – epitka
如果你把它放在一個的IDocument,有Roslyn.Services.DocumentExtensions.Simplify,這將產生一個新的文檔與所有的東西去掉。 IDocument上也有一個Format方法,這樣可以使一切變得更容易使用。 –
這個答案給出了更新後的CTP格式化方法http://stackoverflow.com/a/23626524/22539 – foson