diff --git a/ChangeLog.txt b/ChangeLog.txt
index 76b2313b..e5d36574 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,3 +1,47 @@
+2012.09.17, Version 0.1.0
+
+* New Features
+ - Multiple cursors and selections (https://c9.io/site/blog/2012/08/be-an-armenian-warrior-with-block-selection-on-steroids/)
+ - Fold buttons displayed in the gutter
+ - Indent Guides
+ - Completely reworked vim mode (Sergi Mansilla)
+ - Improved emacs keybindings
+ - Autoclosing of html tags (danyaPostfactum)
+
+* 20 New language modes
+ - Coldfusion (Russ)
+ - Diff
+ - GLSL (Ed Mackey)
+ - Go (Davide Saurino)
+ - Haxe (Jason O'Neil)
+ - Jade (Garen Torikian)
+ - jsx (Syu Kato)
+ - LaTeX (James Allen)
+ - Less (John Roepke)
+ - Liquid (Bernie Telles)
+ - Lua (Lee Gao)
+ - LuaPage (Choonster)
+ - Markdown (Chris Spencer)
+ - PostgreSQL (John DeSoi)
+ - Powershell (John Kane)
+ - Sh (Richo Healey)
+ - SQL (Jonathan Camile)
+ - Tcl (Cristoph Hochreiner)
+ - XQuery (William Candillion)
+ - Yaml (Meg Sharkey)
+
+ * Live syntax checks
+ - for XQuery and JSON
+
+* New Themes
+ - Ambiance (Irakli Gozalishvili)
+ - Dreamweaver (Adam Jimenez)
+ - Github (bootstraponline)
+ - Tommorrow themes (https://github.com/chriskempson/tomorrow-theme)
+ - XCode
+
+* Many Small Enhancements and Bugfixes
+
2011.08.02, Version 0.2.0
* Split view (Julian Viereck)
@@ -27,15 +71,14 @@
- SCAD (Jacob Hansson)
* Live syntax checks
- - Lint for Css using CSS Lint
+ - Lint for CSS using CSS Lint
- CoffeeScript
* New Themes
- Crimson Editor (iebuggy)
- Merbivore (Michael Schwartz)
- Merbivore soft (Michael Schwartz)
- - Solarized dark/light (David Alan
- Hjelle)
+ - Solarized dark/light (David Alan Hjelle)
- Vibrant Ink (Michael Schwartz)
* Small Features/Enhancements
@@ -48,10 +91,8 @@
highlight are not affected (Irakli Gozalishvili)
- Added setFontSize method
- Improved vi keybindings (Trent Ogren)
- - When unfocused make cursor transparent instead of removing it (Harutyun
- Amirjanyan)
- - Support for matching groups in tokenizer with arrays of tokens (Chris
- Spencer)
+ - When unfocused make cursor transparent instead of removing it (Harutyun Amirjanyan)
+ - Support for matching groups in tokenizer with arrays of tokens (Chris Spencer)
* Bug fixes
- Add support for the new OSX scroll bars
@@ -59,8 +100,7 @@
- Proper handling of unicode characters in JavaScript identifiers
- Fix remove lines command on last line (Harutyun Amirjanyan)
- Fix scroll wheel sluggishness in Safari
- - Make keyboard infrastructure route keys like []^$ the right way (Julian
- Viereck)
+ - Make keyboard infrastructure route keys like []^$ the right way (Julian Viereck)
2011.02.14, Version 0.1.6
diff --git a/Readme.md b/Readme.md
index f9ec20d1..7960e48c 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,6 +1,8 @@
Ace (Ajax.org Cloud9 Editor)
============================
+_Note_: The new site at http://ace.ajax.org contains all the info below along with an embedding guide and all the other resources you need to get started with Ace.
+
Ace is a standalone code editor written in JavaScript. Our goal is to create a browser based editor that matches and extends the features, usability and performance of existing native editors such as TextMate, Vim or Eclipse. It can be easily embedded in any web page or JavaScript application. Ace is developed as the primary editor for [Cloud9 IDE](http://www.cloud9ide.com/) and the successor of the Mozilla Skywriter (Bespin) Project.
Features
diff --git a/api/ace.html b/api/ace.html
index 7b46b2c1..787a8efb 100644
--- a/api/ace.html
+++ b/api/ace.html
@@ -1,15 +1,5 @@
-
-
-
- Ace - Ace API
Required. Either the id of an element, or the element itself
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/api/anchor.html b/api/anchor.html
index 60b23109..f3f25cd1 100644
--- a/api/anchor.html
+++ b/api/anchor.html
@@ -1,14 +1,11 @@
-
-
-
- Anchor - Ace API
Required. Identifies if you want the position to be clipped
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/api/background_tokenizer.html b/api/background_tokenizer.html
index 56587186..8a11bcee 100644
--- a/api/background_tokenizer.html
+++ b/api/background_tokenizer.html
@@ -1,40 +1,30 @@
-
-
-
- BackgroundTokenizer - Ace API
Tokenizes the current Document in the background, and caches the tokenized rows for future use. If a certain row is changed, everything below that row is re-tokenized.
Tokenizes the current Document in the background, and caches the tokenized rows for future use. If a certain row is changed, everything below that row is re-tokenized.
\ No newline at end of file
diff --git a/api/command_manager.html b/api/command_manager.html
index 660d81d9..b580d309 100644
--- a/api/command_manager.html
+++ b/api/command_manager.html
@@ -1,15 +1,5 @@
-
-
-
- CommandManager - Ace API
\ No newline at end of file
diff --git a/api/document.html b/api/document.html
index 696bb268..577fe66f 100644
--- a/api/document.html
+++ b/api/document.html
@@ -1,114 +1,146 @@
-
-
-
- Document - Ace API
Contains the text of the document. Document can be attached to several EditSessions. At its core, Documents are just an array of strings, with each row in the document matching up to the array index.
Contains the text of the document. Document can be attached to several EditSessions. At its core, Documents are just an array of strings, with each row in the document matching up to the array index.
Required. Contains at least one property called "action". "action" indicates the action that triggered the change. Each action also has a set of additional properties.
The position of the last line of text. If the length of text is 0, this function simply returns position. Inserts a block of text and the indicated position.
Returns an object containing the final row and column, like this: {row: endRow, column: 0} If lines is empty, this function returns an object containing the current row, and column, like this: {row: row, column: 0}
Returns the new start property of the range, which contains startRow and startColumn. If range is empty, this function returns the unmodified value of range.start.
Returns the new start property of the range, which contains startRow and startColumn. If range is empty, this function returns the unmodified value of range.start.
Returns an object containing startRow and startColumn, indicating the new row and column values. If startColumn is equal to endColumn, this function returns nothing.
Document.removeLines(Number firstRow, Number lastRow)
Returns an object containing startRow and startColumn, indicating the new row and column values. If startColumn is equal to endColumn, this function returns nothing.
+
Document.removeLines(Number firstRow, Number lastRow)
Returns an object containing the final row and column, like this: {row: endRow, column: 0} If the text and range are empty, this function returns an object containing the current range.start value. If the text is the exact same as what currently exists, this function returns an object containing the current range.end value.
Document.revertDeltas(deltas)
Void
Reverts any changes previously applied. These can be either 'includeText', 'insertLines', 'removeText', and 'removeLines'.
-
Reverts any changes previously applied. These can be either 'includeText', 'insertLines', 'removeText', and 'removeLines'.
\ No newline at end of file
diff --git a/api/edit_session.html b/api/edit_session.html
index ef427e89..64081b69 100644
--- a/api/edit_session.html
+++ b/api/edit_session.html
@@ -1,289 +1,306 @@
-
-
-
- EditSession - Ace API
Stores all the data about Editor state providing easy way to change editors state. EditSession can be attached to only one Document. Same Document can be attached to several EditSessions.
Stores all the data about Editor state providing easy way to change editors state. EditSession can be attached to only one Document. Same Document can be attached to several EditSessions.
Returns an int[] array with two elements: The first position indicates the number of columns for str on screen. The second value contains the position of the document column that this function read until.
Adds a new marker to the given Range. If inFront is true, a front marker is defined, and the 'changeFrontMarker' event fires; otherwise, the 'changeBackMarker' event fires.
-
Adds a new marker to the given Range. If inFront is true, a front marker is defined, and the 'changeFrontMarker' event fires; otherwise, the 'changeBackMarker' event fires.
Adds a new marker to the given Range. If inFront is true, a front marker is defined, and the 'changeFrontMarker' event fires; otherwise, the 'changeBackMarker' event fires.
+
Adds a new marker to the given Range. If inFront is true, a front marker is defined, and the 'changeFrontMarker' event fires; otherwise, the 'changeBackMarker' event fires.
Returns the current value for tabs. If the user is using soft tabs, this will be a series of spaces (defined by getTabSize()); otherwise it's simply '\t'.
-
Returns the current value for tabs. If the user is using soft tabs, this will be a series of spaces (defined by getTabSize()); otherwise it's simply '\t'.
Returns the current value for tabs. If the user is using soft tabs, this will be a series of spaces (defined by getTabSize()); otherwise it's simply '\t'.
+
Returns the current value for tabs. If the user is using soft tabs, this will be a series of spaces (defined by getTabSize()); otherwise it's simply '\t'.
The new range where the text was moved to. Moves a range of text from the given range to the given position. toPosition is an object that looks like this:
EditSession.onReloadTokenizer(e)
Reloads all the tokens on the current session. This function calls BackgroundTokenizer.start () to all the rows; it also emits the 'tokenizerUpdate' event.
-
Reloads all the tokens on the current session. This function calls BackgroundTokenizer.start () to all the rows; it also emits the 'tokenizerUpdate' event.
Moves a range of text from the given range to the given position. toPosition is an object that looks like this:
+
+
EditSession.onReloadTokenizer(e)
Reloads all the tokens on the current session. This function calls BackgroundTokenizer.start () to all the rows; it also emits the 'tokenizerUpdate' event.
+
Reloads all the tokens on the current session. This function calls BackgroundTokenizer.start () to all the rows; it also emits the 'tokenizerUpdate' event.
The new start property of the range, which contains startRow and startColumn. If range is empty, this function returns the unmodified value of range.start.
The new start property of the range, which contains startRow and startColumn. If range is empty, this function returns the unmodified value of range.start.
Removes the marker with the specified ID. If this marker was in front, the 'changeFrontMarker' event is emitted. If the marker was in the back, the 'changeBackMarker' event is emitted.
-
Removes the marker with the specified ID. If this marker was in front, the 'changeFrontMarker' event is emitted. If the marker was in the back, the 'changeBackMarker' event is emitted.
Removes the marker with the specified ID. If this marker was in front, the 'changeFrontMarker' event is emitted. If the marker was in the back, the 'changeBackMarker' event is emitted.
+
Removes the marker with the specified ID. If this marker was in front, the 'changeFrontMarker' event is emitted. If the marker was in the back, the 'changeBackMarker' event is emitted.
Returns an object containing the final row and column, like this: {row: endRow, column: 0} If the text and range are empty, this function returns an object containing the current range.start value. If the text is the exact same as what currently exists, this function returns an object containing the current range.end value.
Converts characters coordinates on the screen to characters coordinates within the document. This takes into account code folding, word wrap, tab size, and any other visual modifications.
-
Converts characters coordinates on the screen to characters coordinates within the document. This takes into account code folding, word wrap, tab size, and any other visual modifications.
Converts characters coordinates on the screen to characters coordinates within the document. This takes into account code folding, word wrap, tab size, and any other visual modifications.
+
Converts characters coordinates on the screen to characters coordinates within the document. This takes into account code folding, word wrap, tab size, and any other visual modifications.
Sets a new text mode for the EditSession. This method also emits the 'changeMode' event. If a BackgroundTokenizer is set, the 'tokenizerUpdate' event is also emitted.
-
Sets a new text mode for the EditSession. This method also emits the 'changeMode' event. If a BackgroundTokenizer is set, the 'tokenizerUpdate' event is also emitted.
Sets a new text mode for the EditSession. This method also emits the 'changeMode' event. If a BackgroundTokenizer is set, the 'tokenizerUpdate' event is also emitted.
+
Sets a new text mode for the EditSession. This method also emits the 'changeMode' event. If a BackgroundTokenizer is set, the 'tokenizerUpdate' event is also emitted.
Pass in true to enable overwrites in your session, or false to disable.
+
Pass in true to enable overwrites in your session, or false to disable.
If overwrites is enabled, any text you enter will type over any text after it. If the value of overwrite changes, this function also emites the changeOverwrite event.
Set the number of spaces that define a soft tab; for example, passing in 4 transforms the soft tabs to be equivalent to four spaces. This function also emits the changeTabSize event.
-
Set the number of spaces that define a soft tab; for example, passing in 4 transforms the soft tabs to be equivalent to four spaces. This function also emits the changeTabSize event.
Set the number of spaces that define a soft tab; for example, passing in 4 transforms the soft tabs to be equivalent to four spaces. This function also emits the changeTabSize event.
+
Set the number of spaces that define a soft tab; for example, passing in 4 transforms the soft tabs to be equivalent to four spaces. This function also emits the changeTabSize event.
EditSession.setWrapLimitRange(Number min, Number max)
Sets the boundaries of wrap. Either value can be null to have an unconstrained wrap, or, they can be the same number to pin the limit. If the wrap limits for min or max are different, this method also emits the 'changeWrapMode' event.
-
Sets the boundaries of wrap. Either value can be null to have an unconstrained wrap, or, they can be the same number to pin the limit. If the wrap limits for min or max are different, this method also emits the 'changeWrapMode' event.
+
EditSession.setWrapLimitRange(Number min, Number max)
Sets the boundaries of wrap. Either value can be null to have an unconstrained wrap, or, they can be the same number to pin the limit. If the wrap limits for min or max are different, this method also emits the 'changeWrapMode' event.
+
Sets the boundaries of wrap. Either value can be null to have an unconstrained wrap, or, they can be the same number to pin the limit. If the wrap limits for min or max are different, this method also emits the 'changeWrapMode' event.
Required. If true, doesn't select the range of where the change occured
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/api/editor.html b/api/editor.html
index dd7bae66..f2493025 100644
--- a/api/editor.html
+++ b/api/editor.html
@@ -1,342 +1,343 @@
-
-
-
- Editor - Ace API
The main entry point into the Ace functionality. The Editor manages the EditSession (which manages Documents), as well as the VirtualRenderer, which draws everything to the screen. Event sessions dealing with the mouse and keyboard are bubbled up from Document to the Editor, which decides what to do with them.
The main entry point into the Ace functionality. The Editor manages the EditSession (which manages Documents), as well as the VirtualRenderer, which draws everything to the screen. Event sessions dealing with the mouse and keyboard are bubbled up from Document to the Editor, which decides what to do with them.
Returns true if the behaviors are currently enabled. "Behaviors" in this case is the auto-pairing of special characters, like quotation marks, parenthesis, or brackets.
-
Returns true if the behaviors are currently enabled. "Behaviors" in this case is the auto-pairing of special characters, like quotation marks, parenthesis, or brackets.
Returns true if the behaviors are currently enabled. "Behaviors" in this case is the auto-pairing of special characters, like quotation marks, parenthesis, or brackets.
+
Returns true if the behaviors are currently enabled. "Behaviors" in this case is the auto-pairing of special characters, like quotation marks, parenthesis, or brackets.
Specifies whether to use behaviors or not. "Behaviors" in this case is the auto-pairing of special characters, like quotation marks, parenthesis, or brackets.
-
Specifies whether to use behaviors or not. "Behaviors" in this case is the auto-pairing of special characters, like quotation marks, parenthesis, or brackets.
+
Editor.selectPageDown()
Selects the text from the current position of the document until where a "page down" finishes.
+
Selects the text from the current position of the document until where a "page down" finishes.
+
Editor.selectPageUp()
Selects the text from the current position of the document until where a "page up" finishes.
+
Selects the text from the current position of the document until where a "page up" finishes.
Specifies whether to use behaviors or not. "Behaviors" in this case is the auto-pairing of special characters, like quotation marks, parenthesis, or brackets.
+
Specifies whether to use behaviors or not. "Behaviors" in this case is the auto-pairing of special characters, like quotation marks, parenthesis, or brackets.
Pass in true to enable overwrites in your session, or false to disable. If overwrites is enabled, any text you enter will type over any text after it. If the value of overwrite changes, this function also emites the changeOverwrite event.
-
Pass in true to enable overwrites in your session, or false to disable. If overwrites is enabled, any text you enter will type over any text after it. If the value of overwrite changes, this function also emites the changeOverwrite event.
Pass in true to enable overwrites in your session, or false to disable. If overwrites is enabled, any text you enter will type over any text after it. If the value of overwrite changes, this function also emites the changeOverwrite event.
+
Pass in true to enable overwrites in your session, or false to disable. If overwrites is enabled, any text you enter will type over any text after it. If the value of overwrite changes, this function also emites the changeOverwrite event.
Perform an undo operation on the document, reverting the last change. Returns the range of the undo.
+
Perform an undo operation on the document, reverting the last change. Returns the range of the undo.
+
Editor.unsetStyle(style)
Related to:
Removes the class style from the editor.
+
Removes the class style from the editor.
+
Editor.updateSelectionMarkers()
Updates the cursor and marker layers.
+
Updates the cursor and marker layers.
+
\ No newline at end of file
diff --git a/api/index.html b/api/index.html
index a4e4af82..a4f1f307 100644
--- a/api/index.html
+++ b/api/index.html
@@ -1,14 +1,4 @@
-
-
-
- Ace API
Welcome to the Ace API Reference Guide. Ace is a standalone code editor written in JavaScript that you can embed onto any website. We're used in a bunch of places already, like GitHub, Google, and Facebook.
On the left, you'll find a list of all of our currently documented classes. There are plenty more to do, but these represent the "core" set. For more information on how to work with Ace, check out the main Ace website.
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/api/placeholder.html b/api/placeholder.html
index 549bb2b6..98aa0b55 100644
--- a/api/placeholder.html
+++ b/api/placeholder.html
@@ -1,34 +1,24 @@
-
-
-
- PlaceHolder - Ace API
Hides all over markers in the EditSession that are not the currently selected one.
-
Hides all over markers in the EditSession that are not the currently selected one.
-
PlaceHolder.setup()
TODO
-
TODO
-
PlaceHolder.showOtherMarkers()
TODO
-
TODO
-
-
-
-
-
-
\ No newline at end of file
+
Events
PlaceHolder.on("onCursorChange", function(e))
Emitted when the cursor changes.
+
Emitted when the cursor changes.
+
PlaceHolder.on("onUpdate", function(e))
Emitted when the place holder updates.
+
Emitted when the place holder updates.
+
Methods
PlaceHolder.cancel()
TODO
+
TODO
+
PlaceHolder.detach()
TODO
+
TODO
+
PlaceHolder.hideOtherMarkers()
Hides all over markers in the EditSession that are not the currently selected one.
+
Hides all over markers in the EditSession that are not the currently selected one.
+
PlaceHolder.setup()
TODO
+
TODO
+
PlaceHolder.showOtherMarkers()
TODO
+
TODO
+
\ No newline at end of file
diff --git a/api/range.html b/api/range.html
index af0dbdbe..19f69645 100644
--- a/api/range.html
+++ b/api/range.html
@@ -1,107 +1,297 @@
-
-
-
- Range - Ace API
This object is used in various places to indicate a region within the editor. To better visualize how this works, imagine a rectangle. Each quadrant of the rectangle is analogus to a range, as ranges contain a starting row and starting column, and an ending row, and ending column.
This object is used in various places to indicate a region within the editor. To better visualize how this works, imagine a rectangle. Each quadrant of the rectangle is analogus to a range, as ranges contain a starting row and starting column, and an ending row, and ending column.
This method returns one of the following numbers: 0 if the two points are exactly equal -1 if p.row is less then the calling range 1 if p.row is greater than the calling range
If the starting row of the calling range is equal to p.row, and: p.column is greater than or equal to the calling range's starting column, this returns 0 Otherwise, it returns -1
If the ending row of the calling range is equal to p.row, and: p.column is less than or equal to the calling range's ending column, this returns 0 Otherwise, it returns 1
This method returns one of the following numbers: 0 if the two points are exactly equal -1 if p.row is less then the calling range 1 if p.row is greater than the calling range, or if isEnd is true.<br/> <br/> If the starting row of the calling range is equal to p.row, and:<br/> p.column is greater than or equal to the calling range's starting column, this returns 0<br/> Otherwise, it returns -1<br/> <br/> If the ending row of the calling range is equal to p.row, and:<br/> p.column is less than or equal to the calling range's ending column, this returns 0` Otherwise, it returns 1
This method returns one of the following numbers: 1 if the ending row of the calling range is equal to row, and the ending column of the calling range is equal to column -1 if the starting row of the calling range is equal to row, and the starting column of the calling range is equal to column
Otherwise, it returns the value after calling compare().
This method returns one of the following numbers: 0 if the two points are exactly equal -1 if p.row is less then the calling range 1 if p.row is greater than the calling range
If the starting row of the calling range is equal to p.row, and: p.column is greater than or equal to the calling range's starting column, this returns 0 Otherwise, it returns -1
If the ending row of the calling range is equal to p.row, and: p.column is less than or equal to the calling range's ending column, this returns 0 Otherwise, it returns 1
-2: (B) is in front of (A), and doesn't intersect with (A) -1: (B) begins before (A) but ends inside of (A) 0: (B) is completely inside of (A) OR (A) is completely inside of (B) +1: (B) begins inside of (A) but ends outside of (A) +2: (B) is after (A) and doesn't intersect with (A) 42: FTW state: (B) ends in (A) but starts outside of (A)
0 if the two points are exactly equal -1 if p.row is less then the calling range 1 if p.row is greater than the calling range, or if isStart is true.
If the starting row of the calling range is equal to p.row, and: p.column is greater than or equal to the calling range's starting column, this returns 0 Otherwise, it returns -1
If the ending row of the calling range is equal to p.row, and: p.column is less than or equal to the calling range's ending column, this returns 0 Otherwise, it returns 1
Returns a string containing the range's row and column information, given like this:
+
Returns a string containing the range's row and column information, given like this:
[start.row/start.column] -> [end.row/end.column]
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/api/renderloop.html b/api/renderloop.html
index 45f68085..26aa4d16 100644
--- a/api/renderloop.html
+++ b/api/renderloop.html
@@ -1,13 +1,3 @@
-
-
-
- RenderLoop - Ace API
\ No newline at end of file
diff --git a/api/search.html b/api/search.html
index deace184..a2e1f5f3 100644
--- a/api/search.html
+++ b/api/search.html
@@ -1,41 +1,35 @@
-
-
-
- Search - Ace API
Searches for options.needle. If found, this method returns the Range where the text first occurs. If options.backwards is true, the search goes backwards in the session.
-
Searches for options.needle. If found, this method returns the Range where the text first occurs. If options.backwards is true, the search goes backwards in the session.
Searches for all occurances options.needle. If found, this method returns an array of Ranges where the text first occurs. If options.backwards is true, the search goes backwards in the session.
-
Searches for all occurances options.needle. If found, this method returns an array of Ranges where the text first occurs. If options.backwards is true, the search goes backwards in the session.
Searches for options.needle. If found, this method returns the Range where the text first occurs. If options.backwards is true, the search goes backwards in the session.
+
Searches for options.needle. If found, this method returns the Range where the text first occurs. If options.backwards is true, the search goes backwards in the session.
Searches for all occurances options.needle. If found, this method returns an array of Ranges where the text first occurs. If options.backwards is true, the search goes backwards in the session.
+
Searches for all occurances options.needle. If found, this method returns an array of Ranges where the text first occurs. If options.backwards is true, the search goes backwards in the session.
If options.regExp is true, this function returns input with the replacement already made. Otherwise, this function just returns replacement. If options.needle was not found, this function returns null.
Required. An object containing all the new search properties
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/api/selection.html b/api/selection.html
index 4b24dcac..bb08acd7 100644
--- a/api/selection.html
+++ b/api/selection.html
@@ -1,133 +1,123 @@
-
-
-
- Selection - Ace API
Contains the cursor position and the text selection of an edit session.
The row/columns used in the selection are in document coordinates representing ths coordinates as thez appear in the document before applying soft wrap and folding.
Selection.moveCursorTo(Number row, Number column, Boolean keepDesiredColumn)
Moves the cursor to the row and column provided. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.
-
Moves the cursor to the row and column provided. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.
+
Selection.moveCursorDown()
Moves the cursor down one row.
+
Moves the cursor down one row.
+
Selection.moveCursorFileEnd()
Moves the cursor to the end of the file.
+
Moves the cursor to the end of the file.
+
Selection.moveCursorFileStart()
Moves the cursor to the start of the file.
+
Moves the cursor to the start of the file.
+
Selection.moveCursorLeft()
Moves the cursor left one column.
+
Moves the cursor left one column.
+
Selection.moveCursorLineEnd()
Moves the cursor to the end of the line.
+
Moves the cursor to the end of the line.
+
Selection.moveCursorLineStart()
Moves the cursor to the start of the line.
+
Moves the cursor to the start of the line.
+
Selection.moveCursorLongWordLeft()
Moves the cursor to the word on the left.
+
Moves the cursor to the word on the left.
+
Selection.moveCursorLongWordRight()
Moves the cursor to the word on the right.
+
Moves the cursor to the word on the right.
+
Selection.moveCursorRight()
Moves the cursor right one column.
+
Moves the cursor right one column.
+
Selection.moveCursorTo(Number row, Number column, Boolean keepDesiredColumn)
Moves the cursor to the row and column provided. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.
+
Moves the cursor to the row and column provided. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.
Selection.moveCursorToScreen(Number row, Number column, Boolean keepDesiredColumn)
Moves the cursor to the screen position indicated by row and column. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.
-
Moves the cursor to the screen position indicated by row and column. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.
+
Selection.moveCursorToScreen(Number row, Number column, Boolean keepDesiredColumn)
Moves the cursor to the screen position indicated by row and column. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.
+
Moves the cursor to the screen position indicated by row and column. If preventUpdateDesiredColumn is true, then the cursor stays in the same column position as its original point.
Required. The position to remove, as a {row, column} object
+
\ No newline at end of file
diff --git a/api/split.html b/api/split.html
index d3d6d206..44c46036 100644
--- a/api/split.html
+++ b/api/split.html
@@ -1,46 +1,36 @@
-
-
-
- Split - Ace API
\ No newline at end of file
diff --git a/api/token_iterator.html b/api/token_iterator.html
index 99d71067..a6de2ef9 100644
--- a/api/token_iterator.html
+++ b/api/token_iterator.html
@@ -1,27 +1,18 @@
-
-
-
- TokenIterator - Ace API
Tokenizes all the items from the current point until the next row in the document. If the current point is at the end of the file, this function returns null. Otherwise, it returns the tokenized string.
-
Tokenizes all the items from the current point until the next row in the document. If the current point is at the end of the file, this function returns null. Otherwise, it returns the tokenized string.
Tokenizes all the items from the current point until the next row in the document. If the current point is at the end of the file, this function returns null. Otherwise, it returns the tokenized string.
+
Tokenizes all the items from the current point until the next row in the document. If the current point is at the end of the file, this function returns null. Otherwise, it returns the tokenized string.
+
\ No newline at end of file
diff --git a/api/tokenizer.html b/api/tokenizer.html
index d7b979cb..5ca489e9 100644
--- a/api/tokenizer.html
+++ b/api/tokenizer.html
@@ -1,18 +1,8 @@
-
-
-
- Tokenizer - Ace API
Returns an object containing two properties: tokens, which contains all the tokens; and state, the current state.
+
Returns an object containing two properties: tokens, which contains all the tokens; and state, the current state.
+
\ No newline at end of file
diff --git a/api/undomanager.html b/api/undomanager.html
index aed3394c..da876c91 100644
--- a/api/undomanager.html
+++ b/api/undomanager.html
@@ -1,33 +1,23 @@
-
-
-
- UndoManager - Ace API
Required. If true, doesn't select the range of where the change occured
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/api/virtual_renderer.html b/api/virtual_renderer.html
index e2f92bfc..b61cb4b5 100644
--- a/api/virtual_renderer.html
+++ b/api/virtual_renderer.html
@@ -1,163 +1,153 @@
-
-
-
- VirtualRenderer - Ace API
Returns the index of the first fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
-
Returns the index of the first fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
Returns the index of the last fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
-
Returns the index of the last fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
Returns the index of the first fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
+
Returns the index of the first fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
Returns the index of the last fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
+
Returns the index of the last fully visible row. "Fully" here means that the characters in the row are not truncated; that the top and the bottom of the row are on the screen.
Ace is a standalone code editor written in JavaScript. Our goal is to create a web based code editor that matches and extends the features, usability and performance of existing native editors such as TextMate, Vim or Eclipse. It can be easily embedded in any web page and JavaScript application. Ace is developed as the primary editor for Cloud9 IDE and the successor of the Mozilla Skywriter (Bespin) Project.
Previously known as “Bespin” or lately “Skywriter” it’s now known as Ace (Ajax.org Cloud9 Editor)! Bespin and Ace started as two independent projects both aiming to build a no compromise code editor component for the web. Bespin started as part of Mozilla Labs and was based on the <canvas> tag, while Ace is the Editor component of the Cloud9 IDE and is using the DOM for rendering. After the release of Ace at JSConf.eu 2010 in Berlin the Skywriter team decided to merge Ace with a simplified version of Skywriter's plugin system and some of Skywriter's extensibility points. All these changes have been merged back to Ace now, which supersedes Skywriter. Both Ajax.org and Mozilla are actively developing and maintaining Ace.
-
-
-
Getting the code
-
-
Ace is a community project. We actively encourage and support contributions. The Ace source code is hosted on GitHub. Ace is a community project. We actively encourage and support contributions. The Ace source code is hosted on GitHub. It is released under the BSD License. This license is very simple, and is friendly to all kinds of projects, whether open source or not. Take charge of your editor and add your favorite language highlighting and keybindings!
-
ACE is an embeddable code editor written in JavaScript.
+ It matches the features and performance of native
+ editors such as Sublime, Vim and TextMate. It can be easily embedded
+ in any web page and JavaScript application. ACE is maintained as the
+ primary editor for Cloud9 IDE
+ and is the successor of the Mozilla Skywriter (Bespin) project.
+
+
/**
+ * In fact, you're looking at ACE right now. Go ahead and play with it!
+ *
+ * We are currently showing off the JavaScript mode. ACE has support for 45
+ * language modes and 24 color themes!
+ */
+
+function add(x, y) {
+ var resultString = "Hello, ACE! The result of your math is: ";
+ var result = x + y;
+ return resultString + result;
+}
+
+var addResult = add(3, 2);
+console.log(addResult);
Looking for a more full-featured demo? Check out the
+ kitchen sink.
+
ACE Features
+
+
Syntax highlighting for over 40 languages (TextMate/Sublime/.tmlanguage files can be imported)
+
Over 20 themes (TextMate/Sublime/.tmtheme files can be imported)
+
Automatic indent and outdent
+
An optional command line
+
Handles huge documents (at last check, 4,000,000 lines is the upper limit)
+
Fully customizable key bindings including vim and Emacs modes
+
Search and replace with regular expressions
+
Highlight matching parentheses
+
Toggle between soft tabs and real tabs
+
Displays hidden characters
+
Drag and drop text using the mouse
+
Line wrapping
+
Code folding
+
Multiple cursors and selections
+
Live syntax checker (currently JavaScript/CoffeeScript/CSS/XQuery)
+
Cut, copy, and paste functionality
+
+
Get the Open-Source Code
+
ACE is a community project. We actively encourage and support
+ contributions! The ACE source code is hosted on GitHub
+ and released under the BSD license ‐
+ very simple and friendly to all kinds of projects, whether open-source
+ or not. Take charge of your editor and add your favorite language
+ highlighting and keybindings!
+
git clone git://github.com/ajaxorg/ace.git
+
History
+
Skywriter/Bespin and ACE started
+ as two independent projects both aiming to build a no compromise
+ code editor component for the web. Bespin started as part of
+ Mozilla Labs and was based on the <canvas> tag, while ACE is
+ the editor component of Cloud9 IDE
+ and uses the DOM for rendering. After the release of ACE at
+ JSConf.eu 2010
+ in Berlin the Skywriter team decided to merge ACE with a simplified
+ version of Skywriter's plugin system and some of Skywriter's
+ extensibility points. All these changes have been merged back to ACE
+ now, which supersedes Skywriter. Both Cloud9 IDE
+ and Mozilla are actively developing and
+ maintaining ACE.
<!DOCTYPE html>
+<html lang="en">
+<head>
+<title>ACE in Action</title>
+<style type="text/css" media="screen">
+ #editor {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ }
+</style>
+</head>
+<body>
+
+<div id="editor">function foo(items) {
+ var x = "All this is syntax highlighted";
+ return x;
+}</div>
+
+<script src="http://d1n0x3qji82z53.cloudfront.net/src-min-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
+<script>
+ var editor = ace.edit("editor");
+ editor.setTheme("ace/theme/monokai");
+ editor.getSession().setMode("ace/mode/javascript");
+</script>
+</body>
+</html>
+
Now check out the How-To Guide for instructions on
+ common operations, such as setting a different language mode or
+ getting the contents from the editor.
+
Loading ACE from a Local URL
+
The above code is sufficient to get started, but if you want to clone host ACE locally you can
+ use one of the pre-packaged versions. Just copy
+ one of src* subdirectories somewhere into your project, or use RequireJS to load the
+ contents of lib/ace as ace:
+
var ace = require("lib/ace");
+
+
+
Working with ACE
+
In all of these examples ACE has been invoked
+ as shown in the embedding guide.
+
Setting Themes
+
Themes are loaded on demand; all you have to do is pass the string name:
ACE supports the importing of .tmtheme and .tmlanguage files for use
+in the editor. The task is accomplished by two simple node scripts.
+
+
Importing Textmate/Sublime Themes
+
To import a .tmtheme file into ACE:
+
+
Go to the tool folder, and run npm install to install required
+dependencies.
+
Drop your .tmtheme file into the tmthemes folder.
+
Update the tmtheme.js file to include your new theme.
+
Run node tmtheme.js
+
+
Your .tmtheme will be converted and placed into lib/ace/theme
+alongside other themes. Note that there’s one more class we’ve added
+that isn’t available in regular Textmate themes, and that’s for
+.ace_indent-guide. This class adds indentation guides for your theme,
+using a base64-encoded png. In general, the dark themes and light themes
+each have their own strings, so you can just copy the class from an
+equivalent theme.
+
+
Importing Textmate/Sublime Languages
+
+
If you’re interested in porting over an existing .tmlanguage file into
+Ace’s mode syntax highlighting, there’s a tool to accomplish that, too.
+
+
+
Go to the tool folder. Run npm install to install required
+dependencies.
+
Drop your .tmlanguage file into the tools folder.
+
Run node tmlanguage.js <path_to_tmlanguage_file>, such as
+node tmlanguage.js MyGreatLanguage.tmlanguage.
+
Your .tmlanguage file will be converted to the best of the converter’s
+ability. It is an understatement to say that the tool is imperfect.
+Probably, this will never be able to be fully autogenerated. In
+.tmlanguage files, for instance, one sees the use of
+lookbehinds/negative lookbehinds, which JavaScript regexps simply do not
+have. There’s a list of other non-determinable items, too:
+
+
+
Deciding which state to transition to
+ While the tool does create new states correctly, it labels them
+with generic terms like state_2, state_10e.t.c.
+
+
Extending modes
+ Many modes say something like include source.c, to mean, “add all
+the rules in C highlighting.” That syntax does not make sense to Ace
+or this tool
+
Rule preference order
+
Gathering keywords
+ Most likely, you’ll need to take keywords from your language file
+and run them through createKeywordMapper()
+
+
Two files are created and placed in lib/ace/mode: one for the language
+mode, and one for the set of highlight rules. You will still need to add
+the code into kitchen_sink.html and demo.js, as well as write any
+tests for the highlighting.
On the left, you'll find a list of all of our currently documented classes. There are plenty more to do, but these represent the "core" set. For more information on how to work with Ace, check out the embedding guide.
+
+
+
+
+
Projects Using ACE
+
ACE is used all over the web in all kinds of production applications. Here is
+ just a small sampling:
+