summaryrefslogtreecommitdiff
path: root/toolkit/devtools/sourceeditor/codemirror/README
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/devtools/sourceeditor/codemirror/README')
-rw-r--r--toolkit/devtools/sourceeditor/codemirror/README139
1 files changed, 139 insertions, 0 deletions
diff --git a/toolkit/devtools/sourceeditor/codemirror/README b/toolkit/devtools/sourceeditor/codemirror/README
new file mode 100644
index 000000000..a18d4c271
--- /dev/null
+++ b/toolkit/devtools/sourceeditor/codemirror/README
@@ -0,0 +1,139 @@
+This is the CodeMirror editor packaged for the Mozilla Project. CodeMirror
+is a JavaScript component that provides a code editor in the browser. When
+a mode is available for the language you are coding in, it will color your
+code, and optionally help with indentation.
+
+# Upgrade
+
+Currently used version is 4.2.0. To upgrade, download a new version of
+CodeMirror from the project's page [1] and replace all JavaScript and
+CSS files inside the codemirror directory [2].
+
+To confirm the functionality run mochitests for the following components:
+
+ * sourceeditor
+ * scratchpad
+ * debugger
+ * styleditor
+ * netmonitor
+
+The sourceeditor component contains imported CodeMirror tests [3].
+
+ * Some tests were commented out because we don't use that functionality
+ within Firefox (for example Ruby editing mode). Be careful when updating
+ files test/codemirror.html and test/vimemacs.html; they were modified to
+ co-exist with Mozilla's testing infrastructure. Basically, vimemacs.html
+ is a copy of codemirror.html but only with VIM and Emacs mode tests
+ enabled.
+ * In cm_comment_test.js comment out fallbackToBlock and fallbackToLine
+ tests.
+ * The search addon (search.js) was slightly modified to make search
+ UI localizable (see patch below).
+
+Other than that, we don't have any Mozilla-specific patches applied to
+CodeMirror itself.
+
+# Addons
+
+To install a new CodeMirror addon add it to the codemirror directory,
+jar.mn [4] file and editor.js [5]. Also, add it to the License section
+below.
+
+# License
+
+The following files in this directory are licensed according to the contents
+in the LICENSE file:
+
+ * codemirror.css
+ * codemirror.js
+ * comment/comment.js
+ * comment/continue-comment.js
+ * activeline.js
+ * dialog/dialog.css
+ * dialog/dialog.js
+ * edit/closebrackets.js
+ * edit/closetag.js
+ * edit/continuelist.js
+ * edit/matchbrackets.js
+ * edit/matchtags.js
+ * edit/trailingspace.js
+ * fold/foldcode.js
+ * fold/brace-fold.js
+ * fold/comment-fold.js
+ * fold/xml-fold.js
+ * fold/foldgutter.js
+ * hint/show-hint.js
+ * keymap/emacs.js
+ * keymap/sublime.js
+ * keymap/vim.js
+ * mode/xml.js
+ * mode/css.js
+ * mode/javascript.js
+ * mode/clike.js
+ * mode/htmlmixed.js
+ * search/match-highlighter.js
+ * search/search.js
+ * search/searchcursor.js
+ * tern/tern.js
+ * tern/tern.css
+ * test/codemirror.html
+ * test/cm_comment_test.js
+ * test/cm_doc_test.js
+ * test/cm_driver.js
+ * test/cm_mode_javascript_test.js
+ * test/cm_mode_test.css
+ * test/cm_mode_test.js
+ * test/cm_multi_test.js
+ * test/cm_search_test.js
+ * test/cm_test.js
+ * test/cm_sublime_test.js
+ * test/cm_vim_test.js
+ * test/cm_emacs_test.js
+
+# Localization patches
+
+diff --git a/browser/devtools/sourceeditor/codemirror/search/search.js b/browser/devtools/sourceeditor/codemirror/search/search.js
+--- a/browser/devtools/sourceeditor/codemirror/search/search.js
++++ b/browser/devtools/sourceeditor/codemirror/search/search.js
+@@ -62,19 +62,31 @@
+ if (isRE) {
+ query = new RegExp(isRE[1], isRE[2].indexOf("i") == -1 ? "" : "i");
+ if (query.test("")) query = /x^/;
+ } else if (query == "") {
+ query = /x^/;
+ }
+ return query;
+ }
+- var queryDialog =
+- 'Search: <input type="text" style="width: 10em"/> <span style="color: #888">(Use /re/ syntax for regexp search)</span>';
++ var queryDialog;
+ function doSearch(cm, rev) {
++ if (!queryDialog) {
++ let doc = cm.getWrapperElement().ownerDocument;
++ let inp = doc.createElement("input");
++ let txt = doc.createTextNode(cm.l10n("findCmd.promptMessage"));
++
++ inp.type = "text";
++ inp.style.width = "10em";
++ inp.style.MozMarginStart = "1em";
++
++ queryDialog = doc.createElement("div");
++ queryDialog.appendChild(txt);
++ queryDialog.appendChild(inp);
++ }
+ var state = getSearchState(cm);
+ if (state.query) return findNext(cm, rev);
+ dialog(cm, queryDialog, "Search for:", cm.getSelection(), function(query) {
+ cm.operation(function() {
+ if (!query || state.query) return;
+ state.query = parseQuery(query);
+ cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query));
+ state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query));
+
+# Footnotes
+
+[1] http://codemirror.net
+[2] browser/devtools/sourceeditor/codemirror
+[3] browser/devtools/sourceeditor/test/browser_codemirror.js
+[4] browser/devtools/jar.mn
+[5] browser/devtools/sourceeditor/editor.js