python / python/mypy

Upgrade `dmypy` to a language server (LSP)

Open
#10,463 5 comments 32 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature topic-daemon
Dominant language
Python
Stars
20.6k
Forks
3.3k
PR merge metrics
PR metrics pending

Description

Feature

I would like for dmypy to be a fully fledged language server. Obviously it would only support diagnostics (which would make this much simpler). But this would be very convenient from an editor point on view given the direction editor tooling is going.

Could probably use something like https://github.com/openlawlibrary/pygls to handle the low level details of LSP.

Pitch

Most editors and their plugins shell out and call mypy. But this can be quite slow on some projects since it needs to cold start every time (except for .mypy_cache).

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 reading the dmypy implementation and the LSP specification, then evaluate pygls as the proposed low-level library. Define how dmypy should expose diagnostics through LSP and identify the editor or protocol tests needed to verify the server. Done means dmypy operates as a language server that provides diagnostics to editors.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
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.