Skip to content

Instantly share code, notes, and snippets.

@ankitpriyarup
Created September 5, 2019 03:14
Show Gist options
  • Save ankitpriyarup/673786fe31544f932d40274409591bb9 to your computer and use it in GitHub Desktop.
Save ankitpriyarup/673786fe31544f932d40274409591bb9 to your computer and use it in GitHub Desktop.

It was an incredible learning experience with GSoC and Godot Engine! I can’t believe three months have passed so quick that I’m writing this final report, summarizing all the exciting work I did in these Summers (27 May - 26 Aug 2019).

Project Name: GDScript Language Server Student: Ankit Priyarup (@ankitpriyarup) Mentors: Geequlim (@geequlim) and Jiacheng Lu (@jason0214) Repositories:

Student Server Working Branch: https://github.com/ankitpriyarup/godot/tree/lsp Mentor Server Working Branch: https://github.com/GodotExplorer/godot/tree/gdscript-lsp Student Client Working Branch: https://github.com/ankitpriyarup/godot-tools/tree/lsp-client Mentor Client Working Branch: https://github.com/GodotExplorer/godot-tools/tree/lsp-client Pull Requests:

godotengine/godot#31937 godotengine/godot-vscode-plugin#112 What's the project?: Integrated script editor in Godot lacks features found in editors like VS Code, Sublime, Emacs, etc. These editors are also more popular among developers and therefore are better to switch for usability. However, to implement core functionalities such as - Diagnosis, Registering custom symbols, jump to definition, etc a Language Server structure has to be adopted. For example, the client (say vs code) will communicate the godot language server to give desired result.

Microsoft's Language Server Protocol (LSP) is flexible and powerful to implement these functionalities. It also supports many editors - VS Code, Atom, Sublime, etc. Hence, instead of writing complete extensions for each editor (client) using LSP servers can be reused while the client which is an editor extension has to be only re-written.

How it's like to work with Godot: I had a wonderful time coding with the fantastic and helpful community at Godot. I am mentored by jason0214 and geequlim, jason0214 is very responsible as he always points out my flaws and potential weekness from the regular code review. geequlim is very active to the project and I always get to learn a lot from his commits. Besides that it's an amazing experience to talk to other students and share whatever we learned. Writing clear and well structured code to meet standards, and making sure your changes does not break anything else was a truly educational experience.

I have the freedom to arrange my time and set my own plan, there's no pressure at all. Mentors encorage me to be as creative as I can and I'm free to choose how to finish my work. Summing it all up working at Godot has been a really great experience for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment