2011-10-26 11 views

Odpowiedz

5

Zastrzeżenie: Pracuję dla Microsoft w zespole Roslyn.

Możesz użyć metody ISyntaxTree.GetLineSpan(), aby przekonwertować na numer wiersza. Na przykład, podać „symbol” ISymbol, można uzyskać położenie początkowe pierwszej definicji z:

var loc = symbol.Locations.First(); 
var lineSpan = loc.SourceTree.GetLineSpan(loc.SourceSpan, 
    usePreprocessorDirectives: false); 
var line = lineSpan.StartLinePosition.Line; 
var character = lineSpan.StartLinePosition.Character; 

z tytułu, wygląda na to, że począwszy od SyntaxNode, więc można po prostu użyć Span własność bezpośrednio.

+0

Wiem, że to projekt długofalowy, ale czy istnieje link do dokumentacji online? – casperOne

+0

Nie mamy jeszcze dokumentacji w formacie MSDN. Najbliżej mamy w tej chwili są różne dokumenty w górę w http://msdn.com/roslyn –

+0

ja nie widzę StartLinePosition tutaj 'public class MyVisitor: SyntaxRewriter { protected override SyntaxNode VisitClassDeclaration (węzeł ClassDeclarationSyntax) { Console.WriteLine (node.Identifier.ValueText); return null; } } ' –

Powiązane problemy