gsoc-2024 icon indicating copy to clipboard operation
gsoc-2024 copied to clipboard

JSON Schema: JSON Schema Language Server Contributions

Open benjagm opened this issue 1 year ago • 12 comments

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

@jdesrosiers

Expected Difficulty

Hard

Expected Time Commitment

350 hour

Related issue inside the JSON Schema org: https://github.com/json-schema-org/community/issues/601

benjagm avatar Feb 05 '24 13:02 benjagm

Hey @benjagm !, I'm Vaibhav Yadav and I'm interested in this project, can you tell how to get started, provide me Repo link. Thanks. #22

vaibhavyadav-dev avatar Feb 08 '24 05:02 vaibhavyadav-dev

Hey @benjagm! do I need to contribute to json-schema-org, if not please tell me how to do it.

vaibhavyadav-dev avatar Feb 08 '24 10:02 vaibhavyadav-dev

Thanks for your interest @CaptainTron!! As of now the moment this repository is private. As soon as the mentoring organizations are announced well publish the qualifications task for each project.

benjagm avatar Feb 08 '24 20:02 benjagm

Thanks for your interest @CaptainTron!! As of now the moment this repository is private. As soon as the mentoring organizations are announced well publish the qualifications task for each project.

@benjagm can you tell me similar project to work on, I want to know to more to it and make good contributions. Thanks.

vaibhavyadav-dev avatar Feb 11 '24 06:02 vaibhavyadav-dev

@CaptainTron A good place to start is https://code.visualstudio.com/api/language-extensions/language-server-extension-guide. I'd suggest going through that guide and the sample project it describes. Then add some features to the sample project. That should give you an idea of how language servers work and what language server development is like. Once you have a good base-line, you can start looking at some other language server projects to see how they work. Here are a few I've looked at for inspiration,

  • https://github.com/typescript-language-server/typescript-language-server
  • https://github.com/LuaLS/lua-language-server
  • https://github.com/sveltejs/language-tools/tree/master/packages/language-server

jdesrosiers avatar Feb 12 '24 18:02 jdesrosiers

@CaptainTron A good place to start is https://code.visualstudio.com/api/language-extensions/language-server-extension-guide. I'd suggest going through that guide and the sample project it describes. Then add some features to the sample project. That should give you an idea of how language servers work and what language server development is like. Once you have a good base-line, you can start looking at some other language server projects to see how they work. Here are a few I've looked at for inspiration,

  • https://github.com/typescript-language-server/typescript-language-server
  • https://github.com/LuaLS/lua-language-server
  • https://github.com/sveltejs/language-tools/tree/master/packages/language-server

Thanks a lot @jdesrosiers !

vaibhavyadav-dev avatar Feb 13 '24 05:02 vaibhavyadav-dev

Thanks @jdesrosiers

Adity20 avatar Feb 13 '24 08:02 Adity20

Thanks for your interest! Lets continue the discussion in this issue inside the JSON Schema project: https://github.com/json-schema-org/community/issues/601

benjagm avatar Feb 22 '24 09:02 benjagm

I am excited to propose a compelling project focused on leveraging JavaScript and JSON. The goal is to create a dynamic web application that efficiently processes and displays data using JSON. With my skills and knowledge, , ensuring seamless interaction with JSON datasets.

MOHDSAIF3308 avatar Feb 22 '24 15:02 MOHDSAIF3308

Thanks a lot for joining JSON Schema org for this edition of GSoC!!

Qualification tasks will be published as comments in the project ideas by Thursday/Friday of this week. In addition I'd like to invite you to a office hours session this thursday 18:30 UTC where we'll present the ideas and the relevant date to consider at this stage of the program.

Please use this link to join the session: 🌐 Zoom 📅 20124-02-29 18:30 UTC

See you there!

benjagm avatar Feb 27 '24 11:02 benjagm

Hi @benjagm , @jdesrosiers, my name is Arun. I want to contribute to the JSON Schema Language Server for GSoC 2024. I have familiarity with JavaScript and TypeScript, and I have built full-stack projects with the MERN stack. I love to explore and learn new things, especially through the GSoC project. GitHub

Arungoud7799 avatar Mar 18 '24 01:03 Arungoud7799

🚩 IMPORTANT INSTRUCTIONS REGARDING HOW AND WHERE TO SUBMIT YOU APPLICATION 🚩

Please join this discussion in JSON Schema slack to get the last details very important details on how to better submit your application to JSON Schema.

See communication here.

benjagm avatar Mar 18 '24 09:03 benjagm