Skip to content
 
 

Latest commit

 

History

1,963 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Consistem

Consistem ObjectScript — extensão para VS Code

Release Documentação Consistem InterSystems IRIS

Documentação da extensão: VS Code — Ambiente de Desenvolvimento Consistem (Cuka). Comece por ali: a página reúne a configuração do ambiente, os recursos criados pela Consistem e a resolução dos erros mais comuns.

Importante: esta extensão não é publicada no Visual Studio Marketplace. A distribuição é feita por VSIX nas releases do GitHub. Não instale o pacote público InterSystems ObjectScript Extension Pack — ele traz a extensão original, que conflita com este fork.

Sobre

Suporte à linguagem InterSystems® ObjectScript no Visual Studio Code, com as integrações e os padrões internos usados no desenvolvimento do Consistem ERP.

Fork da Consistem

Este repositório é um fork do projeto intersystems-community/vscode-objectscript, mantido pela comunidade de desenvolvedores InterSystems.

O fork é mantido pela Consistem®, preserva todos os recursos do projeto original e acrescenta integrações, ajustes e padrões internos voltados às necessidades do nosso ecossistema de desenvolvimento. As customizações ficam isoladas em src/ccs/ para facilitar a sincronização periódica com o upstream.

Documentação

Consistem

InterSystems

Problemas deste fork devem ser reportados nas issues do repositório.

Instalação

Instale antes o Visual Studio Code.

A extensão depende de outros dois forks mantidos pela Consistem, que também são distribuídos por VSIX:

Extensão Identificador Releases
Consistem Server Manager (obrigatória) consistem-sistemas.consistem-servermanager consistem/intersystems-servermanager
Consistem Language Server (recomendada) consistem-sistemas.consistem-language-server consistem/language-server
Consistem ObjectScript (este repositório) consistem-sistemas.consistem-vscode-objectscript consistem/vscode-objectscript

Passo a passo:

  1. Baixe o VSIX de cada uma das três extensões na página de releases correspondente.
  2. Instale o Server Manager primeiro — ele é uma dependência declarada e o VS Code recusa a instalação deste fork sem ele.
  3. Instale o Language Server e, por último, o Consistem ObjectScript. Uma forma prática de instalar um VSIX é arrastá-lo da pasta de downloads para a lista de extensões na visão Extensões (Ctrl+Shift+X).
  4. Configure a conexão com o servidor pelo Server Manager e siga a configuração do ambiente.

Como a instalação é por VSIX, não há atualização automática: para atualizar, baixe e instale o VSIX mais recente.

Recursos

Herdados do projeto original

  • Realce de sintaxe para ObjectScript.
  • Depuração de código ObjectScript.
  • IntelliSense para comandos, funções de sistema e membros de classe.
  • Exportação de fontes do servidor para a pasta de trabalho:
    • abra a Paleta de Comandos (F1 ou Ctrl+Shift+P)
    • digite ObjectScript
    • escolha ObjectScript: Export Code from Server
  • Salvar e compilar uma classe:
    • Ctrl+F7 (compilar o arquivo atual) ou Ctrl+Shift+F7 (compilar todos)
    • ou ObjectScript: Import and Compile Current File na Paleta de Comandos
  • Edição e visualização do código direto no servidor pelo Explorador do VS Code, através dos FileSystemProviders isfs e isfs-readonly (ex.: usando um workspace multi-raiz). O controle de fontes do lado do servidor é respeitado.
  • Visões Explorer e Projects (dentro do container do Server Manager), com exportação de itens para a pasta de trabalho.
  • Integração com o Server Manager para armazenamento seguro das senhas de conexão.
  • Execução de testes unitários integrada à visão Testing do VS Code.

Adicionados pela Consistem

Os comandos abaixo aparecem na Paleta de Comandos sob a categoria Consistem e dependem de uma conexão ativa com o servidor — eles conversam com a API interna de controle de fontes (/api/sourcecontrol/vscode), derivada da conexão Atelier em uso.

Comando Atalho O que faz
Criar Item Ctrl+N Cria a classe/rotina no servidor pelo padrão Consistem e abre o arquivo local correspondente.
Ir para Definição F12 Resolve o símbolo pela lógica interna da Consistem, com retorno ao comportamento nativo do VS Code quando não houver resolução.
Ir para Definição (+linha ^Item) Salta para label+deslocamento entre rotinas e classes. No Quick Pick, Tab insere a seleção.
Seguir Link de Definição Abre o destino dos links de definição reconhecidos no código.
Seguir Link de Análise de Código-Fonte Abre o destino dos links de análise de código-fonte.
Ajuda de Contexto Ctrl+Alt+Espaço Resolve a expressão selecionada (ou a da linha), exibe a prévia e pode inserir o texto resultante.
Documentação Global Ctrl+Q Traz a documentação da global em arquivo ou no painel Saída, conforme a configuração.
Localizar Gatilhos Lista os gatilhos da rotina e abre a posição escolhida.
Localizar Gatilhos por Empresa Lista as contas/empresas com gatilho para a rotina e a quantidade em cada uma.
Converter Item Executa a conversão padrão do item ativo.
Converter Item Customizado Executa a conversão com as opções escolhidas na hora.
Versões do Item - Analizar Mostra a análise de versões do item ativo.
Atualizar Config. / Gerar Backup Atualiza as configurações no servidor e gera o backup correspondente.
Regerar Base de Testes Lista as bases de teste montadas e regera a escolhida.
Reativar Conexões de Namespaces (categoria ObjectScript) Revalida as conexões dos namespaces configurados no workspace.

Além dos comandos, o fork acrescenta:

  • Conversão automática ao salvar, ligada por padrão e com pacotes exclusos configuráveis.
  • Snippets Consistem em snippets/consistem-objectscript.json.
  • Reativação automática das conexões de namespace ao abrir o workspace.

Testes unitários

A execução de testes usa o executor interno da Consistem, acessível pela visão Testing do VS Code. O executor agrupa as classes selecionadas pela base de dados que cada uma exige e roda cada grupo no namespace correspondente; classes que não dependem de base rodam sem ela. Quando a base exigida não está montada, a extensão oferece gerá-la antes de executar — e quando mais de um namespace atende à mesma base, pergunta onde executar.

O comando Consistem: Regerar Base de Testes lista as bases já montadas e regera a escolhida. A confirmação é modal porque a operação exclui e recria o namespace a partir do checkout: todos os dados atuais daquela base são perdidos, a operação leva alguns minutos e não há como desfazer.

Detalhes de uso em Testes Unitários.

Configurações

Além de todas as configurações objectscript.* do projeto original, o fork acrescenta:

Configuração Padrão Descrição
consistem.globalDocumentation.openInFile true Abre a documentação global em um arquivo em vez do painel Saída.
consistem.globalDocumentation.filePath "" Arquivo onde a documentação global é gravada. Caminhos relativos são resolvidos a partir do diretório temporário do sistema (%TEMP% no Windows).
consistem.converterItem.autoConvertOnSave true Converte o item automaticamente ao salvar.
consistem.converterItem.autoConvertExcludePackages ["cswutil70", "cswutil80"] Pacotes ignorados pela conversão automática ao salvar.
consistem.converterItem.timeout 180000 Tempo limite (ms) das chamadas de conversão. 0 desativa o limite.
objectscript.unitTest.incluirAsserts "somenteFalhas" Quais asserts o executor retorna. somenteFalhas reduz bastante o volume de dados em classes que passam.
objectscript.unitTest.legacyRequestTimeout 600000 Tempo limite (ms) por classe de teste executada. 0 desativa o limite.
objectscript.unitTest.usarExecutorAntigo false Volta ao executor anterior, que sempre executa no namespace TESTEUNITARIO. Temporário, apenas para rollback.

Há ainda configurações avançadas lidas em src/ccs/config/settings.ts que não aparecem na interface de configurações e normalmente não precisam ser alteradas: objectscript.ccs.endpoint (sobrescreve a URL base da API interna, derivada da conexão Atelier ativa), objectscript.ccs.requestTimeout, objectscript.ccs.debugLogging e objectscript.ccs.flags.

Habilitar APIs propostas

A extensão consegue aproveitar algumas APIs do VS Code ainda não finalizadas. Os recursos adicionais (e as APIs usadas) são:

Os VSIX de release (tags vX.Y.Z) são publicados sem as APIs propostas; as betas (tags vX.Y.Z-beta.N), geradas a cada push, mantêm as APIs habilitadas. Para liberar esses recursos (opcional):

  1. Baixe a versão beta nas releases do GitHub.
    • Localize a beta imediatamente acima da release instalada. Por exemplo, se você instalou a 3.8.3, procure por 3.8.3-beta.N. Ela é funcionalmente idêntica, exceto por poder usar as APIs propostas.
    • Baixe o VSIX (ex.: consistem-vscode-objectscript-3.8.3-beta.6.vsix) e instale-o.
  2. Na Paleta de Comandos, escolha Preferences: Configure Runtime Arguments.
  3. No argv.json que abrir, acrescente a linha abaixo (necessária tanto no VS Code Stable quanto no Insiders):
"enable-proposed-api": ["consistem-sistemas.consistem-vscode-objectscript"]
  1. Feche e reabra o VS Code.
  2. Confira se o canal ObjectScript do painel Saída informa:
consistem-sistemas.consistem-vscode-objectscript version X.Y.Z-beta.N activating with proposed APIs available.

Depois de atualizar a extensão, basta baixar e instalar o novo VSIX beta — os demais passos não precisam ser repetidos.

Notas e solução de problemas

  • As mensagens relacionadas à conexão aparecem na visão Saída, no canal ObjectScript (selecionado pelo menu suspenso na barra de título da visão).

  • A aplicação web /api/atelier/ usada pela extensão normalmente exige que o usuário autenticado tenha permissão de uso sobre o recurso %Development (leia mais). Uma forma de conceder isso é atribuir o papel %Developer ao usuário.

  • Se aparecer ERROR # 5540: SQLCODE: -99 Message: User xxx is not privileged for the operation ao obter ou atualizar as listas de classes, rotinas ou includes, conceda ao usuário xxx (ou a um papel SQL dele) permissão de execução sobre o procedimento SQL abaixo, no namespace de destino:

GRANT EXECUTE ON %Library.RoutineMgr_StudioOpenDialog TO xxx
  • Outros erros comuns (conexão com o banco, namespace inativo, troca de senha do Windows, instabilidade de rede) estão documentados em Resolução de Erros.

Desenvolvimento

Pré-requisitos, fluxo de trabalho e padrões de branch e de commit estão em CONTRIBUTING.md. Convenções para agentes de IA e organização dos módulos estão em AGENTS.md.

git clone https://github.com/consistem/vscode-objectscript
cd vscode-objectscript
npm install

npm run compile      # build de produção (webpack + tsc)
npm run webpack-dev  # build em watch
npm run lint         # ESLint em src/**
npm test             # testes de integração (VS Code + Mocha)
npm run package      # gera o .vsix

Licença

MIT.

Projeto original mantido pela InterSystems Developer Community — veja o CHANGELOG para o histórico de versões deste fork e do upstream.

About

InterSystems ObjectScript extension for Visual Studio Code

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages