Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.4.0

lsp_server_ce

Uma implementação Dart do Protocolo de Serviço de Linguagem. Este pacote pode ser usado para implementar um servidor que suporta o Protocolo de Serviço de Linguagem.

AndroidiOSLinuxmacOSWebWindows
Downloads em 30 dias
64,2 mil
Curtidas
0
Pontos Pub
130

Instalar pacote

flutter pub add lsp_server_ce

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Uma implementação em Dart do Protocolo de Servidor de Linguagem (LSP), permitindo que desenvolvedores criem servidores de linguagem que ofereçam recursos como conclusão de código, diagnósticos e refatoração em editores e IDEs. Este pacote suporta todas as principais plataformas e se integra perfeitamente a projetos Flutter. É destinado a autores de ferramentas que desejam expandir os recursos linguísticos em editores de texto usando padrões LSP.

Casos de uso

  • Criando servidores de linguagem personalizados para Dart ou outras linguagens
  • Integrando inteligência de código avançada em IDEs
  • Habilitar verificação de sintaxe em tempo real e sugestões
  • Criando extensões de editor com recursos linguísticos ricos
  • Suporte a fluxos de trabalho de desenvolvimento multiplataforma

Principais recursos

  • Compatibilidade completa com a especificação LSP
  • Suporte multiplataforma (Android, iOS, Linux, macOS, Web, Windows)
  • Integração fácil com aplicativos Flutter
  • Design modular para lógica de servidor de linguagem extensível
  • Tratamento integrado de mensagens LSP e protocolos de comunicação

Indicado para

  • Desenvolvedores de ferramentas Dart
  • criadores de plug-in para IDE
  • Implementadores de recursos de linguagem
  • Construtores de ferramentas de análise de código
  • equipes de desenvolvimento multiplataforma

Considerações

  • Requer conhecimento sobre o Protocolo de Servidor de Linguagem
  • Pode ser necessário configuração adicional para recursos linguísticos complexos
  • Mais indicado para desenvolvedores familiarizados com padrões de comunicação servidor-cliente
  • Não destinado a aplicações diretas para usuários finais
  • Depende da configuração correta para compatibilidade com o editor

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

LSP Server

This is a dart implementation of the Language Server Protocol and comes with all serializable objects defined in the specification (v3.17).

The interface also contains the event methods for Document synchronization as well as the Language Features.

Features

  • Life cycle methods

  • Language features

  • Generic registration of listeners for events and methods.

  • Generic methods to send events and requests

Getting started

To get a better understanding of how this work it can be useful to look at the official documentation and the similar implementations in node.

Full LSP spec definition.

LSP Guide for vscode.

LSP Example for vscode.

Usage

You can use any stream you want, stdio is commonly used and is easy to set up.

void main() async {
  // Create a connection that can read and write data to the LSP client.
  // Supply a readable and writable stream. In this case we are using stdio.
  // But you could use a socket connection or any other stream.
  var connection = Connection(stdin, stdout);

  // Register a listener for when the client initialzes the server.
  // You are suppose to respond with the capabilities of the server.
  // Some capabilities must be enabled by the client, you can see what the client
  // supports by inspecting the ClientCapabilities object, inside InitializeParams.
  connection.onInitialize((params) async {
    return InitializeResult(
      capabilities: ServerCapabilities(
        // In this example we are using the Full sync mode. This means the
        // entire document is sent in each change notification.
        textDocumentSync: const Either2.t1(TextDocumentSyncKind.Full),
      ),
    );
  });
}

Additional information

Who should use this? If you want to build a plugin for an editor that supports the LSP format, and you want to build the server in Dart, then this is the package for you. With this package you can implement features such as "linting", "go to reference", giving contextual information and more.

Todo

Implement the missing features from the protocol:

  • workspaces
  • window
  • notebook
  • client (dynamic capabilities)
  • trace

Categorias

Dependências

Lista de dependências 8 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.

Rankings