Code Monkey home page Code Monkey logo

portugol-studio's People

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

portugol-studio's Issues

Desabilitar botão "Executar"

Quando um algoritmo está sendo executado, o botão "Executar" permanece habilitado, permitindo que o usuário execute uma nova thread do algoritmo. Penso que deveríamos desabilitar este botão.

Salvar antes de compilar

Ao abrir um arquivo o compilador pede para salvar o arquivo antes de compilar, sendo que o arquivo não sofreu modificações.

Reprodução

  • Abrir um arquivo de código fonte Portugol;
  • Clicar em roda na barra de ferramentas;
  • A IDE pede o caminho para salvar o arquivo.

O Comportamento ideal seria apenas rodar o algoritmo ou salvar no caminho que o arquivo já possui (ele acaba de ser aberto).

Configuração da fonte

Criar uma opção de menu que possibilite alterar as opções de fonte do editor e acrescentar atalhos que facilite aumentar o tamanho da fonte.

Arquivo modificado

Para o arquivo ser considerado como modificado é preciso realizar duas mudanças.

Portugol nao limpa o console se o programa for interrompido

Ao escrevar algum algoritmo com escreva e leia;
programa
{
funcao inicio(cadeia parametros[])
{
inteiro a = 5, b = 6
inteiro c

    c = a + b

    escreva ("Digite um valor ")
    leia (a)

}

}

se interromper o programa na hora do leia e executalo devolta o Portugol não limpa o console, alem de permitir apagar o texto do console.

Bug na depuração

O botão "Interromper" não funciona no modo depuração.

Ao clicar no botão pela primeira vez, o depurador pula para a instrução seguinte.
Ao clicar no botão da segunda vez em diante, o depurador não faz nada.

Como o botão não funciona, o usuário é obrigado a clicar no botão "Próximo" até que a depuração chegue ao fim.

Ao terminar a depuração, ao invés de o núcleo imprimir a mensagem "Programa finalizado", indicando que a depuração terminou, ele núcleo imprime a mensagem "Programa interrompido", indicando que o programa foi interrompido, embora não tenha sido.

Segue abaixo um roteiro para teste.

  1. Depurar o código abaixo, interrompendo na terceira instrução.
  2. Seguir com a depuração até o final, utilizando o botão "Próximo"
  3. Verificar a mensagem impressa no console
  4. Depurar novamente o código até o final, desta vez sem interromper
  5. Verificar a mensagem impressa no console
programa
{
    funcao inicio()
    {
        escreva("\n", 1)
        escreva("\n", 2)
        escreva("\n", 3)
        escreva("\n", 4)
        escreva("\n", 5)
        escreva("\n", 6)
        escreva("\n", 7)
        escreva("\n", 8)
    }
}

colocar o numero da versão no arquivo .properties

aproveitar que certas configurações estão em um arquivo próprio e colocar o nome da versão lá. para não ter que editar esse numero em todos os lugares que aparece, toda vez que um release é realizado.

Exemplos da Ajuda

Nos exemplos da ajuda, colocar um botão, link ou outro mecanismo, que permita abrir o exemplo em uma nova aba do PortugolStudio, pronto para executar.

Teclas de Atalho

Incluir teclas de atalho para funções como Abrir, Salvar, Executar, Interromper, Trocar de aba etc.
Sugestões:

Erro nas operações

ao escrever o algoritmo

programa {
funcao inicio () {
inteiro a
a = 5 - 1 + 6
escreva (a)
}
}

o valor de a é = 10

porem ao inverter 6 com -1
programa {
funcao inicio () {
inteiro a
a = 5 + 6 - 1
escreva (a)
}
}

o valor da operação é 4, ou seja, ele ignora o + e subtrai 5 - 1

Bug no highlight de erros e na construção da outline tree

Ao abrir um arquivo, o highlight dos erros e a construção da outline tree só ocorre no momento da abertura. Uma vez que o arquivo tenha sido aberto, estes recursos param de funcionar.

O bug só ocorre na abertura de arquivos, na criação de novos arquivos tudo funciona normalmente.

Bug na configuração de fonte

Ao trocar a fonte do editor em uma aba, a configuração não está sendo aplicada nas demais abas abertas.

Além disso, o PortugolStudio não está salvando nem carregando a configuração da fonte.

Encontrar e Substituir

Adicionar uma opção de menu com uma janela e uma barra de ferramentas que permita encontrar e substituir textos no editor de código fonte. Com a possibilidade de utilizar expressão regular.

Portugol permite declaração de palavras reservadas

Portugol não barra quando declaramos uma variavel com o nome de alugma palavra reservada

programa
{
funcao inicio(cadeia parametros[])
{
inteiro leia = 5
escreva (leia)
leia (leia)
}
}

não chega a ser um problema, mas não deveria permitir

Dicas de tela

Consertar um bug que faz com que as dicas de tela sejam exibidas no local errado.
Aproveitar e adicionar dicas de tela onde estiver faltando.

Auto Scroll na caixa do console

em algoritmos exemplo este:

programa {
funcao inicio () {
inteiro vetor[10]
para (inteiro a = 0; a < 10; a++) {
escreva ("Digite um numero para o vetor posicao ",a)
leia (vetor[a])
}
para (inteiro a = 0; a < 10; a++) {
escreva ("\n O numero digitado no vetor na posicao ", a, " foi ", vetor[a])
}
}
}
o scroll da caixa do console não acompanha o texto impresso, impedindo a visualização dos valores finais
concertar o scroll da caixa console para que acompanhe o texto a medida que ele for descendo

Botão "Executar" continua habilitado

Reprodução:

  1. Abra o PortugolStudio
  2. Crie ou abra um arquivo de modo que o PortugolStudio tenha somente uma aba aberta
  3. Salve este arquivo e feche a aba

O botão "Executar" permanece habilitado sendo que não há nenhuma aba aberta, e portanto, nenhum algoritmo a ser executado.

Não verifiquei o que ocorre se o botão for pressionado, mas acredito que ele execute o último algoritmo que foi aberto.

Barra de Status

Criar uma barra de status que fica no rodapé do PortugolStudio que contenha a localização do cursor no editor.

Bug na tela de opções

Para replicar este bug, execute os seguintes passos:

  1. Marque a opção "Exibir opções de execução" na aba de código fonte
  2. Clique em "Depurar"
  3. Marque a opção "Realizar depuração detalhada"
  4. Cancele a depuração clicando no "X" no canto superior direito da janela
  5. Desmarque a opção "Exibir opções de execução" na aba de código fonte
  6. Clique novamente em "Depurar"

Neste momento o depurador inicia em modo detalhado.

Na minha opinião, a depuração detalhada só deve ocorrer quando as opções de execução estiverem habilitadas. Então, neste caso, ela deveria ser desabilitada ao desabilitar as opções de execução.

Bug na depuração

Durante a depuração, se o código fonte for muito grande, o componente de texto não faz a rolagem automática e o highlight da linha atual fica fora da tela.

Bug na depuração

Se durante a depuração o código for muito grande, o depurador destacar a linha, mas ela não fica visível. É necessário fazer com que o texto role até a linha destacada.

Modificar imput da função leia

Quando o usuário é solicitado pelo Interpretador Portugol-Nucleo para entrar com uma entrada de dados, tirar de um inputBox e passar para um campo mais próximo ao console, usar uma solução parecida com a do Webportugol.

Travamento após consertar erro de sintaxe

Após retornar e mostrar a mensagem na lista de mensagens e o usuário consertar os problemas no código fonte e mandar rodar novamente o PortugolStudio trava a ponte de precisar ser encerrado pelo gerênciador de tarefas.

Portugol não exibe erro em case sensitive

Ao digitar o algoritmo

programa {
funcao inicio () {
inteiro a
escreva ("Digite um numero")
leia (A)
}
}

o Portugol executa o algoritmo até o Digite o numero e não exibe nenhum erro relacionado a declaração da variavel A

Log de erros remoto

Implementar um mecanismo de log que permita receber logs remotamente enviado por um botão de reportar erro dentro do PortugolStudio.

Status do arquivo ao abrir

Ao abrir um arquivo este aparece no titulo da aba com aparência de estar modificado, porém ele acaba de ser aberto e não sofreu nenhuma modificação, pode ser fechado pelo (x) no titulo da aba sem questionamento para salvar o arquivo.

Erro fechar abas.

Problema com os botões de fechar abas, e fechar todas as abas:
Reprodução:

  • Criar e / ou abrir arquivos .por
  • ir no menu > arquivo > fechar
  • nada acontece.
  • ir no menu > arquivo > fechar todos
  • nada acontece.

Deveria ter fechado a aba atual ou todas as abas.

Destacar console ao ler dados da entrada

Às vezes não dá pra perceber que o programa está aguardando uma entrada de dados, principalmente durante a depuração, pois neste momento a atenção está focada nos highlights de linha no editor.

Por isso, sugiro que além de colocar o foco e o cursor no console (o que já está sendo feito), devemos de alguma forma destacar o console para chamar a atenção do usuário e indicar que o programa está pedindo uma entrada de dados.

Bug na árvore do depurador

Na árvore de depuração as variáveis do tipo lógico estão aparecendo como "true" e "false" ao invés de "verdadeiro" e "falso".

Leia mantendo valor

O leia sempre exibe no inputbox o último valor do escreva.
O problema é que ele está mantendo este valor em diferentes execuções do programa.

Ao executar o algoritmo:

leia(a)
escreva(a)

Na primeira execução, o input virá com o texto "Digite um valor:"
Supondo que o usuário iniforme o valor 50
Na segunda execução do programa o texto do inputbox será "50".

Função localizar da erro em case sensitive

Ao usar a função de localizar nesse algoritmo:
programa
{
funcao inicio(cadeia parametros[])
{
escreva ("maiusculo")
}
}

e mandar localizar "MAIUSCULO" (em caixa alta) ele localiza o "maiusculo", mas quando manda trocar por qualquer letra ele da um erro:
java.lang.StackOverflowError

Tela com dicas quando abre o PortugolStudio

Criar uma tela contendo dicas do uso do PortugolStudio quando ele abre, contendo uma opção para que essa janela não abra da próxima vez.
Colocar as dicas em formato HTML.

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.