Giter VIP home page Giter VIP logo

caetanv / advpl-sintaxe Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robsonrosilva/advpl-sintaxe

1.0 0.0 0.0 4.22 MB

Extensão para o VsCode que adiciona recursos de ADVPL snippets da linguagem, análise de qualidade e sintaxe de programas e funcionalidades para promover os desenvolvimentos utilizando git de forma a enviar para homologação e produção de forma simples, gerando TAGS ao mergear para a branch de produção.

License: The Unlicense

JavaScript 9.27% TypeScript 90.73%

advpl-sintaxe's Introduction

Version Installs Rating

Leia-me

Visual Studio Code ADVPL Análise e GIT

Esta extensão adiciona no visual code VsCode MarketPlace:

  • Análise de qualidade e sintaxe de programas ADVPL (LINT).
  • Identação de códigos ADVPL.
  • Snippets da linguagem.
  • Funcionalidades para promover os desenvolvimentos utilizando git de forma a enviar para homologação e produção de forma simples, gerando TAGS ao mergear para a branch de produção.

Caso você encontre algum problema ou queira dar alguma sugestão de melhoria, por favor abra uma issue no GitHub.

Instalação

  1. Intalação Visual Studio Code 1.85.0 ou superior
  2. Iniciar o Visual Studio Code
  3. Na aba de pompt de comando Ctrl-Shift-P (Windows, Linux) ou Cmd-Shift-P (OSX)
  4. Selecione Extensão
  5. Digite ADVPL
  6. Escolha a extensão
  7. Recarregue Visual Studio Code

Análise de qualidade e sintaxe de programas ADVPL (LINT)

ITENS ANALISADOS

Verifica se estão sendo utilizados padrões básicos de qualidade como:

  • EmbededSql em vez de TcQuery.
  • Include TOTVS.CH.
  • Includes desnecessários.
  • Includes que faltam.
  • Include Obsoleto.
  • Comentários desnecessários.
  • Padrões de comentários.(Necessário configurar o settings)
  • Comentários de todas as funções, métodos, webservices e classes.
  • Critica de uso de Connout.
  • Critica de conflitos de merge.
  • Utilização de CHR(13) + CHR(10) em vez da variável CRLF.
  • Tabelas fixas nas queries.(Necessário configurar o settings)
  • Schema (banco de dados) fixo na query.(Necessário configurar o settings)
  • Função duplicada no projeto.
  • Arquivo com nome duplicado no projeto.
  • Utilização de DETELE FROM.
  • Uso de MV_FOLMES.
  • Uso de Select *.
  • Uso de ISAM(DbUSeArea).
  • Uso de PutSX1.
  • Uso de Dicionário de Dados.
  • Validação de FreeObj(self), conforme binário 12.1.27 de outubro/2020.
  • Validação de funções obsoletas, conforme binário 12.1.2210 de outubro/2022.

Análise de Fontes

GIT

BRANCHES

  • Merge para Teste Branch de Teste é uma branch onde todas as features e hotfixes serão enviados para submeter aos primeiros testes.
  • Merge para Homologação Branch de Homologação é uma branch onde são enviadas todas as implementações que estão testadas e aprovadas.
  • Merge para Produção Branch de Produção é destinada a ser aplicada em ambiente de produção onde sempre se deve taguear a versão a ser aplicada.
  • Atualiza Branche Atualiza a Branche Release e faz um merge para a branche atual.

FLUXO

Fluxo do GIT

Snippets

Foram montados snippets para facilitar o desenvolvimento de funcionalidades ADVPL.

Snippets

  1. TReport
  • tReport1 - Modelo de TReport 1 Sessão.
  • tReport2 - Modelo de TReport 2 Sessões.
  • tReport3 - Modelo de TReport 3 Sessões.
  • tReport4 - Modelo de TReport 4 Sessões.
  • tReport5 - Modelo de TReport 5 Sessões.
  • tReportTrCell - Modelo de TRCell para uso nas sessões.
  • tReportAllParam - Modelo de adição de parâmetros de impressão.
  1. WebServices
  • WebService - Estrutura base do Fonte para WebServices.
  • WsMethodDec - Estrutura de declaração de método.
  • WsMethod - Estrutura do método.
  • WsD__ - Estrutura de declaração de WsData.
  • WSStruct - Estrutura de Array para o WsData tipo Array.
  1. WebServices REST
  • WebServiceREST - Estrutura base do Fonte para WebServices REST.
  • WsMethodGetREST - Estrutura do método GET para WebServices REST.
  • WsMethodPostREST - Estrutura do método POST para WebServices REST.
  • WsMethodPutREST - Estrutura do método PUT para WebServices REST.
  • WsMethodDeleteREST - Estrutura do método DELETE para WebServices REST.
  • WsResponseTrueREST - Retorno positivo para a operação para WebServices REST.
  • WsResponseFalseREST - Retorno negativo para a operação para WebServices REST.
  1. Linguagem
  • WHILETB - While para Tabela.
  • FOR - For convencional.
  • CASE - Case completo.
  • IF - If convencional.
  • BEGINSQL - Modelo de EmbededSql.

Modelo de settings.json

{
  "advpl-sintaxe": {
    "branchHomologacao": "release",
    "branchProducao": "master",
    "branchTeste": "validacao",
    "comentFontPad": [
      "/*//#########################################################################################",
      "Projeto\\ \\:",
      "Modulo\\ \\ \\:",
      "Fonte\\ \\ \\ \\:",
      "Objetivo\\:"
    ],
    "empresas": ["01", "02"],
    "ownerDb": ["PROTHEUS", "PROTHEUS12"],
    "validaProjeto": true,
    "cache": true,
    "tempoValidacao": 5000
  },
  "advplformat.noQueryFormatter": false,
  "advplformat.updateComment": false,
  "advplformat.queryLanguage": "sql"
}

Código

Github

** Enjoy!**

advpl-sintaxe's People

Contributors

robsonrosilva avatar

Stargazers

Vitor C. Silva avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.