Giter VIP home page Giter VIP logo

advpl-vscode's Introduction

Advpl Language Support

Bem vindo a extensão para desenvolvimento de Advpl no visual code. VsCode MarketPlace

Essa extensão adiciona suporte a edição, compilação e debugging de ADVPL no Visual Code.

Caso você encontre algum problema, por favor abra uma issue no GitHub.

Existe um migrador de projetos antigos do IDE Totvs (.PRJ) que pode se encontrado aqui.

4GL Language Support

Essa extensão adiciona suporte a edição, compilação e debugging de 4GL no Visual Code.

Features

Essa extensão possui as seguintes features implementadas:

  • Syntax highlighting
  • Compilação de fonte
  • Chave de Compilação
  • Debug single Thread e Multi Thread
  • Compilação de multiplos fontes
  • Geração e aplicação de Path Wiki
  • Exclusão de fontes do RPO
  • Lista dos fontes/resources do rpo
  • Geração Cliente WS Protheus
  • Geração de PPO do fonte(Para fazer isso utilize CTRL+SHIFT+F9)
  • Mac OSX
  • Linux
  • TL++
  • TdsReplay
  • Suporte ao remote WEBAPP
  • Compilação de fontes Abertos
  • Formatação de Código Wiki

Build 191205P

A Build 191205P utiliza SSL na conexão, para maiores informações consulte aqui.

Requisitos para utilização

Para utilizar os recursos de compilação e debug é necessário que o AppServer esteja na build 131227A ou superior, tendo essa versão de binário tanto o Protheus 11 e 12 são suportados.

Para a instalação da versão MAC e Linux:

Veja a seguinte pagina na Wiki

Configurações

Veja nossa Wiki

Gerenciador de Ambiente

Agora é possível Gerenciar de forma intuitiva todos os ambientes já configurados e até mesmo os novos que forem sendo criados:

Leia mais

Teclas de Atalho padrões

  • F5 - Inicia o Debug
  • CTRL + F5 - Inicia o SmartClient sem debugar
  • CTRL + F9 - Compila o fonte atual
  • CTRL + SHIFT + F9 - Gera o PPO do fonte atual
  • CTRL + F11 - Executa o smartClient sem configuração e mostrando a tela de parametros
  • ALT + F9 - Compilar fontes Abertos
  • SHIFT + ALT + F - Identação de Fonte
  • CTRL + K CTRL + F - Identação de Trecho de Código

No Debug

Utilizada as teclas padrões do VsCode

  • F5 - Run/Contiue
  • F10 - Step Over
  • F11 - Step Into

Localização

Atualmente as seguintes linguas estão suportadas:

  • Português
  • Inglês
  • Espanhol
  • Russo

Replay

Esté plugin tem a capacidade de reproduzir arquivos gerados pelo Totvs Replay. Não é possivel gerar o replay pela extensão apenas reproduzir o debug. Para maiores informações de como utilizar, veja a wiki.

Para mudar a configuração do vscode veja aqui.

Obs. Para português, é necessario instalar uma extensão da microsoft.

Caso você queira contribuir com a localização veja.

Aviso legal sobre o uso de Tokens e Chaves de compilação

As chaves de compilação ou tokens empregados na construção do Protheus e suas funcionalidades, são de uso restrito dos desenvolvedores de cada módulo.

Em caso de mau uso destas chaves ou tokens, por qualquer outra parte, que não a referida acima, a mesma irá se responsabilizar, direta ou regressivamente, única e exclusivamente, por todos os prejuízos, perdas, danos, indenizações, multas, condenações judiciais, arbitrais e administrativas e quaisquer outras despesas relacionadas ao mau uso, causados tanto à TOTVS, quanto a terceiros, eximindo a TOTVS de toda e qualquer responsabilidade.

advpl-vscode's People

Contributors

afucher avatar aleksfm avatar alencargabriel avatar dadinel avatar dependabot[bot] avatar izacsc avatar julianeventeu avatar killerall avatar paulosantosjunior avatar philipepompeu avatar rafaelquines avatar renatocunha avatar ribeiry avatar robsonrosilva avatar vicenthy avatar vlopes11 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

advpl-vscode's Issues

Excluir fonte do RPO

Não encontrei nenhuma opção para excluir fonte do RPO. Com isso ao criar um ponto de entrada, só foi possível excluir usando o TDS.

Erros de sintaxe

Prezado, a ferramenta é muito boa, porem não identifica erros de sintaxe. Só isso que ainda me impede de utiliza-la por completo. Por exemplo, o código abaixo compila sem problemas no CODE, porem o TDS reclama da ultima linha.

[08:33:19.325] ADVPL Preprocessor: Precompilation of file C:\advpl\Buena\Cadastros\xCadAmostras.prw ok. [Projeto: Buena]
[08:33:19.330] XCADAMOSTRAS.PRW(11) C2003 Syntax Error [Projeto: Buena]
[08:33:22.332] Compilação finalizada (12,898 segs.)

#include "protheus.ch"
#include "vkey.ch"

user function xCadAmostras()
local cVldAlt := ".T."
local cVldExc := ".T."
chkFile("ZA3")
dbSelectArea("ZA3")
ZA3->(dbSetOrder(1))
axCadastro("ZA3", "AMOSTRAS", cVldExc, cVldAlt)
ZA3->
return

Error when trying to debug

Error message: error while processing request 'launch' (exception: Não foi possível localizar uma parte do caminho 'C:\TEMP\DEBUGLOG_2.TXT'.

Histórico de procuras (Ctrl + F) [sugestão]

Formalizar uma listbox ao dar Ctrl+F para procurar uma string no fonte, onde essa combo traga o histórico das 10 últimas strings buscadas pelo usuário. As strings buscadas pelo usuário no fonte podem ser armazenadas num arquivo temporário e quando o fonte é fechado (removido da aba Open Editors) o temporário pode ser deletado.

[]s

Adicionar campos das tabelas no Debug [sugestão]

Boa tarde,

Pensei na possibilidade de mostrar os campos e os índices das tabelas em aberto no momento do debug junto com o seu conteúdo.
Exemplo:
SA1>

SA1(aberta)
A1_COD: "001"
A1_LOJA: "01"

Bastaria clicar duas vezes na tabela para abrir os índices, os campos e o seu conteúdo atualizado.

[]s

Melhora de Performance no Debug

Quando a workspace possui muitos arquivos o Debug fica lento, tanto para iniciar quanto, para debugar linha a linha.

Minha workspace possui 286MB de tamanho.

Comentários em linhas quebradas com ; geram erro de sintaxe e não compila

Colocar os comandos para comentário /**/ e // em sequência numa linha quebrada com ; gera o erro de sintaxe.

Iniciando compilação do fonte c:\TFS\Protheus_Padrao\Fontes_Doc\Inovação\V12\Serviços GS - R15\Fontes\users\new2.prw
Erro: appre1(8) Error C2002 Statement unterminated at end of line/unbalanced parentesis/brackets

user function new2()
Local a := 0
func1( a,;
a,;
a,; /**/ // << linha gera o erro de compilação
a;
)
return

new2.zip

Erro

Ao dar errro o smartClient cai , porem o Modo Debug no VsCode continua aberto

Implement Language Server Support

As seguintes coisas deverão ser feitas para adicionar o suporte:

  • Refatorar estrutura do projeto para separar pasta da extensão e server, exemplos: jshint e eslint - commit;
  • Implementação de gramática ADVPL (Antlr);
  • Implementação básica do Advpl Language Server;
  • Implementação do parser em C# - Em Javascript estava extremamente lento advpl-parser;
  • Implementação de parser de fonte para exibição de erros de gramática em tempo real;
  • Implementação de Symbols por arquivo no Advpl Language Server para:
    • Funções
    • Classes
    • Métodos

Links:
Language Server Protocol
Criando um Language Server

Warnings estão sendo exibidos como erro no output

Olá, os Warnings gerados na compilação estão sendo exibidos como erro:
Erro:
MPSYSOPENTABLES.PRW(498) warning W0010 Static Function GETMENUSTRUCT never called
MPSYSOPENTABLES.PRW(38) warning W0003 Local variable LCONTINUE never used
Compilação OK

Fonte não compila

Segui configuração do meu ambiante.

`

// AdvplSuport configuration

// Diretorio aonde esta o smartclient.
"advpl.smartClientPath": "C:\\TOTVS 12\\Microsiga\\Protheus\\bin\\smartclient\\",

// Versão do server
"advpl.serverVersion": "131227A",

// Server IP
"advpl.server": "localhost",

// Server Port
"advpl.port": "5678",

// Environment
"advpl.environment": "environment",

// Usuario com privilegio de Administração para conectar no servidor.
"advpl.user": "admin",

// Senha Criptografada do usuario. Utize o commando Cipher Password para gerar a senha.
"advpl.passwordCipher": "",

// Diretorios de include para compilação separar cada diretorio com ;
"advpl.includeList": "C:\\TOTVS 12\\Microsiga\\Protheus\\include",

// Repository language, Accepted values:PORTUGUESE,ENGLISH,SPANISH
"advpl.language": "PORTUGUESE",

// Type of Repository, Accepted values: TOP,CTREE,DBF
"advpl.rpoType": "CTREE",

// Programa inicial para o Debug
"advpl.startProgram": "SIGAADV",

// Regex dos tipos de arquivos que serão compilados quando selecionar compilação de pasta
"advpl.compileFolderRegex": ".*\\.(prw|prx|apw|aph|tres|png|bmp|tres)",

// Patch do cliente que deve existir para geracao de patchs. Caso o arquivo ja exista, ser� sobrescrito.
"advpl.pathPatchBuild": "c:\\patchs\\",

// Habilita Debug multi Thread.
"advpl.debug_multiThread" : false,

// Ignorar os fontes não encotrados no debug.
"advpl.debug_ignoreSourceNotFound": false

}
`

Ao tentar compilar recebo essa mensagem e depois não acontece nada.

Advpl Iniciando
Iniciando compilação do fonte c:\Users\atila.santos\Documents\TDS\Workspace\Pratico\src\zPedMd2.prw

Patchs

A aplicação e geração de patchs estão apresentando problemas, e quando não aplica não da retorno.

Visualização de alias abertos.

Olá!
Seria interessante possuir um visualizador de alias abertos, assim poderíamos verificar quais tabelas estão abertas, quais dados estão selecionados naquele momento e os filtros aplicados, como também o índice em uso.

Debug de Variavel String

Ao se colocar no Watch variável string vazia, não mostra que esta vazia, diz que não conseguiu avaliar.

Outro Ponto é variável string com string em branco a direita, não da para visualizar os espaços a direita.

Compilação de caracter especiais

Mesmo com ENCODE setado para 1252, apesar da visualização do arquivo no VSCODE ficar correto. A string enviada ao APPSERVER fica com os caracteres inválidos.

Informação no momento de compilação

Olá, seria interessante que no visualizador do VsCode, no momento de compilação, fosse mostrado também se a compilação foi realizada ou não. Hoje é necessário observar o server para verificar se foi compilado.

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.