GithubHelp home page GithubHelp logo

designliquido / vscode Goto Github PK

View Code? Open in Web Editor NEW
22.0 3.0 4.0 1.14 MB

Extensão do Visual Studio Code para as linguagens da Design Líquido e dialetos de Portugol.

Home Page: https://marketplace.visualstudio.com/items?itemName=designliquido.designliquido-vscode

License: MIT License

TypeScript 99.56% JavaScript 0.27% Portugol 0.17%
delegua foles lincones lmht portuguese visual-studio-code vscode hacktoberfest portugues

vscode's Introduction

Linguagens em Português para Visual Studio Code

Extensão no Visual Studio Marketplace Extensão na open-vsx.org

Essa extensão visa melhorar a produtividade de projetos escritos usando as linguagens da Design Líquido:

Essa extensão também oferece suporte parcial a outras linguagens que são dialetos de Delégua:

Instalação

Você pode instalar pesquisando nas extensões do Visual Studio Code ou por este link.

Funcionalidades até então

  • Sintaxe colorida
  • Formatação de arquivos em Delégua
  • Análise semântica para Delégua
  • Reconhecimento de expressões comuns das linguagens Delégua, Égua, Pituguês e dialetos de Portugol, como VisuAlg e Portugol Studio/Webstudio
  • Ícones para arquivos .delegua, .egua, .pitugues, .foles, .lincones e .lmht
  • Trechos de códigos para facilitar desenvolvimento em Delégua
  • Mecanismo de completude de funções da biblioteca global para Delégua
  • Suporte a depuração para Delégua, Pituguês, Portugol VisuAlg e Portugol Studio/Webstudio

Tradução entre linguagens

Essa extensão suporta tradução entre linguagens:

  • VisuAlg para Delégua;
  • Delégua para JavaScript
  • JavaScript para Delégua
  • Delégua para Python

Pressione Ctrl + Shift + p (Cmd + Shift + p no Mac) e digite "tradução" para ter acesso aos comandos. Você pode atribuir atalhos de teclado a eles se quiser.

Depuração

Delégua possui um protocolo próprio de comunicação entre depurador e cliente de depuração, conforme especificado aqui. A ideia é que seja possível escrever interações entre diferentes clientes de depuração, como outros editores que tenham suporte a depuração, por exemplo.

O Visual Studio Code também possui um protocolo de comunicação detalhado aqui. Para que Delégua e Visual Studio Code se entendam, é preciso um intermediador entre eles, implementado pela classe DeleguaTempoExecucaoLocal.

Segundo a documentação do Visual Studio Code, linguagens podem usar ou um executável que faça a tradução das mensagens entre linguagem e Visual Studio Code, um servidor Socket implementado dentro da extensão, ou ainda, uma implementação customizada. Aqui optamos pela opção do servidor Socket até a versão 0.1.1 (ver classes DeleguaTempoExecucaoRemota e DeleguaSessaoDepuracaoRemota), que abre em uma porta aleatória disponível. Esta forma comanda a execução de Delégua com a opção --depurador definida, que abre o servidor de depuração na porta 7777 e espera uma instrução de pronto para liberar os comandos de depuração para a interface do VSCode. A implementação ainda existe, mas não é habilitada por padrão. Poderá voltar no futuro.

Atualmente a extensão usa o núcleo da linguagem Delégua como uma dependência NPM e instancia e controla os elementos da linguagem.

vscode's People

Contributors

aristidescosta avatar cx-leonelsanches avatar leonelsanchesdasilva avatar lucasost avatar lucaspompeun avatar pablotdv avatar pvtwendy avatar samuelrvg avatar vitbrandao avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

vscode's Issues

Assinaturas de métodos da biblioteca global de Delégua

Por causa de https://github.com/DesignLiquido/vscode/blob/principal/fontes/assinaturas-metodos/delegua-provedor-assinaturas-metodos.ts, teremos que expandir os métodos da biblioteca global.

Atualmente coloquei só um como exemplo, que é o escreva. Agora temos o seguinte:

import { PrimitivaOuMetodo } from "./tipos";

export const metodosBibliotecaGlobal: PrimitivaOuMetodo[] = [
    {
        nome: 'escreva',
        assinaturas: [
            {
                formato: 'escreva(...argumentos: qualquer)',
                parametros: [
                    {
                        nome: '...argumentos',
                        documentacao:
                            'Os argumentos para impressão, que podem ser literais, constantes ou variáveis de qualquer tipo.',
                    },
                ],
            },
        ],
        documentacao:
            'Escreve um ou mais argumentos na saída padrão da aplicação. \n' +
            '## Interpolação \n' +
            'Delégua suporta interpolação de variáveis: \n \n' +
            "```var comidaFavorita = 'strogonoff'```\n\n" +
            '```escreva("Minha comida favorita é ${comidaFavorita}")```',
        exemploCodigo: 'função escreva(...argumentos)',
    },
    ...

A ideia é adicionar para os demais métodos o array de assinaturas.

Bug no "escreval"

Bom dia!

Durante meus estudos, notei um bug ao utilizar a função "escreval".

Ao executar a programação com o "escreval" a frase some e aparece apenas ">" (Primeira imagem)

Ao executar a programação com o "escreva" a frase aparece normalmente. (Segunda imagem)

image

image

Agradeço por disponibilizar uma extensão tão incrivel, espero estar contribuindo, um grande abraço!

Usar no provedor de completude de FolEs uma lista que venha da biblioteca de FolEs

Hoje em dia o provedor de completude de FolEs usa essa lista de sugestões, que fiz para validar o funcionamento do provedor. O problema é que a lista não vem da biblioteca, mas da própria extensão, o que pode ocasionar esforço duplo mais futuramente.

A ideia é achar uma forma de trazer os modificadores dinamicamente de @designliquido/foles e popular o provedor de completude. Provavelmente isso trará impacto em FolEs também.

Não consigo executar contagens decrescentes com a estrutura para

No curso do Guanabara de algoritmo, ele faz um exercício com a estrutura de repetição PARA, ele pede para fazer algumas contagens regressivas, porém não consigo executar códigos com contagens regressivas, como faço para arrumar isso?

Código que tentei fazer porém não deu certo.

algoritmo "valoresPares"

var
Cont, V: Inteiro

inicio
    escreval("Digite um valor: ")
    Leia(V)
    para CONT de V ate 0 passo -2 faca
        Escreval(CONT)
    Fimpara

fimalgoritmo

Auto-completar para VisuAlg

`enquanto (verdadeiro)` em Delégua causa loop infinito

Código para simulação:

var n1 = 1;
var n2 = 1; 
var resultado = 0

var n1 = leia("teste 1");

enquanto (verdadeiro){
    var menu = leia("Digite a opção: 1 - Multiplicacao / 2 - Divisao / 3 - Soma / 4 - Subtração");
    se (menu == "1"){
        resultado = n1 * n2;        
        sustar;
    }senao se(menu =="2"){
        resultado = n1 / n2;
        sustar;            
    }senao se(menu =="3"){
        resultado = n1 + n2;
        sustar;            
    }senao se(menu =="4"){
        resultado = n1 - n2;
        sustar;
    }senao{
        escreva("opção invalida");
    }
}
escreva("resultado "+resultado);

Desdobramento de DesignLiquido/delegua#302

FALTA DE SUPORTE A CODIFICAÇÃO UTF-8

Pessoal, eu amei bastante essa extensão para o vscode, no entanto não há suporte a codificação de caracteres especiais da língua portuguesa. Tem como colocar essa feature para UTF-8?
Captura de Ecrã (29)

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.