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