mosckital / vscode_python_mro Goto Github PK
View Code? Open in Web Editor NEWVS Code Extension to show the MRO (Method Resolution Order) of classes.
License: MIT License
VS Code Extension to show the MRO (Method Resolution Order) of classes.
License: MIT License
Prepare the project to publish on the VS Code Extension Marketplace, which includes the following tasks:
To conceive the structure of the extension and draw the class diagram.
This project uses python3 -m mrols.server
to launch the Python MRO language server behind the scene, however on some platform, like Windows, sometimes python3
is not available and python
should be used in such case.
The program will successfully launch the MRO language server by the above command.
The program will fail to launch the MRO language server on a Windows with only a latest Python3 installed.
Let the program be able to revert to use python
if python3
failed, and to stop running and to give a feedback if both python3
and python
fail.
Build a straightforward foundation for both the client and the server:
Add support to show the running status of the extension in a separate channel in the Output
panel.
Currently, there is no way to inspect the running status of the extension, which is critical for monitoring and diagnostic purpose. Therefore, a proper way to log necessary debug information and show them is required. The Output
panel is a good place for the display.
Add support to log necessary debug information for each step in the extension execution and direct the logging to a dedicated channel in the Output
panel.
To use the newly added test examples in PR #24 on the extension's E2E test.
Also to add E2E test, based on the added test examples, for the following cases:
Setup the continuous integration based on the simple tests implemented in pull request #8.
Adding more test examples to cover possible edge cases:
class
may appear in docstring, end-of-line comment, multi-line comment, string literals etc.Attempt to implement the client-server communication via inter-process communication instead of the TCP based web socket, which may lead to a smaller latency.
Integrate the packaging and the pusblishing of the project into the CI process.
Currently, the packaging of the project and the publishing to the VS Code extension placemarket is manually processed. This should be integrated into the CI process so that the packaging and the publishing will be automated if the CI is successful for a tagged version of the project.
Add the activity diagram for each type of use case (CodeLens, Hover and Hover Method).
To implement the calculation of the MRO list by using Jedi and the synced documents.
This target can be decomposed into two steps:
To introduce Jedi into the Language Server side for more accurate static analysis.
This introduction is planed to achieve by:
Change the simple scaffolding Python language server (the server-side) from vscode-languageserver-based version to a simple copy written in Python:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.