Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

WeekTask/PlanStatus
May 25 - May 29Mentee intro with the mentor. I already communicated with the mentor(Sean)  Done
June 1 - June 14Implement basic functionality of VScode extension. Syntax highlighting of Solidity language. Done
June 15 - June 28 Rust server for receiving the incoming requests from VScode clients.Done
June 29 - July 5 Buffer period to complete the remaining work and co-op with difficulties during implementation.Done
July 6 - July 12

Complete tests and documentation of the Rust server impl.

Eval on July 10: Provide reports for first quarter to the program organisers.

Done

Eval completed

July 13 - July 26Work on implementing diagnostics. Prepare the backend to process incoming code.Done
July 27 - August 9Work on diagnostics, fixing Range issues and fixing minor bugs.Done
August 10 - August 16Buffer period to complete the remaining work and co-op with difficulties during implementation.Done
August 17 - August 23

Complete tests and documentation of the diagnostics implementation.

Eval on August 21: Provide reports for the second quarter to the program organisers.

Done

Eval completed

August 24 - Sept 6Work on the hover feature. List out all possible grammar definitions and start implementing.Done
Sept 7 - Sept 20Follow up on the work.Done
Sept 21 - 27

Finished the basics of hover implementation. Added hover for variable definition and types.

Done
Sept 28 - Oct 4

Complete tests and documentation of the implementation.

Eval on Oct 2: Provide reports for third quarter to the program organisers.

Done

Eval completed

Oct 5 - Oct 18

Week1: Work on adding support for Function + Return-type + Function params hover.

Week2: Work on adding support for Emit token in hover.

Done
Oct 19 - Nov 1

Week1: Work on adding support for struct entries in hover.

Week2: Buffer period to follow up on the work.

Done
Nov 2 - Nov 8 Used this week to work on hover implementation.Done
Nov 9 - Nov 13

Time to complete remaining details and documentation.

Done

Eval completed

...


Explanation

A language server is a program that communicates with the editor to provide different editing features for a programmer. The communication takes place in the form of IO buffers and JSON-RPC messages.

The client(extension) uses VScode API's to send queries in JSON-RPC format to the server. The server runs different processes(like file open, edit, hover) which respond to specific requests from client. 


Methodology

I followed the “Design-Code-Test-Document​” methodology.

...