Navegar pelo código-fonte

Na seção anterior, discutimos a exploração do código-fonte, isto é, obter informações sobre os símbolos, arquivos e projetos. O passo seguinte é então navegar pelo mesmo, isto é, circular por ele todo. Existem de novo vários níveis possíveis para isso: local, dentro de um arquivo ou dentro de um projeto.

Nota

Muitas das formas de navegar pelo código estão acessíveis através do menu Navegar da janela principal do KDevelop.

Navegação local

O KDevelop é muito mais que um editor, mas também é um editor de código. Como tal, obviamente você poderá mover o cursor para cima, baixo, esquerda ou direita num arquivo de código. Poderá também usar as teclas PageUp e PageDown, assim como todos os comandos a que está habituado em qualquer outro editor útil.

Navegação ao nível do arquivo e modo de contorno

Ao nível do arquivo, o KDevelop oferece muitas formas possíveis de navegar pelo código-fonte. Por exemplo:

  • Contorno: Você poderá ter uma visão geral do que se encontra no arquivo atual, pelo menos de três formas diferentes:

    • Se clicar na área de Contorno no canto superior direito da janela principal, ou se pressionar Alt+Ctrl+N, irá abrir uma lista que apresenta todas as declarações de funções e classes:

      Você poderá então selecionar para onde desejar saltar ou — se existirem muitas — começar a escrever o texto que possa aparecer nos nomes apresentados; nesse caso, à medida que vai escrevendo, a lista vai ficando cada vez menor, uma vez que os nomes não correspondentes ao texto inserido vão sendo retirados, até que esteja pronto para selecionar uma das opções.

    • Posicionando o cursor ao nível do arquivo (isto é fora de qualquer declaração ou definição de funções ou classes) e tendo a ferramenta do Navegador de código aberta:

      Isto também lhe dá uma ideia geral do que se passa no arquivo atual, permitindo-lhe selecionar para onde deseja ir.

    • Passar o mouse sobre o separador da página de um dos arquivos abertos também lhe dará uma visão geral do arquivo nessa página.

  • Os arquivos de código estão organizados como uma lista de declarações ou definições de funções. Pressionar Alt+Ctrl+PgUp e Alt+Ctrl+PgDown, salta respectivamente para a definição de função anterior ou seguinte neste arquivo.

Navegação ao nível do projeto e sessão. Navegação semântica

Como foi mencionado em outros locais, o KDevelop não leva em consideração normalmente os arquivos de código individuais olhando sim para os projetos como um todo (ou para todos os projetos que façam parte da sessão atual). Em consequência, ele oferece várias possibilidades para navegar pelos projetos inteiros. Algumas destas possibilidades são derivadas do que já foi discutido na seção como Explorar o código-fonte, enquanto outras são completamente diferentes. O tema em comum é que estas funcionalidades de navegação baseiam-se numa compreensão semântica do código, isto é elas oferecem-lhe algo que necessite processar os projetos por inteiro e interligar os dados. A lista a seguir mostra-lhe algumas formas de navegar pelo código-fonte que esteja espalhado por uma grande quantidade de arquivos:

  • Como foi visto na seção sobre Explorar o código-fonte, você poderá obter uma dica que explica os nomes dos espaços de nomes, classes, funções ou variáveis individuais, passando o cursor do seu mouse sobre eles ou mantendo a tecla Alt pressionada durante algum tempo. Aqui está um exemplo:

    Se clicar nas ligações para a declaração de um símbolo ou se expandir a lista de utilizações, poderá saltar para esses locais, abrindo se necessário o respectivo arquivo e colocando o cursor na posição correspondente. Você poderá obter um efeito semelhante se usar a ferramenta do Navegador de código, que também foi descrita anteriormente.

  • Um modo rápido de saltar para a declaração de um símbolo sem ter que clicar nos links da dica é habilitar temporariamente Modo de navegação no código segurando a tecla Alt ou Ctrl. Neste modo, é possível clicar em qualquer símbolo no editor para saltar para sua declaração.

  • Abertura rápida: Uma forma bastante poderosa de saltar para outros arquivos ou locais é usar os vários métodos de abertura rápida no KDevelop. Existem quatro versões destes métodos:

    • Abrir rapidamente a classe (NavegarAbrir rapidamente a classe ou Alt+Ctrl+C): Você obterá uma lista com todas as classes nesta sessão. Comece a digitar (uma parte de) o nome de uma classe para que a lista vá se reduzindo para mostrar apenas as que corresponderem ao texto escrito até agora. Se a lista for pequena o suficiente, selecione um elemento, com as teclas de cursor para cima ou baixo, para que o KDevelop o leve para o local em que a classe está declarada.

    • Abrir rapidamente a função (NavegarAbrir rapidamente a função ou Alt+Ctrl+M): Você obterá uma lista com todas as funções 'membros' que fazem parte dos projetos na sessão atual, podendo selecionar, a partir desta lista da mesma forma que foi descrito acima. Lembre-se que esta lista poderá incluir tanto as declarações como as definições das funções.

    • Abrir rapidamente o arquivo (NavegarAbrir rapidamente o arquivo ou Alt+Ctrl+O): Você obterá uma lista com todos os arquivos que fazem parte dos projetos na sessão atual, onde poderá escolher o arquivo em questão da mesma forma que foi descrita acima.

    • Abertura rápida universal (NavegarAbertura rápida ou Alt+Ctrl+Q): Se você se esquecer da combinação de teclas associada a algum dos comandos acima, este é o 'canivete suíço' universal — apresenta-lhe simplesmente uma lista combinada com todos os arquivos, funções, classes e outros itens que possa selecionar.

  • Ir para a declaração/definição: Ao implementar uma função-membro, normalmente uma pessoa precisa voltar ao ponto em que foi declarada uma função, por exemplo para manter a lista de argumentos da função sincronizada entre a declaração e a definição ou para atualizar a documentação. Para fazer isso, coloque o cursor sobre o nome da função e selecione a opção NavegaçãoIr para a declaração (ou pressione Ctrl+.) para ir para o local onde está declarada a função. Existem várias formas de voltar ao local original:

    • Selecionando a opção NavegaçãoIr para a definição (ou pressionando Ctrl+,).

    • Selecionando a opção NavegaçãoContexto visitado anterior (ou pressionando Meta+Esquerda), como descrito abaixo.

Nota

Ir para a declaração de um símbolo é algo que não só funciona quando colocar o cursor sobre o nome da função que se encontra implementando no momento, mas também funciona para outros símbolos: se colocar o cursor sobre uma variável (local, global ou membro) e for para a sua declaração, irá também levá-lo para a localização da sua declaração. Da mesma forma, poderá colocar o cursor sobre o nome de uma classe, por exemplo sobre a declaração da variável de uma função, e ir para o local da sua declaração.

  • Alternar entre a declaração/definição: No exemplo acima, para ir para o local da declaração da função atual, você terá primeiro que colocar o cursor sobre o nome da função. Para evitar este passo, poderá selecionar a opção NavegaçãoAlternar entre a definição/declaração (ou pressione Shift+Ctrl+C) para ir para a declaração da função onde se encontra o cursor no momento. Se selecionar uma segunda vez a mesma opção, voltará para o local em que está definida a função.

  • Uso anterior/seguinte: Se colocar o cursor sobre o nome de uma variável local e selecionar a opção NavegaçãoUso seguinte (ou pressionar Meta+Shift+Direita) irá para a utilização seguinte desta variável no código. (Lembre-se de que isto não pesquisa apenas pela ocorrência seguinte da variável mas também considera as variáveis com o mesmo nome, mas em âmbitos diferentes). O mesmo resulta para a utilização dos nomes das funções. Se selecionar NavegaçãoUso anterior (ou pressionar Meta+Shift+Esquerda), irá para a utilização anterior de um determinado símbolo.

Nota

Para ver uma lista com todas as utilizações de um nome, coloque o cursor sobre ele e abra a ferramenta do Navegador de código ou pressione e mantenha pressionada a tecla Alt. Isto é explicado com mais detalhes na seção sobre como Explorar o código.

  • A lista de contextos: os navegadores Web têm esta funcionalidade, na qual poderá recuar e avançar pela lista das páginas visitadas mais recentemente. O KDevelop tem o mesmo tipo de funcionalidades, exceto que, em vez de páginas Web, você visita os contextos. Um contexto é a localização atual do cursor e o usuário poderá alterá-la se navegar para fora dela, usando tudo menos os comandos de cursores — por exemplo, se clicar num local indicado por uma dica, na área de ferramentas do Navegador de código, uma das opções indicadas no menu de Navegação ou qualquer outro comando de navegação. Se usar as opções NavegaçãoContexto visitado Anterior (Meta+Esquerda) e NavegaçãoContexto visitado Seguinte (Meta+Direita) irá percorrer esta lista de contextos visitados, assim como acontece nos botões para recuar e avançar num navegador para as páginas Web visitadas.

  • Finalmente, existem áreas de ferramentas que lhe permitem navegar para diferentes locais do seu código. Por exemplo, a ferramenta de Classes oferece-lhe uma lista com todos os espaços de nomes e classes de todos os projetos da sessão atual, permitindo-lhe expandi-la para ver as funções e variáveis membros de cada uma destas classes:

    Se fizer duplo-clique sobre um item (ou se percorrer o menu de contexto com o botão direito do mouse) poderá ir para a localização de declaração do item. Outras ferramentas permitem coisas do gênero; por exemplo, a área de Projetos oferece uma lista dos arquivos que fazem parte de uma sessão:

    Mais uma vez, se fizer duplo-clique sobre um arquivo, irá abri-lo.