dart-atom / dart Goto Github PK
View Code? Open in Web Editor NEWA Dart plugin for Atom.
Home Page: http://dart-atom.github.io/dart/
License: BSD 3-Clause "New" or "Revised" License
A Dart plugin for Atom.
Home Page: http://dart-atom.github.io/dart/
License: BSD 3-Clause "New" or "Revised" License
The task should bump the version number and keep the pubspec, package.json, and changelog in sync (#41 (comment)).
(was https://github.com/dart-lang/atom-dartlang-experimental/issues/94)
import 'dart:io' as io;
io.
I don't think that 'BytesBuilders' is the most commonly used class from the static list, or is the right lexical ordering.
I think the problem is that we're not lexically sorting for items of the same level of priority from Analysis Server
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.
Once we're published to atom.io/packages.
Pressing F3 takes me there but the menu item appears to do nothing.
https://github.com/angular/angular uses a custom file layout that does not follow the pub convention. The plugin attempts to analyze the sources and (naturally) produces lots of warnings. This results in a lot of freezing while typing.
git clone [email protected]:angular/angular.git
cd angular
atom .
Attempt editing any dart file, e.g. in modules/angular2/src/transform/di_transformer.dart
.
Is there anything we want to get done before we publish?
Should I expect code completion to work in files in the tool/ dir?
Also, how would I diagnose this? Is there a way to ask if analyzer is alive and if a file is being watched/analyzed?
See https://github.com/travs/atom-package-dependencies. This would currently just be for linter
.
Related to #46. Perhaps as a .dart-project
file or similar.
(was https://github.com/dart-lang/atom-dartlang-experimental/issues/93)
type e.g.
import 'dart:io' as io;
Down arrow.
The completion dialog is still showing after the ';' which means that the down arrow, or an enter is swallowed by that dialog.
I'm going to wear out the esc key on my keyboard pretty quickly at this rate.
We should add a flush()
method to buffer updaters, so that a completion request operates on the very latest changes.
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';
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.
(was https://github.com/dart-lang/atom-dartlang-experimental/issues/60)
Shutdown
Reset
Ring buffer for log and diagnostics
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.
List<String> = [
"foo",
]
Hit enter after "foo",
Expect it to indent 2 spaces as per "foo". Be sad that it indents 0 spaces.
Sky hits this a lot due to our new Widget(children: [ pattern where we list lots of child widgets on separate lines.
It would be nice if there was a project option to get warnings / errors from packages or sdk sources.
I'd love to make it easy for users to send us feedback (issues, bugs, enhancements).
Maybe under Packages / Dart ?
One thing I really miss from IDEs is a keyboard shortcut to jump back and forth in code navigations.
For example:
In WebStorm, it was Cmd-[
if I remember correctly.
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. :)
(was https://github.com/dart-lang/atom-dartlang-experimental/issues/21)
Within a dartdoc comment, if the line starts with continue the code block.
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?
Open up "analysis server status".
How to dismiss?
Esc doesn't work. Clicking out of the dialog doesn't work.
"cmd-shift-p and then esc" does it :)
(was https://github.com/dart-lang/atom-dartlang-experimental/issues/4)
On Linux ctrl+click on a type or variable doesn't jump me to the declaration. F3 does.
PR radicaled/dart-tools#97 added highlighting for the on
keyword.
Clone the dart/sdk repo.
Open a single Dart file.
Leave Atom for 5 minutes.
Expected: tree browsing is fast
Actual: tree browsing is very slow.
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.
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) {"
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.
I think it's best not to break default functionality. A better keybinding might be ctrl-alt-b
, this is what the atom-beautify package uses by default.
(was https://github.com/dart-lang/atom-dartlang-experimental/issues/88)
We should show a tooltip on hover, instead of a toast like notification on F1.
Launch atom (right after upgrading from previosu version of atom and installing dartlang)
Atom Version: 1.0.2
System: Ubuntu 14.04
Thrown From: dartlang package, v0.2.2
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)
{
"core": {}
}
# User
dartlang, v0.2.2
# Dev
No dev packages
We need to keep our changelog updated - it's viewable from the preference page.
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!
(was https://github.com/dart-lang/atom-dartlang-experimental/issues/63)
This could either be done directly or through dart_style
(was https://github.com/dart-lang/atom-dartlang-experimental/issues/20)
Syntax highlighting of code blocks in dartdoc comments (things indented by the comment chars plus ).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.