ace 0.7.2

  • Installing
  • Versions
  • 0


Dart language bindings for the Ace code editor.

Ace.dart uses the MIT license as described in the LICENSE file, and follows semantic versioning.


This package maintains a copy of the latest ace-builds src-min-noconflict governed by its own LICENSE.

The ace-builds occur approximately once per month, and the version currently tested by this package is maintained in the version string metadata. For example, in ace.dart version 0.0.4+9.11.2013 we test against a copy of ace-builds version 9.11.2013.

The version of ace.js in this package is for testing and examples only. It is no longer included in the lib/ directory to provide the most flexibility to applications. You are responsible for including a version of ace.js in your application's html:

<script type="text/javascript" charset="utf-8" src="path/to/your/ace.js"></script>

As long as the version of ace.js you use is compatible (e.g. src-noconflict or src-min-noconflict), the Dart wrapper code should continue to function.

Ace.dart Changes


  • No longer maintained.


  • Migrated tests to the unittest package.
  • Removed the ace.pure library.


  • Updated to ace-builds version 03.04.15.


  • Updated to ace-builds version 03.03.15.


  • Updated to ace-builds version 24.02.15.
  • Removed the ace-builds js files from the lib/ directory. Many users will not require all of the files (themes, modes, etc...) for their application and currently there is no easy way to exclude these files from an application built with pub build. Also, some users may need or want to use their own version of ace.js to pull in bug fixes or other modifications. It was therefore decided to use the latest ace-builds in this package for the tests and examples only. Each application is now responsible for including its own copy of the Javascript files it desires.


  • Suppressed a console warning introduced by ace-builds 20.12.14; it appears that "Automatically scrolling cursor into view after selection change" is deprecated functionality and will be disabled in the next build of ace.js.


  • Updated to ace-builds version 20.12.14.
  • Added the showFoldWidgets getter/setter to Editor.
  • Added the isClean getter and the markClean method to UndoManager.


  • Updated to ace-builds version 08.11.14.
  • Started wiki documentation. (@jackd)
  • Added annotations and token information to the kitchen_sink example and a new custom_mode_example. (@jackd)


  • Updated to ace-builds version 09.10.2014.


  • Added the lineHeight getter and the textToScreenCoordinates method to VirtualRenderer.


  • Updated to ace-builds version 20.09.2014.
  • Fixed a stack overflow error when calling some getters on a loaded Theme.


  • Updated to ace-builds version 17.08.2014.


  • Added .glsl, .frag, and .vert to the default mode extension map.


  • Updated to ace-builds version 07.09.2014.
  • Added a gh-pages branch to host the live demo application and added a link to the demo in the README.


  • Updated to ace-builds version 07.01.2014.
  • Added the Config abstract class and the ace.config top-level getter.


  • Added .cmd, .diff, .haml, .jade, and .proto to the extension map used by the new Mode.forFile factory.
  • Removed the Delta subtypes and made Delta a concrete class as an optimization; this is only a breaking change in the case where client code made use of the runtimeType of a delta (e.g. delta as InsertLinesDelta).


  • Removed API docgen to allow to automatically link to the correct API docs for each version at


  • Updated to ace-builds version 06.09.2014.
  • Added .vala to the extension map used by the new Mode.forFile factory.
  • Changed the return type of screenLength, screenWidth, scrollLeft and scrollTop from int to num in EditSession to support sub-pixel precision.
  • Added the scrollToLine and scrollToRow methods to Editor.
  • Added the getTokenAt and getTokens methods to EditSession and the Token class.
  • Added linking extension support; multiselect must be turned off: (@umop)
editor.setOptions({'enableMultiselect' : false, 'enableLinking' : true});
  • Changed the return type of Disposable.dispose from void to Future.
  • Changed the implementation regarding event streams of proxy objects such that they are created lazily and only attached to the underlying JavaScript object when there is an active stream subscription. This is a significant performance enhancement both in terms of compiled application code size and execution.


  • Added the LanguageTools, AutoCompleter and Completion classes to support the ace/ext/language_tools extension. An instance of LanguageTools is now returned by a call to require('ace/ext/language_tools').


  • Updated to ace-builds version 04.11.2014.
  • Added the lastVisibleRow getter to Editor and VirtualRenderer.
  • Added .htm to the extension map used by the new Mode.forFile factory.


  • Added the commands getter and the execCommand method to Editor.
  • Added the Command and CommandManager classes.
  • Updated to ace-builds version 03.08.2014.


  • Fixed a bug in the Editor.onPaste event stream that arrived with a change in ace-builds 02.28.2014.
  • Added the paste method to Editor.
  • Updated API documentation generation to use the new docgen tool.
  • Added .as, .ini, .pl, .pm, and .sass to the extension map used by the new Mode.forFile factory.


  • Updated to ace-builds version 02.28.2014.
  • Added the fadeFoldWidgets getter / setter to Editor.
  • Added the getLineRange method to Selection.


  • Changed the data carried by a number of 'empty' streams from this to null for performance reasons.


  • Added the wrapLimit setter to EditSession.
  • Replaced the EditSession.wrapLimitRange getter with the getWrapLimitRange method.


  • Added an OptionsProvider implementation to the EditSession.
  • Fixed some bugs in Mode proxy objects.


  • Decoupled the Implementation from the ace library by adding an ace.proxy library; the library user is responsible for setting the implementation variable prior to making any other calls to the ace library. For example:
import 'package:ace/ace.dart' as ace;
import 'package:ace/proxy.dart';

main() {
  ace.implementation = ACE_PROXY_IMPLEMENTATION;


  • Replaced the EditSession.breakpoints getter with the getBreakpoints method.
  • Split EditSession.annotations getter/setter into the getAnnotations and setAnnotations methods; this matches ace.js and helps to clarify their separate behavior.
  • Added the static Mode.extensionMap getter; the user may modify this map to configure the new Mode.forFile factory.
  • Added the new Mode.named factory, name getter, and enumeration constants to Mode.
  • Added gotoLine and the onChangeSelection event stream to Editor.
  • Added the Marker class and expose the onChangeBackMarker, onChangeFrontMarker, addMarker, getMarkers and removeMarker members on the EditSession class.
  • Added the Fold, FoldLine, Placeholder and RangeList classes.
  • Added the Folding abstract class and have EditSession implement it.
  • Added the onChangeFold event stream to EditSession.


  • Updated to ace-builds version 01.08.2014.


  • Added the UndoManagerBase class and implemented the EditSession.undoManager setter; the argument to this setter must be an object derived from UndoManagerBase.
  • Optimized some list and map conversions on the dart:js boundary.
  • Added the Annotation class and expose the onChangeAnnotation, annotations, and clearAnnotations members on the EditSession class.
  • Added a new example/annotations.


  • Added containerElement and mouseEventTarget getters to the VirtualRenderer.
  • Added .lua, .hs, .hx, .scala, and .svg to the extension map used by the new Mode.forFile factory.


  • Updated to ace-builds version 12.02.2013.
  • Added showGutter, printMarginColumn, and an OptionsProvider implementation to the VirtualRenderer.


  • Added the KeyBinding and KeyboardHandler abstract classes and expose the Editor.keyBinding getter and the Editor.keyboardHandler getter / setter.


  • Added a new example/autocomplete.
  • Added the require top-level function.
  • Added the OptionsProvider abstract class and have Editor implement it.


  • Updated pubspec for Dart 1.0 release as requested.


  • Updated to ace-builds version 10.28.2013.
  • Updated to SDK 0.8.10_r29803.
  • Added documentation and test coverage to a number of public methods; please consult the commit history for details.


  • Updated to ace-builds version 10.21.2013.
  • Fixed a couple of bugs from the move to dart:js.


  • Updated to SDK 0.8.5_r28990.
  • Removed dependency on js package and moved code to use the dart:js library instead.


  • Added several public methods to the Range class with documentation and test coverage.
  • Changed the noClip parameter of Anchor.setPosition to a named optional parameter clip which defaults to true.
  • Changed the dontSelect parameter of UndoManager.undo and redo to a named optional parameter select which defaults to true.
  • Changed the cursorPos parameter of Editor.setValue to an optional parameter cursorPosition which defaults to 0 (select all) and documented the method.
  • Changed the times parameter of the Editor methods navigateDown, navigateLeft, navigateRight, and navigateUp to be optional with default value of 1.


  • Pub doesn't seem to like a 0 in the version metadata just about anywhere. This is really a pub bug but I'm going to drop the 0 to work around the issue.


  • Updated to ace-builds version 10.07.2013.
  • Changed the text parameter of the Document constructor from an optional to a named optional.


  • Updated to SDK 0.7.6_r28108.
  • Added documentation and test coverage to a number of public methods; please consult the commit history for details.
  • Fixed Editor.onChangeSession stream type to EditSessionChangeEvent thanks to a bug fix in the js-interop package.


  • Updated to SDK 0.7.5_r27776.
  • Added documentation and test coverage to a number of public methods; please consult the commit history for details.


  • Removed leading 0 from the version metadata string as it was being stripped when publishing and that was causing issues.
  • Added LICENSE and README for ace.js to lib/src/js.


  • Initial version.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  ace: ^0.7.2

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:ace/ace.dart';
Version Uploaded Documentation Archive
0.7.2 May 21, 2016 Go to the documentation of ace 0.7.2 Download ace 0.7.2 archive
0.7.1+3.4.15 May 20, 2016 Go to the documentation of ace 0.7.1+3.4.15 Download ace 0.7.1+3.4.15 archive
0.7.0+3.4.15 Nov 24, 2015 Go to the documentation of ace 0.7.0+3.4.15 Download ace 0.7.0+3.4.15 archive
0.6.2+3.4.15 Apr 4, 2015 Go to the documentation of ace 0.6.2+3.4.15 Download ace 0.6.2+3.4.15 archive
0.6.1+3.3.15 Mar 7, 2015 Go to the documentation of ace 0.6.1+3.3.15 Download ace 0.6.1+3.3.15 archive
0.6.0+24.2.15 Feb 25, 2015 Go to the documentation of ace 0.6.0+24.2.15 Download ace 0.6.0+24.2.15 archive
0.5.10+20.12.14 Dec 21, 2014 Go to the documentation of ace 0.5.10+20.12.14 Download ace 0.5.10+20.12.14 archive
0.5.9+20.12.14 Dec 20, 2014 Go to the documentation of ace 0.5.9+20.12.14 Download ace 0.5.9+20.12.14 archive
0.5.8+8.11.14 Nov 9, 2014 Go to the documentation of ace 0.5.8+8.11.14 Download ace 0.5.8+8.11.14 archive
0.5.7+9.10.2014 Oct 11, 2014 Go to the documentation of ace 0.5.7+9.10.2014 Download ace 0.5.7+9.10.2014 archive

All 46 versions...

Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

The package version is not analyzed, because it does not support Dart 2. Until this is resolved, the package will receive a health and maintenance score of 0.

Analysis issues and suggestions

Support Dart 2 in pubspec.yaml.

The SDK constraint in pubspec.yaml doesn't allow the Dart 2.0.0 release. For information about upgrading it to be Dart 2 compatible, please see

Maintenance issues and suggestions

Running dartdoc failed. (-10 points)

Make sure dartdoc runs without any issues.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.0.0 <2.0.0