Giter Club home page Giter Club logo

chromedeveditor's Introduction

Chrome Dev Editor (NO LONGER IN ACTIVE DEVELOPMENT)

Chrome Dev Editor (CDE) is a developer tool for building apps on the Chrome platform - Chrome Apps and Web Apps, in JavaScript or Dart. CDE is built as a Chrome App written in Dart and uses Polymer. CDE runs on Windows, Mac, Linux, and Chrome OS! CDE supports Git, Polymer, and mobile development.

Note: Chrome Dev Editor is no longer being actively developed. We'll do our best to merge your pull requests.

Screenshot

Get Started

You can learn more about CDE workflows including Chrome Apps (including Mobile), Web Apps (JavaScript and Dart), Polymer and Git.

Google I/O 2014

Check out our I/O talk about building apps on the Chrome platform and how we built CDE. You can also try out the I/O codelabs that use the Chrome Dev Editor.

FAQ

Read our FAQ to find out about CDE features.

chromedeveditor's People

Contributors

adam-singer avatar albualexandru avatar andersoyvind avatar beaufortfrancois avatar bshepherdson avatar camfitz avatar cleercode avatar devoncarew avatar dinhvh avatar ebidel avatar gaurave avatar ikarienator avatar jarrodek avatar keertip avatar mralext20 avatar ovangle avatar rginda avatar rnirnber avatar rpaquay avatar scheglov avatar scheib avatar sethladd avatar sowbug avatar srsaroop avatar sunglim avatar terrylucas avatar umop avatar ussuri avatar yjbanov avatar zoechigist avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chromedeveditor's Issues

Unable to compile spark

./grind compile throws the following stack trace

Uncaught Error: The null object does not have a getter 'path'.

NoSuchMethodError : method not found: 'path'
Receiver: null
Arguments: []
Stack Trace:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:20:25)
#1      joinFile (package:grinder/grinder_files.dart:143:26)
#2      populateSdk (file:///usr/local/google/home/grv/new-spark/spark/tool/grind.dart:330:33)
#3      GrinderTask.execute (package:grinder/grinder.dart:197:26)
#4      Grinder._executeTask (package:grinder/grinder.dart:325:30)
#5      Grinder.start.<anonymous closure> (package:grinder/grinder.dart:300:28)
#6      Future.forEach.nextElement.<anonymous closure> (dart:async/future.dart:74:32)
#7      Future.Future.sync (dart:async/future.dart:17:31)
#8      Future.forEach.nextElement (dart:async/future.dart:74:13)
#9      _Future._propagateToListeners.<anonymous closure> (dart:async/future_impl.dart:264:55)
#10     _ZoneBase._runInZone (dart:async/zone.dart:82:17)
#11     _ZoneBase._runUnguarded (dart:async/zone.dart:102:22)
#12     _ZoneBase.executeCallback (dart:async/zone.dart:58:23)
#13     _Future._propagateToListeners (dart:async/future_impl.dart:259:37)
#14     _Future._complete (dart:async/future_impl.dart:180:26)
#15     _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:207:16)
#16     _asyncRunCallback (dart:async/event_loop.dart:9:15)
#17     _createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:8:13)
#18     _Timer._createTimerHandler._handleTimeout (timer_impl.dart:95:21)
#19     _Timer._createTimerHandler.<anonymous closure> (timer_impl.dart:111:23)
#20     _ReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:81:92)
#21     joinFile (package:grinder/grinder_files.dart:143:26)
#22     populateSdk (file:///usr/local/google/home/grv/new-spark/spark/tool/grind.dart:330:33)
#23     GrinderTask.execute (package:grinder/grinder.dart:197:26)
#24     Grinder._executeTask (package:grinder/grinder.dart:325:30)
#25     Grinder.start.<anonymous closure> (package:grinder/grinder.dart:300:28)
#26     Future.forEach.nextElement.<anonymous closure> (dart:async/future.dart:74:32)
#27     Future.Future.sync (dart:async/future.dart:17:31)
#31     Future.forEach.nextElement (dart:async/future.dart:74:13)
#32     _Future._propagateToListeners.<anonymous closure> (dart:async/future_impl.dart:264:55)
#33     _ZoneBase._runInZone (dart:async/zone.dart:82:17)
#34     _ZoneBase._runUnguarded (dart:async/zone.dart:102:22)
#35     _ZoneBase.executeCallback (dart:async/zone.dart:58:23)
#36     _Future._propagateToListeners (dart:async/future_impl.dart:259:37)
#37     _Future._complete (dart:async/future_impl.dart:180:26)
#38     _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:207:16)
#39     _asyncRunCallback (dart:async/event_loop.dart:9:15)
#40     _createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:8:13)
#41     _Timer._createTimerHandler._handleTimeout (timer_impl.dart:95:21)
#42     _Timer._createTimerHandler.<anonymous closure> (timer_impl.dart:111:23)
#43     _ReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:81:92)


Unhandled exception:
The null object does not have a getter 'path'.

NoSuchMethodError : method not found: 'path'
Receiver: null
Arguments: []
#0      _DefaultZone.handleUncaughtError.<anonymous closure> (dart:async/zone.dart:132:7)
#1      _asyncRunCallback (dart:async/event_loop.dart:9:15)
#2      _asyncRunCallback (dart:async/event_loop.dart:13:7)
#3      _createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:8:13)
#4      _Timer._createTimerHandler._handleTimeout (timer_impl.dart:95:21)
#5      _Timer._createTimerHandler._handleTimeout (timer_impl.dart:103:7)
#6      _Timer._createTimerHandler._handleTimeout (timer_impl.dart:103:7)
#7      _Timer._createTimerHandler.<anonymous closure> (timer_impl.dart:111:23)
#8      _ReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:81:92)

test against Chrome/dart2js

We're testing against Dartium now. We should also compile to javascript, and test against that (we're deploying to dart2js, so we want to make sure that that mode is tested).

build: archive and release process should create a marker file instead of modifying the sources

When building for release or archiving the application.
When we're in non-test mode, the build process should add in the resources a json file (or an empty file).
It would be some kind of configuration file for the application.
It would be check for presence of this file in the resources at runtime to change the behavior to be in test mode or not.

It would avoid modification of the source files (html file) when building for non-test.

./grind compile is broken

Here's the error logs I'm getting with HEAD.

  dart2js web/spark.html_bootstrap.dart --out=web/spark.html_bootstrap.dart.js
  web/spark.html_bootstrap.dart:7:8: Error: Can't read 'file:///Users/dvh/Spark/upstream/spark/build/polymer-build/web/spark_test.dart' (Error reading 'web/spark_test.dart' (OS Error: No such file or directory, errno = 2)).
  import 'spark_test.dart' as i1;
         ^^^^^^^^^^^^^^^^^

The full log:

./grind compile
grinder running [init] [packages] [sdk] [compile]

[init]

[packages]

[sdk]

[compile]
  prepare build


Done! All files written to "polymer-build"
  polymer build done


  dart2js web/spark.html_bootstrap.dart --out=web/spark.html_bootstrap.dart.js
  web/spark.html_bootstrap.dart:7:8: Error: Can't read 'file:///Users/dvh/Spark/upstream/spark/build/polymer-build/web/spark_test.dart' (Error reading 'web/spark_test.dart' (OS Error: No such file or directory, errno = 2)).
  import 'spark_test.dart' as i1;
         ^^^^^^^^^^^^^^^^^
  web/packages/path/path.dart:49:23: Hint: Can't find 'dart.io.Directory.current' in the current library.
  Did you forget to add an import?
  @MirrorsUsed(targets: 'dart.dom.html.window, '
                        ^^^^^^^^^^^^^^^^^^^^^^^^^
  web/packages/path/path.dart:49:23: Hint: Can't find 'dart.io.Platform.operatingSystem' in the current library.
  Did you forget to add an import?
  @MirrorsUsed(targets: 'dart.dom.html.window, '
                        ^^^^^^^^^^^^^^^^^^^^^^^^^
  web/packages/custom_element/custom_element.dart:628:3: Warning: Cannot resolve 'scheduleMicrotask'.
    scheduleMicrotask(() {
    ^^^^^^^^^^^^^^^^^
  web/packages/polymer/src/declaration.dart:491:34: Hint: Using 'MirrorSystem.getName' may result in larger output.
        String name = MirrorSystem.getName(method.simpleName);
                                   ^^^^^^^
  web/packages/polymer/src/declaration.dart:273:24: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
          var property = new Symbol(attr);
                         ^^^
  web/packages/polymer/src/declaration.dart:582:47: Hint: Using 'MirrorSystem.getName' may result in larger output.
    var setterName = new Symbol('${MirrorSystem.getName(getter.simpleName)}=');
                                                ^^^^^^^
  web/packages/polymer/src/declaration.dart:582:20: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
    var setterName = new Symbol('${MirrorSystem.getName(getter.simpleName)}=');
                     ^^^
  web/packages/polymer/src/declaration.dart:558:28: Hint: Using 'MirrorSystem.getName' may result in larger output.
          props[MirrorSystem.getName(field.simpleName)] = field;
                             ^^^^^^^
  web/packages/polymer/src/declaration.dart:571:30: Hint: Using 'MirrorSystem.getName' may result in larger output.
            props[MirrorSystem.getName(getter.simpleName)] = getter;
                               ^^^^^^^
  web/packages/observe/src/path_observer.dart:49:47: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
          _segments.add(index != null ? index : new Symbol(segment));
                                                ^^^
  web/packages/polymer_expressions/eval.dart:199:20: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
        var symbol = new Symbol(name);
                     ^^^
  web/packages/polymer_expressions/eval.dart:427:26: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
              var symbol = new Symbol(_expr.value);
                           ^^^
  web/packages/polymer_expressions/eval.dart:550:22: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
          var symbol = new Symbol(_expr.method);
                       ^^^
  web/packages/observe/src/compound_binding.dart:102:5: Warning: No method named 'scheduleMicrotask' in class 'CompoundBinding'.
      scheduleMicrotask(resolve);
      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  web/packages/observe/src/list_path_observer.dart:56:5: Warning: No method named 'scheduleMicrotask' in class 'ListPathObserver'.
      scheduleMicrotask(_reduce);
      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  web/packages/observe/src/change_notifier.dart:87:7: Warning: No method named 'scheduleMicrotask' in class 'ChangeNotifierMixin'.
        scheduleMicrotask(deliverChanges);
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  web/packages/observe/src/observable_list.dart:184:7: Warning: No method named 'scheduleMicrotask' in class 'ObservableList'.
        scheduleMicrotask(deliverChanges);
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  web/packages/mdv/src/template.dart:77:5: Warning: No method named 'scheduleMicrotask' in class '_TemplateExtension'.
      scheduleMicrotask(_setModel);
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  web/packages/polymer_expressions/eval.dart:139:25: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
      reflect(o).setField(new Symbol(property), value);
                          ^^^
  web/packages/polymer/src/instance.dart:775:35: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
          ctrlr.xtag.dispatchMethod(new Symbol(name), [event, detail, node]);
                                    ^^^
  web/packages/polymer/src/instance.dart:640:22: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
        dispatchMethod(new Symbol(h), [event, detail, this]);
                       ^^^
  web/packages/polymer/src/instance.dart:883:34: Hint: Using 'MirrorSystem.getName' may result in larger output.
          super(node, MirrorSystem.getName(property), model, path) {
                                   ^^^^^^^
  web/packages/polymer/src/instance.dart:360:37: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
      final propValue = self.getField(new Symbol(name)).reflectee;
                                      ^^^
  web/packages/mdv/src/input_bindings.dart:165:9: Warning: No method named 'scheduleMicrotask' in class '_SelectedIndexBinding'.
          scheduleMicrotask(delaySetSelectedIndex);
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  web/packages/mdv/src/input_bindings.dart:171:5: Warning: No method named 'scheduleMicrotask' in class '_SelectedIndexBinding'.
      scheduleMicrotask(delaySetSelectedIndex);
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  web/packages/polymer_expressions/eval.dart:214:20: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
        var symbol = new Symbol(name);
                     ^^^
  web/packages/polymer_expressions/eval.dart:173:20: Hint: Using "new Symbol' may result in larger output.
  Use 'const Symbol' if possible.
        var symbol = new Symbol(name);
                     ^^^
  Error: Compilation failed.
Uncaught Error: GrinderException: dart2js failed with a return code of 1
Stack Trace:
#0      runProcess (package:grinder/grinder_utils.dart:83:5)
#1      dart2JSBuild (file:///Users/dvh/Spark/upstream/spark/tool/grind.dart:122:13)
#2      compile.<anonymous closure> (file:///Users/dvh/Spark/upstream/spark/tool/grind.dart:142:17)
#3      _Future._propagateToListeners.<anonymous closure> (dart:async/future_impl.dart:449)
#5      _rootRun (dart:async/zone.dart:531)
#6      _ZoneDelegate.run (dart:async/zone.dart:344)
#7      _CustomizedZone.run (dart:async/zone.dart:489)
#8      _Future._propagateToListeners (dart:async/future_impl.dart:441)
#9      _Future._complete (dart:async/future_impl.dart:298)
#10     Future.forEach.nextElement (dart:async/future.dart:246)
#11     _Future._propagateToListeners.<anonymous closure> (dart:async/future_impl.dart:449)
#12     _rootRun (dart:async/zone.dart:531)
#13     _ZoneDelegate.run (dart:async/zone.dart:344)
#14     _CustomizedZone.run (dart:async/zone.dart:489)
#15     _Future._propagateToListeners (dart:async/future_impl.dart:441)
#16     _Future._complete (dart:async/future_impl.dart:298)
#17     _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:354)
#18     _asyncRunCallback (dart:async/event_loop.dart:18)
#19     _createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:11)
#20     _Timer._createTimerHandler._handleTimeout (timer_impl.dart:151)
#21     _Timer._createTimerHandler.<anonymous closure> (timer_impl.dart:168)
#22     _ReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:113)


Unhandled exception:
GrinderException: dart2js failed with a return code of 1
#0      _rootHandleUncaughtError.<anonymous closure> (dart:async/zone.dart:526)
#1      _asyncRunCallback (dart:async/event_loop.dart:18)
#2      _asyncRunCallback (dart:async/event_loop.dart:21)
#3      _createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:11)
#4      _Timer._createTimerHandler._handleTimeout (timer_impl.dart:151)
#5      _Timer._createTimerHandler._handleTimeout (timer_impl.dart:159)
#6      _Timer._createTimerHandler._handleTimeout (timer_impl.dart:159)
#7      _Timer._createTimerHandler.<anonymous closure> (timer_impl.dart:168)
#8      _ReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:113)

Behavior on launch of the application

For the current state where we link the left panel to the real FS.

  • When there's no files, it should focus the editor.
  • When there's files, we select the first file.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.