Skip to content

Basic LSP lifecycle #417

@onbjerg

Description

@onbjerg

Describe the feature

The foundation for a working LSP is the following, which we should implement:

  • Responding to lifecycle events (initialize, initialized, shutdown, exit)
  • Capability negotiation between server and client
  • An LSP config and basic config discovery (e.g. solar.toml and probably also parsing foundry.toml)
  • Basic text document management, i.e. textDocument/didOpen, textDocument/didChange, textDocument/didClose.
  • Parsing and lowering files when documents change, including in-memory only changes for documents that are managed by the LSP client, and publishing compiler diagnostics to the client.
  • Exposing the LSP over CLI (solar lsp).

Additional context

No response

Metadata

Metadata

Assignees

Labels

A-lspArea: LSPC-enhancementCategory: an issue proposing an enhancement or a PR with one

Projects

Status

In Progress

Relationships

None yet

Development

No branches or pull requests

Issue actions