Interest in GSoC 2026: Dart IntelliJ LSP Prototype - Seeking Guidance

32 views
Skip to first unread message

YATIN Jamwal

unread,
Mar 6, 2026, 1:29:57 PM (4 days ago) Mar 6
to dart-gsoc

Hi everyone,

I’m Yatin Jamwal, an undergraduate student from India, and I’m interested in the GSoC 2026 idea: “Prototype New Dart IntelliJ plugin using LSP for Analysis Server Connection.” I’ve been going through the Dart SDK ideas page and the analysis server LSP documentation, and I wanted to briefly share my understanding and approach. I’d really appreciate any feedback on whether I’m thinking about this in the right direction.

From what I understand, the current Dart/Flutter IntelliJ plugin communicates with the analysis server using a legacy protocol, while the analysis server already has a fairly complete LSP implementation used by other editors. The goal of this project seems to be building a prototype IntelliJ plugin that connects to the analysis server via LSP, and implementing a core subset of editor features on top of it.

My rough idea for the prototype is:

  • Use IntelliJ’s LSP infrastructure (LspServerSupportProvider / LspServerDescriptor) to start the Dart language server when Dart files are opened.

  • Launch the server using
    dart language-server --client-id=<intellij> --client-version=<proto> over stdio.

  • Implement basic text document sync (didOpen, didChange, didClose).

  • Build a small but solid feature set using LSP:

    • diagnostics (editor error highlighting)

    • hover documentation

    • code completion

    • go-to-definition

    • document symbols / file outline

Where helpful, I’d reuse parts of the existing Dart IntelliJ plugin (like SDK discovery or language registration), while keeping the LSP integration clearly separated from the legacy protocol since this is meant to be a prototype.

For the GSoC scope, I’m thinking:

  • A minimal IntelliJ plugin prototype using LSP with the Dart analysis server

  • Support for diagnostics, hover, completion, go-to-definition, and document symbols

  • Testing on at least one non-trivial Dart project and one Flutter project

  • Documenting limitations and possible next steps toward migration

I also had a few quick questions:

  1. Starting point: Are there any experimental branches, previous attempts, or repositories related to LSP support for the Dart IntelliJ plugin that might be useful as a reference?

  2. Target SDK / LSP maturity: Is there a preferred Dart SDK version to target for this prototype? Are there known rough edges in the current LSP implementation that I should be aware of?

  3. Reuse of existing plugin code: For a prototype like this, would you prefer minimal reuse from the current plugin to keep things isolated, or is selective reuse acceptable?

  4. Testing expectations: Are there particular sample projects or test setups you recommend for validating behavior and performance, Dose something already exists or am I supposed to find it

If this general direction sounds reasonable, I’d be happy to refine my plan based on your feedback. I’ve started exploring IntelliJ plugin development and the Dart LSP implementation, and I’m excited to dig deeper.

Thank you for your time!


Helin Shiah

unread,
Mar 9, 2026, 2:10:20 PM (24 hours ago) Mar 9
to YATIN Jamwal, dart-gsoc, Phil Quitslund
Hi Yatin,

This is something we're actively exploring, e.g. we've been assessing whether a gradual migration in the existing Dart plugin would make sense (https://github.com/flutter/dart-intellij-third-party/pull/278). Deciding on an initial feature set is also something we are considering, since we want to derisk our approach and make sure that we can fully replace our existing implementation with LSP.

Regarding your questions:
1. The draft PR I linked is the most recent work on this.
2. No target SDK in mind; the current LSP implementation in the analysis server is pretty stable.
3. No preference on code reuse at the moment!
4. This would probably be part of the project, finding good samples and validating that analysis works well on a variety of projects.


--
You received this message because you are subscribed to the Google Groups "dart-gsoc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dart-gsoc+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/dart-gsoc/aed1b679-39c0-4d96-a300-e688e44f91fbn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages