Artigo
· 3 hr atrás 5min de leitura

Plugin do VSCode Moderno e Fácil de Usar para InterSystems ObjectScript: Visualização de Diagrama de Classes com PlantUML

Motivação

Eu não conhecia ObjectScript até começar meu novo emprego. Objectscript não é exatamente uma linguagem de programação jovem. Comparada a C++, Java e Python, a comunidade não é tão ativa, mas estamos empenhados em tornar este lugar mais vibrante, não estamos?

Notei que alguns dos meus colegas acham complicado entender as relações de classes nesses projetos enormes. Não existe nenhuma ferramenta moderna de diagrama de classes fácil de usar para ObjectScript.

Trabalhos Relacionados

Eu testei trabalhos relevantes:

- InterSystems class view: 1. https://github.com/intersystems-community/ClassExplorer Este é um ótimo trabalho, e o diagrama de classes parece muito bom e limpo. Mas ainda há um problema com o build do docker: "#0 0.512 exec ./irissession.sh: no such file or directory". Imagino que seja um recurso de suporte para o studio em vez do VSCode. Parece ser necessário importar seu projeto manualmente. Parece que precisa de alguma configuração para usar este produto.

2. https://github.com/gjsjohnmurray/vscode-objectscript-class-view Este é outro ótimo trabalho que me dá inspiração. A estrutura de classes é clara e suporta não apenas classes no projeto, mas também classes da biblioteca. Mas parece uma versão aprimorada do outline do vscode.

- Plugins de visualização de diagrama de classes do VSCode para outras linguagens

1. https://github.com/OH318/J-Diagram O readme mostra muito bem os resultados rodando com draw.io. Mas quando testei localmente, não consegui usar. Então não vou usá-lo como referência.

2. https://github.com/pierre3/PlantUmlClassDiagramGenerator É relativamente bom e requer alguma configuração. Peguei a ideia de gerar uml primeiro, depois usar o PlantUML para gerar o diagrama de classes.

- Melhor implementação de diagrama de classes: 1. Produtos da Jetbrains, como Intellij Idea e Pycharm, são incríveis para diagramas de classes. Apenas arraste e solte classes, clique em um hiperlink e você está pronto para gerar um diagrama de classes poderoso.

2. Plugin de diagrama de classes typescript para VSCode https://marketplace.visualstudio.com/items?itemName=AlexShen.classdiagra... arrastar, soltar, clicar em hiperlink, suporte para geração de diagrama de classes de pasta.

Tirei a ideia de design deles. Infelizmente, eles são de código fechado, então terei que projetar o projeto por conta própria.

InterSystems ObjectScript Class Diagram View

é uma extensão do Visual Studio Code que gera diagramas de classes UML a partir de arquivos InterSystems ObjectScript (.cls). Ela fornece recursos interativos de visualização e navegação, construídos sobre o PlantUML para renderização confiável de diagramas.

Principais Recursos

  • Gera diagramas de classes UML a partir de arquivos .cls
  • Suporte para geração de diagrama tanto de classe única quanto de nível de pasta
  • Integração com menu de contexto (clique direito) tanto no editor quanto no explorer
  • Visualiza relacionamentos de classes, propriedades e métodos
  • Construído sobre o PlantUML para renderização confiável de diagramas
  • Gera diagramas usando o Servidor Web PlantUML (sem necessidade de Java)
  • Navegação Interativa no Diagrama de Classes
    • Clique em nomes de classes, propriedades ou métodos para pular rapidamente para o código correspondente
    • Diagramas SVG incorporados em HTML para interação suave
    • Navegação visual de relacionamentos de classes

Testei o plugin em outro ótimo projeto objectscript apiPub

Ofereci dois modos, gerar diagrama de classes baseado na análise do sistema de arquivos local do projeto ou com integração iris.

Gerando Diagramas de Classes

Este modo analisa a estrutura de classe do projeto local, a estrutura de herança da classe de biblioteca não será gerada e a classe de biblioteca não pode ser clicada para entrar.

Para uma única classe:

Para uma pasta:

Para o projeto inteiro. O diagrama de classes está no formato SVG, e é sempre nítido e claro.

Gerar Diagrama de Classes com Integração IRIS

Este recurso depende dos plugins da InterSystems e gerará todas as propriedades, parâmetros e métodos da classe escolhida. É importante notar que o recurso gera toda a hierarquia de herança, mesmo para classes que não estão presentes no projeto local.

Configure sua conexão IRIS nas configurações do VS Code:

  • Vá para Configurações > Extensões > InterSystems ObjectScript Class Diagram
  • Insira seu host, porta, namespace, nome de usuário e senha do servidor IRIS

Configurar Definições do IRIS

Abra um arquivo .cls no editor

Clique com o botão direito e selecione "Generate InterSystems Class Diagram"

A extensão se conectará ao seu servidor IRIS e gerará um diagrama usando informações de classe do servidor

Clique em nomes de classes, propriedades ou métodos no diagrama para:

Abrir a classe no IRIS Documatic

Ver definições de propriedades no IRIS

Navegar para implementações de métodos no IRIS

Gerar Diagrama de Classes InterSystems ObjectScript

Requisitos

SO Necessário Opcional (para geração local do PlantUML)
Windows - VSCode 1.96.0+ - Arquivos de Classe ObjectScript(.cls) - Java 8+
Linux - VSCode 1.96.0+ - Arquivos de Classe ObjectScript(.cls) - Java 8+ - Graphviz

Uso

  • Abra um arquivo .cls e gere um diagrama de classes usando:
    • Atalho Ctrl+Alt+U
    • Clique com o botão direito em um arquivo ou pasta e selecione "Generate Class Diagram"
  • Clique em elementos no diagrama para pular para definições de classes, propriedades e métodos

Problemas Conhecidos

  • Geração de Subclasses: Funcionalidade ausente para gerar diagramas de subclasses para a classe atual
  • Desempenho em Projetos Grandes:
    • Gerar diagramas para pastas grandes via clique direito pode sofrer atrasos significativos
    • Webview/SVG gerado para projetos grandes carece de funcionalidade de zoom suave e escala adequada
  • Senha do IRIS em Texto Simples: Senhas não devem ser mostradas como texto simples. Isso será corrigido na próxima versão. Eu não armazeno as informações de conexão e o código é open source, então você pode verificá-lo para ver se é seguro.

Por favor, reporte quaisquer problemas no repositório GitHub.

Contribuição e Licença

  • Aberto para contribuições via GitHub
  • Licenciado sob MIT

Você pode encontrar este plugin no marketplace, sinta-se à vontade para criar issues em issue e contribuir com PR.

Discussão (0)1
Entre ou crie uma conta para continuar