Desenvolvimento Swift no Windows com WSL

Victor Mello
3 min readNov 22, 2021

--

Com alguns plugins e o Language Server Protocol do Swift e Object-C é possível desenvolver em swift no Windows utilizando o VS Code.

Requerimentos

  • WSL2 — Para instalar basta ir em http://aka.ms/wsl2 e seguir as instruções.
  • VS Code — Ide que será utilizada.
  • Node — Para compilar a extensão do VS Code.

LSP para Swift

O LSP (Language Server Protocol) é o que permite o VS Code e outras IDEs proverem recursos como auto complete, lint e encontrar referencias para divérsas linguagens de programação.
Para utilizar um precisamos de um servidor LSP da linguagem, e o plugin na IDE.

O toolchain do swift prove um servidor LSP, e pode ser baixado em https://swift.org/download/ .
Baixe a mesma versão do seu linux. No meu caso Ubuntu 20.04

Para instalar todo o toolchain, basta copiar os arquivos para sua pasta /usrcom os comandos:

tar -xzf swift-5.5-RELEASE-ubuntu20.04.tar.gz
cd swift-5.5-RELEASE-ubuntu20.04/usr
sudo cp -r ./ /usr/

Para testar, execute o comando sourcekit-lsp -h. Deve ser retornado o help do mesmo.

Plugin do VS Code

Para o VS Code se comunicar com o servidor, é necessário um plugin.

Como o plugin compilado não é distribuído pela Apple, é necessário compilar o mesmo. Porem o processo é bem simples.

Basta rodar os comandos abaixo. Que irão baixar, compilar e instalar o plugin no seu VS Code.

git clone https://github.com/apple/sourcekit-lsp.git
cd sourcekit-lsp/Editors/vscode/
npm install
npm run dev-package
code --install-extension sourcekit-lsp-development.vsix

WSL e VS Code

Para que o VS Code se comunique com o linux em WSL, é necessário instalar a extensão Remote WSL

Com a Remote WSL instalada, clique no botão Open a Remote Window, no canto inferior esquerdo do VS Code.
Selecione New WSL Window ou Reopen Folder in WSL.

Com o WSL ativo, é necessário habilitar as extensões para também funcionarem em WSL.
Vá até Extensões, selecione SourceKit-LSP e clique na opção Install in WSL.

Agora, assim que um arquivo .swift for aberto, o servidor LSP do swift será iniciado e estará comunicando com o VS Code.

Rodando um .swift

Para rodar um código swift, recomendo a extensão formulahendry.code-runner.
Com Code Runner instalado no WSL, basta clicar no ícone de play ou apertar CTRL + ALT + N
com o arquivo aberto.

É possível rodar swift em outras IDEs

SIM! A ideia do LSP é ter um protocolo padrão para diversas IDEs darem suporte a mesma linguagem.

É possível encontrar mais detalhes de como rodar swift em outros editores no GitHub do sourcekit-lsp

--

--