Explorar o código-fonte

Informação local

O KDevelop compreende 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 celula na linha 1316 (se estiver a trabalhar com base no teclado, poderá obter o mesmo efeito se mantiver a tecla Alt carregada durante um pouco):

O KDevelop mostra uma dica que inclui o tipo da variável (aqui: DoFHandler<dim>active_cell_iterator), onde está declarada esta variável (o contentor, que é aqui a função envolvente velocidade_maxima, 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).

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 get_this_mpi_process, na linha 1318, o resultado teria sido o seguinte:

Aqui, o KDevelop cruzou a informação da declaração a partir de um ficheiro completamente diferente (o utilities.h, 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.

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 System, 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 utilities.h, 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.

Nota

A informação numa dica é flutuante — depende se mantém carregada a tecla Alt ou se passa o rato por cima. Se quiser um local mais permanente para a mesma, abra a ferramenta do Navegador de Código 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:

Se mover o cursor para a direita, irá mudar a informação apresentada à esquerda. Para além disso, se carregar no botão Bloquear a janela actual, no canto superior direito, poderá bloquear esta informação, tornando-a independente do movimento do cursor, enquanto explora a informação aí apresentada.

Nota

Este tipo de informação de contexto está disponível em muitos outros locais no KDevelop, não apenas no editor de código. Por exemplo, se mantiver carregada a tecla Alt 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.

Informação de âmbito do ficheiro

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 Navegador de Código irá mostrar:

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.

Nota

A informação apresentada a nível do ficheiro é a mesma apresentada no modo de Contorno da navegação do código-fonte; a diferença é que o modo de contorno é apenas uma dica temporária.

Informação ao nível do projecto e da sessão

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 Classes 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:

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.

Mas existem outras formas de olhar para a informação global. Por exemplo, a ferramenta de Documentos oferece uma vista sobre um projecto com base nos tipos de ficheiros ou outros documentos que compõem este projecto:

O realce do arco-íris explicado

O KDevelop 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:

  • 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).

  • Todas as variáveis globais aparecem a verde escuro.

  • Os identificadores de 'typedefs' de cada tipo aparecem a castanho.

  • Todas as declarações e definições de objectos aparecem a negrito.

  • 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.

  • Se um membro for privado ou protegido, aparece numa cor ligeiramente mais escura quando for usado.

  • 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.

  • Os identificadores para os quais o KDevelop não pôde determinar a declaração correspondente aparecem a branco. Isto poderá acontecer algumas vezes por instruções #include em falta.

  • Para além dessa coloração, o realce de sintaxe normal do editor será aplicado, como acontece no Kate. O realce semântico do KDevelop irá sempre substituir o realce de sintaxe do editor, caso exista algum conflito.