Visual Studio Code (Português)
Visual Studio Code é um editor de texto de plataforma cruzada, livre e de código aberto (licenciado sob a licença MIT) desenvolvido pela Microsoft e escrito em JavaScript e TypeScript. Ele é construído sobre a estrutura Electron e é extensível usando extensões, que podem ser navegadas na web ou de dentro do próprio editor de texto. Enquanto o projeto é de código aberto, uma compilação proprietária (licenciada sob um Contrato de Licença de Usuário Final) também é fornecida pela Microsoft. Para obter uma explicação do licenciamento misto, consulte este comentário no GitHub.
Instalação
Os seguintes pacotes fornecem VSCode:
- code (lançamento de código aberto)
- visual-studio-code-binAUR (Lançamento da marca Microsoft)
- visual-studio-code-insiders-binAUR (Lançamento da marca Microsoft, atualizado diariamente)
- code-gitAUR (versão de código aberto em desenvolvimento)
- vscodium-binAUR (outra versão de código aberto com uma configuração padrão orientada pela comunidade)
Um servidor/módulo da Microsoft ptvsd (Python Tools for Visual Studio Debug) está disponível em python-ptvsdAUR.
Uso
Execute o code
para iniciar o aplicativo (ou code-git
ao usar o code-gitAUR).
Se, por qualquer motivo, você desejar iniciar várias instâncias do Visual Studio Code, o sinalizador -n
poderá ser usado.
Configuração
code armazena configurações em ~/.config/Code - OSS/User/settings.json
.
visual-studio-code-binAUR armazena configurações em ~/.config/Code/User/settings.json
.
Terminal Integrado
View > Integrated Terminal ou Ctrl + `
abre um terminal integrado.
Por padrão, Bash é usado sem argumentos adicionais, embora isso possa ser alterado.
terminal.integrated.shell.linux
define o shell padrão a ser usado e
terminal.integrated.shellArgs.linux
define os argumentos a serem passados para o shell.
Exemplo:
~/.config/Code/User/settings.json
"terminal.integrated.shell.linux": "/usr/bin/fish", "terminal.integrated.shellArgs.linux": ["-l","-d 3"]
Você pode enfrentar solicitações estranhas depois de definir os argumentos do shell integrado com terminal externo, remover a linha para resolver o problema ou usar um terminal externo.
Terminal externo
Se você estiver usando Terminator como terminal padrão para o Arch e tiver um erro no Código do Visual Studio: Não é possível iniciar o processo do depurador (vsdbg) através do terminal. spawn truecolor ENOENT
, você pode alterar o terminal que será usado pelo Visual Studio para outro terminal (por exemplo,gnome-terminal).
"terminal.external.linuxExec": "Your alternative terminal"
define o terminal padrão a ser usado para depuração da execução.
Exemplo:
~/.config/Code/User/settings.json
"terminal.external.linuxExec": "gnome-terminal"
Solução de problemas
O Visual Studio Code usa o DBus para passar o menu para o plasma, tente instalar libdbusmenu-glib
Não foi possível mover itens para a lixeira
Por padrão, Electron os aplicativos usam gio
para excluir arquivos. Diferentes implementações de lixo podem ser usadas configurando a variável de ambiente ELECTRON_TRASH
.
Por exemplo, para excluir arquivos no Plasma:
$ ELECTRON_TRASH=kioclient5 code
No momento da redação deste artigo, o Electron possui suporte a kioclient5
, kioclient
, trash-cli
, gio
(padrão) e gvfs-trash
(descontinuado). Mais informações estão disponíveis nesta página de documentação.
Falha ao depurar C#
Se você deseja depurar o C#.NET (usando a extensão OmniSharp), será necessário instalar o lançamento com a marca da Microsoft (do AUR). Aparentemente, isso ocorre porque o depurador do .NET Core é licenciado apenas para ser usado com os produtos oficiais da Microsoft - consulte esta discussão no GitHub
Ao usar o pacote de código aberto, a depuração falha bastante silenciosamente. O console de depuração mostrará apenas a mensagem inicial:
You may only use the Microsoft .NET Core Debugger (vsdbg) with Visual Studio Code, Visual Studio or Visual Studio for Mac software to help you develop and test your applications.
Para depurar com o pacote de código aberto, netcoredbgAUR pode ser usado. Para executá-lo no VS Code, adicione esta configuração à configuração de inicialização do .NET Core do projeto:
./.vscode/launch.json
"configurations": [ { ... "pipeTransport": { "pipeCwd": "${workspaceFolder}", "pipeProgram": "/usr/bin/bash", "pipeArgs": ["-c"], "debuggerPath": "/usr/bin/netcoredbg" } ...
Falha ao abrir .csproj com servidor OmniSharp, local inválido de Microsoft.Common.props
É necessário alternar dos adereços da versão mono para os adequados da versão SDK:
/opt/dotnet/sdk/{VERSION}/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props
$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props
Modifique a importação para ficar assim:
/opt/dotnet/sdk/{VERSION}/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props
/opt/dotnet/sdk/{VERSION}/Current/Microsoft.Common.props
Erro do OmniSharp que "MSBuild cannot be located"
Notou-se na introdução do OmniSharp que os usuários do Arch Linux devem instalar o pacote mono-msbuild. Sem ele, você pode receber um erro como:
OmniSharp Log
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator Registered MSBuild instance: StandAlone 15.0 - "~/.vscode/extensions/ms-vscode.csharp-1.18.0/.omnisharp/1.32.11/omnisharp/msbuild/15.0/Bin" MSBuildExtensionsPath = /usr/lib/mono/xbuild BypassFrameworkInstallChecks = true CscToolPath = ~/.vscode/extensions/ms-vscode.csharp-1.18.0/.omnisharp/1.32.11/omnisharp/msbuild/15.0/Bin/Roslyn CscToolExe = csc.exe MSBuildToolsPath = ~/.vscode/extensions/ms-vscode.csharp-1.18.0/.omnisharp/1.32.11/omnisharp/msbuild/15.0/Bin TargetFrameworkRootPath = /usr/lib/mono/xbuild-frameworks System.TypeLoadException: Could not load type of field 'OmniSharp.MSBuild.ProjectManager:_queue' (13) due to: Could not load file or assembly 'System.Threading.Tasks.Dataflow, Version=4.5.24.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. ...
Você pode construir de qualquer maneira (possivelmente dependendo se você tem o mono instalado)
Não é possível salvar com "Retry as Sudo"
Esse recurso não funciona no pacote code, porque a Microsoft não suporta a maneira como o pacote Arch é empacotado (nativo em vez do Electron incluído). Veja FS#61516 e o relatório de erro do upstream para obter mais informações.
O lançamento binário visual-studio-code-binAUR não possui esse problema, e o recurso funciona lá.
Variantes de teclado ou mapeamentos de teclas não funcionam
Conforme a wiki no GitHub:
- A mudança de layouts de teclado em alguns gerenciadores de janelas Linux não resulta em uma alteração nas APIs de janelas X de baixo nível que o VS Code usa para ler o layout atual do teclado. Isso significa que o VS Code acaba lendo um dos outros layouts de teclado configurados e não o ativo atual. PR são bem-vindas...
Conforme a wiki, há duas soluções possíveis:
- certifique-se que
setxkbmap -query
como o primeiro layout de teclado aquele que você deseha usar no VS Code. - use
"keyboard.dispatch": "keyCode"
em suas configurações e reinicie o VS Code. Isso é para impedir o VS Code de tentar determinar seu layout de teclado.
Comando 'remote-containers.openFolder' não encontrado
Abra VS Code ativando a API de contêineres remotos conforme comentado em FS#63374
$ code-oss --enable-proposed-api ms-vscode-remote.remote-containers
Instalar o pacote de código aberto code pode carecer de APIs propostas necessárias habilitadas por padrão, as quais permitiriam suporte à extrensão VS Live Share, resultando no erro
[VS Code] [ms-vsliveshare.vsliveshare]: Proposed API is only available when running out of dev or with the following command line switch: --enable-proposed-api ms-vsliveshare.vsliveshare
Conforme a documentação da Microsoft, há algumas poucas soluções possíveis:
- Instalar os pacotes com a marca da Microsoft: visual-studio-code-binAUR, visual-studio-code-insiders-binAUR
- Adicionar as seguintes entradas à seção
extensionAllowedProposedApi
no arquivoproduct.json
(code o instalausr/lib/code/product.json
)
"extensionAllowedProposedApi": [ "ms-vsliveshare.vsliveshare", "ms-vscode.node-debug", "ms-vscode.node-debug2" ]