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 numa 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óximo</a></td></tr></table></div><div id="contentBody"><div lang="pt" 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 Utilizadores do KDE, em concreto 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">José</span> <span class="surname">Pires</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">2012-08-19</span>)</span></div><div><p><a href="help:/kdoctools5-common/fdl-notice.html">Aviso Legal</a></p></div><div><div><div class="abstract"><p>O <span class="application">KDevelop</span> é um Ambiente de Desenvolvimento Integrado para ser usado numa 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 projectos: As bases 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 projecto 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 projecto de um sistema de controlo 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 projecto 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 projecto</a></span></dt><dt><span class="sect1"><a href="creating-projects-from-scratch.html">Criar projectos do zero</a></span></dt></dl></dd><dt><span class="chapter"><a href="working-with-source-code.html">3. Lidar 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 janelas</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 ficheiro</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#project-and-session-scope-information">Informação ao nível do projecto 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 ficheiro 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 projecto 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">Completaçã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">Mudar os nomes das variáveis, funções e classes</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#code-snippets">Excertos 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 ficheiros</a></span></dt><dt><span class="sect1"><a href="managing-templates.html">Gerir os modelos</a></span></dt></dl></dd><dt><span class="chapter"><a href="building-compiling-projects-with-custom-makefiles.html">5. Compilar os projectos 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">Seleccionar uma colecçã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 controlo 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 completaçã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</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 utilizadores</a></span></dt><dt><span class="sect1"><a href="install-for-local-user.html">Instalar para o utilizador 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 projectos: As bases 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óximo</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, executa-se 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 IDE's modernos. Para grandes projectos 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 acerca do seu código. Por exemplo, imaginemos que um dos ficheiros de inclusão do seu projecto declara uma classe</p><pre class="programlisting">class Carro {
  // ...
  public:
    std::string cor () const;
};
</pre><p>
</p><p>e depois no seu programa tiver</p><pre class="programlisting">Carro o_meu_carro;
// ...fazer alguma coisa com essa variável...
std::string cor = o_meu_carro.co
</pre><p>
</p><p>terá recordado que o <code class="varname">o_meu_carro</code> da última linha é uma variável do tipo <code class="varname">Carro</code> e oferecer-se-á para completar o <code class="varname">co</code> como <code class="varname">cor()</code>, dado 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á carregar em <span class="keycap"><strong>Enter</strong></span> para obter a palavra completa; isto poupa a escrita, os erros e não necessita que você recorde os nomes exactos das centenas ou milhares de funções e classes que compõem os grandes projectos.</p><p>Como segundo exemplo, assuma que tem 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 passar o rato 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 carregar nele, só irá mostrar 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 carregar com o botão direito no nome da variável, poderá mudar o nome da mesma; 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 rato sobre um uso desta função; poderá lidar com diferentes tipos de ambientes de compilação e compiladores (isto é 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">Início</a></td><td class="nextCell"><a accesskey="n" href="sessions-and-projects--the-basics-of-kdevelop.html">Próximo</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 projectos: As bases do <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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 projectos: As bases 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 projecto 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 projectos: As bases 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óximo</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 projectos: As bases do <span class="application">KDevelop</span></h1></div></div></div><p>Nesta secçã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>projectos</em></span>, assim como explicar como poderá configurar os projectos 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>projectos</em></span>. Uma sessão contém todos os projectos 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. 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 a trabalhar 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>Como tal, pegando no último exemplo, teria uma sessão no <span class="application">KDevelop</span> com dois projectos: o 'kernel' do <span class="trademark">Linux</span>® e o controlador do dispositivo. Irá querer agrupá-los numa única sessão (em vez de ter duas sessões com um projecto 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 projecto. 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 de aceder à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 a trabalhar 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 a compilar o controlador do dispositivo, caso alguns dos ficheiros do 'kernel' tenham mudado).</p><p>Finalmente, outro uso para as sessões é se trabalhar tanto na versão actualmente em desenvolvimento de um projecto 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, pelo que terá duas sessões com o mesmo conjunto de projectos, 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 projecto 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 projectos: As bases do KDevelop"><link rel="prev" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sessões e projectos: As bases do KDevelop"><link rel="next" href="setting-up-an-application-as-a-second-project.html" title="Configurar uma aplicação como um segundo projecto"><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 projecto 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 projectos: As bases do <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="setting-up-an-application-as-a-second-project.html">Próximo</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 projecto existente</h2></div></div></div><p>Vamos continuar com o exemplo do 'kernel' do <span class="trademark">Linux</span>® e do controlador do dispositivo — poderá querer substituir o seu conjunto próprio de bibliotecas ou projectos para estes dois exemplos. Para criar uma nova sessão que contenha estes dois projectos, vá a <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 cimo e à esquerda (ou, se for a primeira vez que usar o <span class="application">KDevelop</span>: basta usar a sessão predefinida que obtém na primeira utilização, que está vazia).</p><p>Iremos querer preencher esta sessão com projectos que, para já, assumimos que já existem em algum lado (o caso de iniciar os projectos do zero é discutido noutro ponto do manual). Para tal, existem essencialmente dois métodos, dependendo se o projecto já existe em algum lado 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 projecto de um sistema de controlo de versões</h3></div></div></div><p>Iremos assumir que o projecto que desejamos configurar — o 'kernel' do <span class="trademark">Linux</span>® — reside nalgum sistema de controlo de versões num servidor, mas que ainda não o extraiu para o seu disco rígido local. Nesse caso, vá ao menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projecto</span></span> para criar o 'kernel' do <span class="trademark">Linux</span>® como um projecto dentro da sessão actual e depois siga estes passos:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Vá a <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projectos</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Obter o projecto</span></span> para importar um projecto </p></li><li class="listitem"><p>Irá ter várias opções para iniciar um projecto novo na sessão actual, dependendo de onde vêm os ficheiros 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>Assumindo que não tem 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">Seleccionar 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 escolhas </p></li><li class="listitem"><p>Escolha uma pasta de trabalho como destino para onde será extraído o código </p></li><li class="listitem"><p>Escolha o URL da localização no repositório onde se podem obter os ficheiros de código </p></li><li class="listitem"><p>Carregue 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 ligação e do tamanho do projecto. Infelizmente, no <span class="application">KDevelop</span> 4.2.x, a barra de progresso não mostra nada de facto, mas você poderá seguir a evolução se olhar periodicamente para o resultado do comando da consola </p><pre class="screen">du -sk <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>/local/do/projecto/do/<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>Tem de indicar uma localização válida para o projecto</em></span>; esta poderá ser ignorada sem problemas.</p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Pede-lhe para seleccionar um ficheiro de projecto do <span class="application">KDevelop</span> nesta pasta. Dado que provavelmente não terá ainda nenhum definido, basta carregar 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>Carregue 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 pedir-lhe-á para escolher um gestor do projecto. Se este projecto usar os ficheiros do 'make' do <span class="trademark">UNIX</span>®, escolha o gestor de projectos com 'makefiles' personalizadas </p></li><li class="listitem"><p>O <span class="application">KDevelop</span> irá então começar a processar o projecto inteiro. Mais uma vez, irá levar bastante tempo a percorrer todos os ficheiros e a indexar as classes, <abbr class="abbrev">etc.</abbr> Na parte inferior direita da janela principal, existe uma barra de progresso que mostra quanto é que este processo já percorreu (se tiver vários processadores, poderá acelerar este processo se for à opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configuração</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 seleccionar 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 projecto que já exista no seu disco rígido</h3></div></div></div><p>Em alternativa, se o projecto com que deseja trabalhar já existir no seu disco rígido (por exemplo, porque o transferiu como um ficheiro 'tar' de um servidor de FTP, porque já obteve uma versão do projecto a partir de um sistema de controlo de versões ou porque é o seu próprio projecto 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">Projectos</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Abrir/Importar um Projecto</span></span> e, na janela que aparece, escolha a pasta onde se encontra o seu projecto.</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">Início</a></td><td class="nextCell"><a accesskey="n" href="setting-up-an-application-as-a-second-project.html">Próximo</a></td></tr><tr><td class="prevCell">Sessões e projectos: As bases do <span class="application">KDevelop</span> </td><td class="upCell">Sessões e projectos: As bases do <span class="application">KDevelop</span></td><td class="nextCell"> Configurar uma aplicação como um segundo projecto</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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 projecto</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 projectos: As bases do KDevelop"><link rel="prev" href="setting-up-a-session-and-importing-an-existing-project.html" title="Configurar uma sessão e importar um projecto existente"><link rel="next" href="creating-projects-from-scratch.html" title="Criar projectos 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 projecto</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 projectos: As bases do <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="creating-projects-from-scratch.html">Próximo</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 projecto</h2></div></div></div><p>A próxima acção que quererá fazer é configurar outros projectos na mesma sessão. No exemplo acima, poderá querer adicionar o controlador do dispositivo como segundo projecto, o qual poderá fazer usando exactamente os mesmos passos.</p><p>Se tiver várias aplicações ou bibliotecas, basta repetir os passos para adicionar cada vez mais projectos à 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">Início</a></td><td class="nextCell"><a accesskey="n" href="creating-projects-from-scratch.html">Próximo</a></td></tr><tr><td class="prevCell">Configurar uma sessão e importar um projecto existente </td><td class="upCell">Sessões e projectos: As bases do <span class="application">KDevelop</span></td><td class="nextCell"> Criar projectos do zero</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="creating-projects-from-scratch.html"><html><head><title>Criar projectos 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 projectos: As bases do KDevelop"><link rel="prev" href="setting-up-an-application-as-a-second-project.html" title="Configurar uma aplicação como um segundo projecto"><link rel="next" href="working-with-source-code.html" title="Capítulo 3. Lidar 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 projectos 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 projectos: As bases do <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="working-with-source-code.html">Próximo</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 projectos do zero</h2></div></div></div><p>Existe obviamente também a possibilidade de iniciar um novo projecto do zero. Isso pode ser feito se usar a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projectos</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 lhe apresenta uma janela de selecção de modelos. Alguns modelos de projectos são fornecidos com o <span class="application">KDevelop</span>, mas estão disponíveis ainda  mais se instalar a aplicação <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">KAppTemplate</span></span>. Escolha o tipo de projecto e a linguagem de programação na janela, indique um nome e local para o seu projecto e carregue em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Seguinte</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-lhe configurar um sistema de controlo de versões. Escolha o sistema que deseja usar e preencha a configuração específica do sistema, caso necessário. Se não quiser usar um sistema de controlo de versões ou se o quiser configurar manualmente, escolha <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Nenhum</span></span>. Quando estiver satisfeito com a sua escolha, carregue em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Terminar</span></span>. </p><p>O seu projecto está agora criado, pelo que poderá tentar compilá-lo ou instalá-lo. Alguns modelos irão incluir comentários dentro do código, ou até mesmo um ficheiro README (leia-me) separado, sendo recomendado que os leia em primeiro lugar. Depois, poderá começar a trabalhar no seu projecto, 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">Início</a></td><td class="nextCell"><a accesskey="n" href="working-with-source-code.html">Próximo</a></td></tr><tr><td class="prevCell">Configurar uma aplicação como um segundo projecto </td><td class="upCell">Sessões e projectos: As bases do <span class="application">KDevelop</span></td><td class="nextCell"> Lidar com o código-fonte</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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">Início</a></td><td class="nextCell"><a accesskey="n" href="setting-up-a-session-and-importing-an-existing-project.html">Próximo</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 projecto existente</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="working-with-source-code.html"><html><head><title>Capítulo 3. Lidar 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 projectos 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"> Lidar 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óximo</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. Lidar com o código-fonte</h1></div></div></div><p>Para além da depuração, da leitura e escrita de código, será onde irá gastar mais tempo a desenvolver as aplicações. Para tal, o <span class="application">KDevelop</span> oferece-lhe várias formas de explorar o código-fonte e de tornar mais produtiva a escrita do mesmo. Como será discutido com mais detalhe nas seguintes secções, o <span class="application">KDevelop</span> não é apenas um editor de código — em vez disso, é um sistema de gestão de código que lhe dá diferentes vistas sobre a informação extraída dos ficheiros 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 janelas</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 projectos, o <span class="application">KDevelop</span> tem o conceito de <span class="emphasis"><em>ferramentas</em></span>. Uma ferramenta oferece uma vista em particular sobre o código ou uma acção a efectuar com 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 a nível horizontal, ao longo da margem inferior). Se carregar nelas, as mesmas expandir-se-ão para uma sub-janela — uma <span class="emphasis"><em>área ou vista</em></span> — dentro da janela principal; se carregar no botão de ferramentas de novo, a sub-janela desaparece de novo.</p><p>Para fazer desaparecer uma sub-janela, também poderá carregar no <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">x</span></span> no canto superior-direito da sub-janela</p><p>A imagem acima mostra uma selecçã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">Excertos</span></span> à direita, em conjunto com um editor de um ficheiro de código no meio. Na prática, na maior parte do tempo irá 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> da primeira vez, irá ter já o botão de ferramentas de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projectos</span></span>. Carregue nele: irá abrir uma sub-janela que mostra os projectos que tiver adicionado à sessão no fundo, assim como uma vista do sistema de ficheiros das pastas dos seus projectos no topo.</p><p>Existem muitas outras ferramentas que poderá usar com o <span class="application">KDevelop</span>, onde nem todas estão inicialmente presentes como botões no perímetro. Para adicionar algumas, vá à 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 projectos ou na sua sessão, com todas as suas funções e variáveis-membros. Se carregar em qualquer dos membros, irá abrir um editor de código no local do item onde carregou. </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 ficheiros visitados recentemente, classificados pelo tipo (isto é ficheiros de código, ficheiros 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 ficheiro, 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 acerca do ficheiro que esta a incluir, como as classes que estão declaradas nesse ficheiro; se estiver numa linha vazia ao nível do ficheiro, irá mostrar as classes e funções declaradas e definidas no ficheiro actual (tudo como hiperligações: se carregar nelas, irá para o ponto do ficheiro onde se encontra de facto 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 ficheiros</span></span>: Mostra-lhe uma vista em árvore do sistema de ficheiros. </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 noutros documentos de ajuda. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Excertos</span></span>: Isto fornece sequências de texto que uma pessoa poderá usar quantas vezes quiser e que não terá de escrever sempre. Por exemplo, no projecto 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á um bom candidato para um excerto.</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 comandos dentro da janela principal do <span class="application">KDevelop</span>, para o comando ocasional que possa querer introduzir (isto é para executar o  <code class="varname">./configure</code>). </p></li></ul></div><p>Está descrita uma lista completa das ferramentas e janelas <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 do ecrã é o mais importante. Para esse fim, poderá organizar as suas áreas de ferramentas nas margens esquerda e direita da janela: para mover uma ferramenta, carregue no seu símbolo com o botão direito do rato e seleccione 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. Lidar com o código-fonte"><link rel="prev" href="working-with-source-code.html" title="Capítulo 3. Lidar 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">Lidar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="navigating-in-source-code.html">Próximo</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 a dar-lhe informações acerca das variáveis e funções que possam aparecer no seu programa. Por exemplo, aqui está uma imagem onde está a lidar com um pedaço de código e, ao passar o rato sobre o símbolo <code class="varname">celula</code> na linha 1316 (se estiver a trabalhar com base no teclado, poderá obter o mesmo efeito se mantiver a tecla <span class="keycap"><strong>Alt</strong></span> carregada durante um pouco):</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>, dado 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 actual, o símbolo sobre o qual o rato passou não tinha documentação associada. Nesse exemplo, se o rato 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 ficheiro completamente diferente (o <code class="filename">utilities.h</code>, que reside de facto num projecto 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 facto de serem dinâmicas: pode carregar no contentor para obter informações acerca do 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á carregar nas ligações azuis que irão repor a posição do cursor no local de declaração do símbolo (isto é em <code class="varname">utilities.h</code>, na linha 289) ou dar-lhe uma lista dos locais onde este símbolo é usado no ficheiro actual ou por todos os projectos da sessão actual. 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 — depende se mantém carregada a tecla <span class="keycap"><strong>Alt</strong></span> ou se passa o rato por cima. Se quiser um local mais permanente para a mesma, 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> numa das sub-janelas. 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. Para além disso, se carregar no botão <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Bloquear a janela actual</span></span>, no canto superior direito, 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 carregada a tecla <span class="keycap"><strong>Alt</strong></span> numa lista de completação (isto é ao fazer uma abertura rápida), também irá apresentar a informação de contexto do símbolo actual.</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 ficheiro</h3></div></div></div><p>O próximo nível acima é a obtenção de informação acerca do ficheiro de código por inteiro sobre o qual está a trabalhar. Para esse fim, coloque o cursor ao nível do ficheiro actual 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 apresenta uma lista dos espaços de nomes, classes e funções declaradas ou definidas no ficheiro actual, dando-lhe uma visão geral sobre o que se passa neste ficheiro, bem como uma forma de saltar directamente para qualquer uma destas declarações ou definições sem ter que percorrer o ficheiro 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 ficheiro é 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 projecto e da sessão</h3></div></div></div><p>Existem muitas formas de obter informações acerca de um projecto inteiro (ou, de facto, sobre todos os projectos de uma sessão). Este tipo de informação é normalmente indicado 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 projectos de uma sessão, em conjunto comas 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 rato 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-click 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 vista sobre um projecto com base nos tipos de ficheiros ou outros documentos que compõem este projecto:</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 objectos no código-fonte. Se souber o que as diferentes cores significam, poderá extrair muito rapidamente bastantes informações a partir do código-fonte, bastando para tal olhar para as cores, sem ter de ler um único carácter. 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 objectos 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 cor atribuída (as classes são verdes, os enumerados são vermelhos escuros e os membros são amarelos escuros ou violetas, sendo que as funções globais são sempre violetas).</p></li><li class="listitem"><p>Todas as variáveis globais aparecem a verde escuro.</p></li><li class="listitem"><p>Os identificadores de 'typedefs' de cada tipo aparecem a castanho.</p></li><li class="listitem"><p>Todas as declarações e definições de objectos aparecem a negrito.</p></li><li class="listitem"><p>Se um membro for acedido dentro do contexto da sua definição (classe de base ou derivada), aparece a amarelo, caso contrário aparece a violeta.</p></li><li class="listitem"><p>Se um membro for privado ou protegido, aparece numa cor ligeiramente mais escura quando for usado.</p></li><li class="listitem"><p>Para as variáveis locais de um dado 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 objecto diferente, isto é se for definido de novo noutro nível), pelo que irá obter 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 irão ficar com cores iguais. Estas cores do arco-íris poderão ser desactivadas 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 pôde determinar a declaração correspondente aparecem a branco. Isto poderá acontecer algumas vezes por instruções <code class="varname">#include</code> em falta.</p></li><li class="listitem"><p>Para 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> irá sempre substituir o realce de sintaxe do editor, caso exista algum 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">Início</a></td><td class="nextCell"><a accesskey="n" href="navigating-in-source-code.html">Próximo</a></td></tr><tr><td class="prevCell">Lidar com o código-fonte </td><td class="upCell">Lidar com o código-fonte</td><td class="nextCell"> Navegar pelo código-fonte</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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. Lidar 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">Lidar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="writing-source-code.html">Próximo</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 secção anterior, discutimos a exploração do código-fonte, isto é obter informações sobre os símbolos, ficheiros e projectos. O passo seguinte é então navegar pelo mesmo, isto é circular por ele todo. Existem de novo vários níveis possíveis para tal: local, dentro de um ficheiro ou dentro de um projecto.</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 poderá mover o cursor para cima, baixo, esquerda ou direita num ficheiro 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 ficheiro e modo de contorno</h3></div></div></div><p>Ao nível do ficheiro, 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>: Poderá ter uma visão geral do que se encontra no ficheiro actual, pelo menos de três formas diferentes: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Se carregar 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 carregar em <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> Poderá então seleccionar para onde desejar saltar ou — se existirem bastantes — 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, dado que os nomes não correspondentes ao texto introduzido por si vão sendo retirados, até que esteja pronto para seleccionar uma das opções. </p></li><li class="listitem"><p>Posicionando o cursor ao nível do ficheiro (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 do 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 ficheiro actual, permitindo-lhe seleccionar para onde deseja ir. </p></li><li class="listitem"><p>Se passar o rato sobre o separador da página de um dos ficheiros abertos também lhe dará uma visão geral do ficheiro nessa página. </p></li></ul></div><p>
</p></li><li class="listitem"><p>Os ficheiros de código estão organizados como uma lista de declarações ou definições de funções. Se carregar em <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>, irá respectivamente para a definição de função anterior ou seguinte neste ficheiro. </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 projecto e sessão. Navegação semântica</h3></div></div></div><p>Como foi mencionado noutros locais, o <span class="application">KDevelop</span> não tem em consideração normalmente os ficheiros de código individuais mas olha sim para os projectos como um todo (ou para todos os projectos que façam parte da sessão actual). Por consequência, oferece várias possibilidades para navegar pelos projectos inteiros. Alguns destes são derivados do que já foi discutido na secçã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 necessitar de processar os projectos por inteiro e interligar os dados. A seguinte lista mostra-lhe algumas formas de navegar pelo código-fonte que esteja espalhado por uma grande quantidade de ficheiros:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Como foi visto na secção sobre <a class="link" href="exploring-source-code.html" title="Explorar o código-fonte">Explorar o código-fonte</a>, 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 rato sobre eles ou mantendo a tecla <span class="keycap"><strong>Alt</strong></span> carregada 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 carregar 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 ficheiro e colocando o cursor na posição correspondente. 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 ficheiros 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: </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>): Irá obter uma lista com todas as classes nesta sessão. Comece a escrever (uma parte de) o nome de uma classe para que a lista se vá reduzindo para mostrar apenas as que corresponderem ao texto escrito por si até agora. Se a lista for pequena o suficiente, seleccione 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>): Irá obter uma lista com todas as funções 'membros' que fazem parte dos projectos na sessão actual, podendo seleccionar, a partir desta, 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 ficheiro</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 ficheiro</span></span> ou <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>O</strong></span>): Irá obter uma lista com todos os ficheiros que fazem parte dos projectos na sessão actual, onde poderá escolher o ficheiro 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 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 ficheiros, funções, classes e outros itens que possa seleccionar. </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 de 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 actualizar a documentação. Para o fazer, coloque o cursor sobre o nome da função e seleccione 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 carregue em <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>Seleccionando 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 carregando em <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>,</strong></span>). </p></li><li class="listitem"><p>Seleccionando 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 carregando em <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Esquerda</strong></span>), como descrito em baixo. </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 a implementar de 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 actual, terá primeiro de colocar o cursor sobre o nome da função. Para evitar este passo, poderá seleccionar 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 carregue em <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 de momento. Se seleccionar 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 seleccionar 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 carregar em <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-que isto não pesquisa apenas pela ocorrência seguinte da variável mas também tem em conta variáveis com o mesmo nome, mas em âmbitos diferentes). O mesmo resulta para a utilização dos nomes das funções. Se seleccionar <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 carregar em <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 dado 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 do Código</span></span> ou carregue e mantenha carregada a tecla <span class="keycap"><strong>Alt</strong></span>. Isto é explicado com mais detalhe na secção sobre como <a class="link" href="exploring-source-code.html#file-scope-information" title="Informação de âmbito do ficheiro">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, excepto que, em vez de páginas Web, você visita os <span class="emphasis"><em>contextos</em></span>. Um contexto é a localização actual do cursor e o utilizador podê-la-á alterar se navegar para fora dela, usando tudo menos os comandos de cursores — por exemplo, se carregar 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 projectos da sessão actual, 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-click sobre um item (ou se percorrer o menu de contexto com o botão direito do rato) 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">Projectos</span></span> oferece uma lista dos ficheiros 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-click sobre um ficheiro, 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">Início</a></td><td class="nextCell"><a accesskey="n" href="writing-source-code.html">Próximo</a></td></tr><tr><td class="prevCell">Explorar o código-fonte </td><td class="upCell">Lidar com o código-fonte</td><td class="nextCell"> Escrever código-fonte</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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. Lidar 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">Lidar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="modes-and-working-sets.html">Próximo</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>Dado que o  <span class="application">KDevelop</span> compreende o código-fonte dos seus projectos, podê-lo-á ajudar a escrever mais código. Os pontos seguintes descrevem algumas das formas como ele o poderá fazer.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="auto-completion"></a>Completação automática</h3></div></div></div><p>Provavelmente a funcionalidade mais útil de todas na escrita de código novo é a completaçã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 o_meu_carro;
  // ...fazer algo com esta variável...
  std::string cor = o_meu_carro.co
</pre><p>Na última linha, o <span class="application">KDevelop</span> irá recordar que a variável <code class="varname">o_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 facto, tudo o que tem a fazer é continuar a escrever até que a funcionalidade de completação automática tenha reduzido o número de ocorrências a uma, carregando 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 poderá carregar sobre a dica para obter mais informações acerca da função, para 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 completação automática poder-lhe-á poupar bastante escrita se o seu projecto usar nomes de variáveis e funções compridos; para além disso, evita os enganos nos nomes (e os erros de compilação daí resultantes) e torna muito mais simples recordar os nomes exactos 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 completaçã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 correcta. Lembre-se que, para a completação automática funcionar, nem a declaração da classe <code class="varname">Carro</code> nem da variável <code class="varname">o_meu_carro</code> terão de estar no mesmo ficheiro onde está a escrever o código de momento. O <span class="application">KDevelop</span> simplesmente tem de saber onde estão ligadas estas classes e variáveis, isto é os ficheiros aos quais é necessário ter estas ligações feitas terão de fazer parte do projecto onde está a trabalhar.</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 o deverá assistir a completar o código. Se a dica de completação automática não abrir automaticamente, carregue em <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Espaço</strong></span> para abrir uma lista de completações manualmente. De um modo geral, para a completação automática funcionar, o <span class="application">KDevelop</span> precisa de processar os seus ficheiros de código. Isto acontece em segundo plano para todos os ficheiros que fizerem parte dos projectos da sessão actual, após iniciar o <span class="application">KDevelop</span>, assim como após o utilizador terminar de escrever durante uma fracçã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 ficheiros que ele considere como sendo código-fonte, de acordo com o tipo MIME do ficheiro. Este tipo não está definido até à primeira vez em que um ficheiro é gravado; por consequência, ao criar um ficheiro novo e ao começar a escrever código, não activará o processamento da completação automática até que seja gravado 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 completação automática funcionar, o <span class="application">KDevelop</span> terá de conseguir descobrir as declarações nos ficheiros de inclusão. Para tal, ele procura num conjunto de locais predefinidos. Se não encontrar automaticamente um ficheiro de inclusão, irá sublinhar o nome de um ficheiro a vermelho; nesse caso, carregue com o botão direito do rato sobre ele para indicar explicitamente ao <span class="application">KDevelop</span> onde é que se encontram estes ficheiros, 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 completação automática é discutida <a class="link" href="customizing-code-auto-completion.html" title="Personalizar a completação automática do código">nesta secçã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> tem um assistente para adicionar classes novas. O procedimento está descrito em <a class="link" href="code-generation-with-templates.html#creating-a-new-class" title="Criar uma nova classe">Criar uma nova classe</a>. Pode criar uma classe simples em C++ com o modelo de C++ Básico, na categoria <code class="filename">Classe</code>. No assistente, poderá escolher algumas funções predefinidas, como um construtor vazio, um construtor por cópia e um destrutor. </p><p>Depois de terminar o assistente, os ficheiros novos estão criados e abertos no editor. O ficheiro de inclusão já contém guardas de inclusão e a classe nova tem todas as funções-membro que seleccionámos. 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">bus.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 ficheiro <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">autocarro.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 ficheiro de inclusão mas sim no ficheiro '.cpp' correspondente. Para tal, coloque o cursor sobre o nome da função e seleccione <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 carregue em <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 ficheiro de inclusão (e substitui-o por um ponto-e-vírgula para terminar a declaração da função) e move-o para o ficheiro 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 o autor ainda agora começou a escrever e que desejava inferir que a variável <code class="varname">estudantes</code> deveria ser provavelmente uma variável-membro da classe <code class="varname">Autocarro</code>, mas esta ainda não foi adicionada. Repare também como o <span class="application">KDevelop</span> a sublinha para clarificar que ainda não sabe nada sobre a variável. Contudo, este problema pode ser resolvido: se carregar 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>(Conseguirá obter o mesmo se carregar com o botão direito sobre o mesmo e seleccionar <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Resolver: Declarar Como</span></span>.), podendo seleccionar <span class="quote">“<span class="quote">3 - private unsigned int</span>”</span> (com o rato, ou carregando em <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>3</strong></span>) e ver como é que irá aparecer no ficheiro 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>Importa referir que o <span class="application">KDevelop</span> extrai o tipo da variável a declarar a partir da expressão usada para o 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 a deseja. Por exemplo, poderá querer marcá-la como <code class="varname">inline</code> e colocá-la no fundo do ficheiro 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 completações possíveis do que possa aparecer aqui. Se seleccionar 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 escolhas na ferramenta de completação automática, irá mostrar a assinatura correcta, 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 objectivo de explicar o seu objectivo, 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 facto 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>Poderá querer adicionar agora a documentação tanto à classe como à função-membro. Para isso, mova o cursor para a primeira linha e seleccione <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 carregue em <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 a cinzento para você preencher a breve descrição (depois da palavra-chave do 'doxygen' <code class="varname">@brief</code>) desta classe. Poderá então continuar a adicionar a documentação a este comentário, dando uma cisã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 a verde (o realce desaparece assim que sair do comentário). Quando for para o fim de uma linha, carregue em <span class="keycap"><strong>Enter</strong></span> para que o <span class="application">KDevelop</span> inicie uma nova linha a começar por um asterisco e coloca o cursor com um carácter 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 seleccionando 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 carregando em <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 actual, o nome da função é bastante intuitivo, mas muitas das vezes os argumentos da função poderão não 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>Mudar os nomes das variáveis, funções e classes</h3></div></div></div><p>Algumas das vezes, alguém poderá querer mudar o nome de uma função, classe ou variável. Por exemplo, imagine que já tem 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>Irá então concluir que está insatisfeito com o nome <code class="varname">remover_estudantes</code> e que se deveria chamar por exemplo <code class="varname">largar_estudantes</code>. Poderia 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 que um ficheiro. </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 noutras 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 seleccionar <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">Mudar o nome da declaração</span></span> (ou se carregar com o botão direito no nome e seleccionar a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Mudar o nome de Autocarro::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 esta é 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>Excertos de código</h3></div></div></div><p>A maioria dos projectos têm pedaços de código que uma pessoa terá de 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 utilizador, verificar se os dados do utilizador são válidos e, caso contrário, mostrar uma mensagem de erro; no projecto 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">Excertos</span></span> do <span class="application">KDevelop</span> podê-lo-á ajudar aqui. Para tal, abra a área de ferramenta (veja em  <a class="link" href="working-with-source-code.html#tools-and-views" title="Ferramentas e janelas">Ferramentas e janelas</a> se o botão correspondente não existir já na envolvência da sua janela). Depois carregue no botão <span class="quote">“<span class="quote">Adicionar um repositório</span>”</span> (um nome ligeiramente confuso — ele permite-lhe criar uma colecção de excertos com um dado nome para os ficheiros de código de um dado tipo, isto é código em C++) e crie um repositório vazio. Depois, carregue em <span class="inlinemediaobject"><img src="Icon-list-add.png"></span> para adicionar um excerto, aparecendo-lhe 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 excerto não poderá ter espaços ou outros caracteres especiais, porque deverá ser parecida 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 excerto assim definido, quando estiver a editar código, basta escrever o nome do excerto como o faria com qualquer função ou variável. Este nome ficará disponível na completação automática — o que significa que não haverá qualquer problema em usar nomes compridos e descritos para um excerto, como o descrito acima — e quando aceitar a dica de sugestão da completação automática (por exemplo, carregando apenas em <span class="keycap"><strong>Enter</strong></span>), a parte já introduzida do nome do excerto será substituída pela expansão completa do excerto 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">Excertos</span></span> não precisa de estar aberta ou visível: só irá precisar da ferramenta para definir excertos novos. Uma alternativa, embora menos conveniente, para expandir um excerto é simplesmente carregar 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 excertos 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 Excertos</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">Início</a></td><td class="nextCell"><a accesskey="n" href="modes-and-working-sets.html">Próximo</a></td></tr><tr><td class="prevCell">Navegar pelo código-fonte </td><td class="upCell">Lidar com o código-fonte</td><td class="nextCell"> Modos e conjuntos de trabalho</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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. Lidar 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">Lidar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts.html">Próximo</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 tiver chegado até aqui, dê uma vista de olhos 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 controlo de versões">Lidar com sistemas de controlo 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 ficheiros e documentos abertos  de momento. Para além disso, cada um destes conjuntos de trabalho está associado com uma sessão actual, isto é temos a mesma relação apresentada acima. Lembre-se que os ficheiros no conjunto de trabalho vêm da mesma sessão, mas poderão vir de diferentes projectos que façam parte da mesma sessão.</p><p>Se abrir o <span class="application">KDevelop</span> da primeira vez, o conjunto de trabalho está vazio — não existem ficheiros abertos. Porém, à medida que abre os ficheiros para os editar (ou depurar ou rever noutros modos quaisquer), o seu conjunto de trabalho vai crescendo. O facto de o seu conjunto de trabalho não estar vazio é indicado através de um símbolo na página, como demonstrado em baixo. Irá reparar que, sempre que fechar o <span class="application">KDevelop</span> e voltar a iniciar de novo, o conjunto de trabalho é gravado e reposto, isto é irá obter o mesmo conjunto de ficheiros 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 passar o seu rato sobre o símbolo do conjunto de trabalho, irá obter uma dica que lhe mostra os ficheiros que estão abertos de momento neste conjunto de trabalho (aqui: os ficheiros <code class="varname">passo-32.cc</code> e <code class="varname">passo-1.cc</code>). Se carregar no sinal de somar vermelho, irá fechar a página do ficheiro correspondente. Talvez ainda mais importante, se carregar 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 ficheiros abertos de momento). O ponto importante acerca do fecho do conjunto de trabalho, contudo, é que não só fecha todos os ficheiros, como também grava o conjunto e abre um novo, totalmente vazio. 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 gravado, para além do conjunto aberto de momento. Se passar o seu rato sobre o símbolo do coração, irá obter algo do género:</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 ficheiros e os seus nomes de projectos correspondentes: <code class="varname">Makefile</code> e <code class="varname">alteracoes.h</code>. Se carregar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Carregar</span></span>, irá fechar e gravar o conjunto de trabalho actual (que aparece aqui com os ficheiros  <code class="varname">tria.h</code> e <code class="varname">tria.cc</code> abertos) e irá abrir por seu turno o conjunto seleccionado. Poderá também apagar de forma permanente um conjunto de trabalho, o qual o irá remover da lista de conjuntos de trabalho gravados.</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">Início</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts.html">Próximo</a></td></tr><tr><td class="prevCell">Escrever código-fonte </td><td class="upCell">Lidar com o código-fonte</td><td class="nextCell"> Algumas combinações de teclas úteis</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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. Lidar 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">Lidar com o código-fonte</td><td class="nextCell"><a accesskey="n" href="code-generation-with-templates.html">Próximo</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 ficheiro: indique parte do nome do ficheiro e seleccione entre todos os ficheiros das pastas dos projectos da sessão actual que correspondam ao texto; assim, será aberto o ficheiro</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: indique parte do nome de uma classe e seleccione 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: indique parte do nome de uma função (membro) e seleccione entre todos os nomes que corresponderem; repare que a lista mostra tanto as declarações como as definições, pelo que o cursor irá então saltar para o item seleccionado</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: escreva qualquer coisa (nome de um ficheiro, 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 a acontecer neste ficheiro, isto é 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 de 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 de 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>Procurar o seguinte</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 ficheiros</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 seleccionado ou a linha actual</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>Retirar o comentário o texto seleccionado ou a linha actual</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 actual. 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 do 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 carácter actual 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 actual (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">Início</a></td><td class="nextCell"><a accesskey="n" href="code-generation-with-templates.html">Próximo</a></td></tr><tr><td class="prevCell">Modos e conjuntos de trabalho </td><td class="upCell">Lidar com o código-fonte</td><td class="nextCell"> Geração de código com modelos</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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">Início</a></td><td class="nextCell"><a accesskey="n" href="exploring-source-code.html">Próximo</a></td></tr><tr><td class="prevCell">Criar projectos do zero </td><td class="upCell"> </td><td class="nextCell"> Explorar o código-fonte</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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óximo</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 ficheiros de código-fonte e para evitar escrever código repetido. </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 a geração de código é provavelmente a criação de classes novas. Para criar uma classe nova num projecto existente, carregue com o botão direito sobre a pasta de um projecto e escolha <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 poderá ser acedida se carregar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ficheiro</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Novo a Partir do Modelo...</span></span>, mas usar uma pasta de projecto terá a vantagem de definir um URL de base para os ficheiros de saída. Escolha <code class="filename">Classe</code> na área de selecção da categoria e a linguagem de programação e modelo nas duas outras áreas. Depois de ter seleccionado um modelo de classes, terá de indicar 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 tem de indicar um identificador para a nova classe. Poderá ser um nome simples (como <code class="varname">Autocarro</code>) ou um identificador completo com espaços de nomes (do tipo <code class="varname">Transporte::Autocarro</code>). No último caso, o <span class="application">KDevelop</span> irá processar o identificador e irá separar os espaços de nomes do nome propriamente dito. Na mesma página, poderá adicionar classes de base para a classe nova. Poderá ver que alguns modelos escolhem uma classe de base própria, estando à vontade para removê-la e/ou adicionar outras. Deverá escrever aqui toda a instrução de herança, a qual depende da linguagem, como por exemplo <code class="varname">public ClasseBase</code> no C++, <code class="varname">extends ClasseBase</code> no PHP ou simplesmente o nome da classe no 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 página seguinte, é-lhe oferecida uma selecção dos métodos virtuais de todas as classes herdadas, assim como os construtores, destrutores e operadores predefinidos. Se assinalar a opção associada à assinatura de um dado método, irá implementar esse método na nova classe. </p><p>Se carregar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Seguinte</span></span>, irá aparecer uma página onde poderá adicionar membros a uma classe. Dependendo do modelo escolhido, estas poderão aparecer na classe nova como variáveis-membro, ou então o modelo poderá criar propriedades com métodos 'get' e 'set' para elas. Numa linguagem em que os tipos de variáveis tenham de ser declarados, como o C++, terá de indicar tanto o tipo como o nome do membro, como por exemplo <code class="varname">int idade</code> ou <code class="varname">QString nome</code>. Noutras linguagens, poderá ignorar o tipo, mas é uma boa prática defini-lo à mesma, dado que o modelo seleccionado poderá à mesma tirar partido 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 seguintes, poderá escolher uma licença para a sua nova classe, definir quaisquer opções personalizadas que sejam necessárias para o modelo seleccionado e configurar os locais de saída de todos os ficheiros gerados. Ao carregar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Terminar</span></span>, irá terminar o assistente e irá criar a nova classe. Os ficheiros gerados serão abertos no editor, para que possa logo começar a adicionar código. </p><p>Depois de criar uma nova classe em C++, ser-lhe-á dada a opção para adicionar a classe a um dado alvo do projecto. Escolha um alvo na página da janela ou feche a mesma e adicione manualmente os ficheiros a um dado alvo. </p><p>Se escolheu o modelo <code class="filename">Qt Object</code>, assinalou alguns métodos predefinidos e tiver adicionado duas variáveis-membro, o resultado deverá ser algo semelhante à imagem seguinte. </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>Poderá ver que os membros de dados são convertidos em propriedades do Qt, com funções de acesso e as macros Q_PROPERTY. Os argumentos das funções 'set' são até passados por referência constante onde for apropriado. Para além disso, é declarada uma classe privada e um ponteiro privado, criado através do Q_DECLARE_PRIVATE. Tudo isto é feito pelo modelo; se escolher outro modelo no primeiro passo, poderá mudar o resultado por completo. </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 ficheiros"><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óximo</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>Ainda que a maioria das plataformas de testes necessitem 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, carregue com o botão direito sobre a pasta de um projecto e seleccione <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 selecção do modelo, escolha o <code class="filename">Teste</code> como categoria, depois escolha a sua linguagem de programação e modelo e carregue em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Seguinte</span></span>. </p><p>Ser-lhe-á pedido o nome do teste e uma lista de casos de testes. Para os casos de testes, só terá de 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 dado prefixo especial. No <span class="application">KDevelop</span>, o modelo é responsável pela adição do prefixo, pelo que não o terá de indicar aqui nos casos de teste. Depois de carregar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Seguinte</span></span>, indique a licença e os locais de saída dos ficheiros 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 a usar o CTest ou outra plataforma de testes, certifique-se que adiciona os novos ficheiros 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">Início</a></td><td class="nextCell"><a accesskey="n" href="other-files.html">Próximo</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 ficheiros</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="other-files.html"><html><head><title>Outros ficheiros</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="Gerir os 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 ficheiros</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óximo</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 ficheiros</h2></div></div></div><p>Embora as classes e testes unitários recebam uma atenção especial ao gerar o código a partir dos modelos, o mesmo método poderá ser usado para qualquer tipo de ficheiro de código-fonte. Por exemplo, uma pessoa poderá usar um modelo para um módulo de pesquisa do CMake ou para um ficheiro '.desktop'. Isto pode ser feito se escolher <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Criar a Partir de um Modelo...</span></span> e seleccionar a categoria e modelo desejados. Se a categoria seleccionada não for nem a <code class="filename">Classe</code> nem a <code class="filename">Teste</code>, só terá a opção para escolher a licença, opções específicas do modelos e o local dos ficheiros de saída. Como nas classes e testes, ao terminar o assistente, irá gerir os ficheiros 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">Início</a></td><td class="nextCell"><a accesskey="n" href="managing-templates.html">Próximo</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"> Gerir os modelos</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="managing-templates.html"><html><head><title>Gerir os 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 ficheiros"><link rel="next" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Compilar os projectos 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"> Gerir os 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óximo</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>Gerir os modelos</h2></div></div></div><p>No assistente <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ficheiro</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>, poderá também transferir modelos de ficheiros adicionais a partir do botão <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Obter Mais Modelos...</span></span>. Isto irá abrir uma janela para Obter Coisas Novas, onde poderá instalar mais modelos, assim como actualizá-los e removê-los. Existe também um módulo de configuração para os modelos, que poderá ser atingido se carregar em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configuração</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 daí, poderá gerir tanto os modelos de ficheiros (explicados acima) como os modelos de projectos (usados para criar novos projectos). </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>Obviamente, se nenhum dos modelos disponíveis se adequar ao seu projecto, poderá sempre criar novos. A forma mais simples será provavelmente copiar e modificar um modelo existente, embora exista um breve <a class="ulink" href="http://techbase.kde.org/Development/Tutorials/KDevelop/Creating_a_class_template" target="_top">tutorial</a> e um <a class="ulink" href="http://techbase.kde.org/Projects/KDevelop4/File_template_specification" target="_top">documento de referência</a> mais extenso para o ajudar. Para copiar um modelo instalado, abra o gestor de modelos com a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Configuração</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>, seleccione o modelo que deseja copiar e depois carregue no botão <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Extrair o Modelo</span></span>. Seleccione uma pasta de destino, carregue depois em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">OK</span></span> e então o conteúdo do modelo será extraído para a pasta seleccionada. Aí, poderá então editar o modelo, abrindo os ficheiros extraídos e modificando-os. Depois de terminar, poderá importar o seu novo modelo no <span class="application">KDevelop</span>, abrindo para tal o gestor de modelos, activando a página apropriada (ou os <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Modelos de Projectos</span></span> ou os <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Modelos de Ficheiros</span></span>) e carregando em <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Carregar um Modelo</span></span>. Abra o ficheiro de descrição do modelo, que será o que tiver o sufixo <code class="varname">.kdevtemplate</code> ou <code class="varname">.desktop</code>. O <span class="application">KDevelop</span> irá comprimir os ficheiros num pacote de modelo e irá importar o mesmo. </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 que lhe muda o nome antes de o importar de novo. Caso contrário, irá substituir o modelo antigo ou irá terminar com dois modelos de nome igual. Para mudar o nome de um modelo, mude o nome do ficheiro de descrição para algo único (embora mantendo o sufixo) e mude o item <code class="filename">Name</code> no ficheiro da descrição. </p></div><p>
</p><p>Se quiser criar um modelo do zero, poderá começar com um modelo de classe de exemplo em C++, para tal <a class="link" href="creating-projects-from-scratch.html" title="Criar projectos do zero">criando um novo projecto</a> e seleccionando o projecto do <code class="filename">Modelo de Classe em 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">Início</a></td><td class="nextCell"><a accesskey="n" href="building-compiling-projects-with-custom-makefiles.html">Próximo</a></td></tr><tr><td class="prevCell">Outros ficheiros </td><td class="upCell">Geração de código com modelos</td><td class="nextCell"> Compilar os projectos com Makefiles personalizados</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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">Início</a></td><td class="nextCell"><a accesskey="n" href="creating-a-new-unit-test.html">Próximo</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">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="building-compiling-projects-with-custom-makefiles.html"><html><head><title>Capítulo 5. Compilar os projectos 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="Gerir os modelos"><link rel="next" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html" title="Seleccionar uma colecçã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 projectos 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óximo</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 projectos com Makefiles personalizados</h1></div></div></div><p>Muitos projectos descrevem como é que os ficheiros de código devem ser compilados (e quais os ficheiros que terão de ser recompilados assim que um ficheiro de código ou de inclusão mudar), usando os ficheiros 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 projectos simples, é normalmente muito simples configurar um destes ficheiros à mão. Os projectos maiores normalmente integram os seus ficheiros 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 secção, iremos assumir que você tem um Makefile para o seu projecto e que 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 suporta nada das <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">'autotools' da GNU</span></span> na altura em que esta secção foi escrita. Se o seu projecto as usar, terá de correr o <code class="varname">./configure</code> ou qualquer um dos outros comandos relacionados à mão, numa linha de comandos. 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 comandos e poderá então executar o <code class="varname">./configure</code> a partir da linha de comandos nesta janela.</p></div><p>O primeiro passo é indicar ao <span class="application">KDevelop</span> quais são os alvos nos seus ficheiros Makefile. Existem duas formas de o fazer: se seleccionar 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">Projectos</span></span>, carregando no botão de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projectos</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">Projectos</span></span> tem duas partes: a metade superior — chamada <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projectos</span></span> — apresenta todos os seus projectos 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">Selecção dos Projectos</span></span> — apresenta um sub-conjunto desses projectos 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">Projecto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Compilar a selecção</span></span> ou carregar em <span class="keycap"><strong>F8</strong></span>; iremos voltar a esta parte mais em baixo.</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 projecto, expanda a sub-árvore de um projecto, por exemplo o projecto onde deseja executar um alvo em particular do Makefile. Isto dar-lhe-á ícones para (i) as pastas sob este projecto, (ii) os ficheiros na pasta de topo deste projecto, (iii) os alvos do Makefile que o <span class="application">KDevelop</span> consegue identificar. Estas categorias aparecem na imagem à direita. Lembre-se 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, carregue nele com o botão direito do rato e seleccione <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>. Poderá ver isto a acontecer na sub-janela <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>, pelo que 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>Seleccionar uma colecçã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 projectos com Makefiles personalizados"><link rel="prev" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Compilar os projectos 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"> Seleccionar uma colecçã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 projectos com Makefiles personalizados</td><td class="nextCell"><a accesskey="n" href="what-to-do-with-error-messages.html">Próximo</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>Seleccionar uma colecção de alvos do Makefile para uma compilação repetida</h2></div></div></div><p>Se carregar com o botão direito em alvos individuais do Makefiles, sempre que quiser compilar algo, irá perder tempo precioso. Em vez disso, será bom ter alvos individuais para um ou mais projectos da sessão que possa então compilar de forma repetida sem muito trabalho com o rato. Aí é onde o conceito das <span class="quote">“<span class="quote">Selecções de alvos de compilação</span>”</span> pode ajudar: é uma colecção de alvos dos ficheiros Makefile que são executados um a seguir ao outro quando carregar no botão <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compilar a selecção</span></span> na lista de botões do topo, seleccionar a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projecto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Compilar a selecção</span></span> ou carregar na tecla de função <span class="keycap"><strong>F8</strong></span>.</p><p>A lista com os alvos seleccionados da Makefile aparece na metade inferior da área de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projectos</span></span>.</p><p>Por omissão, a selecção contém todos os projectos, mas você poderá alterar isso. Por exemplo, se a sua lista de projectos tiver três destes (uma biblioteca de base L e duas aplicações A e B), mas se só estiver a trabalhar de momento no projecto A, poderá querer remover o projecto B da selecção, seleccionando-o nessa lista e carregando no botão <span class="inlinemediaobject"><img src="Icon-list-remove.png"></span>. Para além disso, poderá querer garantir que a biblioteca L é compilada antes do projecto A, movendo os itens da selecçã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 selecção se carregar com o botão direito sobre ela e seleccionar <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 seleccioná-lo e carregando em <span class="inlinemediaobject"><img src="Icon-list-add.png"></span>, logo por cima da lista de alvos seleccionados.</p><p>O <span class="application">KDevelop</span> permite-lhe configurar o que desejar sempre que compilar a selecção. Para tal, use a opção do menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Projecto</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 seleccionar 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 selecçã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">Início</a></td><td class="nextCell"><a accesskey="n" href="what-to-do-with-error-messages.html">Próximo</a></td></tr><tr><td class="prevCell">Compilar os projectos com Makefiles personalizados </td><td class="upCell">Compilar os projectos com Makefiles personalizados</td><td class="nextCell"> O que fazer com as mensagens de erro</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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 projectos com Makefiles personalizados"><link rel="prev" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html" title="Seleccionar uma colecçã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 projectos com Makefiles personalizados</td><td class="nextCell"><a accesskey="n" href="running-programs-in-kdevelop.html">Próximo</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 carregar 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-lhe-á oferecer várias acçõ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">Início</a></td><td class="nextCell"><a accesskey="n" href="running-programs-in-kdevelop.html">Próximo</a></td></tr><tr><td class="prevCell">Seleccionar uma colecção de alvos do Makefile para uma compilação repetida </td><td class="upCell">Compilar os projectos com Makefiles personalizados</td><td class="nextCell"> Executar os programas no <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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">Início</a></td><td class="nextCell"><a accesskey="n" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Próximo</a></td></tr><tr><td class="prevCell">Gerir os modelos </td><td class="upCell"> </td><td class="nextCell"> Seleccionar uma colecção de alvos do Makefile para uma compilação repetida</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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óximo</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, irá querer executá-lo. Para tal, é necessário configurar <span class="emphasis"><em>Lançamentos</em></span> para os seus projectos. Um <span class="emphasis"><em>Lançamento</em></span> consiste no nome de um executável, um conjunto de parâmetros da linha de comandos 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>, seleccione o projecto para o qual deseja adicionar um lançamento e carregue no botão <span class="inlinemediaobject"><img src="Icon-list-add.png"></span>. Depois, indique o nome do executável e o local onde seja 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 podê-las-á adicionar à lista no fundo: seleccione  <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Compilar</span></span> no menu e depois carregue no símbolo <span class="inlinemediaobject"><img src="Icon-folder.png"></span> à direita do campo de texto e seleccione o alvo que deseja ter compilado. No exemplo acima, foi seleccionado o alvo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">all</span></span> (tudo) do projecto <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 projecto <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 actualizados antes de executar o programa em si. Já que está aqui, poderá também configurar um lançamento de depuração, carregando para tal 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 predefinido do sistema (isto é o <span class="application">gdb</span> no <span class="trademark">Linux</span>®), então não terá de efectuar 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>Poderá agora tentar executar o programa: Seleccione <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 carregar em <span class="keycap"><strong>Shift</strong></span>+<span class="keycap"><strong>F9</strong></span>), para que o seu programa se execute numa sub-janela separada do <span class="application">KDevelop</span>. A imagem acima mostra o resultado: a nova sub-janela 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á a ser 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 tiver configurado vários lançamentos, poderá escolher qual é que deseja executar quando carregar em <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 Actual</span></span>. Existe uma forma não-óbvia de editar o nome de uma configuração: na janela que obtém quando seleccionar 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 Actual</span></span>, faça duplo-click 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óximo</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>F9</strong></span></td><td>Executar o programa no depurador; poderá querer definir pontos de paragem de antemão; por exemplo, se carregar com o botão direito do rato 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">Início</a></td><td class="nextCell"><a accesskey="n" href="debugging-programs-in-kdevelop.html">Próximo</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">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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">Início</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts0.html">Próximo</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">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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óximo</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 o poderá executar num depurador: Seleccione 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 carregue em <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 o executar. Isto significa que, caso o programa invoque o <code class="varname">abort()</code> algures (isto é quando você chegar a uma asserção mal-sucedida) ou se tiver um erro de segmentação (protecçã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 paragem 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. Podê-lo-á fazer 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 paragem</span></span> ou se carregar com o botão direito sobre uma linha e seleccionar a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Comutar o Ponto de Paragem</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. 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">Rever</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 carregar 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 secção <a class="link" href="working-with-source-code.html#tools-and-views" title="Ferramentas e janelas">Ferramentas e janelas</a>.</p><p>Assim que o depurador parar (num ponto de paragem ou num ponto em que a função <code class="varname">abort()</code> seja chamada), poderá inspeccionar uma grande quantidade de informação acerca do seu programa. Por exemplo, na imagem acima, foi seleccionada 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 é que a execução chegou ao ponto de paragem actual à 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, poderá inspeccionar as variáveis locais, incluindo o objecto actual (o objecto referenciado pela variável <code class="varname">this</code>).</p><p>A partir daqui, existem várias possibilidades disponíveis para si: poderá executar a linha actual (<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> actualiza as variáveis apresentadas à esquerda para os seus valores actuais. Poderá também passar o rato sobre um símbolo no seu código, isto é uma variável; o <span class="application">KDevelop</span> irá então mostrar o valor actual 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á carregar 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 directamente comandos do <span class="application">gdb</span>, por exemplo para alterar o valor de uma variável (possibilidade para a qual não existe de 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óximo</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 tal, 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">Anexar ao Processo</span></span>, a qual irá abrir uma janela como a anterior. Irá querer seleccionar o programa que corresponde ao seu projecto aberto de 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. Poderá simplificar a sua vida se for à lista no canto superior direito da janela. O valor por omissão é <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Processos do utilizador</span></span>, isto é todos os programas que são executados por qualquer um dos utilizadores autenticados de momento nesta máquina (se este for o seu computador pessoal ou portátil, provavelmente você será o único utilizador de facto, para além do 'root' e das várias contas de serviços); a lista não inclui os processos executados pelo utilizador 'root', contudo. 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 utilizadores. Melhor ainda, seleccione 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 a ser executados com o seu nome, mas com os quais não interage normalmente, como o gestor 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 seleccionado 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 paragem, 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">Início</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts1.html">Próximo</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">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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 controlo 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óximo</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">Início</a></td><td class="nextCell"><a accesskey="n" href="working-with-version-control-systems.html">Próximo</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 controlo de versões</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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">Início</a></td><td class="nextCell"><a accesskey="n" href="attaching-the-debugger-to-a-running-process.html">Próximo</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">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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 controlo 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 controlo 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óximo</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 controlo de versões</h1></div></div></div><p>Se estiver a lidar com projectos maiores, será provável que o código-fonte seja gerido por um sistema de controlo 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 controlo de versões suportado qualquer.</p><p>Repare primeiro que, se a pasta na qual se encontra um projecto estiver sob controlo de versões, o <span class="application">KDevelop</span> irá descobrir automaticamente. Por 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 projecto; é 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 controlo de versões, abra a área de ferramentas dos <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Projectos</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 se tornou desactualizada, podê-la-á actualizar a partir do repositório: Carregue no nome do projecto com o botão direito do rato, vá ao menu <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> e seleccione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Actualizar</span></span>. Isto irá obter actualizações de todos os ficheiros que pertençam a este projecto e que digam respeito ao repositório. </p></li><li class="listitem"><p>Se quiser restringir esta acção apenas às sub-pastas ou ficheiros individuais, então expanda a árvore deste projecto para o nível que desejar e carregue com o botão direito sobre uma sub-pasta ou ficheiro, 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 tiver editado um ou mais ficheiros, expanda a área do projecto até à pasta onde se encontram estes ficheiros e carregue 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 ficheiros nesta pasta. </p></li><li class="listitem"><p>Se só editou um único ficheiro, 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 ficheiro, bastando para tal carregar com o botão direito sobre o ficheiro correspondente na área do projecto. Ainda mais simples, basta carregar 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 ficheiro, obtendo também esta opção do menu. </p></li><li class="listitem"><p>Se quiser enviar para o servidor um ou mais ficheiros editados, carregue com o botão direito sobre um ficheiro individual, sub-pasta ou sobre o projecto todo e seleccione 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 para 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 sub-pasta/projecto inteiro e cada um dos ficheiros individuais alterados com as alterações realçadas (veja as várias páginas nesta parte da janela). Por omissão, todos os ficheiros alterados estão no conjunto de alterações que estará prestes a enviar, mas poderá desligar alguns dos ficheiros, caso as suas modificações não estejam relacionadas com o que deseja enviar. No exemplo à direita, foi desligado o ficheiro <code class="varname">passo-32.cc</code> e <code class="varname">passo-32.prm</code> porque as alterações destes ficheiros não têm nada a ver com as outras que foram feitas no projecto e não se pretende para já enviá-las (poder-se-á pensar nisso num envio em separado). Depois de rever as alterações, poderá introduzir uma mensagem de envio no campo de texto e carregar 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 ficheiro, também poderá carregar 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">Início</a></td><td class="nextCell"><a accesskey="n" href="customizing-kdevelop.html">Próximo</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">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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 controlo 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óximo</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 alturas em que poderá querer alterar a aparência ou comportamento predefinidos do <span class="application">KDevelop</span>; por exemplo, se tiver habituado a combinações de teclas diferentes ou porque o seu projecto necessita de um estilo de indentação diferente para o código-fonte. Nas seguintes secções, iremos discutir de forma breve as diferentes formas com que pode personalizar o kdevelop; 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á activar 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 activar 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 paragem na linha actual.</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óximo</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 projectos também obrigam a um dado 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ção</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 carregue no <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Formatador de Código</span></span> à esquerda. 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. Poderá não haver uma forma de recriar exactamente o estilo com que o código do seu projecto 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 em baixo.</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>, poderá criar um novo estilo para um tipo MIME em particular (isto é para os ficheiros de inclusão em C++), mas este estilo poderá não aparecer na lista de estilos possíveis para outros tipos MIME ((isto é para os ficheiros de código em C++) ainda que pudesse ser útil usar o mesmo estilo para ambos os tipos de ficheiros. Nesse caso, terá de definir o estilo duas vezes, uma para os ficheiros 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">Início</a></td><td class="nextCell"><a accesskey="n" href="customizing-keyboard-shortcuts.html">Próximo</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">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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 completaçã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óximo</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">secçõ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ção</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurar os Atalhos</span></span>. No topo da janela, 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 introduzem tabulações à mão e assim preferem que o editor escolha a disposição do mesmo; com o atalho alterado, ao carregar em <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 Paragem</span></span> ao <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>B</strong></span>, dado ser 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">Início</a></td><td class="nextCell"><a accesskey="n" href="customizing-code-auto-completion.html">Próximo</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 completação automática do código</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-code-auto-completion.html"><html><head><title>Personalizar a completaçã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"><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 completaçã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óximo</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 completação automática do código</h2></div></div></div><p>A completação do código é discutida <a class="link" href="writing-source-code.html#auto-completion" title="Completação automática">na secçã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 grande ambiente do KDe e fornece a completação automática com base nas palavras que já tiverem sido vista noutras partes do mesmo documento. Essa completaçã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 completaçã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ção</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">Completação Automática</span></span>. Em particular, pode seleccionar quantos caracteres necessita escrever para que a janela de completação automática apareça.</p><p>Por outro lado, a completação automática própria do <span class="application">KDevelop</span> é muito mais poderosa, dado que tem em conta a informação semântica acerca do contexto. Por exemplo, sabe que funções-membro deverá oferecer quando escrever <code class="varname">objecto.</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 dado ficheiro ter sido gravado (para que possa então verificar o tipo de ficheiro e usar o suporte da linguagem correcto).</p><p>A completação do <span class="application">KDevelop</span> está configurada para aparecer assim que escrever, praticamente em todo o lado 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ção</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 omissão), certifique-se que a opção <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Activar a Invocação Automática</span></span> está activa.</p><p>O <span class="application">KDevelop</span> tem duas formas de mostrar uma completação: a <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Completação Automática Mínima</span></span> mostra apenas a informação básica nas dicas de completaçã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> (exceptuando os ícones).</p><p>Por outro lado, a <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Completaçã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 a preencher de momento os argumentos de uma função, a completação total irá ter uma área informativa adicional sobre o cursor que lhe mostrará o argumento actual com que está a lidar.</p><p>A completação de código do <span class="application">KDevelop</span> deverá também invocar para o topo e realçar a verde os itens de completação que corresponderem ao tipo esperado, tanto na completaçã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 completação mínima</span></span>: Nunca mostrar a <span class="quote">“<span class="quote">Completaçã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">Completação automática mínima</span></span>: Só mostrar a  <span class="quote">“<span class="quote">Completação Total</span>”</span> quando esta tiver sido invocada manualmente (isto é, quando carregar em <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 completação total</span></span>: Mostrar sempre a <span class="quote">“<span class="quote">Completaçã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">Início</a></td><td class="nextCell"><a accesskey="n" href="building-kdevelop-from-sources.html">Próximo</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</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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">Início</a></td><td class="nextCell"><a accesskey="n" href="customizing-code-indentation.html">Próximo</a></td></tr><tr><td class="prevCell">Lidar com sistemas de controlo 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">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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</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 completação automática do código"><link rel="next" href="install-for-all-users.html" title="Instalar para todos os utilizadores"><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</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óximo</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</h1></div></div></div><p>Se quiser ter as últimas funcionalidades e correcções de erros, poderá compilar você mesmo o <span class="application">KDevelop</span> a partir do código.</p><p>Existe um artigo mais detalhado <a class="ulink" href="http://techbase.kde.org/KDevelop4/HowToCompile" target="_top">aqui</a>.</p><p>Tenha em atenção que <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 à mão 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 utilizadores</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"><link rel="prev" href="building-kdevelop-from-sources.html" title="Capítulo 10. Compilar o KDevelop a Partir do Código"><link rel="next" href="install-for-local-user.html" title="Instalar para o utilizador 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 utilizadores</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</td><td class="nextCell"><a accesskey="n" href="install-for-local-user.html">Próximo</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 utilizadores</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">Início</a></td><td class="nextCell"><a accesskey="n" href="install-for-local-user.html">Próximo</a></td></tr><tr><td class="prevCell">Compilar o <span class="application">KDevelop</span> a Partir do Código </td><td class="upCell">Compilar o <span class="application">KDevelop</span> a Partir do Código</td><td class="nextCell"> Instalar para o utilizador local</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME><FILENAME filename="install-for-local-user.html"><html><head><title>Instalar para o utilizador 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"><link rel="prev" href="install-for-all-users.html" title="Instalar para todos os utilizadores"><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 utilizador 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</td><td class="nextCell"><a accesskey="n" href="credits.html">Próximo</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 utilizador 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 ficheiros '.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 actualização de pacotes ou da distribuição que invoque o <span class="application">kbuildsycoca4</span>, terá de executar as seguintes linhas após a actualizaçã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">Início</a></td><td class="nextCell"><a accesskey="n" href="credits.html">Próximo</a></td></tr><tr><td class="prevCell">Instalar para todos os utilizadores </td><td class="upCell">Compilar o <span class="application">KDevelop</span> a Partir do Código</td><td class="nextCell"> Créditos e Licença</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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">Início</a></td><td class="nextCell"><a accesskey="n" href="install-for-all-users.html">Próximo</a></td></tr><tr><td class="prevCell">Personalizar a completação automática do código </td><td class="upCell"> </td><td class="nextCell"> Instalar para todos os utilizadores</td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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 utilizador 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 Utilizadores</p><p>Tradução de José Nuno Pires <code class="email">(zepires AT gmail.com)</code></p><p><a name="gnu-fdl"></a>
A documentação está licenciada ao abrigo da
<a class="ulink" href="help:/kdoctools5-common/fdl-license.html" target="_top">GNU Free Documentation License</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">Início</a></td><td class="nextCell"></td></tr><tr><td class="prevCell">Instalar para o utilizador local </td><td class="upCell"> </td><td class="nextCell"> </td></tr></table></div><div id="footer_text">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</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óximo</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">Would you like to make a comment or contribute an update to this page?<br>Send feedback to the <a href="mailto:kde-doc-english@kde.org" class="footer_email">KDE Docs Team</a></div></div></div></body></html></FILENAME>

Generated by dwww version 1.15 on Sat Jun 22 12:48:48 CEST 2024.