Right now TVM relies heavily on the PackedFunc mechanism to register C++ APIs to the frontend. Existing IDE will be able to goto definition within the same language, but not necessarily across languages.
On the other hand, it is not too hard logically to find the definition point from the python or Registry::Get()
, by running a grep on TVM_REGISTER_GLOBAL and matches the related name.
One way to bake that into the IDE is to provide IDE extensions. For VSCode, there is a callback API https://code.visualstudio.com/api/references/vscode-api (registerDefinitionProvider and registerReferenceProvider) to register the navigation APIs, reference code can be found in https://github.com/microsoft/vscode-go/tree/master/src t This way we might be able to nagivate across the code boundary more easily in the VSCode.
This seems would be a fun hacking project. Open this thread to see if this is of interest the community, and anyone want to hack a bit
cc @jroesch who also mentioned similar ideas