#javascript #c #visual-studio-code #vscode-extensions
#javascript #c #visual-studio-code #vscode-расширения
Вопрос:
В настоящее время я создаю расширение VSCode и хотел бы проанализировать все переменные из текущего файла. Проблема в том, что vscode.commands.ExecuteCommand(‘vscode.executeDocumentSymbolProvider’, activeEditor.document.uri), похоже, возвращает только глобальные переменные или, по крайней мере, не возвращает большинство переменных, которые объявлены в функциях. В документе DocumentSymbol есть атрибут «children», который должен делать именно то, что я хочу, но похоже, что он работает только для классов, а не для обычных функций.
Я хотел бы найти другой способ, чем просто читать весь код brut, для того, что я хочу сделать с ними позже, необходим массив DocumentSymbol, содержащий все переменные.
Например:
#include "stdio.h"
void test(float test);
int a;
int main(int argc, char* argv[])
{
int b;
float c = 44;
for(b = 0; b < c; b )
{
printf("%f",c);
int d;
d = c;
printf("%d", d);
}
/*
int shouldNotBeFound;
*/
test(c);
return 0;
}
void test(float test)
{
int e;
e = test 4;
printf("%d", e);
e ;
}
Здесь моя цель — получить массив DocumentSymbol от a до e и, возможно, с argc, argv и test тоже.
На данный момент, используя executeDocumentSymbolProvider, я получаю только переменную a и функции main и test, но main.children ничего не возвращает.
Спасибо