Description
JSON Schema Language Server Contributions
Brief Description
The Language Server Protocol (LSP) provides a way to write an IDE/editor extension that is compatible with any IDE/editor that supports the LSP. Today, most IDEs/editors support LSP including JetBrains, VSCode, and even Neovim. LSP allows you to provide all the kinds of features you'd expect from an IDE such as inline error messaging, autocomplete, goto definition, linting, and more. We're currently in the early stages of building a language server for JSON Schema.
Expected Outcomes
This might be different that other GSoC projects in that it's not explicit about what aspect of the language server you'll be working on. There will be a prioritized list of tasks and you will work with the maintainer to complete as many tasks as you can in the time allotted for GSoC. Sometimes you'll be working solo and other time pairing with the maintainer. Tasks may include implementing a language server feature, adding linting rules, improving an existing feature, and possibly some bugfixes.
Skills Required
- Familiarity with JavaScript and Node.js
- Familiarity with client/server and RPC architectural styles
- Familiarity with the observer pattern
- Familiarity with JSON Schema
- Ability to work with and understand asynchronous code
- Ability to learn an existing code base and make contributions
- Familiarity with writing and working with automated tests
Mentors
Expected Difficulty
Hard
Expected Time Commitment
350 hour