dart-archive/angular_analyzer_plugin

Not working?

brianegan opened this issue · 21 comments

Hey hey :)

I'd love to use this tool, but for some reason it's not quite working for me. I'm not sure what information would be helpful to reproduce, any advice on logs I could provide, etc would be appreciated.

Repro steps:

  1. Open Webstorm 2018.2
  2. Create a new AngularDart project from the Stagehand template
  3. Open up analysis_options.yaml file and enable the plugin.
  4. Restart the editor (instructions found here: https://medium.com/dartlang/announcement-ide-tooling-for-angulardart-5-de01ecccec9d)
  5. Wait a few seconds for the analyzer to download install the plugin (mentioned in the blog post)
  6. Run pub get again, just in case

Version info:

  • Dart 2.0.0-dev.69.5
  • angular_analyzer_plugin-0.0.17
  • angular-5.0.0-beta+3

Things I tried

  • Removing everything from the .dartServer folder (mentioned in a comment on the blog post)
  • Tried a few different analysis_options.yaml configurations

Screenshot

screen shot 2018-08-03 at 11 46 26 am

In order to troubleshoot, can you:

  • delete ~/.dartServer/.plugin_manager/ (we store a cached version of the angular analysis plugin there, and it's pub get dependencies)
  • re-run webstorm; from the gear menu of the dart analysis view, choose 'View analyzer diagnostics'. Then, go to the 'Plugins' page. You should see the angular analysis plugin in use; if there are any issues, you'll likely see an exception on that page.

Thanks! Ok, just completed both steps, and unfortunately it didn't solve the problem, nor does it seem to indicate any errors.

Here is the info from the status page:

Status
General status and diagnostics for the analysis server.

Status
Preview-dart-2: true
Use fasta parser: false
Use common front end: false
Instrumentation enabled: false
Server process ID: 40181
Versions
Analysis server version: 1.20.3
Dart SDK: 2.0.0-dev.69.5 (Tue Jul 31 15:05:14 2018 +0200) on "macos_x64"

And here is the info from the plugins page:

Plugins in use.

Analysis plugins
angular-5.0.0-beta+3
bootstrap package path: /Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular-5.0.0-beta+3/tools/analyzer_plugin

execution path: /Users/phillywiggins/.dartServer/.plugin_manager/3204736390f033fc394945b0bd4e157a/analyzer_plugin/bin/plugin.dart

packages file path: /Users/phillywiggins/.dartServer/.plugin_manager/3204736390f033fc394945b0bd4e157a/analyzer_plugin/.packages

name: Angular Analysis Plugin

version: 1.0.0-alpha.0

Associated contexts:

/Users/phillywiggins/lab/angular_tour_of_heroes

Thanks for investigating! I'll have to defer to @MichaelRFairhurst for further diagnostic steps...

As a heads up, I just went through all of the Troubleshooting steps (https://github.com/dart-lang/angular_analyzer_plugin#troubleshooting) including trying my own specific version of the analyzer plugin, and it didn't quite seem to work.

What's odd: I think the plugin may actually be running (when I disable it, one error goes away), but perhaps not working correctly since it doesn't find the appropriate components or directives.

What's the one error that goes away?

The error that comes up is:

warning: The bound output keyup does not exist on any directives or on the element (nonexist_output_bound at [angular_tour_of_heroes] lib/src/todo_list/todo_list_component.html:6)

on a line that reads: (keyup.enter)="add()"

Screenshot:

screen shot 2018-08-03 at 9 42 32 pm

Look like it is running, that is a bug that should be fixed after #603 .

I'm guessing the other red lines + squiggles are because of some HTML validation you have enabled. This is VSCode right?

You can also try, for instance, autocompleting after things like "newTodo" and "add()" and "items.isEmpty"

Nah, that's Webstorm -- I just have it heavily customized. I figured those warnings would go away once this plugin was enabled, but perhaps I need to disable further html errors.

Hopefully #603 will solve my problems!

Oh, wow :)

#603 won't solve your problems, except that "keyup" should not be flagged. Then it will look even more like the plugin isn't running because there won't be any errors that appear when you disable or enable it! :)

OK, if its webstorm, you can do the following: settings -> editor -> inspections -> find HTML, uncheck all "unknown" html inspections

I think that's the underlying issue -- if you have any problems with autoocomplete, or see an error you expect to get that the plugin doesn't show, then definitely let me know.

My tests with the latest everything show it working on this project: https://github.com/MichaelRFairhurst/dartconf-angular-plugin-lightning-demo

Closing but please do reopen if you have any further issues -- and questions are also welcome!!

Hey @MichaelRFairhurst -- sorry, on vacation for a few days. Overall, I don't think this issue should be closed.

The plugin isn't providing any of the features listed in this blog post: https://medium.com/dartlang/announcement-ide-tooling-for-angulardart-5-de01ecccec9d

No autocomplete, no static analysis, no navigation, etc. Disabling the HTML checks "solves the problem," but feels like a weird solution since it doesn't actually enable these features. Plus, I want those checks in place in case I accidentally type dvi instead of div.

Definitely reopening if that's what you're seeing.

Thanks! Is there any other information I can provide to help debug?

I'll have to think hard about next steps:

What's odd: I think the plugin may actually be running (when I disable it, one error goes away), but perhaps not working correctly since it doesn't find the appropriate components or directives.

If this were the cause, then there would be lots of errors raised by the plugin and not just one. That's why I thought the problem was the HTML checks giving a false impression that the plugin wasn't running.

Its also strange because it is succeeding in sending one error -- why that one and not the others?

I'll have to think about what could be causing this before I can send next steps, unfortunately..!

I believe the fix is published. If you want to give it a try with the fix (there are potentially still other issues that I will discover next week as I test more, though) then the next dev version of the SDK will auto-update you, in the meantime you can clear ~/.dartServer/.plugin-manager.

Thanks @MichaelRFairhurst! Hrm, unfortunately that didn't quite fix it on my machine :/ Please let me know if I can provide any further info.

Current plugin info:

Status
General status and diagnostics for the analysis server.

Status
Preview-dart-2: true
Use fasta parser: false
Use common front end: false
Instrumentation enabled: true
Server process ID: 51940
Versions
Analysis server version: 1.20.3
Dart SDK: 2.0.0 (Fri Aug 3 10:53:23 2018 +0200) on "macos_x64"
Plugins
Plugins in use.

Analysis plugins
angular_analyzer_plugin-0.0.17+2
bootstrap package path: /Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_analyzer_plugin-0.0.17+2/tools/analyzer_plugin

execution path: /Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart

packages file path: /Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/.packages

name: Angular Analysis Plugin

version: 1.0.0-alpha.0

Associated contexts:

/Users/phillywiggins/lab/angular_tour_of_heroes
Exceptions
Exceptions from the analysis server.

No exceptions encountered!

Full log:

1534075266662:Ver:1498076369678692712545:WebStorm:WS-182.3684.70:1.20.3:2.0.0
1534075266780:Noti:{"event"::"server.connected","params"::{"version"::"1.20.3","pid"::51940,"sessionId"::""}}
1534075266819:Req:{"id"::"0","method"::"server.getVersion","clientRequestTime"::1534075266053}
1534075266826:Res:{"id"::"0","result"::{"version"::"1.20.3"}}
1534075266831:Req:{"id"::"1","method"::"server.setSubscriptions","params"::{"subscriptions"::["STATUS"]},"clientRequestTime"::1534075266054}
1534075266839:Res:{"id"::"1"}
1534075266839:Req:{"id"::"2","method"::"analysis.updateOptions","params"::{"options"::{"enableAsync"::true,"enableDeferredLoading"::true,"enableEnums"::true,"enableNullAwareOperators"::true,"enableSuperMixins"::true,"generateDart2jsHints"::false,"generateHints"::true,"generateLints"::false}},"clientRequestTime"::1534075266060}
1534075266845:Res:{"id"::"2"}
1534075266845:Req:{"id"::"3","method"::"analysis.setAnalysisRoots","params"::{"included"::["/Users/phillywiggins/lab/angular_tour_of_heroes"],"excluded"::["/Users/phillywiggins/lab/angular_tour_of_heroes/.idea","/Users/phillywiggins/lab/angular_tour_of_heroes/.dart_tool","/Users/phillywiggins/lab/angular_tour_of_heroes/.pub","/Users/phillywiggins/lab/angular_tour_of_heroes/.tmp","/Users/phillywiggins/lab/angular_tour_of_heroes/build","/Users/phillywiggins/lab/angular_tour_of_heroes/temp","/Users/phillywiggins/lab/angular_tour_of_heroes/tmp"]},"clientRequestTime"::1534075266190}
1534075266927:Noti:{"event"::"server.status","params"::{"pub"::{"isListingPackageDirs"::true}}}
1534075266994:Noti:{"event"::"server.status","params"::{"pub"::{"isListingPackageDirs"::false}}}
1534075267673:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/analysis_options.yaml","errors"::[]}}
1534075267700:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/pubspec.yaml","errors"::[]}}
1534075268015:Res:{"id"::"3"}
1534075268015:Req:{"id"::"4","method"::"analysis.setPriorityFiles","params"::{"files"::["/Users/phillywiggins/lab/angular_tour_of_heroes/pubspec.yaml"]},"clientRequestTime"::1534075266191}
1534075268018:Res:{"id"::"4"}
1534075268018:Req:{"id"::"5","method"::"analysis.setSubscriptions","params"::{"subscriptions"::{"OVERRIDES"::["/Users/phillywiggins/lab/angular_tour_of_heroes/pubspec.yaml"],"CLOSING_LABELS"::["/Users/phillywiggins/lab/angular_tour_of_heroes/pubspec.yaml"],"OUTLINE"::["/Users/phillywiggins/lab/angular_tour_of_heroes/pubspec.yaml"],"NAVIGATION"::["/Users/phillywiggins/lab/angular_tour_of_heroes/pubspec.yaml"],"HIGHLIGHTS"::["/Users/phillywiggins/lab/angular_tour_of_heroes/pubspec.yaml"],"IMPLEMENTED"::["/Users/phillywiggins/lab/angular_tour_of_heroes/pubspec.yaml"]}},"clientRequestTime"::1534075266191}
1534075268046:Res:{"id"::"5"}
1534075268064:Noti:{"event"::"server.status","params"::{"analysis"::{"isAnalyzing"::true}}}
1534075269549:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/test/app_test.dart","errors"::[]}}
1534075269559:Req:{"id"::"6","method"::"edit.listPostfixCompletionTemplates","clientRequestTime"::1534075267136}
1534075269577:Res:{"id"::"6","result"::{"templates"::[{"name"::"assert","key"::".assert","example"::"expr.assert -> assert(expr);"},{"name"::"fori","key"::".fori","example"::"limit.fori -> for(var i = 0; i < limit; i++) {}"},{"name"::"for","key"::".for","example"::"values.for -> for(var value in values) {}"},{"name"::"iter","key"::".iter","example"::"values.iter -> for(var value in values) {}"},{"name"::"not","key"::".not","example"::"bool.not -> !bool"},{"name"::"!","key"::"!","example"::"bool! -> !bool"},{"name"::"else","key"::".else","example"::"bool.else -> if (!bool) {}"},{"name"::"if","key"::".if","example"::"bool.if -> if (bool) {}"},{"name"::"nn","key"::".nn","example"::"expr.nn -> if (expr != null) {}"},{"name"::"notnull","key"::".notnull","example"::"expr.notnull -> if (expr != null) {}"},{"name"::"null","key"::".null","example"::"expr.null -> if (expr == null) {}"},{"name"::"par","key"::".par","example"::"expr.par -> (expr)"},{"name"::"return","key"::".return","example"::"expr.return -> return expr"},{"name"::"switch","key"::".switch","example"::"expr.switch -> switch (expr) {}"},{"name"::"try","key"::".try","example"::"stmt.try -> try {stmt} catch (e,s) {}"},{"name"::"tryon","key"::".tryon","example"::"stmt.try -> try {stmt} on Exception catch (e,s) {}"},{"name"::"while","key"::".while","example"::"expr.while -> while (expr) {}"}]}}
1534075269995:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/web/main.dart","errors"::[]}}
1534075270002:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/app_component.dart","errors"::[]}}
1534075270004:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_service.dart","errors"::[]}}
1534075270886:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.dart","errors"::[]}}
1534075270903:Noti:{"event"::"server.status","params"::{"analysis"::{"isAnalyzing"::false}}}
1534075273902:Req:{"id"::"7","method"::"analysis.setPriorityFiles","params"::{"files"::["/Users/phillywiggins/lab/angular_tour_of_heroes/analysis_options.yaml"]},"clientRequestTime"::1534075273891}
1534075273914:Res:{"id"::"7"}
1534075273914:Req:{"id"::"8","method"::"analysis.setSubscriptions","params"::{"subscriptions"::{"OVERRIDES"::["/Users/phillywiggins/lab/angular_tour_of_heroes/analysis_options.yaml"],"CLOSING_LABELS"::["/Users/phillywiggins/lab/angular_tour_of_heroes/analysis_options.yaml"],"OUTLINE"::["/Users/phillywiggins/lab/angular_tour_of_heroes/analysis_options.yaml"],"NAVIGATION"::["/Users/phillywiggins/lab/angular_tour_of_heroes/analysis_options.yaml"],"HIGHLIGHTS"::["/Users/phillywiggins/lab/angular_tour_of_heroes/analysis_options.yaml"],"IMPLEMENTED"::["/Users/phillywiggins/lab/angular_tour_of_heroes/analysis_options.yaml"]}},"clientRequestTime"::1534075273892}
1534075273927:Res:{"id"::"8"}
1534075276722:Req:{"id"::"9","method"::"analysis.setPriorityFiles","params"::{"files"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"]},"clientRequestTime"::1534075276720}
1534075276723:Res:{"id"::"9"}
1534075276723:Req:{"id"::"10","method"::"analysis.setSubscriptions","params"::{"subscriptions"::{"OVERRIDES"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"],"CLOSING_LABELS"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"],"OUTLINE"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"],"NAVIGATION"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"],"HIGHLIGHTS"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"],"IMPLEMENTED"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"]}},"clientRequestTime"::1534075276720}
1534075276723:Res:{"id"::"10"}
1534075278671:PluginReq:{"id"::"4","method"::"plugin.versionCheck","params"::{"byteStorePath"::"/Users/phillywiggins/.dartServer/.analysis-driver","sdkPath"::"/usr/local/Cellar/dart/2.0.0/libexec","version"::"1.0.0-alpha.0"}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075278711:PluginRes:{"id"::"4","requestTime"::1534075278686,"result"::{"isCompatible"::true,"name"::"Angular Analysis Plugin","version"::"1.0.0-alpha.0","contactInfo"::"Please file issues at https:://github.com/dart-lang/angular_analyzer_plugin","interestingFiles"::["*.dart","*.html"]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075278742:PluginReq:{"id"::"5","method"::"analysis.setContextRoots","params"::{"roots"::[{"root"::"/Users/phillywiggins/lab/angular_tour_of_heroes","exclude"::["/Users/phillywiggins/lab/angular_tour_of_heroes/.idea","/Users/phillywiggins/lab/angular_tour_of_heroes/.dart_tool","/Users/phillywiggins/lab/angular_tour_of_heroes/.pub","/Users/phillywiggins/lab/angular_tour_of_heroes/.tmp","/Users/phillywiggins/lab/angular_tour_of_heroes/build","/Users/phillywiggins/lab/angular_tour_of_heroes/temp","/Users/phillywiggins/lab/angular_tour_of_heroes/tmp"],"optionsFile"::"/Users/phillywiggins/lab/angular_tour_of_heroes/analysis_options.yaml"}]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075278743:PluginReq:{"id"::"6","method"::"analysis.setSubscriptions","params"::{"subscriptions"::{"NAVIGATION"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"],"OUTLINE"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"],"HIGHLIGHTS"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"]}}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075278743:PluginReq:{"id"::"7","method"::"analysis.setPriorityFiles","params"::{"files"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html"]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075279919:PluginRes:{"id"::"5","requestTime"::1534075278744}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075281998:PluginRes:{"id"::"6","requestTime"::1534075281988}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075282007:PluginRes:{"id"::"7","requestTime"::1534075281998}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075283581:Watch:/Users/phillywiggins/lab/angular_tour_of_heroes:/Users/phillywiggins/lab/angular_tour_of_heroes/.idea/workspace.xml:modify
1534075287666:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.dart","errors"::[]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075287669:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.dart","errors"::[]}}
1534075287677:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/web/main.dart","errors"::[]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075287677:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/web/main.dart","errors"::[]}}
1534075287685:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/app_component.dart","errors"::[]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075287685:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/app_component.dart","errors"::[]}}
1534075287686:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_service.dart","errors"::[]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075287686:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_service.dart","errors"::[]}}
1534075287866:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/test/app_test.dart","errors"::[]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075287866:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/test/app_test.dart","errors"::[]}}
1534075287880:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/app_component.html","errors"::[]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075287881:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/app_component.html","errors"::[]}}
1534075287884:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/web/index.html","errors"::[]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075287884:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/web/index.html","errors"::[]}}
1534075287908:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","errors"::[{"severity"::"WARNING","type"::"STATIC_WARNING","location"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","offset"::241,"length"::5,"startLine"::7,"startColumn"::20},"message"::"The bound output keyup does not exist on any directives or on the element","correction"::"","code"::"nonexist_output_bound","hasFix"::true}]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075287919:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","errors"::[{"severity"::"WARNING","type"::"STATIC_WARNING","location"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","offset"::241,"length"::5,"startLine"::7,"startColumn"::20},"message"::"The bound output keyup does not exist on any directives or on the element","correction"::"","code"::"nonexist_output_bound","hasFix"::true}]}}
1534075289086:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","errors"::[]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075289086:Noti:{"event"::"analysis.errors","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","errors"::[]}}
1534075289117:PluginNoti:{"event"::"analysis.navigation","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","regions"::[{"offset"::66,"length"::3,"targets"::[1]},{"offset"::75,"length"::14,"targets"::[2,3]},{"offset"::90,"length"::5,"targets"::[17]},{"offset"::150,"length"::13,"targets"::[18]},{"offset"::202,"length"::7,"targets"::[4,20]},{"offset"::213,"length"::7,"targets"::[19]},{"offset"::241,"length"::5,"targets"::[15]},{"offset"::251,"length"::26,"targets"::[0]},{"offset"::255,"length"::3,"targets"::[21]},{"offset"::267,"length"::14,"targets"::[2,3]},{"offset"::287,"length"::12,"targets"::[5]},{"offset"::305,"length"::6,"targets"::[22]},{"offset"::329,"length"::7,"targets"::[16]},{"offset"::339,"length"::3,"targets"::[21]},{"offset"::363,"length"::8,"targets"::[24]},{"offset"::374,"length"::7,"targets"::[19]},{"offset"::382,"length"::7,"targets"::[23]},{"offset"::397,"length"::13,"targets"::[6]},{"offset"::411,"length"::4,"targets"::[25]},{"offset"::424,"length"::13,"targets"::[6]},{"offset"::443,"length"::12,"targets"::[5]},{"offset"::459,"length"::3,"targets"::[1]},{"offset"::466,"length"::1,"targets"::[8]},{"offset"::469,"length"::4,"targets"::[7,28]},{"offset"::475,"length"::5,"targets"::[26]},{"offset"::481,"length"::7,"targets"::[27]},{"offset"::527,"length"::1,"targets"::[8]},{"offset"::532,"length"::3,"targets"::[1]},{"offset"::537,"length"::4,"targets"::[7,28]},{"offset"::543,"length"::5,"targets"::[26]},{"offset"::549,"length"::10,"targets"::[29]},{"offset"::565,"length"::2,"targets"::[9]},{"offset"::576,"length"::2,"targets"::[12]},{"offset"::580,"length"::5,"targets"::[10]},{"offset"::591,"length"::4,"targets"::[31]},{"offset"::596,"length"::7,"targets"::[11,30]},{"offset"::599,"length"::5,"targets"::[26]},{"offset"::610,"length"::1,"targets"::[33]},{"offset"::612,"length"::5,"targets"::[32]},{"offset"::629,"length"::17,"targets"::[13]},{"offset"::648,"length"::4,"targets"::[34]},{"offset"::700,"length"::17,"targets"::[13]},{"offset"::728,"length"::4,"targets"::[14]},{"offset"::747,"length"::4,"targets"::[34]},{"offset"::752,"length"::7,"targets"::[35]},{"offset"::763,"length"::4,"targets"::[31]},{"offset"::771,"length"::4,"targets"::[14]},{"offset"::786,"length"::12,"targets"::[5]},{"offset"::805,"length"::7,"targets"::[16]},{"offset"::815,"length"::6,"targets"::[36]},{"offset"::822,"length"::1,"targets"::[33]},{"offset"::838,"length"::13,"targets"::[6]},{"offset"::852,"length"::4,"targets"::[25]},{"offset"::868,"length"::13,"targets"::[6]},{"offset"::893,"length"::12,"targets"::[5]},{"offset"::915,"length"::2,"targets"::[12]},{"offset"::923,"length"::2,"targets"::[9]},{"offset"::929,"length"::3,"targets"::[1]}],"targets"::[{"kind"::"UNKNOWN","fileIndex"::0,"offset"::0,"length"::0,"startLine"::1,"startColumn"::1},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::279212,"length"::3,"startLine"::1,"startColumn"::279213},{"kind"::"UNKNOWN","fileIndex"::2,"offset"::2310,"length"::14,"startLine"::1,"startColumn"::2311},{"kind"::"UNKNOWN","fileIndex"::3,"offset"::878,"length"::14,"startLine"::1,"startColumn"::879},{"kind"::"UNKNOWN","fileIndex"::4,"offset"::1819,"length"::7,"startLine"::1,"startColumn"::1820},{"kind"::"UNKNOWN","fileIndex"::5,"offset"::1589,"length"::12,"startLine"::1,"startColumn"::1590},{"kind"::"UNKNOWN","fileIndex"::6,"offset"::1768,"length"::13,"startLine"::1,"startColumn"::1769},{"kind"::"UNKNOWN","fileIndex"::7,"offset"::1080,"length"::4,"startLine"::1,"startColumn"::1081},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::721355,"length"::1,"startLine"::1,"startColumn"::721356},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::908887,"length"::2,"startLine"::1,"startColumn"::908888},{"kind"::"UNKNOWN","fileIndex"::8,"offset"::3603,"length"::5,"startLine"::1,"startColumn"::3604},{"kind"::"UNKNOWN","fileIndex"::8,"offset"::3610,"length"::7,"startLine"::1,"startColumn"::3611},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::596007,"length"::2,"startLine"::1,"startColumn"::596008},{"kind"::"UNKNOWN","fileIndex"::9,"offset"::1769,"length"::17,"startLine"::1,"startColumn"::1770},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::836438,"length"::4,"startLine"::1,"startColumn"::836439},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::445103,"length"::7,"startLine"::1,"startColumn"::445104},{"kind"::"UNKNOWN","fileIndex"::10,"offset"::1317,"length"::7,"startLine"::1,"startColumn"::1318},{"kind"::"UNKNOWN","fileIndex"::11,"offset"::2899,"length"::5,"startLine"::1,"startColumn"::2900},{"kind"::"UNKNOWN","fileIndex"::11,"offset"::8152,"length"::13,"startLine"::1,"startColumn"::8153},{"kind"::"UNKNOWN","fileIndex"::12,"offset"::611,"length"::7,"startLine"::26,"startColumn"::10},{"kind"::"UNKNOWN","fileIndex"::4,"offset"::2185,"length"::7,"startLine"::1,"startColumn"::2186},{"kind"::"UNKNOWN","fileIndex"::12,"offset"::777,"length"::3,"startLine"::35,"startColumn"::8},{"kind"::"UNKNOWN","fileIndex"::13,"offset"::741,"length"::6,"startLine"::1,"startColumn"::742},{"kind"::"UNKNOWN","fileIndex"::14,"offset"::9871,"length"::7,"startLine"::283,"startColumn"::12},{"kind"::"UNKNOWN","fileIndex"::10,"offset"::2126,"length"::8,"startLine"::1,"startColumn"::2127},{"kind"::"UNKNOWN","fileIndex"::6,"offset"::2251,"length"::4,"startLine"::1,"startColumn"::2252},{"kind"::"UNKNOWN","fileIndex"::12,"offset"::590,"length"::5,"startLine"::25,"startColumn"::16},{"kind"::"UNKNOWN","fileIndex"::15,"offset"::16296,"length"::7,"startLine"::434,"startColumn"::12},{"kind"::"UNKNOWN","fileIndex"::7,"offset"::1339,"length"::4,"startLine"::1,"startColumn"::1340},{"kind"::"UNKNOWN","fileIndex"::15,"offset"::16503,"length"::10,"startLine"::441,"startColumn"::12},{"kind"::"UNKNOWN","fileIndex"::8,"offset"::3875,"length"::7,"startLine"::1,"startColumn"::3876},{"kind"::"UNKNOWN","fileIndex"::0,"offset"::591,"length"::4,"startLine"::1,"startColumn"::592},{"kind"::"UNKNOWN","fileIndex"::8,"offset"::3629,"length"::5,"startLine"::89,"startColumn"::7},{"kind"::"UNKNOWN","fileIndex"::0,"offset"::610,"length"::1,"startLine"::1,"startColumn"::611},{"kind"::"UNKNOWN","fileIndex"::0,"offset"::648,"length"::4,"startLine"::1,"startColumn"::649},{"kind"::"UNKNOWN","fileIndex"::9,"offset"::4997,"length"::7,"startLine"::147,"startColumn"::12},{"kind"::"UNKNOWN","fileIndex"::12,"offset"::841,"length"::6,"startLine"::40,"startColumn"::10}],"files"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","/usr/local/Cellar/dart/2.0.0/libexec/lib/html/dart2js/html_dart2js.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_input/material_input.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_input/material_input_default_value_accessor.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_forms-2.0.0/lib/src/directives/ng_model.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_button/material_fab.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_icon/material_icon.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular-5.0.0/lib/src/common/directives/ng_if.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular-5.0.0/lib/src/common/directives/ng_for.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_checkbox/material_checkbox.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/button_decorator/button_decorator.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_input/base_material_input.dart","/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_button/material_button_base.dart","/usr/local/Cellar/dart/2.0.0/libexec/lib/core/string.dart","/usr/local/Cellar/dart/2.0.0/libexec/lib/core/iterable.dart"]}}:file::///Users/phillywiggins/.dartServer/.plugin_manager/a431555636d4497acbe019a2c39ddbf1/analyzer_plugin/bin/plugin.dart::
1534075289147:Noti:{"event"::"analysis.navigation","params"::{"file"::"/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","regions"::[{"offset"::66,"length"::3,"targets"::[1]},{"offset"::75,"length"::14,"targets"::[2,3]},{"offset"::90,"length"::5,"targets"::[17]},{"offset"::150,"length"::13,"targets"::[18]},{"offset"::202,"length"::7,"targets"::[4,20]},{"offset"::213,"length"::7,"targets"::[19]},{"offset"::241,"length"::5,"targets"::[15]},{"offset"::251,"length"::26,"targets"::[0]},{"offset"::255,"length"::3,"targets"::[21]},{"offset"::267,"length"::14,"targets"::[2,3]},{"offset"::287,"length"::12,"targets"::[5]},{"offset"::305,"length"::6,"targets"::[22]},{"offset"::329,"length"::7,"targets"::[16]},{"offset"::339,"length"::3,"targets"::[21]},{"offset"::363,"length"::8,"targets"::[24]},{"offset"::374,"length"::7,"targets"::[19]},{"offset"::382,"length"::7,"targets"::[23]},{"offset"::397,"length"::13,"targets"::[6]},{"offset"::411,"length"::4,"targets"::[25]},{"offset"::424,"length"::13,"targets"::[6]},{"offset"::443,"length"::12,"targets"::[5]},{"offset"::459,"length"::3,"targets"::[1]},{"offset"::466,"length"::1,"targets"::[8]},{"offset"::469,"length"::4,"targets"::[7,28]},{"offset"::475,"length"::5,"targets"::[26]},{"offset"::481,"length"::7,"targets"::[27]},{"offset"::527,"length"::1,"targets"::[8]},{"offset"::532,"length"::3,"targets"::[1]},{"offset"::537,"length"::4,"targets"::[7,28]},{"offset"::543,"length"::5,"targets"::[26]},{"offset"::549,"length"::10,"targets"::[29]},{"offset"::565,"length"::2,"targets"::[9]},{"offset"::576,"length"::2,"targets"::[12]},{"offset"::580,"length"::5,"targets"::[10]},{"offset"::591,"length"::4,"targets"::[31]},{"offset"::596,"length"::7,"targets"::[11,30]},{"offset"::599,"length"::5,"targets"::[26]},{"offset"::610,"length"::1,"targets"::[33]},{"offset"::612,"length"::5,"targets"::[32]},{"offset"::629,"length"::17,"targets"::[13]},{"offset"::648,"length"::4,"targets"::[34]},{"offset"::700,"length"::17,"targets"::[13]},{"offset"::728,"length"::4,"targets"::[14]},{"offset"::747,"length"::4,"targets"::[34]},{"offset"::752,"length"::7,"targets"::[35]},{"offset"::763,"length"::4,"targets"::[31]},{"offset"::771,"length"::4,"targets"::[14]},{"offset"::786,"length"::12,"targets"::[5]},{"offset"::805,"length"::7,"targets"::[16]},{"offset"::815,"length"::6,"targets"::[36]},{"offset"::822,"length"::1,"targets"::[33]},{"offset"::838,"length"::13,"targets"::[6]},{"offset"::852,"length"::4,"targets"::[25]},{"offset"::868,"length"::13,"targets"::[6]},{"offset"::893,"length"::12,"targets"::[5]},{"offset"::915,"length"::2,"targets"::[12]},{"offset"::923,"length"::2,"targets"::[9]},{"offset"::929,"length"::3,"targets"::[1]}],"targets"::[{"kind"::"UNKNOWN","fileIndex"::0,"offset"::0,"length"::0,"startLine"::1,"startColumn"::1},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::279212,"length"::3,"startLine"::1,"startColumn"::279213},{"kind"::"UNKNOWN","fileIndex"::2,"offset"::2310,"length"::14,"startLine"::1,"startColumn"::2311},{"kind"::"UNKNOWN","fileIndex"::3,"offset"::878,"length"::14,"startLine"::1,"startColumn"::879},{"kind"::"UNKNOWN","fileIndex"::4,"offset"::1819,"length"::7,"startLine"::1,"startColumn"::1820},{"kind"::"UNKNOWN","fileIndex"::5,"offset"::1589,"length"::12,"startLine"::1,"startColumn"::1590},{"kind"::"UNKNOWN","fileIndex"::6,"offset"::1768,"length"::13,"startLine"::1,"startColumn"::1769},{"kind"::"UNKNOWN","fileIndex"::7,"offset"::1080,"length"::4,"startLine"::1,"startColumn"::1081},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::721355,"length"::1,"startLine"::1,"startColumn"::721356},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::908887,"length"::2,"startLine"::1,"startColumn"::908888},{"kind"::"UNKNOWN","fileIndex"::8,"offset"::3603,"length"::5,"startLine"::1,"startColumn"::3604},{"kind"::"UNKNOWN","fileIndex"::8,"offset"::3610,"length"::7,"startLine"::1,"startColumn"::3611},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::596007,"length"::2,"startLine"::1,"startColumn"::596008},{"kind"::"UNKNOWN","fileIndex"::9,"offset"::1769,"length"::17,"startLine"::1,"startColumn"::1770},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::836438,"length"::4,"startLine"::1,"startColumn"::836439},{"kind"::"UNKNOWN","fileIndex"::1,"offset"::445103,"length"::7,"startLine"::1,"startColumn"::445104},{"kind"::"UNKNOWN","fileIndex"::10,"offset"::1317,"length"::7,"startLine"::1,"startColumn"::1318},{"kind"::"UNKNOWN","fileIndex"::11,"offset"::2899,"length"::5,"startLine"::1,"startColumn"::2900},{"kind"::"UNKNOWN","fileIndex"::11,"offset"::8152,"length"::13,"startLine"::1,"startColumn"::8153},{"kind"::"UNKNOWN","fileIndex"::12,"offset"::611,"length"::7,"startLine"::26,"startColumn"::10},{"kind"::"UNKNOWN","fileIndex"::4,"offset"::2185,"length"::7,"startLine"::1,"startColumn"::2186},{"kind"::"UNKNOWN","fileIndex"::12,"offset"::777,"length"::3,"startLine"::35,"startColumn"::8},{"kind"::"UNKNOWN","fileIndex"::13,"offset"::741,"length"::6,"startLine"::1,"startColumn"::742},{"kind"::"UNKNOWN","fileIndex"::14,"offset"::9871,"length"::7,"startLine"::283,"startColumn"::12},{"kind"::"UNKNOWN","fileIndex"::10,"offset"::2126,"length"::8,"startLine"::1,"startColumn"::2127},{"kind"::"UNKNOWN","fileIndex"::6,"offset"::2251,"length"::4,"startLine"::1,"startColumn"::2252},{"kind"::"UNKNOWN","fileIndex"::12,"offset"::590,"length"::5,"startLine"::25,"startColumn"::16},{"kind"::"UNKNOWN","fileIndex"::15,"offset"::16296,"length"::7,"startLine"::434,"startColumn"::12},{"kind"::"UNKNOWN","fileIndex"::7,"offset"::1339,"length"::4,"startLine"::1,"startColumn"::1340},{"kind"::"UNKNOWN","fileIndex"::15,"offset"::16503,"length"::10,"startLine"::441,"startColumn"::12},{"kind"::"UNKNOWN","fileIndex"::8,"offset"::3875,"length"::7,"startLine"::1,"startColumn"::3876},{"kind"::"UNKNOWN","fileIndex"::0,"offset"::591,"length"::4,"startLine"::1,"startColumn"::592},{"kind"::"UNKNOWN","fileIndex"::8,"offset"::3629,"length"::5,"startLine"::89,"startColumn"::7},{"kind"::"UNKNOWN","fileIndex"::0,"offset"::610,"length"::1,"startLine"::1,"startColumn"::611},{"kind"::"UNKNOWN","fileIndex"::0,"offset"::648,"length"::4,"startLine"::1,"startColumn"::649},{"kind"::"UNKNOWN","fileIndex"::9,"offset"::4997,"length"::7,"startLine"::147,"startColumn"::12},{"kind"::"UNKNOWN","fileIndex"::12,"offset"::841,"length"::6,"startLine"::40,"startColumn"::10}],"files"::["/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.html","/usr/local/Cellar/dart/2.0.0/libexec/lib/html/dart2js/html_dart2js.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_input/material_input.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_input/material_input_default_value_accessor.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_forms-2.0.0/lib/src/directives/ng_model.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_button/material_fab.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_icon/material_icon.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular-5.0.0/lib/src/common/directives/ng_if.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular-5.0.0/lib/src/common/directives/ng_for.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_checkbox/material_checkbox.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/button_decorator/button_decorator.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_input/base_material_input.dart","/Users/phillywiggins/lab/angular_tour_of_heroes/lib/src/todo_list/todo_list_component.dart","/Users/phillywiggins/.pub-cache/hosted/pub.dartlang.org/angular_components-0.9.0/lib/material_button/material_button_base.dart","/usr/local/Cellar/dart/2.0.0/libexec/lib/core/string.dart","/usr/local/Cellar/dart/2.0.0/libexec/lib/core/iterable.dart"]}}
1534075331072:Req:{"id"::"11","method"::"diagnostic.getServerPort","clientRequestTime"::1534075331072}
1534075331113:Res:{"id"::"11","result"::{"port"::49367}}

Thanks for retrying, @brianegan, sorry it was too soon.

I did uncover a cast error in my code, I am playing whack-a-mole with various dart 2 issues and I'm hoping that's the last one but, I'll do more rigorous testing before advocating another go again.

Hey @MichaelRFairhurst -- no problem!

As an update: Er, it's working now. I'm honestly not sure what changed, but I'm getting autocompletion and static analysis now. Woohoo!

Webstorm still complains about unknown html tags and using *ngIf as an attribute, and I think it'd be cool if this integration was able to address that issue, but happy to see the analysis server is now recommending imported directives and code completion for attributes as well as static analysis for data that's being provided by the component.

Thanks for all your help in looking into this! If I can find any reason why WebStorm wasn't previously offering these features, I'll definitely share it.

Hi, Still not working for me...
Analysis server version: 1.20.3
Dart SDK: 2.0.0 (Unknown timestamp) on "linux_x64"

I have the same issue, even reported as separate issue as the analyzer seems to work but autocomplete does nit work at all nor components and angular directives are recognized in template (separate file, need to check inline templates) looks like analyzer feedback is ignored by intellij for html files. Any nes on that?

MderM commented

Never got this to work,.plugin 17+3 doesn't state exceptions anymore on the plugins page, only 'not running for unknown reason'