IDE para FreePascal (made in P@P) - Pascal - Portugal-a-Programar
IDE para FreePascal (made in P@P)
By nunopicado, October 1, 2013 in Pascal
Depois de um levantamento de lebre noutro tópico sobre a possibilidade de darmos avanço ao moribundo DevPascal, fiz o download das Sources para espreitar como está aquilo...
Resultado: Montes de componentes que não tenho, e que dificilmente se poderão arranjar.
Começo a perceber o porquê do projecto estar parado... O autor deve ter tido de formatar o disco e perdeu os componentes...
Como também falei no forum, há tempos cheguei a fazer um mini-IDE para FreePascal. É básico, mas compila, gera o executável, blablabla whiskas saquetas. Era apenas uma brincadeira, com uma tradução das palavras chave de pascal para Português para mostrar ao meu miudo como funciona a programação.
- Vale a pena insistir no DevPascal, tentando substituir os componentes por outros
- Vale a pena pegar no meu e torna-lo mais próximo do que deve ser um IDE
- Vale a pena esquecer tudo e começar um de raíz?
* Quais seriam as vantagens/desvantagens de cada hipotese
* Que funcionalidades seriam necessárias, na vossa opinião, para fazer avançar com um projecto destes
NOTA: Isto não seria, pelo menos por agora, um projecto para fazer, e sim para ir fazendo.
O tempo nestas bandas é mínimo, o Thoga sei que também anda sempre ocupado, e imagino que pelo menos o Passarito e o Pedro também não sejam os gajos com mais tempo do mundo.
Falo nestes porque são os habituais nestas coisas de revitalizar o quadro, mas a "equipa" está longe de estar fechada, se chegar a existir.
I'm in, até me pode a ajudar a ter o tempo "ocupado". Yeah, eu tenho-o ocupado, mas se tiver uma 2ª actividade paralela fico mais "alerta"
Claro que não poderia despender grande tempo para isto, e a primeira coisa que eu teria de fazer era um upgrade aos meus conhecimentos, uma vez que só programo para consola.
Quanto ao IDE, podias mostrar numa imagem ou duas o que já tens, e veríamos se se podia partir dele (suspeito que sim). Programaste-o em Delphi, ou Lazarus?
E esquecíamos o Dev-Pascal, remendar é pior do que construir de raiz (ou construir a partir do teu).
Dever-se-ia olhar para as funcionalidade que mais apreciamos num IDE, mas sem dúvida que o Pedro seria o nosso melhor guia, uma vez que ele usa o Vim e usou o Emacs, e ambos são editores de texto poderosíssimos.
Uma coisa útil que posso já adiantar: uma calculadora decente e com umas funcionalidades de interesse.
Para a calculadora podia usar-se o meu ExpressionParser. Com um GUI capaz, pode ser interessante.
Quanto às imagens, faço melhor:
https://www.dropbox.com/s/xdqblyn49p68exs/PascalPT.exe
Foi em Delphi, mas para podermos mexer em equipa, possivelmente tinha de ser convertido para Lazarus.
Edited October 1, 2013 by nunopicado
Não aprecio o código do teu parser, acho-o muito "ruidoso" no que diz respeito a código. Eu também não fiz um código brilhante, claro. Mas acho que o devíamos simplificar para ser de melhor e mais fácil manutenção.
Pois, eu não vou comprar o Delphi para isto, o máximo de preço onde posso chegar é aos 0,00€
Portanto, sim, teria de ser o Lazarus, parece-me. Não conheço mais opções.
Quem quer mesmo avançar com isto? Não gostaria de ver aqui ideias debatidas para no final ficar parado.
Devíamos também depois de pensar em formas eficientes de comunicação privada, nunca se sabe quem nos está a "ouvir", e as ideias voam.
Isso seria bastante fixe pois cativava-se o pessoal que e amante do Vim e do Emacs, e sempre bom ver iniciativas
destas aqui no forum, Pascal por acaso esta na minha lista de linguagens de programacao que pretendo aprender,
se prentender escrever o IDE em Pascal nao me importo nada em aprende-lo so para contribuir para o projecto.
Boa iniciativa pesoal +1.
O Quêêêêê????? Não aprecias o meu código??????
Acaba-se já com isto tudo!!!!
Ou não, estás à vontade!
Não me afecta nada, até porque como sabes, aquilo foi um "só para ver se dá".
O principal mesmo, a meu ver, seria:
- Suporte ao FPC - tem de ter "opções" suficientes para ser evolutivo. Se o FPC de repente se lembrar de mudar os comandos disto ou daquilo, tem de dar para ajustar.
- Sintax Highlighter, sem dúvida
- Code Folding seria interessante, mas menos urgente
- AutoComplete também era interessante
- Suporte a um debugger, se possível com com execução passo a passo e watches
- Suporte a projectos (um ficheiro que "reuna" os vários ficheiros que compõem o programa, entre programa e units)
- Pesquisa directa de funções e procedimentos
Hamm... podemos debater isto em privado?
NNão confio na Internet "pública" para estas coisas, uma vez que tenho ideias a saltarem-me à mente xD
Não conhecia o Lazarus e então fui ver como era. É impressão minha ou aquilo cheira-me ao 1º Pascal para windows? Corrijam-me se estiver errado!
Quanto ao IDE do Nuno, acho que o caminho pode ser esse, uma das hipóteses seria implementar em windows o mesmo que há em DOS para o FPC e BP.
Quanto ao compilador, isso seria fácil de integrar?
Pode haver muitos pontos interessantes, mas este, quanto amim, é dos mais importantes!
Eu não sou um guru da programação, pelo que a questão do debugger é chinesa para mim.
De qualquer das formas, não sei como é o Delphi a fazer debug, que eu só conheço o Visual Studio, mas podiamo-nos inspirar nestes dois senhores
O Debug, quanto a mim, é uma da mais preciosas ferramentas na programação
No Borland Pascal 7 a opção do Debug tem as seguintes ferramentas: Breakpoints, Call Stack, Register, Watch, Output, User Screen, Evaluate/modify, Add watch e Add breakpoint
Não quero dizer que isto é o melhor, provavelmente outros programas terão outras opções igualmente ou mais interessantes!
Eu posso ficar com outras componentes do IDE, e vocês ensinam-me a fazer isso... Que tal?
Passarito: O Lazarus está mais para Delphi gratuito... Mas é por aí.
A base continua a ser o Freepascal, mas tem tanta coisa que assusta os iniciantes.
Integrar o compilador é relativamente simples, no meu já está feito, embora hardcoded.
Thoga, no VisualStudio não sei como é, mas no Delphi, o debugger é a perfeição na terra... Só podemos sonhar com algo como aquilo, pelo que não me proponho a tanto.
Mas o básico de um debugger sim.
Nao passo de um amadorzeco, mas se tiverem com disponibilidade,e eu tambem tiver defacto tempo para integrar na equipa, contem comigo.
Embora nos ultimos temnos nao tenha desenvolvido em Delphi, isto é como andar de bicicleta
Mesmo que seja lazarus, nao muda assim tanto, nao tenho problemas quanto a isso.
Mas tambem sou da opinião que se deve fazer algo de raiz... pode-se reaproveitar codigo da IDE do nuno ofc, mas refazer o devpascal nao parece que seja grande ideia...
Edited October 2, 2013 by I-NOZex
Penso que o mais importante é mesmo a integração com o debugger... Nunca fiz nenhum debugger, pelo que não consigo sequer imaginar que tipo de código é necessário para correr um programa de forma supervisionada e poder interrompê-lo à nossa vontade. Neste aspecto, parece-me que o melhor é retirar inspiração do DevPascal (que suporta o GDB).
Uma vez que o Free Pascal actual suporta o formato utilizado pelo GDB, parece-me muito boa ideia fazermos uso desta compatibilidade (existem imensos wrappers para o gdb nos quais podemos inspirar-nos).
Um bom debugger, em conjunto com uma boa apresentação dos erros do Free Pascal... isso sim parece-me essencial (e talvez difícil de fazer).
Tudo o resto acaba por ser relativamente simples. Em termos de edição de texto basta-nos utilizar os componentes TSynEdit e teremos um editor perfeitamente funcional (não é nenhum vim ou emacs, mas também não é isso que pretendemos).
Code folding, autocomplete e assim são menos prioritários (até porque implicam a construção de um parser para a linguagem).
Fazer a ligação entre fpc e o IDE é também simples, basta-nos executar o compilador com as respectivas flags.
O TSynEdit já tem o CodeFolding e o Highlighter, pelo que é a base do editor.
Aliás, é o componente usado pelo próprio Lazarus.
O uso do GDB, ou outro semelhante é a opção a seguir também. Fazer um debugger de raíz é utopia, pelo menos para mim.
O compilador é simples. Não sei usar pipes em Lazarus (desconheço se é igual a Delphi), mas mesmo que não fosse possível (que é, quase de certeza), usava-se um ficheiro temporário para as mensagens do compilador.
Eu comecei aqui um esboço em Lazarus. O meu não é convertível em Lazarus sem o passar a pente fino, pelo que é preferível começar um mesmo de raíz, aproveitando do que eu já tinha só o código que interesse (ligação ao compilador, etc).
Meti-lhe o TSynEdit, com highlighter para FPC.
Há lá um componente de AutoComplete que tenho de estudar se funciona para isto ou não.
Ideias para o interface?
Edited October 2, 2013 by nunopicado
Acho uma iniciativa espetacular e tenho grande interesse em contribuir, e mesmo fazer parte da equipe.
Além das citadas, tenho as seguintes sugestões:
Suporte a auto-indentação (com suporte a formatos personalizáveis);
Opção de escolher o compilador (traria uma considerável versatilidade);
Suporte a multilíngue;
Edited October 2, 2013 by GRSa
Auto-indentação o SynEdit já suporta, pelo que já está feito.
Ser personalizável, tem de se ver. Não vi se suporta ou não.
Gente com espírito é o que é preciso.
Eu tenho uma porrada de ideias relativamente simples mas muito úteis e que poderiam distinguir este IDE dos outros em coisas mais suis generis. Mas não as pretendo dizer aqui em público.
Que outro compilador?
Inglês deverá ser a nossa primeira linguagem, em conjunto com Português. Isto é inegável.
Pode ser fantasia, mas para mim seria de grande valia poder visualizar o código como um diagrama. Seria espetacular. Existe algo parecido em alguma ferramenta hoje?
Isso implicaria também um parser da linguagem. Fica registada a ideia, mas a sua concepção é, de longe e a meu ver, das mais difíceis que pode haver.