Funcionalidades do language server


01. Links para arquivos, módulos e chaves.

02. Hover nas chaves da base de dados.

03. Completion proposal.




Links para arquivos, módulos e chaves.

É possível navegar através dos arquivos da VFS ou módulos da VFS/UFS clicando em suas respectivas chaves ou caminhos com ctrl pressionado. Resource Strings e módulos da UFS são exibidos como documentos de texto somente-leitura no editor. Para outras chaves presentes no cache local, o link abre o visualizador de chaves.

Exemplo de chave da VFS:

VFS Link

Exemplo de caminho da UFS:

UFS Link


Hover nas chaves da base de dados.

É possível checar informações sobre uma chave no cache local (e.g. nome, classe mãe, caminho, etc) ao repousar o cursor sobre a mesma no código fonte. Algumas dessas informações funcionam como links para arquivos, diretórios ou outras chaves. A opção Show all fields abre a chave no visualizador de chaves.

Hover


Completion proposal.

Assim como o completion proposal da IDE do Engine, o language server da extensão também disponibiliza opções de completar o texto do código com métodos, propriedades, arquivos, diretórios, registros e campos. A opção é ativada ao digitar “.” (ponto), ou ao pressionar ctrl + espaço.

Ao usar essa funcionalidade, o desenvolvedor pode optar por duas alternativas:

  • Apenas completar com o texto selecionado, concatenando-o ao final do que estava sendo escrito.
  • Substituir a última palavra digitada antes do ponto pelo texto selecionado. Para utilizar esta alternativa, basta digitar dois pontos ao invés de um.

Analisaremos dois casos para melhor ilustrar a funcionalidade:

  • No primeiro caso, o desenvolvedor possui um dataset ds com um campo recurso que guarda chaves de recursos. Ele digita ds.recurso. e completa com nome, resultando em ds.recurso.nome. Dessa forma, ele terá acesso ao nome do recurso guardado em cache.
  • No segundo caso, o desenvolvedor possui um dataset ds que é uma cópia do cache local da tabela “RECURSO”. Ele digita ds.recurso.. para sugerir os campos da tabela “RECURSO”, e completa o trecho com nome, resultando em ds.nome (substituindo recurso..).

Proporcionar essa flexibilidade ao desenvolvedor é importante, pois ambos os casos são encontrados com frequência.