// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Instruções da Aplicação C/C++ para Assistência ao Código
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Instruções da Aplicação C/C++ para Assistência ao Código - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Instruções da Aplicação C/C++ para Assistência ao Código

_Colaboração de link:mailto:vladimir.kvashin@oracle.com[+_Vladimir Kvashin_+] e link:mailto:vladimir.voskresensky@oracle.com[+_Vladimir Voskresensky_+]
Março de 2013_ [Número da revisão: V8.0]

A assistência ao código é um conjunto de funcionalidades do IDE que ajuda a navegar e editar o código-fonte. Para um Projeto C/C++ com Códigos-fonte Existentes ou um Projeto C/C++ do Binário Existente, você pode especificar como seu código será submetido a parse para ativar as funcionalidades de assistência ao código do IDE.

Observe que as dicas deste artigo aplicam-se principalmente a projetos de código-fonte existente ou de um binário existente. Para projetos que são criados e gerenciados pela assistência ao código IDE, a configuração não é necessária.

== O que Fazer quando seu Projeto Tem um Ponto de Interrogação na Janela Projetos

Se seu projeto tem um ponto de interrogação na janela projetos ou uma diretiva  ``#include``  está sublinhada em vermelho, então seu projeto tem políticas include não resolvidas. O IDE usa o parser interno que é usado por funcionalidades de Assistência ao Código (Autocompletar Código, janela Classes, janela Navegador etc.). As marcações significam que esse parser não conseguiu resolver algumas diretivas  ``#include`` , pois o projeto IDE tem uma configuração incorreta. Isso pode ter ocorrido se o projeto tiver sido criado de fontes existentes sem a ajuda de informações de depuração ou se, por exemplo, os arquivos de origem tiverem incluído novas bibliotecas desde a criação do projeto IDE.

Estes são alguns dos possíveis motivos (organizados do mais para o menos provável):

* Caminhos include do usuário errados ou insuficientes especificados no projeto, na pasta lógica ou nas propriedades do arquivo
* Macros definidas pelo usuário erradas ou insuficientes especificadas no projeto, na pasta lógica ou nas propriedades do arquivo
* O arquivo de código-fonte foi incluído no projeto por engano
* O arquivo de cabeçalho não foi incluído em nenhum arquivo de código-fonte e, portanto, foi incluído no projeto por engano

Se você retiver o cursor do mouse sobre a pasta do projeto, uma dica de ferramenta exibirá algumas informações sobre o problema. Para obter mais informações, você pode clicar com o botão direito do mouse e selecionar Assistência ao Código -> Diretivas #include/#error com falha.

Tente iniciar o assistente Configurar Assistência ao Código clicando com o botão direito do mouse no nó do projeto e selecionando Assistência ao Código > Configurar Assistência ao Código para resolver o problema. Se você conhece o local dos arquivos que correspondem à diretiva include com falha, poderá configurar manualmente o projeto, a pasta lógica e as propriedades do arquivo.


== Configurando o Analisador de Código para a Assistência ao Código

Suponha que o código-fonte da sua aplicação seja gerenciado com um VCS (sistema de controle de versão) como Mercurial e você crie um projeto do IDE com o código-fonte. Se você abrir o projeto do IDe no IDE e obtiver as alterações do VCS, deverá compilar o projeto do IDE para atualizá-lo com as modificações.

Depois que você criar seu projeto no IDE, o projeto será automaticamente atualizado pelo IDE das seguintes formas:

* Novas unidades de compilação serão adicionadas ao projeto do IDE.
* As unidades de compilação existentes serão modificadas com inclusões e macros definidas pelo usuário novas ou alteradas.
* As unidades de compilação que são excluídas da compilação não são excluídas da assistência ao código.

O IDE usa um analisador de compilação para obter informações da compilação, usando uma técnica de interposição para obter chamadas de exec da biblioteca do sistema nas plataformas Oracle Solaris e Linux. Por padrão, o analizador de compilação é usado quando você cria um projeto com fontes existentes e quando executa manualmente Configurar Assistência ao Código. Se o analizador de compilação não for usado, o log de saída da compilação será usado para capturar informações.

Se você não quiser que o IDE execute atualizações no projeto, poderá desativar o analizador de compilação desta forma:

1. Clique com o botão direito do mouse no nó do projeto na janela Projetos e selecione Propriedades.
2. Na caixa de diálogo Propriedades do Projeto, clique na categoria Assistência ao Código.
3. Cancele a seleção da opção Usar Analisador de Compilação.

Para projetos de código-fonte que configuram o próprio ambiente no momento da compilação, o analisador de compilação nem sempre funciona bem. Se uma compilação falhar quando a opção Usar Analisador de Compilação for selecionada, você deverá verificar o script da compilação para ver se cancelou a definição da variável de ambiente  ``LD_LIBRARY_PATH`` . Se  ``LD_LIBRARY_PATH``  não estiver definida, você também deverá cancelar a definição de  ``LD_PRELOAD`` . Quando a definição dessas duas variáveis é cancelada, o analizador de compilação é automaticamente desativado. Se você não conseguir modificar o script da compilação, poderá desativar o analizador de compilação como descrito acima e o IDE poderá usar o log de saída para obter informações da compilação.


== Configurando a Assistência ao Código para um Projeto Multiplataforma

Se você estiver desenvolvendo um projeto multiplataforma usando um código existente, poderá usar o mesmo projeto IDE para diferentes plataformas. Crie uma configuração por plataforma e alterar a coleção de compiladores, opções do compilador e outras propriedades do projeto adequadamente.

O assistente Configurar Assistência ao Código também funciona por configuração: ele altera somente a configuração que está atualmente ativa. Portanto, é possível executá-lo separadamente para cada configuração e obter diferentes definições de assistência ao código para diferentes plataformas.


== Configurando a Assistência ao Código Quando Você não Consegue Construir o Projeto

O assistente Configurar Assistência ao Código será mais eficiente se você criar seu código com informações de depuração (as melhores opções são  ``-g3 -gdwarf-2``  para compiladores GNU e somente  ``-g``  para compiladores Oracle Solaris Studio.

Caso não seja possível compilar seu projeto ou se ele não contiver informações de depuração, o assistente Configurar Assistência ao Código tem um modo especial denominado Pesquisar Sistema de Arquivos para Arquivos de Cabeçalho C/C++. Nesse modo, o NetBeans IDE tenta solucionar diretivas include com falha procurando cabeçalhos no sistema de arquivos. O assistente permite inserir um caminho para pesquisar cabeçalhos. Por padrão, o caminho pesquisado é uma raiz de origem do projeto.

Para usar o assistente, clique com o botão direito do mouse e escolha Assistência ao Código > Configurar Assistência ao Código. Siga as etapas do assistente para permitir que o IDE atualize a assistência ao código. Clique no botão Ajuda para obter informações sobre cada etapa.


== Usando Hiperlinks para Navegar entre Chamadas e Declarações

A navegação por hiperlinks permite passar de chamadas de uma função, classe, método, variável ou constante para sua declaração. Para usar um hiperlink, siga um destes procedimentos:

* Passe o mouse sobre uma classe, método, variável ou constante, pressionando a tecla Ctrl. Um hiperlink é exibido juntamente com uma dica de ferramenta com informações sobre o elemento. Clique no hiperlink e o editor passará para a declaração. Pressione Alt+Seta para a esquerda para voltar para a chamada.
* Passe o mouse sobre um identificador e pressione Ctrl+B. O editor passa para a declaração.
* Pressione Alt+Seta para a esquerda para voltar para a chamada. Pressione Alt+Seta para a esquerda e Alt + Seta para a direita para se mover para frente e para trás no histórico de posição do cursor.

Você também pode clicar com o botão direito do mouse em um item e selecionar Navegar > Ir para Declaração/Definição ou outras opções para navegar pelo código.


== Encontrando Todas as Definições de um Namespace

Um namespace pode ser definido em diferentes arquivos do projeto. Para navegar entre diferentes definições de namespace, use a janela Classes (Ctrl-9). Clique com o botão direito do mouse no namespace no qual está interessado e selecione Todas as Declarações. Você verá uma lista de todas as definições classificadas por nomes de arquivo.

link:mailto:users@cnd.netbeans.org?subject=subject=Feedback:%20C/C++%20Application%20How-Tos%20-%20NetBeans%20IDE%208.0[+Enviar Feedback neste Tutorial+]
