dwww Home | Show directory contents | Find package

<FILENAME filename="index.html"><html><head><title>Manual do KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="description" content="O KDevelop é um Ambiente de Desenvolvimento Integrado para ser usado em uma grande variedade de tarefas de programação."><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="next" href="what-is-kdevelop.html" title="Capítulo 1. O que é o KDevelop?"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Manual do <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="what-is-kdevelop.html">Próxima</a></td></tr></table></div><div id="contentBody"><div lang="pt-BR" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="kdevelop"></a>Manual do <span class="application">KDevelop</span></h1></div><div><div class="authorgroup"><p class="author"><span class="firstname">Esta documentação foi convertida a partir da Base de Usuários do KDE, da página <a class="ulink" href="http://userbase.kde.org/KDevelop4/Manual" target="_top">KDevelop4/Manual</a>.</span> <span class="surname"></span> </p><span class="othercredit"><span class="contrib">Tradução</span>: <span class="firstname">Marcus</span> <span class="surname">Gama</span><br></span><span class="othercredit"><span class="contrib">Tradução</span>: <span class="firstname">André Marcelo</span> <span class="surname">Alvarenga</span><br></span></div></div><div>revisão <span class="releaseinfo"><span class="application">KDevelop</span> 4.4 (<span class="orgname">KDE<br></span> 4.9) (<span class="date">19/08/2012</span>)</span></div><div><p><a href="help:/kdoctools5-common/fdl-notice.html">Nota Legal</a></p></div><div><div><div class="abstract"><p>O <span class="application">KDevelop</span> é um Ambiente de Desenvolvimento Integrado para ser usado em uma grande variedade de tarefas de programação.</p></div></div></div></div><hr></div><div class="toc"><p><b>Índice</b></p><dl class="toc"><dt><span class="chapter"><a href="what-is-kdevelop.html">1. O que é o <span class="application">KDevelop</span>?</a></span></dt><dt><span class="chapter"><a href="sessions-and-projects--the-basics-of-kdevelop.html">2. Sessões e projetos: O básico do <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="sessions-and-projects--the-basics-of-kdevelop.html#terminology">Terminologia</a></span></dt><dt><span class="sect1"><a href="setting-up-a-session-and-importing-an-existing-project.html">Configurar uma sessão e importar um projeto existente</a></span></dt><dd><dl><dt><span class="sect2"><a href="setting-up-a-session-and-importing-an-existing-project.html#option-1--importing-a-project-from-a-version-control-system-server">Opção 1: Importar um projeto de um sistema de controle de versões</a></span></dt><dt><span class="sect2"><a href="setting-up-a-session-and-importing-an-existing-project.html#option-2--importing-a-project-that-is-already-on-your-hard-drive">Opção 2: Importar um projeto que já exista no seu disco rígido</a></span></dt></dl></dd><dt><span class="sect1"><a href="setting-up-an-application-as-a-second-project.html">Configurar uma aplicação como um segundo projeto</a></span></dt><dt><span class="sect1"><a href="creating-projects-from-scratch.html">Criar projetos do zero</a></span></dt></dl></dd><dt><span class="chapter"><a href="working-with-source-code.html">3. Trabalhar com o código-fonte</a></span></dt><dd><dl><dt><span class="sect1"><a href="working-with-source-code.html#tools-and-views">Ferramentas e visões</a></span></dt><dt><span class="sect1"><a href="exploring-source-code.html">Explorar o código-fonte</a></span></dt><dd><dl><dt><span class="sect2"><a href="exploring-source-code.html#local-information">Informação local</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#file-scope-information">Informação de âmbito do arquivo</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#project-and-session-scope-information">Informação ao nível do projeto e da sessão</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#rainbow-color-highlighting-explained">O realce do arco-íris explicado</a></span></dt></dl></dd><dt><span class="sect1"><a href="navigating-in-source-code.html">Navegar pelo código-fonte</a></span></dt><dd><dl><dt><span class="sect2"><a href="navigating-in-source-code.html#local-navigation">Navegação local</a></span></dt><dt><span class="sect2"><a href="navigating-in-source-code.html#file-scope-navigation-and-outline-mode">Navegação ao nível do arquivo e modo de contorno</a></span></dt><dt><span class="sect2"><a href="navigating-in-source-code.html#project-and-session-scope-navigation--semantic-navigation">Navegação ao nível do projeto e sessão. Navegação semântica</a></span></dt></dl></dd><dt><span class="sect1"><a href="writing-source-code.html">Escrever código-fonte</a></span></dt><dd><dl><dt><span class="sect2"><a href="writing-source-code.html#auto-completion">Complementação automática</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#adding-new-classes-and-implementing-member-functions">Adicionar classes novas e implementar as funções-membro</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#documenting-declarations">Documentar as declarações</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#renaming-variables-functions-and-classes">Renomear as variáveis, funções e classes</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#code-snippets">Trechos de código</a></span></dt></dl></dd><dt><span class="sect1"><a href="modes-and-working-sets.html">Modos e conjuntos de trabalho</a></span></dt><dt><span class="sect1"><a href="some-useful-keyboard-shortcuts.html">Algumas combinações de teclas úteis</a></span></dt></dl></dd><dt><span class="chapter"><a href="code-generation-with-templates.html">4. Geração de código com modelos</a></span></dt><dd><dl><dt><span class="sect1"><a href="code-generation-with-templates.html#creating-a-new-class">Criar uma nova classe</a></span></dt><dt><span class="sect1"><a href="creating-a-new-unit-test.html">Criar um novo teste unitário</a></span></dt><dt><span class="sect1"><a href="other-files.html">Outros arquivos</a></span></dt><dt><span class="sect1"><a href="managing-templates.html">Gerenciando modelos</a></span></dt></dl></dd><dt><span class="chapter"><a href="building-compiling-projects-with-custom-makefiles.html">5. Compilar os projetos com Makefiles personalizados</a></span></dt><dd><dl><dt><span class="sect1"><a href="building-compiling-projects-with-custom-makefiles.html#building-individual-makefile-targets">Compilar os alvos individuais do Makefile</a></span></dt><dt><span class="sect1"><a href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Selecionar uma coleção de alvos do Makefile para uma compilação repetida</a></span></dt><dt><span class="sect1"><a href="what-to-do-with-error-messages.html">O que fazer com as mensagens de erro</a></span></dt></dl></dd><dt><span class="chapter"><a href="running-programs-in-kdevelop.html">6. Executar os programas no <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="running-programs-in-kdevelop.html#setting-up-launches-in-kdevelop">Configurar os lançamentos no <span class="application">KDevelop</span></a></span></dt><dt><span class="sect1"><a href="some-useful-keyboard-shortcuts0.html">Algumas combinações de teclas úteis</a></span></dt></dl></dd><dt><span class="chapter"><a href="debugging-programs-in-kdevelop.html">7. Depurar os programas no <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="debugging-programs-in-kdevelop.html#running-a-program-in-the-debugger">Executar um programa no depurador</a></span></dt><dt><span class="sect1"><a href="attaching-the-debugger-to-a-running-process.html">Associar o depurador a um processo em execução</a></span></dt><dt><span class="sect1"><a href="some-useful-keyboard-shortcuts1.html">Algumas combinações de teclas úteis</a></span></dt></dl></dd><dt><span class="chapter"><a href="working-with-version-control-systems.html">8. Lidar com sistemas de controle de versões</a></span></dt><dt><span class="chapter"><a href="customizing-kdevelop.html">9. Personalizar o <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="customizing-kdevelop.html#customizing-the-editor">Personalizar o editor</a></span></dt><dt><span class="sect1"><a href="customizing-code-indentation.html">Personalizar a indentação do código</a></span></dt><dt><span class="sect1"><a href="customizing-keyboard-shortcuts.html">Personalizar os atalhos de teclado</a></span></dt><dt><span class="sect1"><a href="customizing-code-auto-completion.html">Personalizar a complementação automática do código</a></span></dt></dl></dd><dt><span class="chapter"><a href="building-kdevelop-from-sources.html">10. Compilar o <span class="application">KDevelop</span> a partir do código-fonte</a></span></dt><dd><dl><dt><span class="sect1"><a href="building-kdevelop-from-sources.html#requirements">Requisitos</a></span></dt><dt><span class="sect1"><a href="install-for-all-users.html">Instalar para todos os usuários</a></span></dt><dt><span class="sect1"><a href="install-for-local-user.html">Instalar para o usuário local</a></span></dt></dl></dd><dt><span class="chapter"><a href="credits.html">11. Créditos e licença</a></span></dt></dl></div><FILENAME filename="what-is-kdevelop.html"><html><head><title>Capítulo 1. O que é o KDevelop?</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="index.html" title="Manual do KDevelop"><link rel="next" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sessões e projetos: O básico do KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> O que é o <span class="application">KDevelop</span>?</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="sessions-and-projects--the-basics-of-kdevelop.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="what-is-kdevelop"></a>Capítulo 1. O que é o <span class="application">KDevelop</span>?</h1></div></div></div><p>O <a class="ulink" href="http://www.KDevelop.org" target="_top"><span class="application">KDevelop</span></a> é um ambiente de desenvolvimento integrado (IDE) para o C++ (e outras linguagens) e que é uma das muitas <a class="ulink" href="http://www.kde.org/applications/" target="_top">aplicações do KDE</a>. Como tal, é executado em <span class="trademark">Linux</span>® (mesmo que execute um dos outros ambientes de trabalho, como o GNOME) mas também está disponível para outras variantes do <span class="trademark">UNIX</span>® e para o Windows.</p><p>O <span class="application">KDevelop</span> oferece todas as capacidades dos IDEs modernos. Para grandes projetos e aplicações, a funcionalidade mais importante é que o <span class="application">KDevelop</span> <span class="emphasis"><em>compreenda o C++</em></span>: ele processa toda a base de código e recorda todas as funções-membro das classes, onde são definidas as variáveis, quais são os seus tipos, entre muitas outras coisas sobre o seu código. Por exemplo, imaginemos que um dos arquivos de inclusão do seu projeto declare uma classe</p><pre class="programlisting">class Carro {
  // ...
  public:
    std::string cor () const;
};
</pre><p>
</p><p>e depois no seu programa você tem</p><pre class="programlisting">Carro meu_carro;
// ...fazer alguma coisa com essa variável...
std::string cor = meu_carro.co
</pre><p>
</p><p>ele terá recordado que o <code class="varname">meu_carro</code> da última linha é uma variável do tipo <code class="varname">Carro</code> e se oferecerá para completar o <code class="varname">co</code> como <code class="varname">cor()</code>, uma vez que esta é a única função-membro da classe <code class="varname">Carro</code> que começa desta forma. Em vez de continuar a escrever, poderá pressionar <span class="keycap"><strong>Enter</strong></span> para obter a palavra completa; isto economiza digitação, erros e faz com que você não precise recordar os nomes exatos das centenas ou milhares de funções e classes que compõem os grandes projetos.</p><p>Como um segundo exemplo, considere que você possui um código como o seguinte:</p><pre class="programlisting">double xpto ()
{
  double var = funcao();
 return var * var;
}
double xpto2 ()
{
  double var = funcao();
  return var * var * var;
}
</pre><p>Se você passar o mouse sobre o símbolo <code class="varname">var</code> na função <code class="varname">xpto2</code>, irá obter uma opção para ver todos os usos deste símbolo. Se clicar nele, somente será mostrado os usos desta variável na função <code class="varname">xpto2</code>, porque o <span class="application">KDevelop</span> compreende que a variável <code class="varname">var</code> na função <code class="varname">xpto</code> não tem nada a ver com ela. Da mesma forma, se clicar com o botão direito no nome da variável, poderá mudar seu nome; se o fizer, só irá tocar na variável em <code class="varname">xpto2</code>, mas não em <code class="varname">xpto</code>.</p><p>Mas o <span class="application">KDevelop</span> não é apenas um editor de código inteligente; existem outras coisas que o <span class="application">KDevelop</span> faz bem. Obviamente, ele realça o código-fonte com diferentes cores; tem uma indentação personalizada; tem uma interface integrada com o depurador <span class="application">gdb</span> da GNU; pode lhe mostrar a documentação de uma função se passar o mouse sobre um uso desta função; poderá lidar com diferentes tipos de ambientes de compilação e compiladores (por exemplo com o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">make</span></span> e o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">cmake</span></span>), entre muitas outras coisas boas que serão discutidas neste manual.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="sessions-and-projects--the-basics-of-kdevelop.html">Próxima</a></td></tr><tr><td class="prevCell">Manual do <span class="application">KDevelop</span> </td><td class="upCell"> </td><td class="nextCell"> Sessões e projetos: O básico do <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="sessions-and-projects--the-basics-of-kdevelop.html"><html><head><title>Capítulo 2. Sessões e projetos: O básico do KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="what-is-kdevelop.html" title="Capítulo 1. O que é o KDevelop?"><link rel="next" href="setting-up-a-session-and-importing-an-existing-project.html" title="Configurar uma sessão e importar um projeto existente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Sessões e projetos: O básico do <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-is-kdevelop.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="setting-up-a-session-and-importing-an-existing-project.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sessions-and-projects--the-basics-of-kdevelop"></a>Capítulo 2. Sessões e projetos: O básico do <span class="application">KDevelop</span></h1></div></div></div><p>Nesta seção, iremos passar por alguma da terminologia de como o <span class="application">KDevelop</span> vê o mundo e como ele estrutura o trabalho. Em particular, iremos introduzir o conceito de <span class="emphasis"><em>sessões</em></span> e <span class="emphasis"><em>projetos</em></span>, assim como explicar como poderá configurar os projetos com que deseja trabalhar no <span class="application">KDevelop</span>.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="terminology"></a>Terminologia</h2></div></div></div><p>O <span class="application">KDevelop</span> tem o conceito de <span class="emphasis"><em>sessões</em></span> e <span class="emphasis"><em>projetos</em></span>. Uma sessão contém todos os projetos que possam ter alguma coisa a ver entre si. Para os exemplos que se seguem, assuma que é um programador de uma biblioteca e de uma aplicação que a usa. Você poderá pensar nas bibliotecas de base do KDE como o primeiro caso e o <span class="application">KDevelop</span> como o segundo. Outro exemplo: imagine que é um programador do 'kernel' do <span class="trademark">Linux</span>® mas que está também trabalhando num controlador de dispositivo do <span class="trademark">Linux</span>® que ainda não foi reunido com a árvore de código do 'kernel'.</p><p>Assim, pegando o último exemplo, você teria uma sessão no <span class="application">KDevelop</span> com dois projetos: o 'kernel' do <span class="trademark">Linux</span>® e o controlador do dispositivo. Você desejará agrupá-los numa única sessão (em vez de ter duas sessões com um projeto em cada uma), porque será útil poder ver as funções e estruturas de dados do 'kernel' no <span class="application">KDevelop</span> sempre que escrever código para o controlador — por exemplo, para que possa ver os nomes das funções e variáveis do 'kernel' automaticamente expandidas ou para que possa ver a documentação das funções do 'kernel' enquanto programa o controlador.</p><p>Agora imagine que também é um programador do KDE. Então iria ter uma segunda sessão que tivesse o KDE como um projeto. Você poderia em princípio ter apenas uma sessão para tudo isto, mas não existe nenhuma razão real para tal: no seu trabalho com o KDE, não precisa acessar às funções do 'kernel' ou do controlador de dispositivos; da mesma forma, também não irá querer os nomes das classes do KDE expandidos automaticamente quando estiver trabalhando no 'kernel' do <span class="trademark">Linux</span>®. Finalmente, a compilação de algumas das bibliotecas do KDE é independente da recompilação do 'kernel' do <span class="trademark">Linux</span>® (embora, contudo, seja normal compilar o 'kernel' do <span class="trademark">Linux</span>® quando estiver compilando o controlador do dispositivo, caso alguns dos arquivos do 'kernel' tenham mudado).</p><p>Finalmente, outro uso para as sessões é se você trabalha tanto na versão atualmente em desenvolvimento de um projeto como noutra versão em paralelo: nesse caso, não irá querer que o <span class="application">KDevelop</span> confunda as classes que pertencem à versão principal com as da alternativa, assim você terá duas sessões com o mesmo conjunto de projetos, mas com pastas diferentes (correspondendo a diferentes ramificações de desenvolvimento).</p></div><FILENAME filename="setting-up-a-session-and-importing-an-existing-project.html"><html><head><title>Configurar uma sessão e importar um projeto existente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sessões e projetos: O básico do KDevelop"><link rel="prev" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sessões e projetos: O básico do KDevelop"><link rel="next" href="setting-up-an-application-as-a-second-project.html" title="Configurar uma aplicação como um segundo projeto"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Configurar uma sessão e importar um projeto existente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="sessions-and-projects--the-basics-of-kdevelop.html">Anterior</a></td><td class="upCell">Sessões e projetos: O básico do <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="setting-up-an-application-as-a-second-project.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setting-up-a-session-and-importing-an-existing-project"></a>Configurar uma sessão e importar um projeto existente</h2></div></div></div><p>Vamos continuar com o exemplo do 'kernel' do <span class="trademark">Linux</span>® e do controlador do dispositivo — você poderá querer substituir o seu conjunto próprio de bibliotecas ou projetos para estes dois exemplos. Para criar uma nova sessão que contenha estes dois projetos, vá para <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Sessão</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Iniciar uma nova sessão</span></span> no menu superior e à esquerda (ou, se for a primeira vez que usar o <span class="application">KDevelop</span>: basta usar a sessão padrão que obtém na primeira utilização, que está vazia).</p><p>Iremos querer preencher esta sessão com projetos que, para agora, consideramos que já existem em algum local (o caso de iniciar os projetos do zero é discutido em outro ponto do manual). Para isso, existem essencialmente dois métodos, dependendo se o projeto já existe em algum local do seu disco ou se precisa de ser transferido a partir de um servidor.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="option-1--importing-a-project-from-a-version-control-system-server"></a>Opção 1: Importar um projeto de um sistema de controle de versões</h3></div></div></div><p>Iremos considerar que o projeto que desejamos configurar — o 'kernel' do <span class="trademark">Linux</span>® — reside em algum sistema de controle de versões num servidor, mas que ainda não foi baixado para o seu disco rígido local. Nesse caso, vá para o menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projeto</span></span> para criar o 'kernel' do <span class="trademark">Linux</span>® como um projeto dentro da sessão atual e depois siga estes passos:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Vá para <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projetos</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Obter o projeto</span></span> para importar um projeto </p></li><li class="listitem"><p>Você terá várias opções para iniciar um projeto novo na sessão atual, dependendo de onde vêm os arquivos de origem: poderá simplesmente indicar ao <span class="application">KDevelop</span> uma pasta existente (veja a opção 2 abaixo) ou poderá pedir ao <span class="application">KDevelop</span> para obter a listagem de um repositório. </p></li><li class="listitem"><p>Considerando que você não possui já uma versão extraída do servidor: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Na janela, em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Selecionar a origem</span></span>, opte por usar o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Git</span></span> ou alguma das outras opções </p></li><li class="listitem"><p>Selecione uma pasta de trabalho como destino para onde será extraído o código </p></li><li class="listitem"><p>Escolha a URL da localização no repositório onde se podem obter os arquivos de código </p></li><li class="listitem"><p>Clique em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Obter</span></span>. Isto poderá levar bastante tempo, dependendo da velocidade da sua conexão e do tamanho do projeto. Infelizmente, no <span class="application">KDevelop</span> 4.2.x, a barra de progresso não mostra nada de fato, mas você poderá seguir a evolução se olhar periodicamente para o resultado do comando do console </p><pre class="screen">du -sk <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>/local/do/projeto/<span class="application">KDevelop</span></code></em></span></pre><p> para ver quantos dados já foram transferidos. </p></li></ul></div><p>
</p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>O problema com a barra de progresso foi comunicado como sendo o <a class="ulink" href="http://bugs.kde.org/show_bug.cgi?id=256832" target="_top">erro 256832 do <span class="application">KDevelop</span></a>.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Neste processo, obtenho também a mensagem de erro <span class="emphasis"><em>Você precisa indicar uma localização válida para o projeto</em></span>; ela poderá ser ignorada sem problemas.</p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Será solicitado para que você selecione um arquivo de projeto do <span class="application">KDevelop</span> nesta pasta. Uma vez que provavelmente você não terá ainda nenhum definido, basta clicar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Seguinte</span></span> </p></li><li class="listitem"><p>Clique em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Seguinte</span></span> de novo </p></li><li class="listitem"><p>O <span class="application">KDevelop</span> então solicitará para que você escolha um gerenciador de projeto. Se este projeto usar os arquivos do 'make' do <span class="trademark">UNIX</span>®, escolha o gerenciador de projetos com 'makefiles' personalizados </p></li><li class="listitem"><p>O <span class="application">KDevelop</span> começará então a processar todo o projeto. Mais uma vez, irá levar bastante tempo percorrendo todos os arquivos e a indexando as classes, <abbr class="abbrev">etc.</abbr> Na parte inferior direita da janela principal, existe uma barra de progresso que mostra o quanto este processo já percorreu (se tiver vários processadores, você poderá acelerar este processo se for à opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configurações</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurar o <span class="application">KDevelop</span></span></span> e selecionar o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Processador em segundo plano</span></span> à esquerda, aumentando o número de tarefas de processamento em segundo plano à direita.) </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="option-2--importing-a-project-that-is-already-on-your-hard-drive"></a>Opção 2: Importar um projeto que já exista no seu disco rígido</h3></div></div></div><p>Em alternativa, se o projeto com que deseja trabalhar já existir no seu disco rígido (por exemplo, porque o transferiu como um arquivo 'tar' de um servidor de FTP, porque já obteve uma versão do projeto a partir de um sistema de controle de versões ou porque é o seu próprio projeto existente <span class="emphasis"><em>apenas</em></span> no seu próprio disco rígido), então use <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projetos</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Abrir/Importar um projeto</span></span> e, na janela que aparece, escolha a pasta onde se encontra o seu projeto.</p></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="sessions-and-projects--the-basics-of-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="setting-up-an-application-as-a-second-project.html">Próxima</a></td></tr><tr><td class="prevCell">Sessões e projetos: O básico do <span class="application">KDevelop</span> </td><td class="upCell">Sessões e projetos: O básico do <span class="application">KDevelop</span></td><td class="nextCell"> Configurar uma aplicação como um segundo projeto</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="setting-up-an-application-as-a-second-project.html"><html><head><title>Configurar uma aplicação como um segundo projeto</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sessões e projetos: O básico do KDevelop"><link rel="prev" href="setting-up-a-session-and-importing-an-existing-project.html" title="Configurar uma sessão e importar um projeto existente"><link rel="next" href="creating-projects-from-scratch.html" title="Criar projetos do zero"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Configurar uma aplicação como um segundo projeto</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-a-session-and-importing-an-existing-project.html">Anterior</a></td><td class="upCell">Sessões e projetos: O básico do <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="creating-projects-from-scratch.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setting-up-an-application-as-a-second-project"></a>Configurar uma aplicação como um segundo projeto</h2></div></div></div><p>A próxima ação que você desejará fazer é configurar outros projetos na mesma sessão. No exemplo acima, poderá querer adicionar o controlador do dispositivo como segundo projeto, o que poderá ser feito usando exatamente os mesmos passos.</p><p>Se você tiver várias aplicações ou bibliotecas, basta repetir os passos para adicionar cada vez mais projetos à sua sessão.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-a-session-and-importing-an-existing-project.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="creating-projects-from-scratch.html">Próxima</a></td></tr><tr><td class="prevCell">Configurar uma sessão e importar um projeto existente </td><td class="upCell">Sessões e projetos: O básico do <span class="application">KDevelop</span></td><td class="nextCell"> Criar projetos do zero</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="creating-projects-from-scratch.html"><html><head><title>Criar projetos do zero</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sessões e projetos: O básico do KDevelop"><link rel="prev" href="setting-up-an-application-as-a-second-project.html" title="Configurar uma aplicação como um segundo projeto"><link rel="next" href="working-with-source-code.html" title="Capítulo 3. Trabalhar com o código-fonte"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Criar projetos do zero</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-an-application-as-a-second-project.html">Anterior</a></td><td class="upCell">Sessões e projetos: O básico do <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="working-with-source-code.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-projects-from-scratch"></a>Criar projetos do zero</h2></div></div></div><p>Existe obviamente também a possibilidade de iniciar um novo projeto do zero. Isso pode ser feito usando a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projetos</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Novo a partir de modelo...</span></span>, que exibirá para você uma janela para seleção de modelo. Alguns modelos de projeto são fornecidos com o <span class="application">KDevelop</span>, mas muitos outros estão disponíveis ao instalar o aplicativo <span class="application">KAppTemplate</span>. Selecione o tipo de projeto e linguagem de programação a partir da janela, insira um nome e localização para o seu projeto e clique em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Próximo</span></span>. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-project-dialog.png"></div></div><p>
</p><p>A segunda página da janela permite que você configure um sistema de controle de versões. Selecione o sistema que deseja usar e preencha as configurações específicas do sistema se necessário. Se você não deseja usar um sistema de controle de versões ou deseja configurá-lo manualmente mais tarde, selecione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Nenhum</span></span>. Quando estiver satisfeito com suas opções, pressione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Terminar</span></span>. </p><p>Agora, seu projeto foi criado, de modo que você pode tentar compilá-lo ou instalá-lo. Alguns modelos incluirão comentários no código, ou até mesmo um arquivo README separado, e é recomendável que você leia estas informações inicialmente. Então, você pode iniciar a trabalhar em seu projeto, adicionando as funcionalidades que desejar. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-an-application-as-a-second-project.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="working-with-source-code.html">Próxima</a></td></tr><tr><td class="prevCell">Configurar uma aplicação como um segundo projeto </td><td class="upCell">Sessões e projetos: O básico do <span class="application">KDevelop</span></td><td class="nextCell"> Trabalhar com o código-fonte</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-is-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="setting-up-a-session-and-importing-an-existing-project.html">Próxima</a></td></tr><tr><td class="prevCell">O que é o <span class="application">KDevelop</span>? </td><td class="upCell"> </td><td class="nextCell"> Configurar uma sessão e importar um projeto existente</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="working-with-source-code.html"><html><head><title>Capítulo 3. Trabalhar com o código-fonte</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="creating-projects-from-scratch.html" title="Criar projetos do zero"><link rel="next" href="exploring-source-code.html" title="Explorar o código-fonte"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Trabalhar com o código-fonte</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-projects-from-scratch.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="exploring-source-code.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="working-with-source-code"></a>Capítulo 3. Trabalhar com o código-fonte</h1></div></div></div><p>Além da depuração, a leitura e escrita de código será onde irá gastar mais tempo desenvolvendo as aplicações. Para isso, o <span class="application">KDevelop</span> oferece várias formas de explorar o código-fonte e de tornar mais produtiva a escrita do mesmo. Como será discutido com mais detalhes nas seções a seguir, o <span class="application">KDevelop</span> não é apenas um editor de código — em vez disso, é um sistema de gerenciamento de código que lhe dá diferentes visões sobre a informação extraída dos arquivos que compõem o código-fonte da sua sessão.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tools-and-views"></a>Ferramentas e visões</h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-7.png"><div class="caption"><p></p></div></div></div><p>Para lidar com os projetos, o <span class="application">KDevelop</span> tem o conceito de <span class="emphasis"><em>ferramentas</em></span>. Uma ferramenta oferece uma visão em particular sobre o código ou uma ação a efetuar sobre ele. As ferramentas são representadas como botões em torno da sua janela (com texto vertical ao longo das margens esquerda e direita ou ainda horizontalmente, ao longo da margem inferior). Se clicar nelas, as mesmas serão expandidas para uma subjanela — uma <span class="emphasis"><em>área ou visão</em></span> — dentro da janela principal; se clicar no botão de ferramentas de novo, a subjanela desaparece.</p><p>Para fazer uma subjanela desaparecer, você também poderá clicar no <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">x</span></span> existente no canto superior direito da subjanela</p><p>A imagem acima mostra uma seleção em particular das ferramentas, alinhadas ao longo das margens esquerda e direita; na imagem, a ferramenta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classes</span></span> está aberta à esquerda e os <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Trechos</span></span> à direita, em conjunto com um editor de um arquivo de código no meio. Na prática, na maior parte do tempo você terá provavelmente apenas o editor e talvez a ferramenta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classes</span></span> ou o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador do código</span></span> abertas à esquerda. As outras áreas de ferramentas provavelmente só estarão abertas temporariamente para você usar a ferramenta, deixando a maior parte do tempo o espaço livre para o editor.</p><p>Quando executar o <span class="application">KDevelop</span> pela primeira vez, você já terá o botão de ferramentas de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projetos</span></span>. Clique nele: irá abrir uma subjanela que mostra os projetos que tiver adicionado à sessão no fundo, assim como uma visão do sistema de arquivos das pastas dos seus projetos no topo.</p><p>Existem muitas outras ferramentas que poderá usar com o <span class="application">KDevelop</span>, onde nem todas estarão inicialmente presentes como botões no perímetro. Para adicionar algumas delas, vá para a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Janelas</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Adicionar uma área de ferramentas</span></span>. Aqui estão algumas que poderá achar úteis:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classes</span></span>: Uma lista completa de todas as classes que estão definidas num dos projetos ou na sua sessão, com todas as suas funções e variáveis-membros. Se clicar em qualquer dos membros, irá abrir um editor de código no local do item onde clicou. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Documentos</span></span>: Apresenta alguns dos arquivos visitados recentemente, classificados pelo tipo (por exemplo arquivos de código, arquivos de modificações, documentos de texto simples). </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span>: Dependendo da posição do seu cursor num arquivo, esta ferramenta mostra as coisas que estejam relacionadas entre si. Por exemplo, se estiver numa linha <code class="varname">#include</code>, irá mostrar informações sobre o arquivo que está incluindo, como as classes que estão declaradas nesse arquivo; se estiver numa linha vazia ao nível do arquivo, irá mostrar as classes e funções declaradas e definidas no arquivo actual (tudo como hiperligações: se clicar nelas, irá para o ponto do arquivo onde se encontra de fato a declaração ou definição); se estiver na definição de uma função, ela mostra onde se encontra a declaração e oferece uma lista dos locais onde é usada a função. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Sistema de arquivos</span></span>: Mostra-lhe uma visão em árvore do sistema de arquivos. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Documentação</span></span>: Permite-lhe procurar nas páginas de manual e em outros documentos de ajuda. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Trechos</span></span>: Isto fornece sequências de texto que uma pessoa poderá usar quantas vezes quiser e que não terá que escrever sempre. Por exemplo, no projeto em que foi criada a imagem acima, existe uma necessidade frequente de escrever código do tipo </p></li></ul></div><pre class="programlisting">for (nome-tipo Triangulacao&lt; dim&gt;::active_cell_iterator celula
      = triangulacao.begin_active();
   celula != triangulacao.end();
   ++celula)</pre><p> Esta é uma expressão estranha mas terá quase sempre este aspecto sempre que precisar de um ciclo — o que a tornará uma boa candidato para um trecho.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Konsole</span></span>: Abre uma janela de linha de comando dentro da janela principal do <span class="application">KDevelop</span>, para o comando ocasional que possa querer inserir (por exemplo para executar o <code class="varname">./configure</code>). </p></li></ul></div><p>Uma lista completa das ferramentas e janelas está descrita <a class="ulink" href="http://userbase.kde.org/Special:myLanguage/KDevelop4/Manual/Tool%20list" target="_top">aqui</a>.</p><p>Para muitos programadores, o espaço vertical da tela é o mais importante. Para esse fim, você poderá organizar as suas áreas de ferramentas nas margens esquerda e direita da janela: para mover uma ferramenta, clique no seu símbolo com o botão direito do mouse e selecione uma posição nova para ele.</p></div><FILENAME filename="exploring-source-code.html"><html><head><title>Explorar o código-fonte</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabalhar com o código-fonte"><link rel="prev" href="working-with-source-code.html" title="Capítulo 3. Trabalhar com o código-fonte"><link rel="next" href="navigating-in-source-code.html" title="Navegar pelo código-fonte"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Explorar o código-fonte</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-source-code.html">Anterior</a></td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="navigating-in-source-code.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="exploring-source-code"></a>Explorar o código-fonte</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="local-information"></a>Informação local</h3></div></div></div><p>O <span class="application">KDevelop</span> <span class="emphasis"><em>compreende</em></span> o código-fonte e, por consequência, é bastante bom ao dar-lhe informações sobre as variáveis e funções que possam aparecer no seu programa. Por exemplo, aqui está uma imagem onde está lidando com um pedaço de código e, ao passar o mouse sobre o símbolo <code class="varname">celula</code> na linha 1316 (se estiver trabalhando com base no teclado, poderá obter o mesmo efeito se mantiver a tecla <span class="keycap"><strong>Alt</strong></span> pressionada durante um tempo):</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-13.png"><div class="caption"><p></p></div></div></div><p>O <span class="application">KDevelop</span> mostra uma dica que inclui o tipo da variável (aqui: <code class="varname">DoFHandler&lt;dim&gt;active_cell_iterator</code>), onde está declarada esta variável (o <span class="emphasis"><em>contentor</em></span>, que é aqui a função envolvente <code class="varname">velocidade_maxima</code>, uma vez que é uma variável local), o que é (uma variável, não uma função, classe ou espaço de nomes) e onde está declarada (na linha 1314, umas linhas acima no código).</p><p>No contexto atual, o símbolo sobre o qual o mouse passou não tinha documentação associada. Nesse exemplo, se o mouse tivesse passado sobre o símbolo <code class="varname">get_this_mpi_process</code>, na linha 1318, o resultado teria sido o seguinte:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-14.png"><div class="caption"><p></p></div></div></div><p>Aqui, o <span class="application">KDevelop</span> cruzou a informação da declaração a partir de um arquivo completamente diferente (o <code class="filename">utilities.h</code>, que reside de fato num projeto diferente na mesma sessão), em conjunto com o comentário do 'doxygen' que acompanha a declaração nesse local.</p><p>O que torna estas dicas ainda mais úteis é o fato de serem dinâmicas: eu posso clicar no contentor para obter informações sobre o contexto em que a mesma é declarada (isto é no espaço de nomes <code class="varname">System</code>, como onde está declarada, definida, usada ou qual é a sua documentação) e poderá clicar nas ligações azuis que irão restaurar a posição do cursor no local de declaração do símbolo (por exemplo em <code class="varname">utilities.h</code>, na linha 289) ou fornecer-lhe uma lista dos locais onde este símbolo é usado no arquivo atual ou em todos os projetos da sessão atual. A última opção é normalmente usada se quiser explorar como, por exemplo, é usada uma função em particular num grande bloco de código.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>A informação numa dica é flutuante — isto depende se mantém pressionada a tecla <span class="keycap"><strong>Alt</strong></span> ou se passa o mouse por cima. Se quiser um local mais permanente para ela, abra a ferramenta do <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span> em uma das subjanelas. Por exemplo, aqui o cursor está na mesma função que no exemplo acima e a área de ferramentas à esquerda apresenta o mesmo tipo de informação que a dica anterior:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-15.png"><div class="caption"><p></p></div></div></div><p>Se mover o cursor para a direita, irá mudar a informação apresentada à esquerda. Além disso, se clicar no botão <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Bloquear a janela atual</span></span>, no canto superior direito, você poderá bloquear esta informação, tornando-a independente do movimento do cursor, enquanto explora a informação aí apresentada.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Este tipo de informação de contexto está disponível em muitos outros locais no <span class="application">KDevelop</span>, não apenas no editor de código. Por exemplo, se mantiver pressionada a tecla <span class="keycap"><strong>Alt</strong></span> numa lista de completamento (por exemplo ao fazer uma abertura rápida), também irá apresentar a informação de contexto do símbolo atual.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="file-scope-information"></a>Informação de âmbito do arquivo</h3></div></div></div><p>O próximo nível acima é a obtenção de informação sobre o arquivo de código por inteiro sobre o qual está trabalhando. Para esse fim, coloque o cursor ao nível do arquivo atual e veja o que a ferramenta do <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span> irá mostrar:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-16.png"><div class="caption"><p></p></div></div></div><p>Aqui ela apresenta uma lista dos espaços de nomes, classes e funções declaradas ou definidas no arquivo atual, dando-lhe uma visão geral sobre o que se passa neste arquivo, bem como uma forma de saltar diretamente para qualquer uma destas declarações ou definições sem ter que percorrer o arquivo para cima ou para baixo à procura de um determinado símbolo.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>A informação apresentada a nível do arquivo é a mesma apresentada no modo de <span class="quote">“<span class="quote">Contorno</span>”</span> da navegação do código-fonte; a diferença é que o modo de contorno é apenas uma dica temporária.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="project-and-session-scope-information"></a>Informação ao nível do projeto e da sessão</h3></div></div></div><p>Existem muitas formas de obter informações sobre um projeto inteiro (ou, de fato, sobre todos os projetos de uma sessão). Este tipo de informação é normalmente indicada através de várias áreas de ferramentas. Por exemplo, a ferramenta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classes</span></span> oferece uma estrutura em árvore de todas as classes e espaços de nomes envolventes para todos os projetos de uma sessão, em conjunto com as funções-membro e variáveis de cada uma destas classes:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-17.png"><div class="caption"><p></p></div></div></div><p>Se passar o mouse sobre um item irá obter, mais uma vez, informações sobre o símbolo, a localização da sua declaração e definição e as suas utilizações. Se fizer duplo-clique sobre um item desta árvore, irá abrir uma janela do editor na posição em que o símbolo está declarado ou definido.</p><p>Mas existem outras formas de olhar para a informação global. Por exemplo, a ferramenta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Documentos</span></span> oferece uma visão sobre um projeto com base nos tipos de arquivos ou outros documentos que compõem este projeto:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-18.png"><div class="caption"><p></p></div></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rainbow-color-highlighting-explained"></a>O realce do arco-íris explicado</h3></div></div></div><p>O <span class="application">KDevelop</span> usa uma variedade de cores para realçar os diferentes objetos no código-fonte. Se você souber o que as diferentes cores significam, poderá extrair rapidamente muitas informações a partir do código-fonte, bastando para isso olhar para as cores, sem precisar ler um único caractere. As regras de realce são as seguintes: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Os objetos do tipo Classe / Estrutura, Enumerado (os valores e o tipo), as funções (globais) e os membros das classes têm cada um a sua própria cor atribuída (as classes são verdes, os enumerados são vermelho-escuro e os membros são amarelo-escuro ou violetas, sendo que as funções globais são sempre violetas).</p></li><li class="listitem"><p>Todas as variáveis globais aparecem em verde-escuro.</p></li><li class="listitem"><p>Os identificadores de 'typedefs' de cada tipo aparecem em verde-azulado.</p></li><li class="listitem"><p>Todas as declarações e definições de objetos aparecem em negrito.</p></li><li class="listitem"><p>Se um membro for acessado dentro do contexto em que é definido (classe de base ou derivada), ele aparece em amarelo, caso contrário, aparece em violeta.</p></li><li class="listitem"><p>Se um membro for privado ou protegido, ele aparece com uma cor ligeiramente mais escura quando for usado.</p></li><li class="listitem"><p>Para as variáveis locais de um determinado bloco de código, as cores do arco-íris são escolhidas com base num código do identificador. Este inclui os parâmetros dessa função. Um identificador terá sempre a mesma cor dentro do seu âmbito (embora o mesmo identificador possa obter uma cor diferente se representar um objeto diferente, isto é, se for redefinido em outro nível), sendo normalmente obtida a mesma cor para o mesmo identificador em âmbitos diferentes. Como tal, se tiver várias funções que recebam parâmetros com os mesmos nomes, os argumentos ficarão com cores iguais. Estas cores do arco-íris poderão ser desativadas em separado da coloração global da janela de configuração.</p></li><li class="listitem"><p>Os identificadores para os quais o <span class="application">KDevelop</span> não pode determinar a declaração correspondente aparecem a branco. Isto poderá acontecer algumas vezes por instruções <code class="varname">#include</code> que estão faltando.</p></li><li class="listitem"><p>Além dessa coloração, o realce de sintaxe normal do editor será aplicado, como acontece no <span class="application">Kate</span>. O realce semântico do <span class="application">KDevelop</span> sempre irá substituir o realce de sintaxe do editor, caso exista um conflito.</p></li></ul></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-source-code.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="navigating-in-source-code.html">Próxima</a></td></tr><tr><td class="prevCell">Trabalhar com o código-fonte </td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"> Navegar pelo código-fonte</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="navigating-in-source-code.html"><html><head><title>Navegar pelo código-fonte</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabalhar com o código-fonte"><link rel="prev" href="exploring-source-code.html" title="Explorar o código-fonte"><link rel="next" href="writing-source-code.html" title="Escrever código-fonte"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Navegar pelo código-fonte</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="exploring-source-code.html">Anterior</a></td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="writing-source-code.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="navigating-in-source-code"></a>Navegar pelo código-fonte</h2></div></div></div><p>Na seção anterior, discutimos a exploração do código-fonte, isto é, obter informações sobre os símbolos, arquivos e projetos. O passo seguinte é então navegar pelo mesmo, isto é, circular por ele todo. Existem de novo vários níveis possíveis para isso: local, dentro de um arquivo ou dentro de um projeto.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Muitas das formas de navegar pelo código estão acessíveis através do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegar</span></span> da janela principal do <span class="application">KDevelop</span>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="local-navigation"></a>Navegação local</h3></div></div></div><p>O <span class="application">KDevelop</span> é muito mais que um editor, mas <span class="emphasis"><em>também</em></span> é um editor de código. Como tal, obviamente você poderá mover o cursor para cima, baixo, esquerda ou direita num arquivo de código. Poderá também usar as teclas <span class="keycap"><strong>PageUp</strong></span> e <span class="keycap"><strong>PageDown</strong></span>, assim como todos os comandos a que está habituado em qualquer outro editor útil.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="file-scope-navigation-and-outline-mode"></a>Navegação ao nível do arquivo e modo de contorno</h3></div></div></div><p>Ao nível do arquivo, o <span class="application">KDevelop</span> oferece muitas formas possíveis de navegar pelo código-fonte. Por exemplo:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Contorno</span></span>: Você poderá ter uma visão geral do que se encontra no arquivo atual, pelo menos de três formas diferentes: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Se clicar na área de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Contorno</span></span> no canto superior direito da janela principal, ou se pressionar <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>N</strong></span>, irá abrir uma lista que apresenta todas as declarações de funções e classes: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-19.png"><div class="caption"><p></p></div></div></div><p> Você poderá então selecionar para onde desejar saltar ou — se existirem muitas — começar a escrever o texto que possa aparecer nos nomes apresentados; nesse caso, à medida que vai escrevendo, a lista vai ficando cada vez menor, uma vez que os nomes não correspondentes ao texto inserido vão sendo retirados, até que esteja pronto para selecionar uma das opções. </p></li><li class="listitem"><p>Posicionando o cursor ao nível do arquivo (isto é fora de qualquer declaração ou definição de funções ou classes) e tendo a ferramenta do <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span> aberta: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-16.png"><div class="caption"><p></p></div></div></div><p> Isto também lhe dá uma ideia geral do que se passa no arquivo atual, permitindo-lhe selecionar para onde deseja ir. </p></li><li class="listitem"><p>Passar o mouse sobre o separador da página de um dos arquivos abertos também lhe dará uma visão geral do arquivo nessa página. </p></li></ul></div><p>
</p></li><li class="listitem"><p>Os arquivos de código estão organizados como uma lista de declarações ou definições de funções. Pressionar <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>PgUp</strong></span> e <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>PgDown</strong></span>, salta respectivamente para a definição de função anterior ou seguinte neste arquivo. </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="project-and-session-scope-navigation--semantic-navigation"></a>Navegação ao nível do projeto e sessão. Navegação semântica</h3></div></div></div><p>Como foi mencionado em outros locais, o <span class="application">KDevelop</span> não leva em consideração normalmente os arquivos de código individuais olhando sim para os projetos como um todo (ou para todos os projetos que façam parte da sessão atual). Em consequência, ele oferece várias possibilidades para navegar pelos projetos inteiros. Algumas destas possibilidades são derivadas do que já foi discutido na seção como <a class="link" href="exploring-source-code.html" title="Explorar o código-fonte">Explorar o código-fonte</a>, enquanto outras são completamente diferentes. O tema em comum é que estas funcionalidades de navegação baseiam-se numa <span class="emphasis"><em>compreensão semântica</em></span> do código, isto é elas oferecem-lhe algo que necessite processar os projetos por inteiro e interligar os dados. A lista a seguir mostra-lhe algumas formas de navegar pelo código-fonte que esteja espalhado por uma grande quantidade de arquivos:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Como foi visto na seção sobre <a class="link" href="exploring-source-code.html" title="Explorar o código-fonte">Explorar o código-fonte</a>, você poderá obter uma dica que explica os nomes dos espaços de nomes, classes, funções ou variáveis individuais, passando o cursor do seu mouse sobre eles ou mantendo a tecla <span class="keycap"><strong>Alt</strong></span> pressionada durante algum tempo. Aqui está um exemplo: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-14.png"></div></div><p> Se clicar nas ligações para a declaração de um símbolo ou se expandir a lista de utilizações, poderá saltar para esses locais, abrindo se necessário o respectivo arquivo e colocando o cursor na posição correspondente. Você poderá obter um efeito semelhante se usar a ferramenta do <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span>, que também foi descrita anteriormente. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Abertura rápida</span></span>: Uma forma bastante poderosa de saltar para outros arquivos ou locais é usar os vários métodos de <span class="emphasis"><em>abertura rápida</em></span> no <span class="application">KDevelop</span>. Existem quatro versões destes métodos: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Abrir rapidamente a classe</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Abrir rapidamente a classe</span></span> ou <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span>): Você obterá uma lista com todas as classes nesta sessão. Comece a digitar (uma parte de) o nome de uma classe para que a lista vá se reduzindo para mostrar apenas as que corresponderem ao texto escrito até agora. Se a lista for pequena o suficiente, selecione um elemento, com as teclas de cursor para cima ou baixo, para que o <span class="application">KDevelop</span> o leve para o local em que a classe está declarada. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Abrir rapidamente a função</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Abrir rapidamente a função</span></span> ou <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>M</strong></span>): Você obterá uma lista com todas as funções 'membros' que fazem parte dos projetos na sessão atual, podendo selecionar, a partir desta lista da mesma forma que foi descrito acima. Lembre-se que esta lista poderá incluir tanto as declarações como as definições das funções. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Abrir rapidamente o arquivo</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Abrir rapidamente o arquivo</span></span> ou <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>O</strong></span>): Você obterá uma lista com todos os arquivos que fazem parte dos projetos na sessão atual, onde poderá escolher o arquivo em questão da mesma forma que foi descrita acima. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Abertura rápida universal</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Abertura rápida</span></span> ou <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Q</strong></span>): Se você se esquecer da combinação de teclas associada a algum dos comandos acima, este é o 'canivete suíço' universal — apresenta-lhe simplesmente uma lista combinada com todos os arquivos, funções, classes e outros itens que possa selecionar. </p></li></ul></div><p>
</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Ir para a declaração/definição</span></span>: Ao implementar uma função-membro, normalmente uma pessoa precisa voltar ao ponto em que foi declarada uma função, por exemplo para manter a lista de argumentos da função sincronizada entre a declaração e a definição ou para atualizar a documentação. Para fazer isso, coloque o cursor sobre o nome da função e selecione a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegação</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Ir para a declaração</span></span> (ou pressione <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>.</strong></span>) para ir para o local onde está declarada a função. Existem várias formas de voltar ao local original: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Selecionando a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegação</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Ir para a definição</span></span> (ou pressionando <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>,</strong></span>). </p></li><li class="listitem"><p>Selecionando a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegação</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Contexto visitado anterior</span></span> (ou pressionando <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Esquerda</strong></span>), como descrito abaixo. </p></li></ul></div><p>
</p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Ir para a declaração de um símbolo é algo que não só funciona quando colocar o cursor sobre o nome da função que se encontra implementando no momento, mas também funciona para outros símbolos: se colocar o cursor sobre uma variável (local, global ou membro) e for para a sua declaração, irá também levá-lo para a localização da sua declaração. Da mesma forma, poderá colocar o cursor sobre o nome de uma classe, por exemplo sobre a declaração da variável de uma função, e ir para o local da sua declaração.</p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Alternar entre a declaração/definição</span></span>: No exemplo acima, para ir para o local da declaração da função atual, você terá primeiro que colocar o cursor sobre o nome da função. Para evitar este passo, poderá selecionar a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegação</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Alternar entre a definição/declaração</span></span> (ou pressione <span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span>) para ir para a declaração da função onde se encontra o cursor no momento. Se selecionar uma segunda vez a mesma opção, voltará para o local em que está definida a função. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Uso anterior/seguinte</span></span>: Se colocar o cursor sobre o nome de uma variável local e selecionar a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegação</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Uso seguinte</span></span> (ou pressionar <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>Direita</strong></span>) irá para a utilização seguinte desta variável no código. (Lembre-se de que isto não pesquisa apenas pela ocorrência seguinte da variável mas também considera as variáveis com o mesmo nome, mas em âmbitos diferentes). O mesmo resulta para a utilização dos nomes das funções. Se selecionar <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegação</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Uso anterior</span></span> (ou pressionar <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>Esquerda</strong></span>), irá para a utilização anterior de um determinado símbolo. </p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Para ver uma lista com todas as utilizações de um nome, coloque o cursor sobre ele e abra a ferramenta do <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span> ou pressione e mantenha pressionada a tecla <span class="keycap"><strong>Alt</strong></span>. Isto é explicado com mais detalhes na seção sobre como <a class="link" href="exploring-source-code.html#file-scope-information" title="Informação de âmbito do arquivo">Explorar o código</a>.</p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>A <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">lista de contextos</span></span>: os navegadores Web têm esta funcionalidade, na qual poderá recuar e avançar pela lista das páginas visitadas mais recentemente. O <span class="application">KDevelop</span> tem o mesmo tipo de funcionalidades, exceto que, em vez de páginas Web, você visita os <span class="emphasis"><em>contextos</em></span>. Um contexto é a localização atual do cursor e o usuário poderá alterá-la se navegar para fora dela, usando tudo menos os comandos de cursores — por exemplo, se clicar num local indicado por uma dica, na área de ferramentas do <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span>, uma das opções indicadas no menu de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegação</span></span> ou qualquer outro comando de navegação. Se usar as opções <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegação</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Contexto visitado Anterior</span></span> (<span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Esquerda</strong></span>) e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegação</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Contexto visitado Seguinte</span></span> (<span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Direita</strong></span>) irá percorrer esta lista de contextos visitados, assim como acontece nos botões para <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">recuar</span></span> e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">avançar</span></span> num navegador para as páginas Web visitadas. </p></li><li class="listitem"><p>Finalmente, existem áreas de ferramentas que lhe permitem navegar para diferentes locais do seu código. Por exemplo, a ferramenta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Classes</span></span> oferece-lhe uma lista com todos os espaços de nomes e classes de todos os projetos da sessão atual, permitindo-lhe expandi-la para ver as funções e variáveis membros de cada uma destas classes: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-17.png"><div class="caption"><p></p></div></div></div><p> Se fizer duplo-clique sobre um item (ou se percorrer o menu de contexto com o botão direito do mouse) poderá ir para a localização de declaração do item. Outras ferramentas permitem coisas do gênero; por exemplo, a área de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projetos</span></span> oferece uma lista dos arquivos que fazem parte de uma sessão: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-13.png"><div class="caption"><p></p></div></div></div><p> Mais uma vez, se fizer duplo-clique sobre um arquivo, irá abri-lo. </p></li></ul></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="exploring-source-code.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="writing-source-code.html">Próxima</a></td></tr><tr><td class="prevCell">Explorar o código-fonte </td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"> Escrever código-fonte</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="writing-source-code.html"><html><head><title>Escrever código-fonte</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabalhar com o código-fonte"><link rel="prev" href="navigating-in-source-code.html" title="Navegar pelo código-fonte"><link rel="next" href="modes-and-working-sets.html" title="Modos e conjuntos de trabalho"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Escrever código-fonte</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="navigating-in-source-code.html">Anterior</a></td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="modes-and-working-sets.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="writing-source-code"></a>Escrever código-fonte</h2></div></div></div><p>Uma vez que o <span class="application">KDevelop</span> compreende o código-fonte dos seus projetos, ele poderá ajudá-lo a escrever mais código. Os pontos a seguir descrevem algumas das formas como isso pode ser feito.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="auto-completion"></a>Complementação automática</h3></div></div></div><p>Provavelmente a funcionalidade mais útil de todas na escrita de código novo é a complementação automática. Considere, por exemplo, o seguinte pedaço de código:</p><pre class="programlisting">class Carro {
  // ...
  public:
    std::string cor () const;
};
void xpto()
{
  Carro meu_carro;
  // ...fazer algo com esta variável...
  std::string cor = meu_carro.co
</pre><p>Na última linha, o <span class="application">KDevelop</span> irá recordar que a variável <code class="varname">meu_carro</code> é do tipo <code class="varname">Carro</code>, como tal, irá oferecer-se para terminar o nome da função-membro <code class="varname">co</code> como <code class="varname">cor</code>. De fato, tudo o que tem que fazer é continuar a escrever até que a funcionalidade de complementação automática tenha reduzido o número de ocorrências a uma, pressionando então na tecla <span class="keycap"><strong>Enter</strong></span>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-42.png"><div class="caption"><p></p></div></div></div><p>Lembre-se que você poderá clicar sobre a dica para obter mais informações sobre a função, além do seu tipo devolvido e se é pública ou não:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-43.png"><div class="caption"><p></p></div></div></div><p>A complementação automática poderá poupar bastante escrita se o seu projeto usar nomes de variáveis e funções compridos; além disso, evita os enganos nos nomes (e os erros de compilação daí resultantes) e torna muito mais simples recordar os nomes exatos das funções; por exemplo, se todos os seus métodos de leitura começarem por <code class="varname">get_</code> (ler_), então a funcionalidade de complementação automática poderá apresentar uma lista com todos os métodos de leitura possíveis, logo que tenha escrito as primeiras quatro letras, recordando-o possivelmente no processo qual a função correta. Lembre-se que, para a complementação automática funcionar, nem a declaração da classe <code class="varname">Carro</code> nem da variável <code class="varname">meu_carro</code> terão que estar no mesmo arquivo onde está escrevendo o código no momento. O <span class="application">KDevelop</span> simplesmente tem que saber onde estão ligadas estas classes e variáveis, isto é os arquivos aos quais é necessário ter estas ligações feitas terão que fazer parte do projeto onde está trabalhando.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>O <span class="application">KDevelop</span> nem sempre sabe quando deverá auxiliá-lo a completar o código. Se a dica de complementação automática não abrir automaticamente, pressione <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Espaço</strong></span> para abrir uma lista de complementações manualmente. De um modo geral, para a complementação automática funcionar, o <span class="application">KDevelop</span> precisa de processar os seus arquivos de código. Isto acontece em segundo plano para todos os arquivos que fizerem parte dos projetos da sessão atual, após iniciar o <span class="application">KDevelop</span>, assim como após o usuário terminar de escrever durante uma fração de segundo (o atraso pode ser configurado).</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>O <span class="application">KDevelop</span> só processa arquivos que ele considere como sendo código-fonte, de acordo com o tipo MIME do arquivo. Este tipo não está definido até a primeira vez em que um arquivo é salvo; em consequência, ao criar um arquivo novo e ao começar a escrever código, ele não ativará o processamento da complementação automática até que seja salvo pela primeira vez.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Como na nota anterior, para a complementação automática funcionar, o <span class="application">KDevelop</span> terá que conseguir descobrir as declarações nos arquivos de inclusão. Para isso, ele procura num conjunto de locais predefinidos. Se não encontrar automaticamente um arquivo de inclusão, irá sublinhar o nome de um arquivo em vermelho; nesse caso, clique com o botão direito do mouse sobre ele para indicar explicitamente ao <span class="application">KDevelop</span> onde se encontram estes arquivos, bem como a informação que fornecem.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>A configuração da complementação automática é discutida <a class="link" href="customizing-code-auto-completion.html" title="Personalizar a complementação automática do código">nesta seção deste manual</a>.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="adding-new-classes-and-implementing-member-functions"></a>Adicionar classes novas e implementar as funções-membro</h3></div></div></div><p>O <span class="application">KDevelop</span> possui um assistente para adicionar novas classes. O procedimento é descrito em <a class="link" href="code-generation-with-templates.html#creating-a-new-class" title="Criar uma nova classe">Criando uma nova classe</a>. Uma classe C++ simples pode ser criada selecionando o modelo C++ Básico a partir da categoria <code class="filename">Classe</code>. No assistente, nós podemos selecionar algumas funções-membro predefinidas, por exemplo um construtor vazio, um construtor de cópia e um destrutor. </p><p>Após completar o assistente, os novos arquivos são criados e abertos no editor. O arquivo de inclusão já contém guardas de inclusão e a classe nova tem todas as funções-membro que selecionamos. Os dois próximos passos seriam a documentação da classe e das suas funções-membro e a sua respectiva implementação. Iremos discutir algumas ajudas sobre a documentação das classes e funções depois. Para implementar as funções especiais já adicionadas, basta ir para a página <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">onibus.cpp</span></span> onde se encontra já o esqueleto das funções:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-30.png"><div class="caption"><p></p></div></div></div><p>Para adicionar novas funções-membro, volte ao arquivo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">onibus.h</span></span> e adicione o nome de uma função. Por exemplo, adicione o seguinte:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-31.png"><div class="caption"><p></p></div></div></div><p>Repare como já foi iniciada a implementação. Contudo, em muitos estilos de código, a função não deveria ser implementada no arquivo de inclusão mas sim no arquivo '.cpp' correspondente. Para isso, coloque o cursor sobre o nome da função e selecione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Mover para o código</span></span> ou pressione <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>S</strong></span>. Isto remove o código entre chavetas do arquivo de inclusão (e o substitui por um ponto e vírgula para terminar a declaração da função) e move-o para o arquivo de código:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-32.png"><div class="caption"><p></p></div></div></div><p>Repare que eu acabei de digitar e desejava inferir que a variável <code class="varname">estudantes</code> deveria ser provavelmente uma variável-membro da classe <code class="varname">Ônibus</code>, mas esta ainda não foi adicionada. Repare também como o <span class="application">KDevelop</span> a sublinha para realçar que ainda não sabe nada sobre a variável. Contudo, este problema pode ser resolvido: se clicar no nome da variável, irá aparecer a seguinte dica:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-33.png"><div class="caption"><p></p></div></div></div><p>(O mesmo pode ser obtido se clicar com o botão direito sobre o mesmo e selecionar <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Resolver: Declarar como</span></span>.), podendo selecionar <span class="quote">“<span class="quote">3 - private unsigned int</span>”</span> (com o mouse, ou pressionando <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>3</strong></span>) e ver como irá aparecer no arquivo de inclusão:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-34.png"><div class="caption"><p></p></div></div></div><p>É importante referir que o <span class="application">KDevelop</span> extrai o tipo da variável a declarar a partir da expressão usada para a inicializar. Por exemplo, se tivéssemos escrito a soma na seguinte forma, ainda que dúbia, ele teria sugerido que a variável fosse declarada como <code class="varname">double</code>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-35.png"><div class="caption"><p></p></div></div></div><p>Como ponto final: O método que usa o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Mover para o código</span></span> nem sempre insere a nova função-membro onde se deseja. Por exemplo, você poderá querer marcá-la como <code class="varname">inline</code> e colocá-la no fundo do arquivo de inclusão. Se for esse o caso, escreva a declaração e comece a escrever a definição da função da seguinte forma:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-36.png"><div class="caption"><p></p></div></div></div><p>O <span class="application">KDevelop</span> oferece automaticamente todas as complementações possíveis do que possa aparecer aqui. Se selecionar um dos dois <code class="varname">adicionar_estudantes</code> irá mostrar o seguinte código que já preenche a lista de argumentos completa:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-37.png"><div class="caption"><p></p></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>No exemplo, ao aceitar uma das opções na ferramenta de complementação automática, irá mostrar a assinatura correta, mas infelizmente apaga o marcador <code class="varname">inline</code> já escrito. Isto foi comunicado como sendo o <a class="ulink" href="https://bugs.kde.org/show_bug.cgi?id=274245" target="_top">Erro 274245 do <span class="application">KDevelop</span></a>.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="documenting-declarations"></a>Documentar as declarações</h3></div></div></div><p>O bom código está bem documentado, tanto ao nível da implementação dos algoritmos dentro das funções, assim como ao nível da interface — isto é, classes, funções (membros e globais) e as variáveis (membros ou globais), com o objetivo de explicar o seu objetivo, os valores possíveis dos argumentos, as pré- e pós-condições, <abbr class="abbrev">etc.</abbr> No que diz respeito à documentação da interface, o <a class="ulink" href="http://www.doxygen.org" target="_top">doxygen</a> tornou-se a norma de fato para formatar os comentários para que possam ser extraídos e apresentados em páginas Web navegáveis.</p><p>O <span class="application">KDevelop</span> suporta este estilo de comentários, contendo um atalho para gerar a estrutura de comentários que documentam uma classe ou função-membro. Por exemplo, assumindo que já tenha escrito este código:</p><pre class="programlisting">class Carro {
  public:
    std::string cor () const;
};
</pre><p>
</p><p>Você desejará agora adicionar a documentação tanto à classe como à função-membro. Para isso, mova o cursor para a primeira linha e selecione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Documentar a declaração</span></span> ou pressione <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>D</strong></span>. O <span class="application">KDevelop</span> irá responder com o seguinte:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-23.png"><div class="caption"><p></p></div></div></div><p>O cursor já se encontra na área em cinza para você preencher a breve descrição (depois da palavra-chave do 'doxygen' <code class="varname">@brief</code>) desta classe. Você poderá então continuar a adicionar a documentação a este comentário, dando uma descrição mais detalhada sobre o que a classe faz:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-24.png"><div class="caption"><p></p></div></div></div><p>Enquanto o editor estiver dentro do comentário, o texto do mesmo fica realçado em verde (o realce desaparece assim que sair do comentário). Quando for para o fim de uma linha, pressione <span class="keycap"><strong>Enter</strong></span> para que o <span class="application">KDevelop</span> inicie uma nova linha começando com um asterisco e coloca o cursor com um caractere de indentação.</p><p>Agora iremos documentar a função-membro, colocando mais uma vez o cursor sobre a linha da declaração e selecionando a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Documentar a declaração</span></span> ou pressionar <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>D</strong></span>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-25.png"><div class="caption"><p></p></div></div></div><p>Mais uma vez, o <span class="application">KDevelop</span> irá gerar automaticamente o esqueleto de um comentário, incluindo a documentação da função em si, assim como o tipo devolvido por esta. No caso atual, o nome da função é bastante intuitivo, mas muitas das vezes os argumentos da função poderão não ser e, como tal, deverão ser documentados individualmente. Para ilustrar isto, vejamos uma função ligeiramente mais interessante e o comentário que o <span class="application">KDevelop</span> irá gerar automaticamente:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-26.png"><div class="caption"><p></p></div></div></div><p>Aqui, o comentário sugerido já contém todos os campos do Doxygen dos parâmetros individuais, por exemplo.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="renaming-variables-functions-and-classes"></a>Renomear as variáveis, funções e classes</h3></div></div></div><p>Algumas vezes, alguém poderá querer renomear uma função, classe ou variável. Por exemplo, imagine que nós já temos o seguinte:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-38.png"><div class="caption"><p></p></div></div></div><p>Iremos então concluir que estamos insatisfeitos com o nome <code class="varname">remover_estudantes</code> e que se deveria chamar por exemplo <code class="varname">soltar_estudantes</code>. Poderíamos fazer uma pesquisa-substituição por esse nome, mas isso tem duas desvantagens:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>A função pode ser usada em mais de um arquivo. </p></li><li class="listitem"><p>Realmente só queremos mudar o nome desta função e não tocar nas funções que possam ter o mesmo nome mas que estejam declaradas em outras classes ou espaços de nomes. </p></li></ul></div><p>Ambos os problemas poderão ser resolvidos se mover o cursor para qualquer uma das ocorrências do nome da função e selecionar <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Renomear a declaração</span></span> (ou se clicar com o botão direito no nome e selecionar a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Renomear Onibus::remover_estudantes</span></span>). Isto irá invocar uma janela onde poderá indicar o novo nome da função e onde poderá ver todos os locais onde ela é usada:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-39.png"><div class="caption"><p></p></div></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="code-snippets"></a>Trechos de código</h3></div></div></div><p>A maioria dos projetos possuem pedaços de código que uma pessoa terá que escrever frequentemente a nível de código-fonte. Os exemplos são: para os criadores de compiladores, um ciclo por todas as instruções; para os criadores de interfaces de usuários, verificar se os dados do usuário são válidos e, caso contrário, mostrar uma mensagem de erro; no projeto do autor dessas linhas, o código seria do estilo</p><pre class="programlisting">for (nometipo Triangulacao::active_cell_iterator
       celula = triangulacao.begin_active();
     celula != triangulacao.end(); ++celula)
  ... fazer algo com a célula ...
</pre><p>
</p><p>Em vez de escrever este tipo de texto repetidamente (com todos os erros associados que isso possa introduzir), a ferramenta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Trechos</span></span> do <span class="application">KDevelop</span> poderá ajudá-lo aqui. Para isso, abra a área de ferramentas (veja em <a class="link" href="working-with-source-code.html#tools-and-views" title="Ferramentas e visões">Ferramentas e janelas</a> se o botão correspondente não existir já no entorno da sua janela). Depois clique no botão <span class="quote">“<span class="quote">Adicionar um repositório</span>”</span> (um nome ligeiramente confuso — ele permite-lhe criar uma coleção de trechos com um determinado nome para os arquivos de código de um determinado tipo, por exemplo código em C++) e crie um repositório vazio. Depois, clique em <span class="inlinemediaobject"><img src="Icon-list-add.png"></span> para adicionar um trecho, obtendo uma janela como a seguinte:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-40.png"><div class="caption"><p></p></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>O nome de um trecho não poderá ter espaços ou outros caracteres especiais, porque deverá ser parecido com o nome de uma função ou variável normal (por razões que se tornarão mais claras no parágrafo seguinte).</p></div><p>Para usar o trecho assim definido, quando estiver editando o código, basta escrever o nome do trecho como o faria com qualquer função ou variável. Este nome ficará disponível na complementação automática — o que significa que não haverá qualquer problema em usar nomes compridos e descritivos para um trecho, como o descrito acima — e quando aceitar a dica de sugestão da complementação automática (por exemplo, pressionando apenas em <span class="keycap"><strong>Enter</strong></span>), a parte já introduzida do nome do trecho será substituída pela expansão completa do trecho e será devidamente indentada:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-41.png"><div class="caption"><p></p></div></div></div><p>Lembre-se que, para isto funcionar, a ferramenta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Trechos</span></span> não precisa de estar aberta ou visível: só irá precisar da ferramenta para definir trechos novos. Uma alternativa, embora menos conveniente, para expandir um trecho é simplesmente clicar nele na área de ferramentas respectiva.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Os trechos são muito mais poderosos do que se explicou aqui. Para uma descrição completa do que pode fazer com eles, veja a <a class="ulink" href="http://userbase.kde.org/Special:myLanguage/KDevelop4/Manual/Tool_list/Snippets" target="_top">documentação detalhada sobre a ferramenta de Trechos</a>.</p></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="navigating-in-source-code.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="modes-and-working-sets.html">Próxima</a></td></tr><tr><td class="prevCell">Navegar pelo código-fonte </td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"> Modos e conjuntos de trabalho</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="modes-and-working-sets.html"><html><head><title>Modos e conjuntos de trabalho</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabalhar com o código-fonte"><link rel="prev" href="writing-source-code.html" title="Escrever código-fonte"><link rel="next" href="some-useful-keyboard-shortcuts.html" title="Algumas combinações de teclas úteis"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Modos e conjuntos de trabalho</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="writing-source-code.html">Anterior</a></td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="modes-and-working-sets"></a>Modos e conjuntos de trabalho</h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop4_noworkingset.png"><div class="caption"><p></p></div></div></div><p>Se você tiver chegado até aqui, dê uma olhada na parte superior direita da janela principal do <span class="application">KDevelop</span>. Como aparece na imagem, irá reparar que existem três <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">modos</span></span> possíveis para o <span class="application">KDevelop</span>: <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Código</span></span> (o modo que discutimos no capítulo anterior ao lidar com o código-fonte), <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Depuração</span></span> (veja como <a class="link" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depurar os programas no KDevelop">Depurar os programas</a>) e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisão</span></span> (veja como <a class="link" href="working-with-version-control-systems.html" title="Capítulo 8. Lidar com sistemas de controle de versões">Lidar com sistemas de controle de versões</a>).</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop4_sessionsprojectsworkingsets.png"><div class="caption"><p></p></div></div></div><p>Cada modo tem o seu próprio conjunto de ferramentas espalhadas em torno da janela principal, e cada modo também tem um <span class="emphasis"><em>conjunto de trabalho</em></span> dos arquivos e documentos abertos no momento. Além disso, cada um destes conjuntos de trabalho está associado com uma sessão atual, isto é temos a mesma relação apresentada acima. Lembre-se que os arquivos no conjunto de trabalho vêm da mesma sessão, mas poderão vir de diferentes projetos que façam parte da mesma sessão.</p><p>Se você abrir o <span class="application">KDevelop</span> da primeira vez, o conjunto de trabalho está vazio — não existem arquivos abertos. Porém, à medida que você abre os arquivos para edição (ou depuração ou revisão nos outros modos), o seu conjunto de trabalho vai crescendo. O fato de o seu conjunto de trabalho não estar vazio é indicado através de um símbolo na página, como demonstrado abaixo. Irá reparar que, sempre que fechar o <span class="application">KDevelop</span> e reiniciá-lo, o conjunto de trabalho é salvo e restaurado, isto é irá obter o mesmo conjunto de arquivos abertos.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-10.png"><div class="caption"><p></p></div></div></div><p>Se você passar o seu mouse sobre o símbolo do conjunto de trabalho, irá obter uma dica que lhe mostra os arquivos que estão abertos no momento neste conjunto de trabalho (aqui: os arquivos <code class="varname">passo-32.cc</code> e <code class="varname">passo-1.cc</code>). Se clicar no sinal de somar vermelho, irá fechar a página do arquivo correspondente. Talvez ainda mais importante, se clicar no botão com o nome correspondente, irá <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">fechar</span></span> todo o conjunto de trabalho de uma vez (isto é fechar todos os arquivos abertos no momento). O ponto importante sobre o fechamento do conjunto de trabalho, contudo, é que não só fecham todos os arquivos, como também salva o conjunto e abre um novo, totalmente vazio. Você poderá ver isto aqui:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-11.png"><div class="caption"><p></p></div></div></div><p>Repare nos dois símbolos à esquerda das páginas dos três modos (o coração e o símbolo não-identificado à sua esquerda). Cada um destes dois símbolos representa um conjunto de trabalho salvo, além do conjunto aberto no momento. Se passar o seu mouse sobre o símbolo do coração, irá obter algo como isto:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-12.png"><div class="caption"><p></p></div></div></div><p>Isto mostra-lhe que o conjunto de trabalho correspondente contém dois arquivos e os seus nomes de projetos correspondentes: <code class="varname">Makefile</code> e <code class="varname">alteracoes.h</code>. Se clicar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Carregar</span></span>, irá fechar e salvar o conjunto de trabalho atual (que aparece aqui com os arquivos <code class="varname">tria.h</code> e <code class="varname">tria.cc</code> abertos) e irá abrir o conjunto selecionado. Você poderá também excluir de forma permanente um conjunto de trabalho, o qual o irá remover da lista de conjuntos de trabalho salvos.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="writing-source-code.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts.html">Próxima</a></td></tr><tr><td class="prevCell">Escrever código-fonte </td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"> Algumas combinações de teclas úteis</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="some-useful-keyboard-shortcuts.html"><html><head><title>Algumas combinações de teclas úteis</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabalhar com o código-fonte"><link rel="prev" href="modes-and-working-sets.html" title="Modos e conjuntos de trabalho"><link rel="next" href="code-generation-with-templates.html" title="Capítulo 4. Geração de código com modelos"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Algumas combinações de teclas úteis</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="modes-and-working-sets.html">Anterior</a></td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="code-generation-with-templates.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="some-useful-keyboard-shortcuts"></a>Algumas combinações de teclas úteis</h2></div></div></div><p>O editor do <span class="application">KDevelop</span> segue as combinações de teclas padrão para todas as operações de edição normais. Contudo, também suporta um conjunto de operações mais avançado ao editar o código-fonte, estando algumas associadas a combinações de teclas em particular. As seguintes são particularmente úteis:</p><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Circular pelo código</th></tr></thead><tbody><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>O</strong></span></td><td>Abrir rapidamente o arquivo: insira parte do nome do arquivo e selecione entre todos os arquivos das pastas dos projetos da sessão atual que correspondam ao texto; assim, será aberto o arquivo</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>C</strong></span></td><td>Abrir rapidamente a classe: insira parte do nome de uma classe e selecione entre todas as classes que corresponderem; o cursor irá então saltar para a declaração da classe</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>M</strong></span></td><td>Abrir rapidamente a função: insira parte do nome de uma função (membro) e selecione entre todos os nomes que corresponderem; repare que a lista mostra tanto as declarações como as definições, e o cursor irá então saltar para o item selecionado</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Q</strong></span></td><td>Abertura rápida universal: digite qualquer coisa (nome de um arquivo, classe ou função) e obtenha uma lista de tudo o que corresponder</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>N</strong></span></td><td>Contorno: Oferece uma lista com todas as coisas que estão acontecendo neste arquivo, por exemplo declarações de classes e definições das funções</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>,</strong></span></td><td>Ir para a definição de uma função, caso o cursor esteja no momento sobre a declaração de uma função</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>.</strong></span></td><td>Ir para a declaração de uma função ou variável, caso o cursor esteja no momento sobre a definição de uma função</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>PageDown</strong></span></td><td>Ir para a função seguinte</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>PageUp</strong></span></td><td>Ir para a função anterior</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>G</strong></span></td><td>Ir para a linha</td></tr></tbody></table></div><p>
</p><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Pesquisa e substituição</th></tr></thead><tbody><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>F</strong></span></td><td>Procurar</td></tr><tr><td><span class="keycap"><strong>F3</strong></span></td><td>Localizar próxima</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>R</strong></span></td><td>Substituir</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F</strong></span></td><td>Pesquisa-substituição em vários arquivos</td></tr></tbody></table></div><p>
</p><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Outras coisas</th></tr></thead><tbody><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>_</strong></span></td><td>Recolher ou fechar um nível: torna este bloco invisível, por exemplo se quiser apenas focar-se na parte macroscópica de uma função</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>+</strong></span></td><td>Expandir um nível: anula o fecho ou recolhimento</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>D</strong></span></td><td>Comentar o texto selecionado ou a linha atual</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>D</strong></span></td><td>Comentar o texto selecionado ou a linha atual</td></tr><tr><td><span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>D</strong></span></td><td>Documentar a função atual. Se o cursor estiver sobre a declaração de uma função ou classe, então, ao invocar esta combinação, irá criar um comentário no estilo do 'doxygen' devidamente preenchido com uma listagem de todos os parâmetros, valores devolvidos, <abbr class="abbrev">etc.</abbr></td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>T</strong></span></td><td>Trocar o caractere atual com o anterior</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>K</strong></span></td><td>Apaga a linha atual (nota: esta não é a opção do 'emacs' para <span class="quote">“<span class="quote">apagar daqui até ao fim da linha</span>”</span>)</td></tr></tbody></table></div><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="modes-and-working-sets.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="code-generation-with-templates.html">Próxima</a></td></tr><tr><td class="prevCell">Modos e conjuntos de trabalho </td><td class="upCell">Trabalhar com o código-fonte</td><td class="nextCell"> Geração de código com modelos</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-projects-from-scratch.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="exploring-source-code.html">Próxima</a></td></tr><tr><td class="prevCell">Criar projetos do zero </td><td class="upCell"> </td><td class="nextCell"> Explorar o código-fonte</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="code-generation-with-templates.html"><html><head><title>Capítulo 4. Geração de código com modelos</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="some-useful-keyboard-shortcuts.html" title="Algumas combinações de teclas úteis"><link rel="next" href="creating-a-new-unit-test.html" title="Criar um novo teste unitário"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Geração de código com modelos</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="creating-a-new-unit-test.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="code-generation-with-templates"></a>Capítulo 4. Geração de código com modelos</h1></div></div></div><p>O <span class="application">KDevelop</span> usa modelos para gerar arquivos de código-fonte e evitar que códigos repetitivos sejam escritos manualmente. </p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-a-new-class"></a>Criar uma nova classe</h2></div></div></div><p>O uso mais comum para geração de código é provavelmente a escrita de novas classes. Para criar uma nova classe em um projeto existente, dê um clique direito em uma pasta do projeto e selecione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Criar a partir de um modelo...</span></span>. A mesma janela pode ser aberta a partir do menu clicando em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Arquivo</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Novo a partir de um modelo...</span></span>, mas usar uma pasta do projeto tem a vantagem de definir uma URL base para os arquivos gerados. Selecione <code class="filename">Classe</code> na visão de seleção da categoria, e a linguagem e modelo nas outras duas visões. Após ter selecionado um modelo de classe, você terá que especificar os detalhes da nova classe. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-selection.png"></div></div><p>
</p><p>Primeiro você deve especificar um identificador para a nova classe. Isto pode ser um nome simples (como <code class="varname">Onibus</code>) ou um identificador completo com espaço de nomes (como <code class="varname">Transporte::Onibus</code>). No último caso, o <span class="application">KDevelop</span> analisará o identificador e separará corretamente o espaço de nomes a partir do nome fornecido. Na mesma página, você pode adicionar uma classe base em si, bem como remover a/ou adicionar outras bases. Você deve digitar a sentença completa de herança aqui, que é dependente da linguagem, como <code class="varname">public QObject</code> para C++, <code class="varname">extends AlgumaClasse</code> para PHP ou simplesmente o nome da classe para Python. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-inheritance.png"></div></div><p>
</p><p>Na próxima página, você poderá selecionar métodos virtuais de todas as classes herdadas, bem como alguns construtores padrão, destrutores e operadores. Selecionando a caixa de opção ao lado da assinatura de um método, será implementado este método na nova classe. </p><p>Clicar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Próximo</span></span> leva à página aonde você pode adicionar membros à classe. Dependendo do modelo selecionado, eles podem aparecer na nova classe como variáveis de membro, ou o modelo pode criar propriedades com apontadores e obtentores para eles. Em uma linguagem aonde tipos de variável devem ser declarados, como em C++, você terá que especificar tanto o tipo como o nome do membro, como <code class="varname">int numero</code> ou <code class="varname">QString nome</code>. Em outras linguagens, você não precisa declarar o tipo, mas é uma boa prática de programação declará-lo, pois o modelo selecionado pode ainda fazer algum uso dele. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-members.png"></div></div><p>
</p><p>Nas páginas a seguir, você pode selecionar uma licença para sua nova classe, definir opções personalizadas necessárias do modelo selecionado, e configurar a localização de saída para todos os arquivos gerados. Ao clicar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Concluir</span></span>, você conclui o assistente e cria a nova classe. Os arquivos gerados serão abertos no editor, assim você pode iniciar a adicionar código logo a seguir. </p><p>Após criar uma nova classe em C++, você terá a opção de adicionar a classe ao projeto alvo. Selecione um alvo a partir da página da janela, ou cancele a página e adicione os arquivos ao alvo manualmente. </p><p>Se você selecionar o modelo de <code class="filename">Objeto Qt</code>, selecione alguns dos métodos padrão, e adicione duas variáveis-membro, a saída deve se parecer com a imagem a seguir. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-result.png"></div></div><p>
</p><p>Você pode ver que os membros de dados são convertidos para as propriedades do Qt, com funções de acesso e macros Q_PROPERTY. Até mesmo argumentos para funções de ajuste são passados por referência à constante, quando apropriado. Adicionalmente, uma classe privada é declarada, e um ponteiro privado é criado com Q_DECLARE_PRIVATE. Tudo isto é feito pelo modelo. Selecionar um modelo diferente no primeiro passo poderá mudar completamente o resultado. </p></div><FILENAME filename="creating-a-new-unit-test.html"><html><head><title>Criar um novo teste unitário</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="code-generation-with-templates.html" title="Capítulo 4. Geração de código com modelos"><link rel="prev" href="code-generation-with-templates.html" title="Capítulo 4. Geração de código com modelos"><link rel="next" href="other-files.html" title="Outros arquivos"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Criar um novo teste unitário</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="code-generation-with-templates.html">Anterior</a></td><td class="upCell">Geração de código com modelos</td><td class="nextCell"><a accesskey="n" href="other-files.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-a-new-unit-test"></a>Criar um novo teste unitário</h2></div></div></div><p>Apesar de a maioria das plataformas de teste exigirem que cada teste seja também uma classe, o <span class="application">KDevelop</span> inclui um método para simplificar a criação de testes unitários. Para criar um novo teste, dê um clique-direito em uma pasta do projeto e selecione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Criar a partir de um modelo...</span></span>. Na página de seleção de modelo, selecione <code class="filename">Teste</code> como categoria, e então selecione sua linguagem de programação e modelo e clique em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Próximo</span></span>. </p><p>Será solicitado o nome do teste e uma lista de casos de testes. Para os casos de testes, você só terá que indicar uma lista de nomes. Algumas plataformas de testes unitários, como o PyUnit e o PHPUnit, necessitam que os casos de testes comecem por um determinado prefixo especial. No <span class="application">KDevelop</span>, o modelo é responsável pela adição do prefixo, assim você não terá que indicá-lo aqui nos casos de teste. Depois de clique em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Próximo</span></span>, especifique a licença e os locais de saída dos arquivos gerados, para que o teste seja depois criado. </p><p>Os testes unitários criados desta forma não serão adicionados a nenhum alvo automaticamente. Se estiver usando o CTest ou outra plataforma de testes, certifique-se de adicionar os novos arquivos a um alvo. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="code-generation-with-templates.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="other-files.html">Próxima</a></td></tr><tr><td class="prevCell">Geração de código com modelos </td><td class="upCell">Geração de código com modelos</td><td class="nextCell"> Outros arquivos</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="other-files.html"><html><head><title>Outros arquivos</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="code-generation-with-templates.html" title="Capítulo 4. Geração de código com modelos"><link rel="prev" href="creating-a-new-unit-test.html" title="Criar um novo teste unitário"><link rel="next" href="managing-templates.html" title="Gerenciando modelos"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Outros arquivos</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-a-new-unit-test.html">Anterior</a></td><td class="upCell">Geração de código com modelos</td><td class="nextCell"><a accesskey="n" href="managing-templates.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="other-files"></a>Outros arquivos</h2></div></div></div><p>Enquanto classes e unidades de teste recebem uma atenção especial ao gerar o código a partir de modelos, o mesmo método pode ser usado para qualquer tipo de arquivo de código-fonte. Por exemplo, alguém poderia usar um modelo para um módulo de busca do CMake ou um arquivo .desktop. Isto pode ser feito selecionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Criar a partir de um modelo...</span></span>, e selecionando a categoria desejada e modelo. Se a categoria selecionado não for <code class="filename">Classe</code> ou <code class="filename">Teste</code>, você terá somente a opção de selecionar a licença, quaisquer opções especificadas pelo modelo, e a localização de saída dos arquivos. Da mesma maneira procedida com classes e testes, terminar o assistente irá gerar os arquivos e abri-los no editor. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-a-new-unit-test.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="managing-templates.html">Próxima</a></td></tr><tr><td class="prevCell">Criar um novo teste unitário </td><td class="upCell">Geração de código com modelos</td><td class="nextCell"> Gerenciando modelos</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="managing-templates.html"><html><head><title>Gerenciando modelos</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="code-generation-with-templates.html" title="Capítulo 4. Geração de código com modelos"><link rel="prev" href="other-files.html" title="Outros arquivos"><link rel="next" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Compilar os projetos com Makefiles personalizados"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Gerenciando modelos</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="other-files.html">Anterior</a></td><td class="upCell">Geração de código com modelos</td><td class="nextCell"><a accesskey="n" href="building-compiling-projects-with-custom-makefiles.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="managing-templates"></a>Gerenciando modelos</h2></div></div></div><p>A partir do assistente <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Arquivo</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Novo a partir de modelo...</span></span>, você pode também baixar arquivos de modelo adicionais clicando no botão <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Obter mais modelos...</span></span>. Isto abre a janela para obter coisas novas, de onde você pode instalar modelos adicionais. bem como atualizá-los ou removê-los. Existe também um módulo de configuração para modelos, que pode ser acessado clicando em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configurações</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configurar o <span class="application">KDevelop</span></span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Modelos</span></span>. A partir dele, você pode gerenciar tanto modelos de arquivo (explicado acimo) como modelos de projeto (usado para criar projetos novos). </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-manager.png"></div></div><p>
</p><p>É claro, se nenhum dos modelos disponíveis for adequado para o seu projeto, você sempre pode criar novos. A maneira mais fácil é provavelmente copiar e modificar um modelo existente, enquanto este rápido <a class="ulink" href="http://techbase.kde.org/Development/Tutorials/KDevelop/Creating_a_class_template" target="_top">tutorial</a> e o <a class="ulink" href="http://techbase.kde.org/Projects/KDevelop4/File_template_specification" target="_top">documento de especificação</a> mais extenso estão aqui para auxiliá-lo. Para copiar um modelo instalado, abra o gerenciador de modelos clicando em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configurações</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configurar o KDevelop...</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Modelos</span></span>, selecione o modelo que deseja copiar, e então clique no botão <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Extrair modelo</span></span>. Selecione uma pasta de destino, e então clique em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">OK</span></span>, e o conteúdo do modelo será extraído para a pasta selecionada. Agora você pode editar o modelo abrindo os arquivos extraídos e modificando-os. Após terminar, você pode importar seu novo modelo para o <span class="application">KDevelop</span> abrindo o gerenciador de modelos, ativando a aba correspondente (seja a de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Modelos de Projeto</span></span> ou <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Modelos de Arquivo</span></span>) e clicando em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Carregar modelo</span></span>. Abra o arquivo de descrição do modelo, que é o que possui o sufixo <code class="varname">.kdevtemplate</code> ou <code class="varname">.desktop</code>. O <span class="application">KDevelop</span> irá comprimir os arquivos em um pacote de modelo e importar o modelo. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Ao copiar um modelo existente, certifique-se de renomeá-lo antes de importá-lo novamente. Caso contrário, você sobrescreverá o modelo antigo, ou acabará com dois modelos com nomes idênticos. Para renomear um modelo, renomeie o arquivo de descrição para algo único (mas mantenha o sufixo), e mude a entrada <code class="filename">Nome</code> no arquivo de descrição. </p></div><p>
</p><p>Se você deseja escrever um modelo a partir do zero, você pode iniciar com um modelo de classe C++ de exemplo <a class="link" href="creating-projects-from-scratch.html" title="Criar projetos do zero">criando um novo projeto</a> e selecionando o projeto <code class="filename">Modelo de classe C++</code> na categoria <code class="filename">KDevelop</code>. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="other-files.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="building-compiling-projects-with-custom-makefiles.html">Próxima</a></td></tr><tr><td class="prevCell">Outros arquivos </td><td class="upCell">Geração de código com modelos</td><td class="nextCell"> Compilar os projetos com Makefiles personalizados</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="creating-a-new-unit-test.html">Próxima</a></td></tr><tr><td class="prevCell">Algumas combinações de teclas úteis </td><td class="upCell"> </td><td class="nextCell"> Criar um novo teste unitário</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="building-compiling-projects-with-custom-makefiles.html"><html><head><title>Capítulo 5. Compilar os projetos com Makefiles personalizados</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="managing-templates.html" title="Gerenciando modelos"><link rel="next" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html" title="Selecionar uma coleção de alvos do Makefile para uma compilação repetida"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Compilar os projetos com Makefiles personalizados</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="managing-templates.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="building-compiling-projects-with-custom-makefiles"></a>Capítulo 5. Compilar os projetos com Makefiles personalizados</h1></div></div></div><p>Muitos projetos descrevem como os arquivos de código devem ser compilados (e quais os arquivos que terão que ser recompilados assim que um arquivo de código ou de inclusão mudar), usando os arquivos Makefile que são interpretados pelo programa <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">make</span></span> (veja, por exemplo, o <a class="ulink" href="http://www.gnu.org/software/make/" target="_top">'make' da GNU</a>). Para os projetos simples, é normalmente muito simples configurar um destes arquivos manualmente. Os projetos maiores normalmente integram os seus arquivos Makefile com as <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">'autotools' da GNU</span></span> (autoconf, autoheader, automake). Nesta seção, iremos assumir que você tem um Makefile para o seu projeto e quer indicar ao <span class="application">KDevelop</span> como interagir com ele.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>O <span class="application">KDevelop</span> 4.x não tem nenhum suporte às <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">'autotools' da GNU</span></span> no momento em que esta seção foi escrita. Se o seu projeto as usar, terá que rodar o <code class="varname">./configure</code> ou qualquer um dos outros comandos relacionados à mão, numa linha de comando. Se quiser fazer isto dentro do <span class="application">KDevelop</span>, abra a ferramenta do <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Konsole</span></span> (se necessário, adicione-a ao perímetro da janela principal, usando a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Janelas</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Adicionar uma área de ferramentas</span></span>) que lhe dará uma janela com linha de comando e poderá então executar o <code class="varname">./configure</code> a partir da linha de comando nesta janela.</p></div><p>O primeiro passo é indicar ao <span class="application">KDevelop</span> quais são os alvos nos seus arquivos Makefile. Existem duas formas de selecionar os alvos do Makefile individualmente e escolher uma lista dos que deseja compilar com mais frequência. Em ambas as abordagens, abra a ferramenta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projetos</span></span>, clicando no botão de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projetos</span></span> no perímetro da janela principal do <span class="application">KDevelop</span> (se não tiver este botão, veja como adicionar um botão destes aí). A janela da ferramenta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projetos</span></span> tem duas partes: a metade superior — chamada <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projetos</span></span> — apresenta todos os seus projetos e permite-lhe expandir as árvores de pastas subjacentes. A metade inferior — chamada <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Seleção dos projetos</span></span> — apresenta um subconjunto desses projetos que serão compilados ao escolher o item do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projeto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Compilar a seleção</span></span> ou pressionar <span class="keycap"><strong>F8</strong></span>; voltaremos a esta parte mais adiante.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="building-individual-makefile-targets"></a>Compilar os alvos individuais do Makefile</h2></div></div></div><p>Na parte superior da área do projeto, expanda a subárvore de um projeto, por exemplo o projeto onde deseja executar um alvo em particular do Makefile. Isto fornecerá ícones para (i) as pastas sob este projeto, (ii) os arquivos na pasta de topo deste projeto, (iii) os alvos do Makefile que o <span class="application">KDevelop</span> consegue identificar. Estas categorias aparecem na imagem à direita. Lembre-se de que o <span class="application">KDevelop</span> <span class="emphasis"><em>compreende</em></span> a sintaxe do Makefile até um certo ponto e, como tal, consegue apresentar-lhe os alvos definidos nesse Makefile (ainda que esta compreensão possa ter os seus limites, caso os alvos sejam compostos ou implícitos).</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-1a.png"><div class="caption"><p></p></div></div></div><p>Para compilar qualquer um dos alvos aqui apresentados, clique nele com o botão direito do mouse e selecione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compilar</span></span>. Por exemplo, se fizer isto com o alvo <span class="quote">“<span class="quote">clean</span>”</span> (limpar), irá simplesmente executar o comando <span class="quote">“<span class="quote">make clean</span>”</span>. Você poderá ver isto acontecendo na subjanela <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compilação</span></span> que aparece, mostrando-lhe o comando e o seu resultado. (Esta janela corresponde à ferramenta para <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compilar</span></span>, assim você poderá fechar e voltar a abrir a janela com o botão de ferramentas <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compilar</span></span> no perímetro da janela principal. Este aparece na parte inferior direita da imagem.)</p></div><FILENAME filename="selecting-a-collection-of-makefile-targets-for-repeated-building.html"><html><head><title>Selecionar uma coleção de alvos do Makefile para uma compilação repetida</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Compilar os projetos com Makefiles personalizados"><link rel="prev" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Compilar os projetos com Makefiles personalizados"><link rel="next" href="what-to-do-with-error-messages.html" title="O que fazer com as mensagens de erro"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Selecionar uma coleção de alvos do Makefile para uma compilação repetida</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="building-compiling-projects-with-custom-makefiles.html">Anterior</a></td><td class="upCell">Compilar os projetos com Makefiles personalizados</td><td class="nextCell"><a accesskey="n" href="what-to-do-with-error-messages.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="selecting-a-collection-of-makefile-targets-for-repeated-building"></a>Selecionar uma coleção de alvos do Makefile para uma compilação repetida</h2></div></div></div><p>Se clicar com o botão direito em alvos individuais do Makefile, sempre que quiser compilar algo, irá perder um tempo precioso. Em vez disso, será bom ter alvos individuais para um ou mais projetos da sessão que possa então compilar de forma repetida sem muito trabalho com o mouse. Aí é onde o conceito das <span class="quote">“<span class="quote">Seleções de alvos de compilação</span>”</span> pode ajudar: é uma coleção de alvos dos arquivos Makefile que são executados um após o outro quando clicar no botão <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compilar a seleção</span></span> na lista de botões do topo, selecionar a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projeto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Compilar a seleção</span></span> ou pressionar a tecla de função <span class="keycap"><strong>F8</strong></span>.</p><p>A lista com os alvos selecionados da Makefile aparece na metade inferior da área de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projetos</span></span>.</p><p>Por padrão, a seleção contém todos os projetos, mas você poderá alterar isso. Por exemplo, se a sua lista de projetos tiver três destes (uma biblioteca de base L e duas aplicações A e B), mas você só estiver trabalhando no momento no projeto A, você poderá querer remover o projeto B da seleção, selecionando-o nessa lista e clicando no botão <span class="inlinemediaobject"><img src="Icon-list-remove.png"></span>. Além disso, você poderá querer garantir que a biblioteca L é compilada antes do projeto A, movendo os itens da seleção para cima ou para baixo com os botões à direita da lista. Também poderá obter um alvo da Makefile em particular para a seleção se clicar com o botão direito sobre ela e selecionar <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Adicionar ao conjunto de compilação</span></span> ou simplesmente selecioná-lo e clicar em <span class="inlinemediaobject"><img src="Icon-list-add.png"></span>, logo acima da lista de alvos selecionados.</p><p>O <span class="application">KDevelop</span> permite-lhe configurar o que desejar sempre que compilar a seleção. Para isso, use a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projeto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Abrir a configuração</span></span>. Aí, poderá por exemplo selecionar o número de tarefas simultâneas que o <span class="quote">“<span class="quote">make</span>”</span> deverá executar — se o seu computador tiver, por exemplo, 8 processadores, então poderá ser útil indicar 8 neste campo. Nesta janela, o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Alvo predefinido do 'make'</span></span> é um alvo do Makefile usado para <span class="emphasis"><em>todos</em></span> os alvos da seleção.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="building-compiling-projects-with-custom-makefiles.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="what-to-do-with-error-messages.html">Próxima</a></td></tr><tr><td class="prevCell">Compilar os projetos com Makefiles personalizados </td><td class="upCell">Compilar os projetos com Makefiles personalizados</td><td class="nextCell"> O que fazer com as mensagens de erro</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="what-to-do-with-error-messages.html"><html><head><title>O que fazer com as mensagens de erro</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Compilar os projetos com Makefiles personalizados"><link rel="prev" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html" title="Selecionar uma coleção de alvos do Makefile para uma compilação repetida"><link rel="next" href="running-programs-in-kdevelop.html" title="Capítulo 6. Executar os programas no KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> O que fazer com as mensagens de erro</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Anterior</a></td><td class="upCell">Compilar os projetos com Makefiles personalizados</td><td class="nextCell"><a accesskey="n" href="running-programs-in-kdevelop.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="what-to-do-with-error-messages"></a>O que fazer com as mensagens de erro</h2></div></div></div><p>Se o compilador encontrar uma mensagem de erro, basta clicar na linha com a mensagem de erro para que o editor vá para a linha (e, se possível, a coluna) onde foi comunicado o erro. Dependendo da mensagem de erro, o <span class="application">KDevelop</span> poderá oferecer-lhe várias ações possíveis para corrigir o erro, como por exemplo declarar uma variável previamente ainda por declarar, caso seja encontrado um símbolo desconhecido.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="running-programs-in-kdevelop.html">Próxima</a></td></tr><tr><td class="prevCell">Selecionar uma coleção de alvos do Makefile para uma compilação repetida </td><td class="upCell">Compilar os projetos com Makefiles personalizados</td><td class="nextCell"> Executar os programas no <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="managing-templates.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Próxima</a></td></tr><tr><td class="prevCell">Gerenciando modelos </td><td class="upCell"> </td><td class="nextCell"> Selecionar uma coleção de alvos do Makefile para uma compilação repetida</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="running-programs-in-kdevelop.html"><html><head><title>Capítulo 6. Executar os programas no KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="what-to-do-with-error-messages.html" title="O que fazer com as mensagens de erro"><link rel="next" href="some-useful-keyboard-shortcuts0.html" title="Algumas combinações de teclas úteis"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Executar os programas no <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-to-do-with-error-messages.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts0.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="running-programs-in-kdevelop"></a>Capítulo 6. Executar os programas no <span class="application">KDevelop</span></h1></div></div></div><p>Assim que tiver compilado um programa, você irá querer executá-lo. Para isso, é necessário configurar <span class="emphasis"><em>Lançamentos</em></span> para os seus projetos. Um <span class="emphasis"><em>Lançamento</em></span> consiste no nome de um executável, um conjunto de parâmetros da linha de comando e um ambiente de execução (como por exemplo <span class="quote">“<span class="quote">executar este programa num terminal</span>”</span> ou <span class="quote">“<span class="quote">executar este programa no depurador</span>”</span>).</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setting-up-launches-in-kdevelop"></a>Configurar os lançamentos no <span class="application">KDevelop</span></h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-2.png"><div class="caption"><p></p></div></div></div><p>Para configurar isto, vá à opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Executar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurar os lançamentos</span></span>, selecione o projeto para o qual deseja adicionar um lançamento e clique no botão <span class="inlinemediaobject"><img src="Icon-list-add.png"></span>. Depois, insira o nome do executável e o local onde deseja executá-lo. Se a execução do programa depender da compilação do executável e/ou das suas bibliotecas em primeiro lugar, então poderá adicioná-los à lista no fundo: selecione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compilar</span></span> no menu e depois clique no símbolo <span class="inlinemediaobject"><img src="Icon-folder.png"></span> à direita do campo de texto e selecione o alvo que deseja ter compilado. No exemplo acima, foi selecionado o alvo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">all</span></span> (tudo) do projeto <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>1.jogada.II</code></em></span> e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>passo-32</code></em></span> do projeto <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>1.passo-32</code></em></span> para se certificar que tanto a biblioteca de base como o programa foram compilados e estão atualizados antes de executar o programa em si. Já que está aqui, você poderá também configurar um lançamento de depuração, clicando para isso no símbolo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Depuração</span></span> e adicionando o nome do programa de depuração; se este for o depurador padrão do sistema (por exemplo o <span class="application">gdb</span> no <span class="trademark">Linux</span>®), então não terá que efetuar este passo.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-3.png"><div class="caption"><p></p></div></div></div><p>Você poderá agora tentar executar o programa: Selecione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Executar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Executar o lançamento</span></span> a partir do menu da janela principal do <span class="application">KDevelop</span> (ou pressionar <span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>F9</strong></span>), para que o seu programa se execute em uma subjanela separada do <span class="application">KDevelop</span>. A imagem acima mostra o resultado: a nova subjanela da ferramenta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Executar</span></span>, no fundo, mostra o resultado do programa que está sendo executado, neste caso, do programa <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>passo-32</code></em></span>.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Se você tiver configurado vários lançamentos, poderá escolher qual deseja executar quando pressionar <span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>F9</strong></span>, indo à opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Executar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configuração de lançamento atual</span></span>. Existe uma forma não óbvia de editar o nome de uma configuração: na janela que obtém quando selecionar a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Executar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configuração de lançamento atual</span></span>, faça duplo-clique sobre o nome da configuração na árvore da esquerda, a qual lhe permitirá editar o nome da configuração.</p></div></div><FILENAME filename="some-useful-keyboard-shortcuts0.html"><html><head><title>Algumas combinações de teclas úteis</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="running-programs-in-kdevelop.html" title="Capítulo 6. Executar os programas no KDevelop"><link rel="prev" href="running-programs-in-kdevelop.html" title="Capítulo 6. Executar os programas no KDevelop"><link rel="next" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depurar os programas no KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Algumas combinações de teclas úteis</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="running-programs-in-kdevelop.html">Anterior</a></td><td class="upCell">Executar os programas no <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="debugging-programs-in-kdevelop.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="some-useful-keyboard-shortcuts0"></a>Algumas combinações de teclas úteis</h2></div></div></div><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Executar um programa</th></tr></thead><tbody><tr><td><span class="keycap"><strong>F8</strong></span></td><td>Compilar (invocar o 'make')</td></tr><tr><td><span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>F9</strong></span></td><td>Executar</td></tr><tr><td><span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F9</strong></span></td><td>Executar o programa no depurador; você poderá querer definir pontos de parada de antemão; por exemplo, se clicar com o botão direito do mouse numa linha em particular do código-fonte</td></tr></tbody></table></div><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="running-programs-in-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="debugging-programs-in-kdevelop.html">Próxima</a></td></tr><tr><td class="prevCell">Executar os programas no <span class="application">KDevelop</span> </td><td class="upCell">Executar os programas no <span class="application">KDevelop</span></td><td class="nextCell"> Depurar os programas no <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-to-do-with-error-messages.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts0.html">Próxima</a></td></tr><tr><td class="prevCell">O que fazer com as mensagens de erro </td><td class="upCell"> </td><td class="nextCell"> Algumas combinações de teclas úteis</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="debugging-programs-in-kdevelop.html"><html><head><title>Capítulo 7. Depurar os programas no KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="some-useful-keyboard-shortcuts0.html" title="Algumas combinações de teclas úteis"><link rel="next" href="attaching-the-debugger-to-a-running-process.html" title="Associar o depurador a um processo em execução"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Depurar os programas no <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts0.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="attaching-the-debugger-to-a-running-process.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="debugging-programs-in-kdevelop"></a>Capítulo 7. Depurar os programas no <span class="application">KDevelop</span></h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="running-a-program-in-the-debugger"></a>Executar um programa no depurador</h2></div></div></div><p>Assim que tiver um lançamento configurado (veja como <a class="link" href="running-programs-in-kdevelop.html" title="Capítulo 6. Executar os programas no KDevelop">Executar os programas</a>), também poderá executá-lo num depurador: Selecione o item do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Executar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Depurar o lançamento</span></span> ou pressione <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F9</strong></span>. Se estiver familiarizado com o <span class="application">gdb</span>, o efeito é o mesmo que iniciar o <span class="application">gdb</span> com o nome do executável indicado na configuração do lançamento e depois dizer para <code class="varname">Executar</code>. Isto significa que, caso o programa invoque o <code class="varname">abort()</code> em algum ponto (por exemplo quando você chegar a uma assertiva mal-sucedida) ou se tiver um erro de segmentação (proteção de memória), então o depurador irá parar. Por outro lado, se o programa chegar ao fim (tendo ou não feito a coisa certa), então o depurador não irá parar por si só antes que o programa termine. No último caso, irá querer definir um ponto de parada sobre todas essas linhas da sua base de código onde deseja que o depurador pare, antes de executar o lançamento de depuração. Você poderá fazer isso com a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Executar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Comutar o ponto de parada</span></span> ou se clicar com o botão direito sobre uma linha e selecionar a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Comutar o ponto de parada</span></span> do menu de contexto.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-4.png"><div class="caption"><p></p></div></div></div><p>A execução de um programa no depurador irá colocar o <span class="application">KDevelop</span> num modo diferente: irá substituir todos os botões de <span class="quote">“<span class="quote">Ferramentas</span>”</span> no perímetro da janela principal por outros que sejam apropriados para a edição. Você poderá ver qual dos modos em que se encontra se olhar para o canto superior direito da janela: existem páginas chamadas <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisão</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Depuração</span></span> e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Código</span></span>; se clicar nelas, poderá mudar para qualquer um dos três modos; cada modo tem um conjunto de áreas de ferramentas próprio, o qual poderá configurar da mesma forma que foi feito para as ferramentas de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Código</span></span> na seção <a class="link" href="working-with-source-code.html#tools-and-views" title="Ferramentas e visões">Ferramentas e janelas</a>.</p><p>Assim que o depurador parar (num ponto de parada ou num ponto em que a função <code class="varname">abort()</code> seja chamada), você poderá inspecionar uma grande quantidade de informações sobre o seu programa. Por exemplo, na imagem acima, foi selecionada a <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Pilha de chamadas</span></span> no fundo (algo equivalente aos comandos do <span class="application">gdb</span> <span class="quote">“<span class="quote">backtrace</span>”</span> e <span class="quote">“<span class="quote">info threads</span>”</span>) que mostra as várias tarefas em execução do seu programa à esquerda (aqui num total de 8) e como a execução chegou ao ponto de parada atual à direita (aqui: o <code class="varname">main()</code> invocou o <code class="varname">executar()</code>; a lista seria maior se tivesse parado numa função chamada pelo próprio <code class="varname">executar()</code>). À esquerda, você poderá inspecionar as variáveis locais, incluindo o objeto atual (o objeto referenciado pela variável <code class="varname">this</code>).</p><p>A partir daqui, existem várias possibilidades disponíveis: você poderá executar a linha atual (<span class="keycap"><strong>F10</strong></span>, equivalente ao comando do <span class="application">gdb</span> <span class="quote">“<span class="quote">next</span>”</span>), ir para dentro das funções (<span class="keycap"><strong>F11</strong></span>, correspondendo ao comando do <span class="application">gdb</span> <span class="quote">“<span class="quote">step</span>”</span>) ou executar até ao fim da função (<span class="keycap"><strong>F12</strong></span>, equivalente ao comando do <span class="application">gdb</span> <span class="quote">“<span class="quote">finish</span>”</span>). Em cada passo, o <span class="application">KDevelop</span> atualiza as variáveis apresentadas à esquerda para os seus valores atuais. Você poderá também passar o mouse sobre um símbolo no seu código, por exemplo uma variável; o <span class="application">KDevelop</span> irá então mostrar o valor atual desse símbolo e oferecer-se-á para parar o programa na próxima vez que o valor desta variável mudar. Se conhecer o <span class="application">gdb</span>, também poderá clicar no botão da ferramenta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">GDB</span></span> no fundo e ter a possibilidade de introduzir diretamente comandos do <span class="application">gdb</span>, por exemplo para alterar o valor de uma variável (possibilidade para a qual não existe no momento outra forma alternativa).</p></div><FILENAME filename="attaching-the-debugger-to-a-running-process.html"><html><head><title>Associar o depurador a um processo em execução</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depurar os programas no KDevelop"><link rel="prev" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depurar os programas no KDevelop"><link rel="next" href="some-useful-keyboard-shortcuts1.html" title="Algumas combinações de teclas úteis"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Associar o depurador a um processo em execução</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="debugging-programs-in-kdevelop.html">Anterior</a></td><td class="upCell">Depurar os programas no <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts1.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="attaching-the-debugger-to-a-running-process"></a>Associar o depurador a um processo em execução</h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-9.png"><div class="caption"><p></p></div></div></div><p>Algumas vezes, uma pessoa poderá querer depurar um programa que já está em execução. Um cenário para isso será a depuração de vários programas em paralelo com o <a class="ulink" href="https://computing.llnl.gov/tutorials/mpi/" target="_top">MPI</a> ou para depurar um programa que se encontra há muito em segundo plano. Para isso, vá para a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Executar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Anexar ao processo</span></span>, a qual irá abrir uma janela como a anterior. Você irá querer selecionar o programa que corresponde ao seu projeto aberto no momento no <span class="application">KDevelop</span> - neste caso, seria o programa 'passo-32'.</p><p>Esta lista de programas poderá ser confusa porque é normalmente muito longa, como acontece no caso daqui. Você poderá simplificar a sua vida se for à lista no canto superior direito da janela. O valor padrão é <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Processos do usuário</span></span>, isto é todos os programas que são executados por qualquer um dos usuários autenticados no momento nesta máquina (se este for o seu computador pessoal ou portátil, provavelmente você será o único usuário de fato, além do 'root' e das várias contas de serviços); a lista não inclui os processos executados pelo usuário 'root', contudo. Você poderá limitar a lista se escolher a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Processos próprios</span></span>, removendo todos os programas executados pelos outros usuários. Melhor ainda, selecione a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apenas os programas</span></span>, a qual retira muitos dos processos que estão sendo executados com o seu nome, mas com os quais não interage normalmente, como o gerenciador de janelas, as tarefas de segundo plano e assim por diante, as quais não são normalmente candidatas para a depuração.</p><p>Assim que tiver selecionado um processo, ao associar-se a ele irá entrar no modo de depuração do <span class="application">KDevelop</span>, abrir todas as áreas de ferramentas de depuração e parar o programa na posição em que se encontrava quando se associou a ele. Aí poderá querer definir pontos de parada, pontos de visualização ou tudo o que necessitar e ainda continuar a execução do programa, indo para a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Executar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Continuar</span></span>.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="debugging-programs-in-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts1.html">Próxima</a></td></tr><tr><td class="prevCell">Depurar os programas no <span class="application">KDevelop</span> </td><td class="upCell">Depurar os programas no <span class="application">KDevelop</span></td><td class="nextCell"> Algumas combinações de teclas úteis</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="some-useful-keyboard-shortcuts1.html"><html><head><title>Algumas combinações de teclas úteis</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depurar os programas no KDevelop"><link rel="prev" href="attaching-the-debugger-to-a-running-process.html" title="Associar o depurador a um processo em execução"><link rel="next" href="working-with-version-control-systems.html" title="Capítulo 8. Lidar com sistemas de controle de versões"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Algumas combinações de teclas úteis</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="attaching-the-debugger-to-a-running-process.html">Anterior</a></td><td class="upCell">Depurar os programas no <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="working-with-version-control-systems.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="some-useful-keyboard-shortcuts1"></a>Algumas combinações de teclas úteis</h2></div></div></div><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Depuração</th></tr></thead><tbody><tr><td><span class="keycap"><strong>F10</strong></span></td><td>Avançar sobre (<span class="quote">“<span class="quote">next</span>”</span> do 'gdb')</td></tr><tr><td><span class="keycap"><strong>F11</strong></span></td><td>Avançar para (<span class="quote">“<span class="quote">step</span>”</span> do 'gdb')</td></tr><tr><td><span class="keycap"><strong>F12</strong></span></td><td>Avançar para fora (<span class="quote">“<span class="quote">finish</span>”</span> do 'gdb')</td></tr></tbody></table></div><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="attaching-the-debugger-to-a-running-process.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="working-with-version-control-systems.html">Próxima</a></td></tr><tr><td class="prevCell">Associar o depurador a um processo em execução </td><td class="upCell">Depurar os programas no <span class="application">KDevelop</span></td><td class="nextCell"> Lidar com sistemas de controle de versões</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts0.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="attaching-the-debugger-to-a-running-process.html">Próxima</a></td></tr><tr><td class="prevCell">Algumas combinações de teclas úteis </td><td class="upCell"> </td><td class="nextCell"> Associar o depurador a um processo em execução</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="working-with-version-control-systems.html"><html><head><title>Capítulo 8. Lidar com sistemas de controle de versões</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="some-useful-keyboard-shortcuts1.html" title="Algumas combinações de teclas úteis"><link rel="next" href="customizing-kdevelop.html" title="Capítulo 9. Personalizar o KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Lidar com sistemas de controle de versões</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts1.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="customizing-kdevelop.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="working-with-version-control-systems"></a>Capítulo 8. Lidar com sistemas de controle de versões</h1></div></div></div><p>Se você estiver lidando com projetos maiores, será provável que o código-fonte seja gerenciado por um sistema de controle de versões como o <a class="ulink" href="http://subversion.apache.org" target="_top">subversion</a> ou o <a class="ulink" href="http://git-scm.com/" target="_top">git</a>. A seguinte descrição será feita com o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">subversion</span></span> em vista, mas será igualmente válida se quiser usar o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">git</span></span> ou outro sistema de controle de versões suportado qualquer.</p><p>Repare primeiro que, se a pasta na qual se encontra um projeto estiver sob controle de versões, o <span class="application">KDevelop</span> irá descobrir automaticamente. Em outras palavras: Não é necessário que indique ao <span class="application">KDevelop</span> para extrair ele próprio uma cópia ao configurar o seu projeto; é suficiente apontar o <span class="application">KDevelop</span> para uma pasta onde já tenha extraído previamente uma cópia do repositório. Se tiver uma dessas pastas sob controle de versões, abra a área de ferramentas dos <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projetos</span></span>. Aí, existe um conjunto de coisas que poderá fazer:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Se a sua pasta estiver desatualizada, você poderá atualizá-la a partir do repositório: Clique no nome do projeto com o botão direito do mouse, vá ao menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> e selecione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Atualizar</span></span>. Isto irá obter atualizações de todos os arquivos que pertençam a este projeto e que digam respeito ao repositório. </p></li><li class="listitem"><p>Se quiser restringir esta ação apenas às subpastas ou arquivos individuais, então expanda a árvore deste projeto para o nível que desejar e clique com o botão direito do mouse sobre uma subpasta ou arquivo, fazendo o mesmo que se descreveu acima. </p></li></ul></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-8.png"><div class="caption"><p></p></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Se você tiver editado um ou mais arquivos, expanda a área do projeto até à pasta onde se encontram estes arquivos e clique com o botão direito sobre a pasta. Isto oferecer-lhe-á um item do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> que lhe oferece diferentes opções. Escolha a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Comparar com a base</span></span> para ver as diferenças entre a versão que tem editada e a versão no repositório que extraiu anteriormente (a versão de <span class="quote">“<span class="quote">base</span>”</span>). A janela resultante irá mostrar as <span class="quote">“<span class="quote">diferenças</span>”</span> de todos os arquivos nesta pasta. </p></li><li class="listitem"><p>Se você só editou um único arquivo, poderá também obter o menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> para este arquivo, bastando para isso clicar com o botão direito sobre o arquivo correspondente na área do projeto. Ainda mais simples, basta clicar com o botão direito sobre a área do <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Editor</span></span>, na qual tenha aberto este arquivo, obtendo também esta opção do menu. </p></li><li class="listitem"><p>Se quiser enviar um ou mais arquivos editados para o servidor, clique com o botão direito sobre um arquivo individual, subpasta ou sobre o projeto todo e selecione a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Subversion</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Enviar</span></span>. Isto fará mudar o modo para <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisão</span></span>, o terceiro modo que existe além do <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Código</span></span> e <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Depuração</span></span> no canto superior direito da janela principal do <span class="application">KDevelop</span>. A imagem à direita mostra-lhe como isto fica. No modo de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisão</span></span>, a parte superior mostra-lhe as diferenças para a subpasta/projeto inteiro e cada um dos arquivos individuais alterados com as alterações realçadas (veja as várias páginas nesta parte da janela). Por padrão, todos os arquivos alterados estão no conjunto de alterações que estará prestes a enviar, mas você poderá desligar alguns dos arquivos, caso as suas modificações não estejam relacionadas com o que deseja enviar. No exemplo à direita, foi desligado o arquivo <code class="varname">passo-32.cc</code> e <code class="varname">passo-32.prm</code> porque as alterações destes arquivos não têm nada a ver com as outras que foram feitas no projeto e não se pretende enviá-las agora (poder-se-á pensar nisso num envio em separado). Depois de rever as alterações, poderá inserir uma mensagem de envio no campo de texto e clicar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Enviar</span></span> à direita para enviar tudo o que desejar. </p></li><li class="listitem"><p>Assim como na visualização das diferenças, se quiser enviar um único arquivo, também poderá clicar com o botão direito na janela do editor para obter a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Subversion</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Enviar</span></span>. </p></li></ul></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts1.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="customizing-kdevelop.html">Próxima</a></td></tr><tr><td class="prevCell">Algumas combinações de teclas úteis </td><td class="upCell"> </td><td class="nextCell"> Personalizar o <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-kdevelop.html"><html><head><title>Capítulo 9. Personalizar o KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="working-with-version-control-systems.html" title="Capítulo 8. Lidar com sistemas de controle de versões"><link rel="next" href="customizing-code-indentation.html" title="Personalizar a indentação do código"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalizar o <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-version-control-systems.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="customizing-code-indentation.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="customizing-kdevelop"></a>Capítulo 9. Personalizar o <span class="application">KDevelop</span></h1></div></div></div><p>Existem momentos em que poderá querer alterar a aparência ou comportamento predefinidos do <span class="application">KDevelop</span>, por exemplo, se estiver habituado a combinações de teclas diferentes ou porque o seu projeto necessita de um estilo de indentação diferente para o código-fonte. Nas seções a seguir, iremos discutir de forma breve as diferentes formas com que pode personalizar o <span class="application">KDevelop</span> para esses fins.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-the-editor"></a>Personalizar o editor</h2></div></div></div><p>Existe um conjunto de coisas úteis que poderá configurar no editor incorporado do <span class="application">KDevelop</span>. A mais universal será ativar a numeração de linhas com a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Editor</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Ver</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Mostrar os números de linha</span></span>, facilitando a correspondência das mensagens de erro do compilador ou do depurador com os locais do código. No mesmo submenu, poderá também querer ativar o <span class="emphasis"><em>Contorno de ícones</em></span> - uma coluna à esquerda do seu código na qual o <span class="application">KDevelop</span> irá mostrar ícones como os de existência de pontos de parada na linha atual.</p></div><FILENAME filename="customizing-code-indentation.html"><html><head><title>Personalizar a indentação do código</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="customizing-kdevelop.html" title="Capítulo 9. Personalizar o KDevelop"><link rel="prev" href="customizing-kdevelop.html" title="Capítulo 9. Personalizar o KDevelop"><link rel="next" href="customizing-keyboard-shortcuts.html" title="Personalizar os atalhos de teclado"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalizar a indentação do código</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-kdevelop.html">Anterior</a></td><td class="upCell">Personalizar o <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="customizing-keyboard-shortcuts.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-code-indentation"></a>Personalizar a indentação do código</h2></div></div></div><p>Muitos de nós gostamos do código formatado de uma determinada forma. Muitos projetos também obrigam a um determinado estilo de indentação em particular. Alguns deles poderão não corresponder aos estilos predefinidos do <span class="application">KDevelop</span>. Contudo, isto pode ser personalizado: vá à opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configurações</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurar o <span class="application">KDevelop</span></span></span>, depois clique no <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Formatador de código</span></span> à esquerda. Você poderá então escolher um dos estilos predefinidos de indentação que são vulgarmente usados ou ainda definir o seu próprio, adicionando um novo estilo e depois editando-o. Você poderá não haver uma forma de recriar exatamente o estilo com que o código do seu projeto foi indentado no passo, mas poderá aproximar-se o suficiente se usar a configuração de um novo estilo; é demonstrado um exemplo nas duas imagens abaixo.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-5.png"><div class="caption"><p></p></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-6.png"><div class="caption"><p></p></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Com o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel"><span class="application">KDevelop</span> 4.2.2</span></span>, você poderá criar um novo estilo para um tipo MIME em particular (por exemplo para os arquivos de inclusão em C++), mas este estilo poderá não aparecer na lista de estilos possíveis para outros tipos MIME ((por exemplo para os arquivos de código em C++) ainda que pudesse ser útil usar o mesmo estilo para ambos os tipos de arquivos. Nesse caso, você terá que definir o estilo duas vezes, uma para os arquivos de inclusão e outra para os de código. Isto foi comunicado como o <a class="ulink" href="https://bugs.kde.org/show_bug.cgi?id=272335" target="_top">erro 272335 do <span class="application">KDevelop</span></a>.</p></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="customizing-keyboard-shortcuts.html">Próxima</a></td></tr><tr><td class="prevCell">Personalizar o <span class="application">KDevelop</span> </td><td class="upCell">Personalizar o <span class="application">KDevelop</span></td><td class="nextCell"> Personalizar os atalhos de teclado</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-keyboard-shortcuts.html"><html><head><title>Personalizar os atalhos de teclado</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="customizing-kdevelop.html" title="Capítulo 9. Personalizar o KDevelop"><link rel="prev" href="customizing-code-indentation.html" title="Personalizar a indentação do código"><link rel="next" href="customizing-code-auto-completion.html" title="Personalizar a complementação automática do código"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalizar os atalhos de teclado</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-indentation.html">Anterior</a></td><td class="upCell">Personalizar o <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="customizing-code-auto-completion.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-keyboard-shortcuts"></a>Personalizar os atalhos de teclado</h2></div></div></div><p>O <span class="application">KDevelop</span> tem uma lista quase ilimitada de combinações de teclas (algumas delas encontram-se nas <span class="quote">“<span class="quote">seções de combinações úteis de teclas</span>”</span> de vários capítulos neste manual) que poderão ser alteradas a seu gosto no menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configurações</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurar atalhos</span></span>. No topo da janela, você poderá indicar uma palavra a pesquisar em que só irão aparecer os comandos que corresponderem; aí, poderá editar a combinação de teclas que estará associada a esse comando.</p><p>Duas que são consideradas muito úteis para alterar são associar o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Alinhar</span></span> à tecla <span class="keycap"><strong>Tab</strong></span> (muitas pessoas não inserem tabulações à mão e assim preferem que o editor escolha o layout do mesmo; com o atalho alterado, pressionar <span class="keycap"><strong>Tab</strong></span>, fará com que o <span class="application">KDevelop</span> indente/retire a indentação/alinhe o código). A segunda é associar o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Comutar o ponto de parada</span></span> ao <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>B</strong></span>, uma vez que é uma operação bastante frequente.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-indentation.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="customizing-code-auto-completion.html">Próxima</a></td></tr><tr><td class="prevCell">Personalizar a indentação do código </td><td class="upCell">Personalizar o <span class="application">KDevelop</span></td><td class="nextCell"> Personalizar a complementação automática do código</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-code-auto-completion.html"><html><head><title>Personalizar a complementação automática do código</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="customizing-kdevelop.html" title="Capítulo 9. Personalizar o KDevelop"><link rel="prev" href="customizing-keyboard-shortcuts.html" title="Personalizar os atalhos de teclado"><link rel="next" href="building-kdevelop-from-sources.html" title="Capítulo 10. Compilar o KDevelop a partir do código-fonte"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalizar a complementação automática do código</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-keyboard-shortcuts.html">Anterior</a></td><td class="upCell">Personalizar o <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="building-kdevelop-from-sources.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-code-auto-completion"></a>Personalizar a complementação automática do código</h2></div></div></div><p>A complementação do código é discutida <a class="link" href="writing-source-code.html#auto-completion" title="Complementação automática">na seção deste manual sobre a escrita de código-fonte</a>. No <span class="application">KDevelop</span>, vem de duas origens: o editor e o motor de processamento. O editor (<span class="application">Kate</span>) é um componente do ambiente do KDE e fornece a complementação automática com base nas palavras que já tiverem sido vista em outras partes do mesmo documento. Essa complementação automática poderá ser identificada na dica pelo ícone que a antecede:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-20.png"><div class="caption"><p></p></div></div></div><p>A complementação de código do editor poderá ser personalizada com a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configurações</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configurar o editor</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Edição</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Complementação automática</span></span>. Em particular, você pode selecionar quantos caracteres necessita digitar para que a janela de complementação automática apareça.</p><p>Por outro lado, a complementação automática própria do <span class="application">KDevelop</span> é muito mais poderosa, uma vez que tem em conta a informação semântica sobre o contexto. Por exemplo, ele sabe que funções-membro deverão oferecer quando escrever <code class="varname">objeto.</code>, <abbr class="abbrev">etc.</abbr>, como demonstrado acima:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-42.png"><div class="caption"><p></p></div></div></div><p>Esta informação de contexto vem de vários plugins de suporte às linguagens, os quais poderão ser utilizados depois de um determinado arquivo ter sido salvo (para que possa então verificar o tipo de arquivo e usar o suporte da linguagem correto).</p><p>A complementação do <span class="application">KDevelop</span> está configurada para aparecer assim que digitar, praticamente em todo local onde seja possível completar algo. Isto é configurável na opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configurações</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configurar o <span class="application">KDevelop</span></span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Suporte à linguagem</span></span>. Se não estiver já definido (como deveria, por padrão), certifique-se de que a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Ativar a invocação automática</span></span> está ativa.</p><p>O <span class="application">KDevelop</span> tem duas formas de mostrar uma complementação: a <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Complementação automática mínima</span></span> mostra apenas a informação básica nas dicas de complementação (isto é o espaço de nomes, a classe, função ou variável). Isto será semelhante à completação do <span class="application">Kate</span> (excetuando os ícones).</p><p>Por outro lado, a <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Complementação total</span></span> irá também mostrar o tipo de cada item e, no caso das funções, também os argumentos que recebem. Do mesmo modo, se estiver preenchendo no momento os argumentos de uma função, a complementação total irá ter uma área informativa adicional sobre o cursor que lhe mostrará o argumento atual com que está lidando.</p><p>A complementação de código do <span class="application">KDevelop</span> deverá também invocar para o topo e realçar em verde os itens de complementação que corresponderem ao tipo esperado, tanto na complementação mínima como na total, conhecido como <span class="quote">“<span class="quote">melhores ocorrências</span>”</span>.</p><p>As três opções possíveis para o nível de completação na janela de configuração são:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Sempre a complementação mínima</span></span>: Nunca mostrar a <span class="quote">“<span class="quote">Complementação total</span>”</span> </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Complementação automática mínima</span></span>: Só mostrar a <span class="quote">“<span class="quote">Complementação total</span>”</span> quando esta tiver sido invocada manualmente (isto é, quando pressionar <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Espaço</strong></span>) </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Sempre a complementação total</span></span>: Mostrar sempre a <span class="quote">“<span class="quote">Complementação total</span>”</span> </p></li></ul></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-keyboard-shortcuts.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="building-kdevelop-from-sources.html">Próxima</a></td></tr><tr><td class="prevCell">Personalizar os atalhos de teclado </td><td class="upCell">Personalizar o <span class="application">KDevelop</span></td><td class="nextCell"> Compilar o <span class="application">KDevelop</span> a partir do código-fonte</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-version-control-systems.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="customizing-code-indentation.html">Próxima</a></td></tr><tr><td class="prevCell">Lidar com sistemas de controle de versões </td><td class="upCell"> </td><td class="nextCell"> Personalizar a indentação do código</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="building-kdevelop-from-sources.html"><html><head><title>Capítulo 10. Compilar o KDevelop a partir do código-fonte</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="customizing-code-auto-completion.html" title="Personalizar a complementação automática do código"><link rel="next" href="install-for-all-users.html" title="Instalar para todos os usuários"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Compilar o <span class="application">KDevelop</span> a partir do código-fonte</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-auto-completion.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="install-for-all-users.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="building-kdevelop-from-sources"></a>Capítulo 10. Compilar o <span class="application">KDevelop</span> a partir do código-fonte</h1></div></div></div><p>Se você quiser ter as últimas funcionalidades e correções de erros, poderá compilar você mesmo o <span class="application">KDevelop</span> a partir do código-fonte.</p><p>Existe um artigo mais detalhado <a class="ulink" href="http://techbase.kde.org/KDevelop4/HowToCompile" target="_top">aqui</a>.</p><p>Observe que você <span class="emphasis"><em>poderá</em></span> compilar uma versão instável. Para ajudar os programadores a corrigir erros, por favor mantenha o <code class="varname">RelWithDebInfo</code> e comunique os erros em http://bugs.kde.org, seja manualmente ou com o Dr. Konqi.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="requirements"></a>Requisitos</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>kdelibs-devel &gt;= 4.3 - http://www.kde.org </p></li><li class="listitem"><p>qt-devel &gt;= 4.5.2 - http://qt-project.org/ </p></li><li class="listitem"><p>boost-devel &gt;= 1.35 - http://www.boost.org </p></li><li class="listitem"><p>g++ &gt;= 4.0 - http://gcc.gnu.org </p></li><li class="listitem"><p>CMake &gt;= 2.6.2 - http://www.cmake.org </p></li><li class="listitem"><p>qjson-devel </p></li></ul></div></div><FILENAME filename="install-for-all-users.html"><html><head><title>Instalar para todos os usuários</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="building-kdevelop-from-sources.html" title="Capítulo 10. Compilar o KDevelop a partir do código-fonte"><link rel="prev" href="building-kdevelop-from-sources.html" title="Capítulo 10. Compilar o KDevelop a partir do código-fonte"><link rel="next" href="install-for-local-user.html" title="Instalar para o usuário local"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Instalar para todos os usuários</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="building-kdevelop-from-sources.html">Anterior</a></td><td class="upCell">Compilar o <span class="application">KDevelop</span> a partir do código-fonte</td><td class="nextCell"><a accesskey="n" href="install-for-local-user.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-for-all-users"></a>Instalar para todos os usuários</h2></div></div></div><pre class="programlisting">mkdir kdevgit
cd kdevgit
git clone git://anongit.kde.org/kdevplatform
git clone git://anongit.kde.org/kdevelop
cd kdevplatform
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make &amp;&amp; sudo make install
kbuildsycoca4
cd ../..
cd kdevelop
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make &amp;&amp; sudo make install
kbuildsycoca4
</pre><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="building-kdevelop-from-sources.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="install-for-local-user.html">Próxima</a></td></tr><tr><td class="prevCell">Compilar o <span class="application">KDevelop</span> a partir do código-fonte </td><td class="upCell">Compilar o <span class="application">KDevelop</span> a partir do código-fonte</td><td class="nextCell"> Instalar para o usuário local</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="install-for-local-user.html"><html><head><title>Instalar para o usuário local</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="building-kdevelop-from-sources.html" title="Capítulo 10. Compilar o KDevelop a partir do código-fonte"><link rel="prev" href="install-for-all-users.html" title="Instalar para todos os usuários"><link rel="next" href="credits.html" title="Capítulo 11. Créditos e licença"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Instalar para o usuário local</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="install-for-all-users.html">Anterior</a></td><td class="upCell">Compilar o <span class="application">KDevelop</span> a partir do código-fonte</td><td class="nextCell"><a accesskey="n" href="credits.html">Próxima</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-for-local-user"></a>Instalar para o usuário local</h2></div></div></div><pre class="programlisting">mkdir kdevgit
cd kdevgit
git clone git://anongit.kde.org/kdevplatform
git clone git://anongit.kde.org/kdevelop
cd kdevplatform
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=$HOME/kdevelop4 ..
make &amp;&amp; make install
</pre><p>
</p><p>a seguinte linha é necessária para que o <span class="application">kbuildsycoca4</span> encontre todos os arquivos '.desktop' </p><pre class="programlisting">export KDEDIRS=$HOME/kdevelop4:/usr
kbuildsycoca4
cd ../..
cd kdevelop
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=$HOME/kdevelop4 ..
make &amp;&amp; make install
kbuildsycoca4
</pre><p>
</p><p>Lembre-se por favor: Sempre que fizer alguma atualização de pacotes ou da distribuição que invoque o <span class="application">kbuildsycoca4</span>, terá que executar as seguintes linhas após a atualização:</p><pre class="programlisting">export KDEDIRS=$HOME/kdevelop4:/usr
kbuildsycoca4
</pre><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="install-for-all-users.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="credits.html">Próxima</a></td></tr><tr><td class="prevCell">Instalar para todos os usuários </td><td class="upCell">Compilar o <span class="application">KDevelop</span> a partir do código-fonte</td><td class="nextCell"> Créditos e licença</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-auto-completion.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"><a accesskey="n" href="install-for-all-users.html">Próxima</a></td></tr><tr><td class="prevCell">Personalizar a complementação automática do código </td><td class="upCell"> </td><td class="nextCell"> Instalar para todos os usuários</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME><FILENAME filename="credits.html"><html><head><title>Capítulo 11. Créditos e licença</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desenvolvimento, programação"><link rel="home" href="index.html" title="Manual do KDevelop"><link rel="up" href="index.html" title="Manual do KDevelop"><link rel="prev" href="install-for-local-user.html" title="Instalar para o usuário local"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Créditos e licença</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="install-for-local-user.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="credits"></a>Capítulo 11. Créditos e licença</h1></div></div></div><p>'Copyright' da Documentação veja o <a class="ulink" href="http://userbase.kde.org/index.php?title=KDevelop4/Manual&amp;action=history" target="_top">histórico da página KDevelop4/Manual</a> da Base de Usuários</p><p>Tradução de Marcus Gama <code class="email">(marcus.gama AT gmail.com)</code> e André Marcelo Alvarenga <code class="email">(alvarenga AT kde.org)</code></p><p><a name="gnu-fdl"></a>Esta documentação é licenciada sob os termos da <a class="ulink" href="help:/kdoctools5-common/fdl-license.html" target="_top">Licença de Documentação Livre 
GNU</a>.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="install-for-local-user.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Principal</a></td><td class="nextCell"></td></tr><tr><td class="prevCell">Instalar para o usuário local </td><td class="upCell"> </td><td class="nextCell"> </td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="what-is-kdevelop.html">Próxima</a></td></tr><tr><td class="prevCell"> </td><td class="upCell"> </td><td class="nextCell"> O que é o <span class="application">KDevelop</span>?</td></tr></table></div><div id="footer_text"><br><a href="mailto:kde-doc-english@kde.org" class="footer_email"></a></div></div></div></body></html></FILENAME>

Generated by dwww version 1.15 on Sun Jun 30 05:59:34 CEST 2024.