Trabalhando com o QBS Build System no Visual Studio Code Editor

Olá colegas programadores e todos que simpatizam com eles. Eu gostaria de oferecer uma visão geral dos recursos do editor do Visual Studio Cod e em conjunto com o sistema de compilação QBS . Quem estiver interessado neste tópico, seja bem-vindo ao gato.



Nota: Deixe-me lembrar a você que o QBS foi desenvolvido pela Qt Company , que mais tarde abandonou o desenvolvimento deste produto e o deu para a comunidade. No momento, o QBS está desenvolvendo ativamente e novos lançamentos estão saindo. Este sou eu, caso não haja comentários "estúpidos" sobre essa partitura. Por assim dizer, pontuando o I.



Até recentemente, o sistema de construção QBS era suportado apenas no IDE QtCreator .



Mas agora há uma oportunidade de usar este maravilhoso sistema de construção (não vou descrever por que ele é maravilhoso aqui) com o editor de código aberto do Visual Studio Code .



Literalmente, há pouco mais de um mês, os caras da comunidade QBS tiveram uma ideia: "por que não criar um plug-in para o Visual Studio Code ?" Hmm, de fato, o próprio código do Visual Studio está difundido entre uma certa parte da humanidade e o QBS tem uma API semelhante a JSON especialmente projetada para simplificar a integração com qualquer IDE . E ... o trabalho começou a ferver.



Como resultado desse trabalho, nasceu a extensão QBS para Visual Studio Code , que já possui os seguintes recursos:



  • Abra o diretório com arquivos de projeto.
  • Selecione o projeto necessário para construir (se houver vários arquivos no diretório).
  • Selecione um perfil para montagem (análogo a um kit com compiladores).
  • Selecione a configuração de compilação ( depurar / liberar ).
  • Selecione um produto específico para construir (ou todos os produtos).
  • Selecione um produto específico para executar no terminal.
  • Selecione um produto específico para depurar.
  • O realce automático "inteligente" do código C / C ++ funciona.
  • O realce básico para arquivos * .qbs funciona .
  • Uma árvore de projeto com todos os artefatos está sendo construída.


Observação: no momento, essa extensão ainda não foi publicada no mercado de código do Visual Studio . ainda é necessário algum tempo para revisão.



Então, vamos dar uma olhada em como usar essa extensão.



Instalando dependências



Ele descreve o processo básico de instalação para QBS e Visual Studio Code .



  • Primeiro você precisa baixar ou instalar o próprio QBS, versão 1.16 ou superior. Para fazer isso, você pode usar o repositório oficial ou instalá-lo a partir dos repositórios.



    Observação: não descreverei o processo de instalação do QBS aqui .

  • Em seguida, você precisa configurar os perfis com os quais o QBS compilará projetos. Como fazer isso é descrito em detalhes na documentação .



    Para uma configuração rápida, você pode pedir ao QBS para detectar automaticamente todos os compiladores instalados e criar perfis:



    qbs setup-toolchains --detect


    UI config-ui, :



    qbs config --list profiles


    : , PATH.

  • , QBS .



    : *.vsix

  • , Visual Studio Code, QBS , ctrl+ shift + p «Extensions: Install from VSIX...» *.vsix .





Agora você precisa configurar a extensão instalada para o QBS funcionar. Para fazer isso, você precisa abrir as configurações desta extensão, selecionando "Arquivo -> Preferências -> Extensões" . Em seguida, selecione "QBS" , clique no botão "Gerenciar" e selecione "Configurações de extensão" .



  • Em seguida, você precisa especificar o caminho para o arquivo executável QBS no campo "Caminho QBS" , por exemplo:







    Nota: Use a barra / como separadores de caminho .

  • O resto dos parâmetros podem ser deixados "como estão" por enquanto.



Abrindo um projeto



Para abrir um projeto, você deve selecionar o diretório onde o arquivo de projeto * .qbs está localizado . Para fazer isso, selecione "Arquivo -> Abrir pasta" e selecione o diretório desejado.



Nota: Este parece ser um recurso deste editor.



Depois que o diretório é selecionado, a extensão QBS é automaticamente ativada e inicia a sessão QBS . O status da sessão atual será exibido na parte inferior do botão "QBS: started" na barra de ferramentas do editor:







Em seguida, a extensão listará todos os arquivos de projeto disponíveis * .qbsneste diretório e definirá o primeiro projeto que aparecer como o projeto padrão. O nome do arquivo do projeto atualmente ativo será exibido na parte inferior do botão correspondente na barra de ferramentas do editor:







Nota: O usuário pode clicar neste botão e selecionar outro arquivo de projeto deste diretório na lista suspensa.



Além disso, a extensão instalará por padrão o primeiro perfil disponível, definirá a configuração de construção para depurar e iniciará a varredura automática do projeto para construir o gráfico de construção.



O progresso da varredura (progresso em porcentagem) será exibido em uma notificação pop-up na parte inferior direita da tela:







Nota: Todo o andamento das operações, como varredura, construção, limpeza, será exibido nessas mensagens pop-up.



Além disso, a extensão cria duas janelas de "saída" para visualizar as mensagens atuais:



  • Saída de compilação do QBS - Exibe mensagens de operações básicas de varredura, construção e limpeza:





  • Saída de mensagem QBS - exibe mensagens de "serviço" (por exemplo, do código JS dos módulos QBS):







Depois que a digitalização do projeto for concluída com êxito, você pode alternar para a árvore do projeto fornecida pela extensão. Para fazer isso, clique no botão "QBS" no painel esquerdo do editor:







Nota: Neste caso, a árvore do projeto exibe todos os subprojetos, produtos, grupos e artefatos fornecidos pelo QBS após a digitalização do projeto.



Nota: O editor também exibe o diretório completo do projeto depois de abri-lo, mas esta não é a árvore fornecida por esta extensão, é uma função interna do próprio editor.



Construir o projeto



Para construir um projeto, você deve selecionar o perfil desejado, a configuração e o produto a ser construído.



  • A seleção de um perfil se resume a clicar no botão correspondente na parte inferior da barra de ferramentas do editor e selecionar o item desejado na lista de perfis disponíveis:







  • A seleção de uma configuração se resume a clicar no botão correspondente na parte inferior da barra de ferramentas do editor e selecionar o item desejado na lista de configurações disponíveis:







  • A seleção de um produto se resume a clicar no botão correspondente na parte inferior da barra de ferramentas do editor e selecionar o item desejado na lista de produtos disponíveis:







    Nota: O usuário pode selecionar [todos] para construir todos os produtos no projeto.





Para iniciar a construção em si, o usuário pode clicar no botão "Construir" na parte inferior da barra de ferramentas do editor:







Nota: O processo de construção será exibido na notificação suspensa e na caixa de mensagem de "saída".



Escolha de um produto para executar ou depurar



Para executar ou depurar um produto, você deve primeiro selecioná-lo. Para fazer isso, clique no botão correspondente na parte inferior da barra de ferramentas do editor e selecione o produto desejado na lista de disponíveis:







Neste caso, se o produto já estiver compilado e seu arquivo executável existir, os botões Executar e Depurar ficarão verdes:







Além disso, quando passando o mouse sobre o produto sendo lançado, uma dica de ferramenta será exibida contendo o caminho completo para o arquivo executável do produto:







Lançando o produto selecionado



Para iniciar o produto, basta clicar no botão "Executar" na parte inferior da barra de ferramentas do editor:







O produto será iniciado no terminal "QBS Executar" , que exibirá todas as mensagens de depuração do aplicativo em execução:







Depure o produto selecionado



Antes de depurar o produto, você precisa criar uma configuração do depurador, que deve ser armazenada no arquivo launch.json .



Nota: Mais detalhes sobre o formato deste arquivo podem ser encontrados na documentação oficial do editor.



Por padrão, a extensão QBS atual espera este arquivo no diretório .vscode / na raiz do projeto aberto. Mas este caminho para o arquivo launch.json pode ser alterado pelo usuário nas configurações do plugin.



Por exemplo, ao usar o depurador MSVC, este arquivo pode conter o seguinte conteúdo:



{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Debugger (Windows)",
            "type": "cppvsdbg",
            "request": "launch",
            "externalConsole": false
        }
    ]
}


Observação: a propriedade externalConsole deve ser definida como false se quisermos ver as mensagens de depuração do aplicativo na janela do depurador.



Nota: Este arquivo pode ter várias configurações para o mesmo ou diferentes depuradores (como MSVC, GDB, LLDB).



Depois que o arquivo launch.json foi criado e copiado para o local desejado, você precisa selecionar o depurador desejado na lista clicando no botão correspondente no canto inferior direito da barra de ferramentas do editor:







Agora você pode definir um ponto de interrupção no código-fonte do produto selecionado e clicar no botão "Depurar" na parte inferior da barra de ferramentas do editor:







Depois disso, você pode desfrutar da depuração:







Conclusão



Obviamente, esta revisão não cobre alguns outros aspectos do trabalho com o editor (por exemplo, trabalhar por meio de comandos) e também não fornece uma explicação para as opções de configuração do QBS . Você pode aprender mais sobre isso lendo a documentação que vem com a extensão e / ou a documentação QBS :



  • QBS Documentação : doc.qt.io/qbs/index.html
  • Documentação de extensão: github.com/denis-shienkov/vscode-qbs/tree/master/docs
  • Código-fonte da extensão: github.com/denis-shienkov/vscode-qbs
  • Versões de extensão: github.com/denis-shienkov/vscode-qbs/releases
  • Bug do rastreador de extensão: github.com/denis-shienkov/vscode-qbs/issues


Concluindo, gostaria de agradecer a todos que me ajudaram a testar esta extensão e sugeriram novas ideias.



Além disso, pedimos que você envie todos os erros, sugestões e correções para o bug tracker .



All Articles