Desenvolvimento Swift no Windows com WSL
Tags: ios, swift, windows, tutorial
Published: 2021-11-22 19:22:53

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

![Intelisense em swift](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kjwjut1fcs7za1higaf4.png)

## Requerimentos
- WSL2 - Para instalar basta ir em [http://aka.ms/wsl2](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/](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 `/usr` com os comandos:

```Bash
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.
![retorno do comando](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t7xu8t2016558yky2p27.png)

## 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.
```bash
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](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.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*.
![Abrindo o VS Code em WSL](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5b3r5urunx6dsfyujjxu.png)

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.
![SourceKit-LSP Plugin](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qeqcqaalofonnjfopo3q.png)
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.

![Swith no VS Code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uecazkbfedl8naa2jwa7.png)


## É 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](https://github.com/apple/sourcekit-lsp/tree/main/Editors)

{% user victormmello %}


![linha horizontal](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8bndcx2jkn1jz1dy98v.png)
# Disclaimer

A VaiVoa incentiva seus Desenvolvedores em seu processo de crescimento e aceleração técnica. Os artigos publicados não traduzem a opinião da VaiVoa. A publicação obedece ao propósito de estimular o debate.

![logo vaivoa](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1wmziqv74ghhgyi9p0om.png)