Visual Studio Bitcoin Casino EUA Modelos e Princípios de Extensibilidade de Código

O código do Visual Studio tem um modelo de extensibilidade muito extensivo e há várias maneiras de estender a ferramenta. No entanto, não fornecemos acesso direto ao DOM de interface do usuário subjacente para gravadores de extensão. Com o VS Code, tentamos continuamente otimizar o uso de tecnologias web subjacentes para fornecer um editor prontamente disponível e altamente responsivo, e continuaremos a adaptar nosso uso do DOM à medida que essas tecnologias evoluírem. do nosso produto. Para garantir desempenho e compatibilidade, executamos extensões em seu próprio processo de host e impedimos o acesso direto ao DOM. O VS Code também inclui um conjunto integrado de componentes de interface do usuário para cenários comuns, como o IntelliSense; portanto, essas experiências são consistentes entre as linguagens de programação e as extensões, e os desenvolvedores de extensões não precisam construir suas próprias. ,


Estamos cientes de que essa abordagem é inicialmente restritiva para os expansionistas. Estamos sempre procurando maneiras de melhorar nosso modelo de escalabilidade e ampliar os recursos disponíveis para as extensões. Estamos ansiosos para seus comentários e idéias. Conceitos Básicos

As extensões são maravilhosas, mas as extensões também podem afetar o desempenho da inicialização ou a estabilidade geral do código VS. Para evitar esses problemas, o código VS carrega e executa as extensões em um processo separado, o processo de host da extensão. Uma extensão que não funciona corretamente não afetará o Código VS e, em particular, seu tempo de inicialização.

Desenvolvemos essa arquitetura de usuário final porque com essa arquitetura podemos garantir que o usuário final sempre controle o código VS: o usuário pode abrir, inserir ou salvar arquivos a qualquer momento, o código VS garante interface de usuário reativa independentemente do que as extensões fazem ,

O código VS carrega as extensões o mais tarde possível e as extensões que não são usadas durante uma sessão não são carregadas e, portanto, não consomem memória. Para suportar atraso no carregamento de extensões, o VS Code define os chamados eventos de ativação. Um evento de ativação é acionado pelo código VS com base em determinadas atividades, e uma extensão pode definir para quais eventos ele precisa ser ativado. Por exemplo, uma extensão para edição de remarcação só precisa ser ativada quando o usuário abre um arquivo de remarcação. melhorias manifesto

Para permitir uma extensão lenta, o VS Code precisa de uma descrição sua extensão, o manifesto de extensão, que é um arquivo package.json enriquecido com alguns campos adicionais para o código VS. Estes incluem eventos de ativação que acionam o carregamento da extensão. O Código VS fornece um conjunto de pontos de contribuição que uma extensão pode adicionar. Por exemplo, se você adicionar um comando ao código do VS, especifique a definição do pedido no ponto de entrada do pedido. Eles definem as contribuições de sua extensão no package.json. O VS Code lê e interpreta o manifesto na inicialização e prepara sua interface de usuário de acordo.

Como o host de extensão é um processo do Node.js, você pode usar a API do Node nas suas extensões. Melhor ainda, você pode reutilizar os módulos Node.js existentes ao implementar uma extensão. Você define as dependências de seu módulo em package.json e usa o npm para instalar um módulo Node.js.

O código VS é implementado usando tecnologias da Web (HTML, CSS) e as tecnologias da Web são muito poderosas quando se trata de modificar e estilizar a interface do usuário. Você pode adicionar facilmente nós ao DOM e usar o CSS para implementar uma aparência personalizada. No entanto, ao desenvolver um aplicativo complexo, como o VS Code, esse desempenho não é isento de problemas. A estrutura pode mudar e as extensões que estão fortemente conectadas à interface do usuário são interrompidas. Por esse motivo, o VS Code seguiu a abordagem defensiva de não expor o DOM a um extensor. Extensões Baseadas em Protocolos

Um modelo de extensão comum no código VS é a execução do código de extensão em um processo separado que se comunica via protocolo com o código VS. Exemplos disso no VS Code são os servidores de idiomas e os adaptadores de depuração. Normalmente, esse protocolo usa stdin / stdout para se comunicar entre processos que usam uma carga útil JSON. O uso de processos separados fornece bons limites de isolamento que ajudam o código VS a manter a estabilidade do editor principal. Além disso, os extensores podem escolher a linguagem de programação mais apropriada para sua implementação de extensão. Modelos de extensibilidade

Na maioria dos casos, o uso de promos é opcional e, se o código VS chamar uma extensão, ele poderá manipular o tipo de resultado e o tipo de resultado Thenable. Se o uso de uma promessa for opcional, a API indicará isso retornando tipos de ouro. commissionNumber (): Number | então capaz

As APIs expostas a esse comportamento receberão um CancellationToken que permite verificar o cancelamento (isCancellationRequested) ou receber uma notificação quando o cancelamento ocorrer (onCancellationRequested). O token de cancelamento é geralmente o último parâmetro de uma chamada de função e opcional. descartável

Código do Visual Studio não está instalado sua extensãoDepende de um usuário instalá-lo, então você deve instalá-lo antes de publicar. O pacote de versões da extensão contém todas as dependências relacionadas. Você pode executar o vsce ls para listar todos os arquivos que o vsce incluirá no pacote.

R: Um pacote de extensão do Visual Studio Code contém todas as suas dependências. Isso significa que quando você desenvolve sua extensão Windows, e dependendo de um módulo nativo do Node.js, quando você publicar esta extensão irá conter a dependência nativa compilada pelo Windows sua extensão. Usuários de MacOS ou Linux não podem usar a extensão.

Não recomendamos que as extensões usem módulos npm nativos, pois os módulos nativos fornecidos com uma extensão precisam ser recompilados com cada nova versão do código VS em relação à mesma versão do Node.js que fornece o código VS. Você pode encontrar as versões do Node.js e do módulo executando process.versions no Developer Tools Console (Help) > Alternar ferramentas de desenvolvimento).