Анализ всех переменных (из файла C) в Visual Studio Code Extensions API

#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 ничего не возвращает.

Спасибо