Project Plan - Make the Solidity Language Server functional
Abstract
Solang project currently hosts a very basic Language Server for Solidity language. The aim of this mentorship is to make the language server much more complete, will make developing Solidity code using this language server will be a much greater developer experience.
Mentor and Mentee
Mentor: Sean Young
Timezone: BST
Discord: seanyoung
Mentee: Govardhan G D
Timezone: IST
Fork of official repository for this project: https://github.com/chioni16/solang
Deliverables
As part of this mentorship, the following features are planned to be added to the existing Language Server:
- Markdown formatting of hovers
- Do not require you to save the solidity file
- Drop diagnostics when closing solidity file with errors
- Go to definition
- Go to declaration
- Go to implementation
- Go to type definition
- Go to/find all references
- Format code
- Rename
- Code completion
Timeline
Date | Deliverables | Status |
01.07 - 14.07 | Markdown formatting of hovers Drop diagnostics when closing solidity file with errors Tests + Documentation | ✅ |
14.07 - 27.07 | Do not require you to save the solidity file Tests + Documentation | ✅ |
28.07 | 1st Quarter Mentee Evaluation | ✅ |
29.07-08.08 | Go to definition | ✅ |
09.08-15.08 | Go to declaration | ✅ |
16.08-22.08 | Go to type definition | ✅ |
23.08-30.08 | Tests+Documentation | ✅ |
31.08 | Midterm mentee evaluation | ✅ |
01.09-07.09 | Go to implementation | ✅ |
08.09-26.09 | Go to/find all references | ✅ |
27.09-10.10 | Rename | ✅ |
11.10-19.10 | Tests + Documentation | ✅ |
20.10 | 3rd quarter mentee evaluation | ✅ |
21.10-27.10 | Format code | ✅ |
28.10-19.11 | Code completion | |
20.11-29.11 | Tests + Documentation | |
30.11 | Final mentee evaluation |
Methodology
- Based on the discussions with my mentor, a plan is formed, detailing the best possible way to tackle the task at hand.
- After this, the solution will be coded.
- The comments and suggestions given by the mentor during code review are addressed.
- Later, tests and documentation for the deliverables are created.
Discord is used for regular conversations with the mentor. Weekly calls are held to discuss the progress made.