Как я могу получить SyntaxNode
на основе номера строки? Иначе, если возможно получить LineSpan
этого номера строки, а затем на узел.Получение узла из номера строки в Roslyn
3
A
ответ
5
Вы можете получить интервал строки из текста документа. Оттуда вы можете найти все узлы, которые пересекаются с пролетом линии. Это будет возвращать несколько узлов синтаксиса, которые вы можете использовать свои критерии, чтобы вытащить один вы ищете:
static void Main(string[] args)
{
var code = @"
using System;
namespace ConsoleApplication1
{
class TypeName
{
public int Add(int x, int y)
{
return x+y;
}
}
}";
var st = SourceText.From(code);
var sf = SyntaxFactory.ParseSyntaxTree(st);
var span = sf.GetText().Lines[9].Span;
var nodes = sf.GetRoot().DescendantNodes().Where(x => x.Span.IntersectsWith(span));
Console.WriteLine(nodes.Last().ToString());
Console.ReadKey();
}
2
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.Text;
var s = @"class M
{
public void P() { }
}";
var text = SourceText.From(s);
var lineIndex = 2;
var lineSpan = text.Lines[lineIndex].Span;
var tree = SyntaxFactory.ParseSyntaxTree(text);
var node = tree.GetRoot().FindNode(lineSpan);
// or if you want a all nodes related to the span
var node = tree.GetRoot().DescendantNodesAndSelf(lineSpan);
Смежные вопросы
- 1. PyYAML получение номера строки узла
- 2. Получение номера из строки
- 3. Получение номера из любой строки
- 4. Получение номера строки из joinPoint
- 5. Получение фактического номера строки jsp из номера строки трассировки стека?
- 6. Получение номера из строки в C#
- 7. Получение номера текущей строки?
- 8. Получение номера строки в DataGridView
- 9. Получение номера строки в SQL
- 10. Получение типа из символа в roslyn
- 11. Получение строки из сканера при вводе номера
- 12. Получение номера из той же строки
- 13. pycparser - Получение номера строки источника из AST
- 14. Получение номера строки из данной строки из MySQL через JPA
- 15. Получение номера строки и номера столбца из org.w3c.dom.Node
- 16. Извлечение номера из узла XML
- 17. Получение номера строки выделенной строки datatable C#
- 18. Получение номера строки для запроса
- 19. Получение номера из изображения
- 20. Как получить номера из строки
- 21. Jquery: Получение номера из ID
- 22. Получение текста из узла
- 23. Получение номера строки в tcl 8.4
- 24. Получение номера строки исполняемого кода в TCL
- 25. Получение номера строки из индекса символа в файле
- 26. Получение определенного номера из каждой строки в файле
- 27. Получение номера строки из pdb в режиме деблокирования
- 28. Получение целого из строки в виде разделенного запятой/украшенного номера?
- 29. Получение номера из HTML-теги
- 30. Roslyn для вставки узлов после указанного узла