Labs/Bespin/DesignDocs
Features should have design documents, and here is where we will put them. The Roadmap contains plans for when features are aiming to ship, and also a list of future features. If you like a feature and there isn't a design over here, create one and get hacking with us!
Core Editor
There are many many features that the core editor needs. As designs come up, let's put them here:
Proposed
- Snippets is a feature that allows you to type in magic commands right into the text, hit tab, and then it gets expanded
- Go to declaration is a feature that allows you to jump to the declaration of a class or function. Ideally this will be a mouseclick / key stroke away, and optionally via a command.
- Search has two parts to it, searching within the visible file, and searching across a set of files (e.g. across the entire project)
- Key Handling defined the underlining view of the world wrt key handling. First, we define the various actions and key combinations and how they should work on the various platforms.
- The Help System needs to be cleaned up to display more than just a huge list of commands.
- Bespin's time machine for looking at older versions of the current document might be called Carbonite and then again, it might not.
- See what others are doing is a feature to help developers be more aware of how their work affects others.
- Meta Data We're going to need to store meta-data on the data that we store
- Code Completion will try to help you by telling you which methods are available
In Progress
- Pie Menu and Not is the next stab at using the pie menu when appropriate, and NOT when appropriate too
- CommandLine2 is the revised specification for how the command-line should work in the pie menu version of Bespin
- DebuggerIntegration is the specification for how Bespin allows the user to control a remotely attached JavaScript VM
Completed
- Quick Open Files is like Apple-T in Textmate.... quick access to the files in your project
Collaboration
There is the Main Collaboration doc, and then sub documents:
Server
Security
Extensibility
- Plugin API
- Configuration Integration
- Commands for dealing with custom commands
- Security: Using Caja to help with both security and keeping a public API separate from a private API
Dashboard
The Dashboard was originally conceived as a place to display all kinds of top-level project information in a unique way. That original vision will return. For now, the plan is to eliminate the Dashboard page and move file navigation into the editor.
Component
The editor component that anyone can link to and use Bespin.
Inline Documentation
This section discusses possible interfaces for having helpful documentation that web developers typically need such as: HTML, CSS, Javascript and Javascript libraries.
Refactoring / Cleanup
It may not be sexy, but it gotta get done... and you get a great feeling when you make something better!
Here's the list:
- Fix Event System Usage: Pub sub is awesome, but we use it for too much. Keep items that truly are "this happened" but move out the "do this" and make real method calls
- Key Handling Component: Refactor the key handling out of editor.js and other sprinklings and put into one component (works with focus handling)
- Focus Handling Component: One focus handler that you can register with
- Conventions:
- JavaScript File Locations: Instead of module/module.js, move back to module.js which can include subfiles from module/*.js.
- Code Hitching: Rules for when you should dojo.hitch() versus "var self" and clean up code to do it
Fun
You gotta have fun.
- Coder Badge let's you put your Bespin groovy on