Python LSP Syntax Tree

Hi-
How (or when) is the Syntax Tree in the python lsp parser populated? I've checked after loading the source and after the TextReparsed events - it looks like it is initialized, but the root has no children.
Thanks!
Hello,
Language Server Protocol does not support obtaining SyntaxTree representation of the text, even though internally the Python server might have it. Unfortunately I don't see the way of overcoming this restriction.
In general, LSP operates with high-level constructs like code completion list, outline ranges etc., hiding the implementation details like syntax tree from the client.
Understood. I am trying to get a few things working that I was going to use the syntax tree for, the most important one right now is the list of classes and definitions in a python file (to use in navigational combo boxes). The alternet studio sample shows using Roslyn for c# - is the best solution to write external code to get this type of information for python, or is there a way to access the intellisense data inside the alternet code?
I also just noticed this, and I'm not sure if it is related to the empty syntax tree - In the DebugCodeEdit control, the Go to Definition, Find References and Go to Implementation context menus are not working.
Regarding the symbols list: it seems there is a supported by PyLS way to get the workspace symbols list from the server. That specific LSP request however is not covered by the API client library we are using. So it would require some work to incorporate this into the library. We cannot promise to add this in the upcoming release planned for the end of July, but we could start working on it after the release if you need it urgently, and give you an early preview of the results.
Regarding the DebugCodeEdit context menu: probably the events responsible for the context menu are not handled. Please take a look at the following Studio Demo code:
(edit as IDebugEdit).BreakpointToggle += new EventHandler(BreakpointToggle);
(edit as IDebugEdit).SetNextStatement += new EventHandler(SetNextStatement);
(edit as IDebugEdit).GotoDefinition += new EventHandler(GotoDefinition);
(edit as IDebugEdit).FindAllReferences += new EventHandler(FindReferences);
(edit as IDebugEdit).FindAllImplementations += new EventHandler(FindImplementations);
(edit as IDebugEdit).AddToWatchClick += AddToWatchClick;
I can wait :) I coded a small work around yesterday, but I'll switch over to your solution as soon as it is available.
I will look into the events and see what I missed. If I have any issues, I'll post another question since it isn't really related to the syntax tree.
Thanks for all your help!!
OK, also by "upcoming release planned for the end of July" I meant end of June (this month).