 |
Welcome to the official site of GeeWhiz Prolog, a Prolog IDE embedded within NetBeans 6.1. |
| Note that GeeWhiz Prolog is intended to be a learning tool and is a work in process. It is not a production application (yet). |
GeeWhiz Prolog Demo Videos
GeeWhiz Prolog Features
- Incorporated as an integral part of the NetBeans IDE
- Has a WYSIWYG source code editor
- Provides Prolog syntax checking and highlighting
- Works with the sidebar statement navigator
- Generates a visual and interactive Prolog predicate model that personally rocks my world
- Supports in-line Prolog source code compilation with error lines linked back to source
- Is O/S- and compiler-independent
- Is installable as a plug-in module to the NetBeans IDE
- Is free
- The source code is easily modifiable since you build the damn thing yourself
- Did I mention it's free?
Sample GeeWhiz Predicate Diagram (click for bfd)
GeeWhiz Prolog Blog Entries
Part Zero, "About The Project"
Part One, "Before We Start"Part Two, "Creating A File Type"
Part Three, "Adding Language Support"
Part Four, "A Visual Prolog Modeler"
Part Five, "Adding The Compiler"
Part Six, "Creating Prolog Projects"
Part Seven, "Adding An Option Panel"
Part Eight, "Creating An NBM"
You can also download a PDF of all entries here.
Son Of GeeWhiz Prolog Blog Entries
Improving The Diagram
Olio
GeeWhiz Prolog System Requirements
GeeWhiz Prolog requires NetBeans 6.1, a free open-source software development IDE. You can download it from the button on the sidebar of this blog. Both NetBeans and GeeWhiz Prolog will run on Windows, Unix / Linux, and other OS platforms.
GeeWhiz Prolog Code Cellar
To use the source files, follow the following steps:
- In NetBeans, create a new module project by selecting "File / New Project... / NetBeans Modules / Module", name it "GeeWhiz" and select "Standalone Module".
- Find the directory where your project was created and replace the "/src" directory with your choice of the zipped or tarred source directory below.
- You should now be able to successfully clean and build the GeeWhiz module.
Plugin (NBM) File
Source Files
GeeWhiz Prolog FAQ
- Why did you make this when there is a Prolog module already pending for NetBeans 6.1?
- Because it's pending and I have the attention span of a gnat and I need instant gratification (plus a Prolog editor) and I wanted to check out language support in the NetBeans v6.1 IDE. Plus I wanted to share with you the knowledge that I gained cobbling the thing together.
Going Further - My GeeWhiz Notes
Fixes And Improvements To Current Features
- Use public API for Generic Languages Framework
- Change PrologAST to not user ParserManagerImpl to get the AST root node so we can go back to the public API and not use an implementation version of GLF.
- Change Names To Be More Descriptive
- Change the name of the PrologClause class to PrologPredicate, e.g. In other words, refactor refactor refactor.
- Improve the Prolog grammar definition
- Improve the grammar defined in language.nbs for Prolog. I think it can be simplified and improved.
- Improve threading in GeeWhiz
- Analyze GeeWhiz and introduce threading, concurrency, Runnables and all of that kind of shit so it looks like I know what I'm doing in Java but that makes the code five times more complicated and harder to understand.
- Take care of compiler warnings
- Analyze the warnings produced by the IDE when it starts up the target IDE and see what I can fix and what I should leave alone.
- Experiment with other SWI Prolog compiler options
- Try the -s option instead of the -c option and actually read the SWI documentation a little more closely.
- Fix remaining TODOs in code comments
- Probably I'll need to look at the good old Task List (ctrl+6) sometime. Jeez, it's like being married....
- Fix the *&$%!* coffee cup icon on my new Prolog projects
- Enough said. Although while I'm at it I can see if there's anything else I can get rid of (or add) for new Prolog projects.
- Add license and digital certificate to GeeWhiz
- I should maybe make this an entry since a first glance at the docs available seemed less than promising.
- Find out how to create a target platform that is leaner for performance reasons
- Either that or buy a faster machine.
Additional Features That Could Be Added To GeeWhiz
- Localize messages, strings, etc.
- Be a good world citizen and stick all messages etc. in Bundle
- Add help
- Add JavaHelp to the project. This might be another entry as well. It's pretty cool how it works, though....
- Make the static predicate visual model dynamic and refer back to source
- This is complicated by the fact that the predicate / clause relationship is not 1:1, but maybe light up all source clauses when a widget is selected....
- Add freemarker support
- Oops, I was going to do that as part of the original project. Hopefully no one noticed.
- Interact with SWI Prolog via IOProvider Reader
- Just for fun we should try out the Reader in the output window.
Create a satellite view for the modeler DONE
- Make a satellite view of the diagram a la Geertjan's example but preferably in a different window (popup?) as opposed to a sidebar.
- Add XPCE support
- Add support for SWI Prolog's buddy XPCE somehow. That would be a challenge, I bet... Wonder if it's Windows-compatible.