Comparado com outras linguagens, o Swift fica para trás no desenvolvimento do LSP e recebe pouca atenção. Até agora, funções básicas como renomear não são suportadas. É impossível imaginar que esta seja uma linguagem multiplataforma
imagino que provavelmente seja porque a Apple já investiu pesadamente no XCode, então o SKLSP não recebeu muita atenção até muito recentemente. mas as coisas parecem estar melhorando em um ritmo encorajador, há apenas um ano o SKLSP estava completamente inutilizável, enquanto agora posso usá-lo na minha programação do dia a dia.
Embora as funções do SourceKit-LSP estejam disponíveis, as funções básicas do SourceKit-LSP são atrasadas e não melhoram a eficiência. Esperemos que Swift fique cada vez melhor
Como @taylorswift já mencionou, melhorar o SourceKit-LSP é uma questão de alocação de recursos. Dado um tempo infinito, eu certamente adoraria que o SourceKit-LSP suportasse todo o conjunto de recursos do LSP, não tivesse bugs e fosse o mais eficiente possível. Mas como o tempo é limitado, sempre há compensações a serem feitas entre o SourceKit-LSP e outros trabalhos. Observe que parte do trabalho que está sendo feito fora do repositório SourceKit-LSP beneficia diretamente o SourceKit-LSP – só para citar um exemplo, atualmente estou trabalhando para melhorar a correção do preenchimento de código em código inválido apple/swift#63717.
Observe também que Swift e SourceKit-LSP são projetos de código aberto, portanto, se você estiver interessado em melhorar o SourceKit-LSP, contribuições são sempre mais que bem-vindas. Se precisar de ajuda para começar, sinta-se à vontade para perguntar e ficaremos felizes em ajudar.
Por que o SourceKit-LSP consome tanta memória e trava com frequência na plataforma Linux?
Não posso responder a essas perguntas genéricas, mas gostaria de investigar por que ele está usando muita memória para você e quais travamentos você está vendo.
- Quanta memória é “memória demais”? “muito” é um termo bastante subjetivo e gostaria de colocar alguns números nele.
- Você tem um projeto específico para o qual o SourceKit-LSP usa muita memória? Se sim, você pode compartilhá-lo?
- Você tem etapas para reproduzir as falhas, de preferência se pudesse compartilhar o projeto também? Isso realmente nos ajudaria a entender o problema e corrigi-lo
- Se você não possui etapas de reprodução, você possui relatórios de falhas do SourceKit-LSP?
- E por último: Qual versão do SourceKit-LSP você está usando? Você pode tentar o Swift 5.9 mais recente ou os snapshots principais do Swift.org - Baixe o Swift e há uma chance de que as falhas já tenham sido corrigidas nele.
Eu realmente apreciaria se você pudesse enviar um relatório de bug em Faça login no GitHub · GitHub para os problemas que você está vendo.
Eu não diria que o SourceKitLSP no Linux consome muito mais memória do que o Xcode no macOS. Subjetivamente :)
Em relação às falhas - nos últimos dois anos desenvolvendo no Linux, nunca experimentei uma falha no servidor LSP que não fosse causada por uma falha na compilação noturna do próprio Swift. Versões de lançamento funcionaram perfeitamente para mim