Explorar o código-fonte

Informação local

O KDevelop compreende o código-fonte e, por consequência, é bastante bom ao dar-lhe informações sobre as variáveis e funções que possam aparecer no seu programa. Por exemplo, aqui está uma imagem onde está lidando com um pedaço de código e, ao passar o mouse sobre o símbolo celula na linha 1316 (se estiver trabalhando com base no teclado, poderá obter o mesmo efeito se mantiver a tecla Alt pressionada durante um tempo):

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, uma vez que é uma variável local), o que é (uma variável, não uma função, classe ou espaço de nomes) e onde está declarada (na linha 1314, umas linhas acima no código).

No contexto atual, o símbolo sobre o qual o mouse passou não tinha documentação associada. Nesse exemplo, se o mouse tivesse passado sobre o símbolo 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 arquivo completamente diferente (o utilities.h, que reside de fato num projeto diferente na mesma sessão), em conjunto com o comentário do 'doxygen' que acompanha a declaração nesse local.

O que torna estas dicas ainda mais úteis é o fato de serem dinâmicas: eu posso clicar no contentor para obter informações sobre o contexto em que a mesma é declarada (isto é no espaço de nomes System, como onde está declarada, definida, usada ou qual é a sua documentação) e poderá clicar nas ligações azuis que irão restaurar a posição do cursor no local de declaração do símbolo (por exemplo em utilities.h, na linha 289) ou fornecer-lhe uma lista dos locais onde este símbolo é usado no arquivo atual ou em todos os projetos da sessão atual. A última opção é normalmente usada se quiser explorar como, por exemplo, é usada uma função em particular num grande bloco de código.

Nota

A informação numa dica é flutuante — isto depende se mantém pressionada a tecla Alt ou se passa o mouse por cima. Se quiser um local mais permanente para ela, abra a ferramenta do Navegador de código em uma das subjanelas. Por exemplo, aqui o cursor está na mesma função que no exemplo acima e a área de ferramentas à esquerda apresenta o mesmo tipo de informação que a dica anterior:

Se mover o cursor para a direita, irá mudar a informação apresentada à esquerda. Além disso, se clicar no botão Bloquear a janela atual, no canto superior direito, você 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 pressionada a tecla Alt numa lista de completamento (por exemplo ao fazer uma abertura rápida), também irá apresentar a informação de contexto do símbolo atual.

Informação de âmbito do arquivo

O próximo nível acima é a obtenção de informação sobre o arquivo de código por inteiro sobre o qual está trabalhando. Para esse fim, coloque o cursor ao nível do arquivo atual e veja o que a ferramenta do Navegador de código irá mostrar:

Aqui ela apresenta uma lista dos espaços de nomes, classes e funções declaradas ou definidas no arquivo atual, dando-lhe uma visão geral sobre o que se passa neste arquivo, bem como uma forma de saltar diretamente para qualquer uma destas declarações ou definições sem ter que percorrer o arquivo para cima ou para baixo à procura de um determinado símbolo.

Nota

A informação apresentada a nível do arquivo é 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 projeto e da sessão

Existem muitas formas de obter informações sobre um projeto inteiro (ou, de fato, sobre todos os projetos de uma sessão). Este tipo de informação é normalmente indicada através de várias áreas de ferramentas. Por exemplo, a ferramenta de Classes oferece uma estrutura em árvore de todas as classes e espaços de nomes envolventes para todos os projetos de uma sessão, em conjunto com as funções-membro e variáveis de cada uma destas classes:

Se passar o mouse sobre um item irá obter, mais uma vez, informações sobre o símbolo, a localização da sua declaração e definição e as suas utilizações. Se fizer duplo-clique sobre um item desta árvore, irá abrir uma janela do editor na posição em que o símbolo está declarado ou definido.

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

O realce do arco-íris explicado

O KDevelop usa uma variedade de cores para realçar os diferentes objetos no código-fonte. Se você souber o que as diferentes cores significam, poderá extrair rapidamente muitas informações a partir do código-fonte, bastando para isso olhar para as cores, sem precisar ler um único caractere. As regras de realce são as seguintes:

  • Os objetos do tipo Classe / Estrutura, Enumerado (os valores e o tipo), as funções (globais) e os membros das classes têm cada um a sua própria cor atribuída (as classes são verdes, os enumerados são vermelho-escuro e os membros são amarelo-escuro ou violetas, sendo que as funções globais são sempre violetas).

  • Todas as variáveis globais aparecem em verde-escuro.

  • Os identificadores de 'typedefs' de cada tipo aparecem em verde-azulado.

  • Todas as declarações e definições de objetos aparecem em negrito.

  • Se um membro for acessado dentro do contexto em que é definido (classe de base ou derivada), ele aparece em amarelo, caso contrário, aparece em violeta.

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

  • Para as variáveis locais de um determinado bloco de código, as cores do arco-íris são escolhidas com base num código do identificador. Este inclui os parâmetros dessa função. Um identificador terá sempre a mesma cor dentro do seu âmbito (embora o mesmo identificador possa obter uma cor diferente se representar um objeto diferente, isto é, se for redefinido em outro nível), sendo normalmente obtida a mesma cor para o mesmo identificador em âmbitos diferentes. Como tal, se tiver várias funções que recebam parâmetros com os mesmos nomes, os argumentos ficarão com cores iguais. Estas cores do arco-íris poderão ser desativadas em separado da coloração global da janela de configuração.

  • Os identificadores para os quais o KDevelop não pode determinar a declaração correspondente aparecem a branco. Isto poderá acontecer algumas vezes por instruções #include que estão faltando.

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