- Create a cross platform application for programming Clojure and Overtone with these core features:
- It is simple enough for a 10 year old to download, open, select an example, and run
- Manages project and application dependencies through leinengine
- Provides a rich text editor through seesaw, Clooj, and RSyntaxTextArea
- Has extensive documentation browsing for both clojure libraries as well as in depth Overtone API docs and SuperCollider UGen docs
- Integration of Overtone GUI components
-
Turn Clooj into a modular editor and repl library
- Fork and re factor Clooj to work nicely with seesaw by converting standard Clooj interop code to seesaw.
- Extract clooj application components from clooj.core and create a new clooj.dev-tools namespace which will contain all of the application components.
- Update clooj.core to build standard Clooj with simple (create-application) function where the desired components can be added and styled.
-
Create SketchPad in sketchpad.core
- Use the clooj.dev-tools namespace to create custom Clooj base application as base of SketchPad
- Overhaul standard Clooj layout to be more suited to Overtone:
- Use less real estate by making components collapsible
- Style and minimize seesaw borders and dividers to maximize frame space
- Implement tab system for multiple files being open at one time
- Boot overtone server on startup
-
Complete reworking of Clooj menus in seesaw with new features
- Putting the menu construction into seesaw will make for more readbale code and a cleaner way to add more features that fit in the SketchPad key binding system
-
Edit and command modes
- Easy to configure edit modes for vim and emacs style text navigating and manipulation
-
Macros
- recording and palying back macros of recordable text area actions (RSyntaxTextArea)
-
Auto completion
- Integrate RSTA auto completion
- Dynamically generate auto completion info for current project based on name space meta data
-
Repl tools
- Create a palete of hot key commands that make things easier for working with Clojure projects
- use :reload current.project ["cmd shit U"]
- require :reload current.project ["cmd shift R"]
- eval file in repl ["cmd E"]
- eval current function in repl ["cmd enter"]
- restart a repl ["cmd R"]
- clear repl output ["cmd K"]
- apply ns ["cmd shift A"]
- print stack trace ["cmd T"]
- Create a palete of hot key commands that make things easier for working with Clojure projects
-
Layout management
- Hot key toggling file tree browser to take up less space and be more useable for switching between files
- "cmd 1" hides and shows the browser as well as requests focus when open and passes focus back to the editor when closed allowing for fast movement between files
- possibly for the repl as well
- Hot key toggling file tree browser to take up less space and be more useable for switching between files
-
Add Overtone API documentation and SuperCollider UGen documentation
- Integrate JavaFX 2 WebView component via upshot
- Boot local web server with Noir to host Overtone documentation and examples
- Build WebView based documentation browser for searching and navigating docs and examples
-
Integrate Overtone GUI components
- Widget docking system
- In text GUI component interaction
-
Hardware management
- Midi device manager
- Midi controller assignment editor to customize different hardware controllers