// Documentação do Singularity
Servidores de linguagem (LSP)
Um servidor de linguagem dá ao editor uma compreensão do teu código: analisa os ficheiros do projeto e responde aos pedidos de preenchimento automático, diagnóstico ou navegação do Singularity.
Para que serve um servidor de linguagem
O protocolo LSP separa o editor da ferramenta que compreende uma linguagem. O Singularity abre o teu ficheiro no CodeMirror e o servidor correspondente analisa o texto e o projeto. Não tens de configurar o protocolo: basta ativar o servidor da linguagem que usas.
Um servidor não executa o teu programa e não substitui o compilador nem os testes. As suas respostas são ajudas à edição; valida sempre o resultado com as ferramentas do projeto.
Linguagens suportadas
O painel LSP do Singularity 2.0.0 propõe exatamente 31 servidores:
- TypeScript e JavaScript; JSON; HTML; CSS, SCSS e Less
- Rust; Go; Python (Pyright); Python (Ruff); C e C++; Java
- Lua; TOML; YAML; Bash; Elixir; Ansible; Dart; Dockerfile
- GraphQL; Haskell; PHP; Kotlin; Markdown; C#; PowerShell
- Ruby; Swift; Svelte; Terraform; Vue; Zig
TypeScript/JavaScript, JSON, HTML e CSS estão ativados por predefinição. Os restantes servidores começam desativados. Python e YAML têm cada um dois servidores possíveis; a ordem de registo determina qual deles trata um ficheiro quando as extensões se sobrepõem.
Instalar um servidor
- Abre Settings e escolhe LSP.
- Verifica que a integração LSP geral está ativa.
- Ativa o interruptor da linguagem pretendida e abre um ficheiro correspondente.
A linha do servidor indica o seu modo de arranque. Para uma entrada npx, o npm descarrega, se necessário, a versão predefinida fixada para a sua cache gerida pelo npm. Para uma entrada marcada on PATH, o Singularity não descarrega nenhum binário: instala o servidor com a ferramenta recomendada pelo seu ecossistema e torna o seu comando acessível no PATH da aplicação.

Atualizar
O painel verifica as versões quando é aberto. Quando está tudo atualizado, Check for updates força uma nova verificação. Se houver várias versões disponíveis, expande Details para as analisar ou escolhe Update all para as instalar uma após a outra.
Uma versão fixada é a versão de referência declarada pelo Singularity: o recurso ao npx usa-a em vez de obter cegamente latest. Ainda assim, a verificação pode propor uma versão mais recente. A atualização dos servidores npx efetua uma instalação npm global; os servidores fornecidos pelo PATH têm de ser atualizados com o seu gestor habitual.
O que traz ao editor
As funcionalidades efetivamente ligadas são o preenchimento automático durante a escrita ou com Ctrl+Space, as informações ao passar o rato, a ajuda de assinatura, os diagnósticos, as ações rápidas, as sugestões em linha e o esquema de símbolos do documento.
O menu de contexto permite ir para a definição, para a definição de tipo ou para a implementação, procurar as referências, mudar o nome e formatar. A pesquisa de símbolos do projeto está disponível com Cmd+T no macOS ou Ctrl+T nos restantes sistemas. As importações automáticas, a formatação de uma seleção, os tokens semânticos e a pré-visualização integrada de uma definição não estão atualmente disponíveis.
Diagnosticar um servidor que não arranca
Abre Help → Open Logs Folder ou Help → Show Log File e procura as entradas com o âmbito lsp. Indicam, nomeadamente, uma falha de arranque, um erro de execução ou a saída de erro do servidor.
- Servidor
on PATH: o comando não está instalado ou oPATHvisível para o Singularity não o contém. - Servidor
npx: falta o Node.js, o npm ou o acesso ao registo npm. - O servidor está desativado, a integração LSP geral está desligada ou a extensão do ficheiro não corresponde.
- Dois servidores reivindicam a mesma extensão, nomeadamente para Python ou YAML.
- O projeto não contém a configuração ou o SDK esperado pelo servidor.
Depois de corrigir, fecha e volta a abrir o ficheiro. Para problemas mais gerais de arranque, registos ou ambiente, consulta Resolução de problemas.