Giter Site home page Giter Site logo

dart's People

Contributors

4stern avatar abarth avatar agudulin avatar averrin avatar cdavidjean avatar dantup avatar devoncarew avatar gitter-badger avatar ianloic avatar jacehensley-wf avatar jason-simmons avatar johnmccutchan avatar keertip avatar lukechurch avatar michaelsanford avatar mit-mit avatar passsy avatar pierrefontaine avatar radicaled avatar rkirsling avatar sethladd avatar steelstyle avatar thso 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

dart's Issues

No Settings button immediately after install

Immediately after installing the package I do not see a Settings button. See screenshot.

Restarting Atom fixes this.

I installed emmet, linter, and dartlang. Then I navigated from Install to Packages. Then I took the screenshot.

no dartlang settings button immediately after install

Feedback and diagnostics if analysis server crashes or spins

Let's signal to the user if the analysis server crashed (or is spinning at 100%), so the user can restart. Or, let's automatically restart AS and let the user know.

What kind of heartbeat should we send? How best to know when we should restart the AS?

Also, it might be helpful to send a ping to the AS and get a dump from the observatory, which we can then give to the user to include in their bug report. We have an easy single HTTP GET to get stack traces from all isolates in the VM.

editor:auto-indent mis-indents string continuation

A string continuation doesn't indent deeper than its containing statement:

var foo = 'line one'
'line two';  // run editor:auto-indent on this line

dartfmt indents the second line +4, like this:

var foo = 'line one'
    'line two';

editor:auto-indent mis-indents constructor initializer list

In the following program:

class Foo {
  var _bar;

  Foo(var fjkldsjflkdjfkldsjfdlsjfkldsjlkfjdslkfjdsjfdsjfkdjfjdlfjdsklfjdklfff)
  : _bar = 7;
}

If I invoke editor:auto-indent on the ": _bar = 7;" line, the indentation doesn't change. I would prefer to have it double-indented (+4 spaces) like dartfmt does.

Move the atom interop code to a separate package

Move the atom interop code to a separate package, once the interop code is mature. Perhaps a few weeks? We're only exposing a few methods a week now, and occasionally bug fixes. That will taper off going forward.

Jump back and forth between navigations

One thing I really miss from IDEs is a keyboard shortcut to jump back and forth in code navigations.

For example:

  • jump to definition with the mouse
  • jump back to previous location with a keyboard

In WebStorm, it was Cmd-[ if I remember correctly.

Robustness: Heathchecks and restarts for analyzer

If analyzer gets stuck, let's restart it for our users.

Might need something like a health check and heuristics for "analyzer is dead, jim" and restart.

Users shouldn't have to diagnose why their editor is slow or broken. :)

linter markers sometimes wrong

Write this code:

void main() {
  return;
  if (true) { // dead code marker should be here.
  }
}

then change it to this:

void main() {
  return;


  if (true) {
  } // dead code marker shows up here.

possibly an issue with linter 1.12?

Analytics

(was https://github.com/dart-lang/atom-dartlang-experimental/issues/4)

  • display a toast when a user gets a version of the plugin that has analytics, informing them that analytics is turned on, and that they can configure it in the plugin settings.
    • "The Dart plugin anonymously reports feature usage statistics and basic crash reports to improve the tool over time. Please visit the plugin's setting page to configure this behavior."
  • add a settings option to toggle analytics. Mention the privacy policy and ToS.
  • don't include the analytics UA code in the source code. Instead, inject it into the compiled version of the app, during a build process.
  • ensure the privacy policy and ToS are linked from the README

_analysisServerWrapper.restart() leaves the server in a bad state

You can't shut down the server, start it, shut it down, and start it again successfully. I think the issue is with restart() not recycling some variables properly. Also possibly because the Future<int> get whenDisposed => _processCompleter.future; getter returns a single event, when it now could be disposed (shut down) several times.

editor:auto-indent mis-indents "} else {"

In a program like this:

main() {
  if (true) {
    foo;
  } else {
    bar;
  }
}

The editor:auto-indent command will mis-indent the "} else {" line.

I've also seen it mis-indent lines like "} else if (x == 3) {"

Error when activating plugin

screen shot 2015-07-09 at 4 40 38 pm

Stack trace:

Error: Unable to watch path
    at Error (native)
    at HandleWatcher.start (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/pathwatcher/lib/main.js:66:29)
    at new HandleWatcher (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/pathwatcher/lib/main.js:30:12)
    at new PathWatcher (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/pathwatcher/lib/main.js:120:30)
    at Object.exports.watch (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/pathwatcher/lib/main.js:179:12)
    at Directory.module.exports.Directory.subscribeToNativeChangeEvents (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/pathwatcher/lib/directory.js:334:109)
    at Directory.module.exports.Directory.willAddSubscription (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/pathwatcher/lib/directory.js:95:14)
    at Directory.willAddSubscription (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/pathwatcher/lib/directory.js:3:61)
    at Directory.module.exports.Directory.onDidChange (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/pathwatcher/lib/directory.js:89:12)
    at JsObject.dart.JsObject.callMethod$2 (/Users/sethladd/.atom/packages/dartlang/web/entry.dart.js:26052:44)

On version 0.2.2.

Uncaught Uncaught Error: Error: Unable to watch pathStack Trace:Error: Unable to watch path ...

Launch atom (right after upgrading from previosu version of atom and installing dartlang)

  1. ...
  2. ...

Atom Version: 1.0.2
System: Ubuntu 14.04
Thrown From: dartlang package, v0.2.2

Stack Trace

Uncaught Uncaught Error: Error: Unable to watch path
Stack Trace:
Error: Unable to watch path
at Error (native)
at HandleWatcher.start (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/main.js:66:29)
at new HandleWatcher (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/main.js:30:12)
at new PathWatcher (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/main.js:120:30)
at Object.exports.watch (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/main.js:179:12)
at Directory.module.exports.Directory.subscribeToNativeChangeEvents (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/directory.js:334:109)
at Directory.module.exports.Directory.willAddSubscription (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/directory.js:95:14)
at Directory.willAddSubscription (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/directory.js:3:61)
at Directory.module.exports.Directory.onDidChange (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/directory.js:89:12)
at JsObject.dart.JsObject.callMethod$2 (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:26052:44)

At /usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:11309

Uncaught Error: Error: Unable to watch path
Stack Trace:
Error: Unable to watch path
    at Error (native)
    at HandleWatcher.start (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/main.js:66:29)
    at new HandleWatcher (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/main.js:30:12)
    at new PathWatcher (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/main.js:120:30)
    at Object.exports.watch (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/main.js:179:12)
    at Directory.module.exports.Directory.subscribeToNativeChangeEvents (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/directory.js:334:109)
    at Directory.module.exports.Directory.willAddSubscription (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/directory.js:95:14)
    at Directory.willAddSubscription (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/directory.js:3:61)
    at Directory.module.exports.Directory.onDidChange (/usr/share/atom/resources/app.asar/node_modules/pathwatcher/lib/directory.js:89:12)
    at JsObject.dart.JsObject.callMethod$2 (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:26052:44)
    at dart.wrapException (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:12149:17)
    at _rootHandleUncaughtError_closure.dart._rootHandleUncaughtError_closure.call$0 (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:21783:17)
    at _AsyncCallbackEntry.dart._AsyncCallbackEntry.callback$0 (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:20321:30)
    at dart._microtaskLoop (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:19081:12)
    at dart._microtaskLoopEntry (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:19087:11)
    at TimerImpl_internalCallback0.dart.TimerImpl_internalCallback0.call$0 (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:11655:35)
    at invokeClosure_closure.dart.invokeClosure_closure.call$0 (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:13146:41)
    at _IsolateContext.dart._IsolateContext.eval$1 (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:11300:25)
    at dart._callInIsolate (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:10931:28)
    at dart.invokeClosure (/usr/local/google/home/eseidel/.atom/packages/dartlang/web/entry.dart.js:12284:18)

Commands

Config

{
  "core": {}
}

Installed Packages

# User
dartlang, v0.2.2

# Dev
No dev packages

New syntax: null-aware operators

Hi!

New syntax is coming in 1.12. Here's some samples:

print(exp ?? other); // prints other if exp is null

obj ??= 'hi';  // sets obj to hi if obj is null

obj?.method(); // calls method if obj is not null

The 1.12-dev SDK supports this now, if you want to try it out.

Hope that helps!

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.