GSOC2012 Proposal SourceEditor new component

From MozillaWiki
Jump to: navigation, search

Source Editor: new component

This GSOC 2012 project proposal is about adding a new component to the Firefox source editor.

The current source editor we use in Firefox is Orion. Orion's API is abstracted out into a source editor-specific API. This is meant to be independent of any underlying editor we use.

The new editor component

Proposed editors: CodeMirror2 or Ace. Open to proposals.

It is the student's choice to pick the editor he wants to integrate into Firefox. Each of these editors have pros and cons that are specifically left out of the discussion.

The student should pick the editor he/she is most familiar with, or the editor he/she feels would be most successful in integrating into Firefox.

It is expected that the student will also make upstream contributions, fixes related to the integration work he is doing. Upstream collaboration for the duration of the project is strongly encouraged.

Goals

Implement the Source Editor API on top of the new editor component such that we can have the Scratchpad and Style Editor tools running properly.

Support for the debugger is strongly desired but not a requirement. Complete API support such that all of the existing source editor tests run without failures is specifically out-of-purpose for the summer project.

Experimentation with features beyond the current set of feature found in the Firefox Orion integration is encouraged, on a case-by-case basis (as long as the main project goals are met).

Excellence

An excellent project outcome is complete source editor API support, all tests passing, and one or two more features beyond those supported by our Orion integration (at that time).

Rationale

Support diversity, alternatives to the current Firefox features. Investigate the success of the editor picked by the student.

Our current strong focus on Orion prevents us from working with alternatives, prevents us from developing extensions that integrate other editors. A student project like this would allow us and the student to investigate alternatives, would allow for less stricter addition of a number of features we currently lack.

Implementation

The project is to be developed as a Firefox beta extension.

The source editor implementation is in browser/devtools/sourceeditor/. The Orion-specific code is in the source-editor-orion.jsm file.

For this GSOC project the student needs to simply create a new source-editor-foo.jsm file, a new editor component that implements the same source editor API on top of the editor chosen.