Labs/Bespin/DesignDocs: Difference between revisions

no edit summary
(adding carbonite)
No edit summary
 
(29 intermediate revisions by 6 users not shown)
Line 9: Line 9:
* [[Labs/Bespin/DesignDocs/Editor/Snippets|Snippets]] is a feature that allows you to type in magic commands right into the text, hit tab, and then it gets expanded
* [[Labs/Bespin/DesignDocs/Editor/Snippets|Snippets]] is a feature that allows you to type in magic commands right into the text, hit tab, and then it gets expanded
* [[Labs/Bespin/DesignDocs/Editor/GotoDeclaration|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.
* [[Labs/Bespin/DesignDocs/Editor/GotoDeclaration|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.
* [[Labs/Bespin/DesignDocs/Editor/CommandHistory|Command History]] takes the current command line output and saves it away, so instead of having a fire and forget info bar to show output, you can open up the HUD and you see all of the past results
* [[Labs/Bespin/DesignDocs/Editor/Search|Search]] has two parts to it, searching within the visible file, and searching across a set of files (e.g. across the entire project)
* [[Labs/Bespin/DesignDocs/Editor/Search|Search]] has two parts to it, searching within the visible file, and searching across a set of files (e.g. across the entire project)
* [[Labs/Bespin/DesignDocs/Editor/KeyHandling|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.
* [[Labs/Bespin/DesignDocs/Editor/KeyHandling|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 [[Labs/Bespin/DesignDocs/Help|Help System]] needs to be cleaned up to display more than just a huge list of commands.
* The [[Labs/Bespin/DesignDocs/Help|Help System]] needs to be cleaned up to display more than just a huge list of commands.
* Bespin's time machine might be called [[Labs/Bespin/DesignDocs/Carbonite|Carbonite]] and then again, it might not.
* Bespin's time machine for looking at older versions of the current document might be called [[Labs/Bespin/DesignDocs/Carbonite|Carbonite]] and then again, it might not.
* [[Labs/Bespin/DesignDocs/Stati|See what others are doing]] is a feature to help developers be more aware of how their work affects others.
* [[Labs/Bespin/DesignDocs/MetaData|Meta Data]] We're going to need to store meta-data on the data that we store
* [[Labs/Bespin/DesignDocs/CodeCompletion|Code Completion]] will try to help you by telling you which methods are available


===== Worked On =====
===== In Progress =====


* if you are working on a core editor feature, place a design doc here!
* [[Labs/Bespin/DesignDocs/Editor/PieMenuAndNot|Pie Menu and Not]] is the next stab at using the pie menu when appropriate, and NOT when appropriate too
 
* [[Labs/Bespin/DesignDocs/Editor/CommandLine2|CommandLine2]] is the revised specification for how the command-line should work in the pie menu version of Bespin
 
* [[Labs/Bespin/DesignDocs/Editor/DebuggerIntegration|DebuggerIntegration]] is the specification for how Bespin allows the user to control a remotely attached JavaScript VM


===== Completed =====
===== Completed =====
Line 29: Line 35:
* [[Labs/Bespin/DesignDocs/Collaboration/Database|Proposed database changes]]
* [[Labs/Bespin/DesignDocs/Collaboration/Database|Proposed database changes]]
* [[Labs/Bespin/DesignDocs/Collaboration/Detail|Command line detail]]
* [[Labs/Bespin/DesignDocs/Collaboration/Detail|Command line detail]]
* [[Labs/Bespin/DesignDocs/Collaboration/Colorization|Colorization]]
* [[Labs/Bespin/DesignDocs/Collaboration/Mobwrite|Mozilla changes to the Mobwrite Protocol]]


== Server ==
== Server ==
Line 34: Line 42:
* [[Labs/Bespin/DesignDocs/VCSIntegration|Version control system integration]]
* [[Labs/Bespin/DesignDocs/VCSIntegration|Version control system integration]]
* [[Labs/Bespin/DesignDocs/JSServer|JavaScript Server]]
* [[Labs/Bespin/DesignDocs/JSServer|JavaScript Server]]
== Security ==
* [[Labs/Bespin/DesignDocs/OpenIDIntegration|OpenID integration]]


== Extensibility ==
== Extensibility ==
Line 44: Line 56:
== Dashboard ==
== Dashboard ==


The dashboard currently focuses on the file browser experience, and there are a few low hanging fruit features that are perfect to dip your feet in the water. Longer term, dashboard functionality will merge with the editor and the dashboard will do interesting project level statistics. For now though there is a [[Labs/Bespin/Dashboard|Dashboard page]] that includes items such as:
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  [[Labs/Bespin/Dashboard|eliminate the Dashboard page]] and move file navigation into the editor.
 
== Component ==
 
The editor component that anyone can link to and use Bespin.
 
* [[Labs/Bespin/DesignDocs/EditorComponent/Packaging|Editor Component Packaging]]
 
== Inline Documentation ==
 
This section discusses possible interfaces for having helpful documentation that web developers typically need such as: HTML, CSS, Javascript and Javascript libraries. 
 
* [[Labs/Bespin/DesignDocs/Inline Documentation|Overview]]


* [[Labs/Bespin/Dashboard#Keyboard_Support|Keyboard Support]]
== Refactoring / Cleanup ==
* [[Labs/Bespin/Dashboard#Mousewheel_Support|Mousewheel Support]]
 
* [[Labs/Bespin/Dashboard#Collapse_empty_directories|Collapse empty directories]]
It may not be sexy, but it gotta get done... and you get a great feeling when you make something better!
* [[Labs/Bespin/Dashboard#File_info_when_you_single_click|File info when you single click on a file]]
 
* [[Labs/Bespin/Dashboard#Create_new_files.2C_directories.2C_and_import|Create new files, directories, and import]]
Here's the list:
 
* [[Labs/Bespin/DesignDocs/Refactoring/FixEventing|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
* [[Labs/Bespin/DesignDocs/Refactoring/KeyHandler|Key Handling Component]]: Refactor the key handling out of editor.js and other sprinklings and put into one component (works with focus handling)
* [[Labs/Bespin/DesignDocs/Refactoring/FocusHandler|Focus Handling Component]]: One focus handler that you can register with
* [[Labs/Bespin/DesignDocs/Refactoring/JavaScriptDocumentation|JS Docs]]: Take out the WikiCreole and put in JSDoc instead, and a build system to generate the docs from it
* Conventions:
** [[Labs/Bespin/DesignDocs/Refactoring/JavaScriptLocations|JavaScript File Locations]]: Instead of module/module.js, move back to module.js which can include subfiles from module/*.js.
** [[Labs/Bespin/DesignDocs/Refactoring/Hitching|Code Hitching]]: Rules for when you should dojo.hitch() versus "var self" and clean up code to do it
 
== Time Machine ==
 
Our [[Labs/Bespin/DesignDocs/TimeMachine|Time Machine]] allows you to look back over the history of a file to see visually how it changed over time.


== Fun ==
== Fun ==
Line 57: Line 93:


* [[/CoderBadge|Coder Badge]] let's you put your Bespin groovy on
* [[/CoderBadge|Coder Badge]] let's you put your Bespin groovy on
== Brainstorming ==
We had a brainstorming session that brought about it a ton of ideas. Here's a place to keep them:
* Project history code churn view
* Preview toggle for UI elements
* Replace view source with Bespin
** Add "edit source" to browser
* Rich documentation that ties to code and auto detects if out of date
** integrated docs a la Coda
* VCS for graphical assets
* Automated security analysis
* Integrate with Wordpress (plugin)
* Certified Open Web Engineer program
* Crowdsource the management of crowd produces suggestions
* Open Web book imprint
* Wizards to inspect code and recommend better ways to code
* Find utilities that are re-written everywhere and find ways to prevent re-write
* Design
** Blank design elements
** Design sharing tool
** UI/GUI template tools
** Visual UI editor
** Font browser
** CSS3 Tool
* Analyze common mistakes
* "Create new Bespin project" bookmarklet
** spiders a website and imports it as a project
* Coding via mobile phone
* Index all open web project - search engine
* leadershipboard for web developers worldwide (#lines of code / usage)
** code quality scores "you broke the build X times"
* Code fragment library / cookbook
* Easy project startup wizard
* TestSwarm integration
* Installer for internal deployment (.deb etc)
* Review tools
* Visual test generator
* Standard project description file format for Web projects (a la Maven)
* Integrate with continuous integration services
* Code flow visualization
* Zoomable code UI
* JEP-like program for proposing new Open Web APIs
* Open Web code validator
* "Live!" "On AIR" graphic
* Audio chat
* Replace textarea with Bespin
* Build a new DVCS that is all in JavaScript
** Make browser a DVCS itself
* 3D cube editor
* New layout experiment == generates CSS+JS
* Open Web awards (e.g. webbys for devs)
* Open Web Cruises
* Live cam integration for video conference
* CSS3 design example repo
* Publishing tools for AMO/Jetpack
* Integrate with Bugzilla
* Auto-layout / styling preferences
* Open Flash IDE (canvas+bespin)
* Documentation microformat
* Run offline and be able to edit local files
* Hook into desktop editors
** Prism/Titanium
* TODO list management in Bespin
* Allow websites to link themselves to a backend so Bespin can edit
* Make the cycle between editing code and seeing changes in a webapp as short as possible
* Make coding life a video game
* Real-time help/mentoring
* Integrate runtime support for PHP/Python etc
* Make it easy to see where other people have editor code that I touched
* Make it easier for developers to use DVCS without knowing DVCS
* Team up with sites like Topcoder
* Run Bespin contests
* Deployment angle; hosting environment
* Recommendations
** projects like mine
** developers like me
* Finding contextual code snippets
* Analytics
** What code is running, heatmap
355

edits