mdn / mdn/data

Use MDN data to power auto completion in editors through Language Server Protocol

Open
#199 15 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement idle
Dominant language
JavaScript
Stars
787
Forks
216
Avg merge
1d 5h
Merged PRs (30d)
6

Description

Hello, this is Pine from [VS Code](https://github.com/microsoft/vscode) team. We are looking into using MDN data to provide an always up-to-date auto completion in VS Code, for example:

![idea](https://user-images.githubusercontent.com/4033249/38513645-b788d068-3be3-11e8-8f95-8ef25fe9840e.png)

The auto completion is generated by our [css language server](https://github.com/Microsoft/vscode/tree/master/extensions/css-language-features) and [css language service](https://github.com/Microsoft/vscode-css-languageservice) that uses [Language Server Protocol](https://microsoft.github.io/language-server-protocol/).

Here is a simple explanation: Language Server Protocol is a language & editor independent protocol for enhancing code editing experience. For example rust has https://github.com/rust-lang-nursery/rls which complies with this protocol and powers editor extensions that offers auto completion in VS Code, Visual Studio, Atom, [Neo]Vim, Emacs and any LSP-compliant editors.

We are starting from css but could look into html too. I have one question though:

Where is the data for item description (such as css properties)? mdn/data and mdn/browser-compat-data don't seem to contain them. From my understanding the "short description" seem to be a part of the wiki so maybe it's hard to put them into a JSON format, but I think having this data presented to the programmers right at their editor would offer them a great experience.

Here is issue tracking this in our side: https://github.com/Microsoft/vscode-css-languageservice/issues/68

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the mdn/data and mdn/browser-compat-data repositories, then read the linked vscode-css-languageservice issue 68 and the Language Server Protocol context. The work would be complete when the source and structure for CSS item descriptions are agreed and documented well enough for the language service to consume them.

Written by the indexing model from the issue text.

Assessment

Tech stack
css, javascript, vscode
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.