IntelliSense para APIs da plataforma

Introdução

Além das funcionalidades do próprio Language Server da extensão, o desenvolvedor também pode contar com o IntelliSense para as APIs da plataforma. Isto é possível pois as definições de tipos dessas APIs estão publicadas no Definitely Typed, repositório que reúne definições para projetos Javascript que não possuem seus próprios arquivos de declaração de tipos.

A vantagem de ter estas definições publicadas é que o VSCode, a partir da importação do módulo que se quer usar, consegue abastecer de maneira rica os vários recursos do IntelliSense, como completion proposal, code hinting e go to definition, para citar alguns exemplos. Isto é bem mais do que pode oferecer o completion proposal da própria extensão, pois o mesmo é em grande parte abastecido pelas definições fixas em “/Configuração/Completion Proposal”, na VFS.

Como utilizar

Como dito anteriormente, o VS Code obtém as definições de tipos a partir da importação do módulo. Portanto, para usufruir do recurso, o uso das APIs deve ser feito por meio do require. Por exemplo, ao invés de utilizar o global DataSet diretamente, o desenvolvedor deve fazer como no exemplo abaixo:

const DataSet = require('@nginstack/engine/lib/dataset/DataSet.js');
const exampleDS = new DataSet();

Importante: o VS Code habilita o servidor de definições de tipo sob demanda e não habilita por padrão para sistemas de arquivos em nuvem, como a Virtual File System, exigindo que o desenvolvedor consulte os tipos ao menos uma vez por meio do comando “Go to Type Definition” para que o servidor seja iniciado e as sugestões passem a ser realizadas. Para melhorar a experiência da edição de arquivos do sistema, é possível alterar esse comportamento desativando a configuração “TypeScript › Tsserver: Use Separate Syntax Server”. A desativação dessa configuração é sugerida ao desenvolvedor no primeiro uso da extensão e também pode ser ser realizada manualmente nas configurações do VSCode.

Exemplo

IntelliSense