Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Create missing overrides" generates invalid code on Windows #2766

Closed
Maverick099 opened this issue Sep 3, 2020 · 15 comments
Closed

"Create missing overrides" generates invalid code on Windows #2766

Maverick099 opened this issue Sep 3, 2020 · 15 comments
Labels
in editor Relates to code editing or language features in lsp/analysis server Something to be fixed in the Dart analysis server is bug on windows
Milestone

Comments

@Maverick099
Copy link

Maverick099 commented Sep 3, 2020

I was creating a CustomShapeBorder by extending the ShapeBorder class, then when I used quickfix to create the 5 @overrides using the quickfix from VSCode. 3 of 5 overrides the getInnerPath, getOuterPath and paint had syntax errors in their parameters.

ezgif com-video-to-gif

the code is as follows with the errors:

class CustomCardShapeBorder extends ShapeBorder{
  @override
  // TODO: implement dimensions
  EdgeInsetsGeometry get dimensions => throw UnimplementedError();

  @override
 // error: parameter with ${3|
  Path getInnerPath(Rect rect${3|, {TextDirect,TextDirection,Object|}ion textDirection}) {
      // TODO: implement getInnerPath
      throw UnimplementedError();
    }
  
    @override
// error: parameter with closing }  in the end of text direction
    Path getOuterPath(Rect rectrection textDirection}) {
      // TODO: implement getOuterPath
      throw UnimplementedError();
    }
  
    @override
// error: parameter with speling errors and closing }  in the end of text direction
    void paint(Canvas canvas, Rect rectxtDirection textDirection}) {
      // TODO: implement paint
    }
  
    @override
    ShapeBorder scale(double t) {
    // TODO: implement scale
    throw UnimplementedError();
  }
 
}
@DanTup
Copy link
Member

DanTup commented Sep 3, 2020

Can you confirm which version of the Flutter SDK you're using? And also whether you have the LSP Preview enabled (the dart.previewLsp setting)? I'm unable to repro this on a recent build (with or without LSP) though I think it might be this that was recently fixed (and might not be in your version yet):

dart-lang/sdk#41147

@DanTup DanTup added the awaiting info Requires more information from the customer to progress label Sep 3, 2020
@Maverick099
Copy link
Author

Flutter SDK version 1.20.2 and the LSP preview is not enabled.

 flutter doctor -v
[√] Flutter (Channel stable, 1.20.2, on Microsoft Windows [Version 10.0.19041.450], locale en-IN)
    • Flutter version 1.20.2 at C:\code\flutter\flutter
    • Framework revision bbfbf1770c (3 weeks ago), 2020-08-13 08:33:09 -0700
    • Engine revision 9d5b21729f
    • Dart version 2.9.1


[√] VS Code (version 1.48.2)
    • VS Code at C:\Users\wr\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.13.2

@DanTup
Copy link
Member

DanTup commented Sep 7, 2020

I tried with the same Flutter version, but it still didn't happen:

Screenshot 2020-09-07 at 14 29 10

The weird thing about the ${3| appearing in the text is that we use VS Code's SnippetString to build edits, so it doesn't seem like we should be able to produce this text.

Can you try disabling any other extensions (leaving just Dart + Flutter) to see if this makes a difference? If not, I'll make a custom build that has more logging in it, so we can try to understand what's happening. Thanks!

@Maverick099
Copy link
Author

Okk, I will do as told and then report back

@Maverick099
Copy link
Author

Maverick099 commented Sep 8, 2020

@DanTup disabled all other extensions leaving Flutter and Dart but the problem still persists.

If any other extension is causing the problem then should I send all the extension that I have Installed so that you can replicate my environment and then you could run logging.

@DanTup
Copy link
Member

DanTup commented Sep 8, 2020

If it happens with other extensions disabled, it seems unlikely they're causing it. I'll make a build with some additional logging and provide instructions on how to install it shortly, then if you can reproduce with that build, it might be clearer from the logs what's going wrong. Thanks!

@DanTup
Copy link
Member

DanTup commented Sep 8, 2020

Ok, please try this:

  • Go to https://github.com/Dart-Code/Dart-Code/releases/tag/v3.15.0-dev.1
  • Download the vsix file from that release to your computer
  • Run the Extensions: Install from VSIX command in the VS Code command palette
  • Select the vsix file you downloaded
  • When prompted, click the Reload button to finish installing the extension
  • Open a simple Flutter project (eg. the sample counter app) and create (and save) a new Dart file for testing, containing just
    class CustomCardShapeBorder extends ShapeBorder{}
  • Wait for a minute or so, for all initial analysis to complete
  • Run the Dart: Capture Logs command from the VS Code command palette (leave everything ticked and click OK)
  • Invoke the quick-fix to create the missing overrides
  • Click Cancel on the logging notification to stop logging and open the log file
  • Attach the log here

Hopefully the log will help understand where things are becoming messed up.

@Maverick099
Copy link
Author

The Log file is as follows: @DanTup

!! PLEASE REVIEW THIS LOG FOR SENSITIVE INFORMATION BEFORE SHARING !!

Dart Code extension: 3.15.0-dev.1
Flutter extension: 3.14.1 (activated)

App: Visual Studio Code
Version: 1.49.0
Platform: win

Workspace type: Flutter
Analyzer type: DAS
Multi-root?: false

Dart SDK:
    Loc: C:\code\flutter\flutter\bin\cache\dart-sdk
    Ver: 2.9.2
Flutter SDK:
    Loc: C:\code\flutter\flutter
    Ver: 1.20.3

HTTP_PROXY: undefined
NO_PROXY: undefined

Mon Sep 14 2020 [12:52:13 GMT+0530 (India Standard Time)] Log file started
[12:52:19 pm] [Analyzer] [Info] ==> {"id":"327","method":"analysis.getHover","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":78},"clientRequestTime":1600068139595}
[12:52:19 pm] [Analyzer] [Info] <== {"id":"327","result":{"hovers":[{"offset":75,"length":11,"containingLibraryPath":"C:\\code\\flutter\\flutter\\packages\\flutter\\lib\\src\\painting\\borders.dart","containingLibraryName":"package:flutter/src/painting/borders.dart","containingClassDescription":"ShapeBorder","dartdoc":"Base class for shape outlines.\n\nThis class handles how to add multiple borders together. Subclasses define\nvarious shapes, like circles ([CircleBorder]), rounded rectangles\n([RoundedRectangleBorder]), continuous rectangles\n([ContinuousRectangleBorder]), or beveled rectangles\n([BeveledRectangleBorder]).\n\nSee also:\n\n * [ShapeDecoration], which can be used with [DecoratedBox] to show a shape.\n * [Material] (and many other widgets in the Material library), which takes\n   a [ShapeBorder] to define its shape.\n * [NotchedShape], which describes a shape with a hole in it.","elementDescription":"abstract class ShapeBorder","elementKind":"class","isDeprecated":false}]}}
[12:52:20 pm] [Analyzer] [Info] ==> {"id":"328","method":"analysis.getHover","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":65},"clientRequestTime":1600068140199}
[12:52:20 pm] [Analyzer] [Info] <== {"id":"328","result":{"hovers":[{"offset":49,"length":17,"containingLibraryPath":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","containingLibraryName":"package:vs_code_issue/shapeBorderTest.dart","containingClassDescription":"CustomShapeBorder","elementDescription":"class CustomShapeBorder extends ShapeBorder","elementKind":"class","isDeprecated":false}]}}
[12:52:20 pm] [Analyzer] [Info] ==> {"id":"329","method":"analysis.getHover","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":63},"clientRequestTime":1600068140580}
[12:52:20 pm] [Analyzer] [Info] <== {"id":"329","result":{"hovers":[{"offset":49,"length":17,"containingLibraryPath":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","containingLibraryName":"package:vs_code_issue/shapeBorderTest.dart","containingClassDescription":"CustomShapeBorder","elementDescription":"class CustomShapeBorder extends ShapeBorder","elementKind":"class","isDeprecated":false}]}}
[12:52:20 pm] [Analyzer] [Info] ==> {"id":"330","method":"edit.getFixes","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":63},"clientRequestTime":1600068140837}
[12:52:20 pm] [Analyzer] [Info] ==> {"id":"331","method":"edit.getAssists","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","length":0,"offset":63},"clientRequestTime":1600068140837}
[12:52:20 pm] [Analyzer] [Info] ==> {"id":"332","method":"edit.getAvailableRefactorings","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","length":0,"offset":63},"clientRequestTime":1600068140838}
[12:52:20 pm] [Analyzer] [Info] <== {"id":"330","result":{"fixes":[{"error":{"severity":"ERROR","type":"STATIC_WARNING","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"message":"Missing concrete implementations of 'ShapeBorder.getInnerPath', 'ShapeBorder.getOuterPath', 'ShapeBorder.paint', 'ShapeBorder.scale', and 1 more.","correction":"Try implementing the missing methods, or make the class abstract.","code":"non_abstract_class_inherits_abstract_member","url":"https://dart.dev/tools/diagnostic-messages#non_abstract_class_inherits_abstract_member","hasFix":true},"fixes":[{"message":"Create 5 missing override(s)","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":87,"length":0,"replacement":"\r\n  @override\n  // TODO: implement dimensions\n  EdgeInsetsGeometry get dimensions => throw UnimplementedError();\r\n\r\n  @override\n  Path getInnerPath(Rect rect, {TextDirection textDirection}) {\n    // TODO: implement getInnerPath\n    throw UnimplementedError();\n  }\r\n\r\n  @override\n  Path getOuterPath(Rect rect, {TextDirection textDirection}) {\n    // TODO: implement getOuterPath\n    throw UnimplementedError();\n  }\r\n\r\n  @override\n  void paint(Canvas canvas, Rect rect, {TextDirection textDirection}) {\n    // TODO: implement paint\n  }\r\n\r\n  @override\n  ShapeBorder scale(double t) {\n    // TODO: implement scale\n    throw UnimplementedError();\n  }"}]}],"linkedEditGroups":[{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":235}],"length":4,"suggestions":[{"value":"Rect","kind":"TYPE"},{"value":"Object","kind":"TYPE"}]},{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":240}],"length":4,"suggestions":[]},{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTes…
[12:52:20 pm] [Analyzer] [Info] <== {"id":"332","result":{"kinds":["RENAME"]}}
[12:52:20 pm] [Analyzer] [Info] <== {"id":"331","result":{"assists":[{"message":"Convert class to a mixin","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":43,"length":43,"replacement":"mixin CustomShapeBorder implements ShapeBorder "}]}],"linkedEditGroups":[],"id":"dart.assist.convert.classToMixin"}]}}
[12:52:21 pm] [Analyzer] [Info] ==> {"id":"333","method":"analysis.getHover","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":59},"clientRequestTime":1600068141461}
[12:52:21 pm] [Analyzer] [Info] <== {"id":"333","result":{"hovers":[{"offset":49,"length":17,"containingLibraryPath":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","containingLibraryName":"package:vs_code_issue/shapeBorderTest.dart","containingClassDescription":"CustomShapeBorder","elementDescription":"class CustomShapeBorder extends ShapeBorder","elementKind":"class","isDeprecated":false}]}}
[12:52:21 pm] [Analyzer] [Info] ==> {"id":"334","method":"edit.getFixes","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49},"clientRequestTime":1600068141644}
[12:52:21 pm] [Analyzer] [Info] <== {"id":"334","result":{"fixes":[{"error":{"severity":"ERROR","type":"STATIC_WARNING","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"message":"Missing concrete implementations of 'ShapeBorder.getInnerPath', 'ShapeBorder.getOuterPath', 'ShapeBorder.paint', 'ShapeBorder.scale', and 1 more.","correction":"Try implementing the missing methods, or make the class abstract.","code":"non_abstract_class_inherits_abstract_member","url":"https://dart.dev/tools/diagnostic-messages#non_abstract_class_inherits_abstract_member","hasFix":true},"fixes":[{"message":"Create 5 missing override(s)","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":87,"length":0,"replacement":"\r\n  @override\n  // TODO: implement dimensions\n  EdgeInsetsGeometry get dimensions => throw UnimplementedError();\r\n\r\n  @override\n  Path getInnerPath(Rect rect, {TextDirection textDirection}) {\n    // TODO: implement getInnerPath\n    throw UnimplementedError();\n  }\r\n\r\n  @override\n  Path getOuterPath(Rect rect, {TextDirection textDirection}) {\n    // TODO: implement getOuterPath\n    throw UnimplementedError();\n  }\r\n\r\n  @override\n  void paint(Canvas canvas, Rect rect, {TextDirection textDirection}) {\n    // TODO: implement paint\n  }\r\n\r\n  @override\n  ShapeBorder scale(double t) {\n    // TODO: implement scale\n    throw UnimplementedError();\n  }"}]}],"linkedEditGroups":[{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":235}],"length":4,"suggestions":[{"value":"Rect","kind":"TYPE"},{"value":"Object","kind":"TYPE"}]},{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":240}],"length":4,"suggestions":[]},{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTes…
[12:52:25 pm] [General] [Info] Applying edits with sbippets for file:///d%3A/work_src/vscode%20github%20issue/vs_code_issue/lib/shapeBorderTest.dart
[12:52:25 pm] [General] [Info] {"message":"Create 5 missing override(s)","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":87,"length":0,"replacement":"\r\n  @override\n  // TODO: implement dimensions\n  EdgeInsetsGeometry get dimensions => throw UnimplementedError();\r\n\r\n  @override\n  Path getInnerPath(Rect rect, {TextDirection textDirection}) {\n    // TODO: implement getInnerPath\n    throw UnimplementedError();\n  }\r\n\r\n  @override\n  Path getOuterPath(Rect rect, {TextDirection textDirection}) {\n    // TODO: implement getOuterPath\n    throw UnimplementedError();\n  }\r\n\r\n  @override\n  void paint(Canvas canvas, Rect rect, {TextDirection textDirection}) {\n    // TODO: implement paint\n  }\r\n\r\n  @override\n  ShapeBorder scale(double t) {\n    // TODO: implement scale\n    throw UnimplementedError();\n  }"}]}],"linkedEditGroups":[{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":235}],"length":4,"suggestions":[{"value":"Rect","kind":"TYPE"},{"value":"Object","kind":"TYPE"}]},{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":240}],"length":4,"suggestions":[]},{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":247}],"length":13,"suggestions":[{"value":"TextDirection","kind":"TYPE"},{"value":"Object","kind":"TYPE"}]},{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":386}],"length":4,"suggestions":[{"value":"Rect","kind":"TYPE"},{"value":"Object","kind":"TYPE"}]},{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":391}],"length":4,"suggestions":[]},{"positions":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":398}],"length":13,"suggestions":[{"value":"TextDirection","kind":"…
[12:52:25 pm] [Analyzer] [Info] ==> {"id":"335","method":"analysis.updateContent","params":{"files":{"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart":{"edits":[{"id":"","length":0,"offset":87,"replacement":"\r\n  @override\r\n  // TODO: implement dimensions\r\n  EdgeInsetsGeometry get dimensions => throw UnimplementedError();\r\n\r\n  @override\r\n  Path getInnerPath(Rect rect, {TextDirection textDirection}) {\r\n    // TODO: implement getInnerPath\r\n    throw UnimplementedError();\r\n  }\r\n\r\n  @override\r\n  Path getOuterPath(Rect rect, {TextDirection textDirection}) {\r\n    // TODO: implement getOuterPath\r\n    throw UnimplementedError();\r\n  }\r\n\r\n  @override\r\n  void paint(Canvas canvas, Rect rect, {TextDirection textDirection}) {\r\n    // TODO: implement paint\r\n  }\r\n\r\n  @override\r\n  ShapeBorder scale(double t) {\r\n    // TODO: implement scale\r\n    throw UnimplementedError();\r\n  }"}],"type":"change"}}},"clientRequestTime":1600068145089}
[12:52:25 pm] [Analyzer] [Info] <== {"id":"335","result":{}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.errors","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","errors":[{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":608,"length":21,"startLine":22,"startColumn":8},"message":"TODO: implement paint","code":"todo","hasFix":false},{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":445,"length":28,"startLine":16,"startColumn":8},"message":"TODO: implement getOuterPath","code":"todo","hasFix":false},{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":290,"length":28,"startLine":10,"startColumn":8},"message":"TODO: implement getInnerPath","code":"todo","hasFix":false},{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":107,"length":26,"startLine":5,"startColumn":6},"message":"TODO: implement dimensions","code":"todo","hasFix":false},{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":691,"length":21,"startLine":27,"startColumn":8},"message":"TODO: implement scale","code":"todo","hasFix":false}]}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.occurrences","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","occurrences":[{"element":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"flags":0},"offsets":[49],"length":17},{"element":{"kind":"CLASS","name":"ShapeBorder","location":{"file":"C:\\code\\flutter\\flutter\\packages\\flutter\\lib\\src\\painting\\borders.dart","offset":9668,"length":11,"startLine":290,"startColumn":16},"flags":1},"offsets":[75,653],"length":11},{"element":{"kind":"TOP_LEVEL_VARIABLE","name":"override","location":{"file":"C:\\code\\flutter\\flutter\\bin\\cache\\pkg\\sky_engine\\lib\\core\\annotations.dart","offset":4627,"length":8,"startLine":114,"startColumn":14},"flags":10,"returnType":"Object"},"offsets":[92,208,363,518,641],"length":8},{"element":{"kind":"CLASS","name":"EdgeInsetsGeometry","location":{"file":"C:\\code\\flutter\\flutter\\packages\\flutter\\lib\\src\\painting\\edge_insets.dart","offset":866,"length":18,"startLine":27,"startColumn":16},"flags":1},"offsets":[137],"length":18},{"element":{"kind":"FIELD","name":"dimensions","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":-1,"length":10,"startLine":1,"startColumn":0},"flags":4,"returnType":"EdgeInsetsGeometry"},"offsets":[160],"length":10},{"element":{"kind":"CLASS","name":"UnimplementedError","location":{"file":"C:\\code\\flutter\\flutter\\bin\\cache\\pkg\\sky_engine\\lib\\core\\errors.dart","offset":18272,"length":18,"startLine":548,"startColumn":7},"flags":0},"offsets":[180,330,485,724],"length":18},{"element":{"kind":"CLASS","name":"Path","location":{"file":"C:\\code\\flutter\\flutter\\bin\\cache\\pkg\\sky_engine\\lib\\ui\\painting.dart","offset":75851,"length":4,"startLine":1938,"startColumn":7},"flags":0},"offsets":[220,375],"length":4},{"element":{"…
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.closingLabels","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","labels":[]}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.folding","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","regions":[{"kind":"CLASS_BODY","offset":87,"length":669},{"kind":"FUNCTION_BODY","offset":281,"length":74},{"kind":"FUNCTION_BODY","offset":436,"length":74},{"kind":"FUNCTION_BODY","offset":599,"length":34},{"kind":"FUNCTION_BODY","offset":682,"length":67}]}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.outline","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","kind":"LIBRARY","outline":{"element":{"kind":"COMPILATION_UNIT","name":"<unit>","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":0,"length":757,"startLine":1,"startColumn":1},"flags":0},"offset":0,"length":757,"codeOffset":0,"codeLength":757,"children":[{"element":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"flags":0},"offset":43,"length":714,"codeOffset":43,"codeLength":714,"children":[{"element":{"kind":"GETTER","name":"dimensions","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":160,"length":10,"startLine":6,"startColumn":26},"flags":0,"returnType":"EdgeInsetsGeometry"},"offset":91,"length":110,"codeOffset":137,"codeLength":64},{"element":{"kind":"METHOD","name":"getInnerPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":225,"length":12,"startLine":9,"startColumn":8},"flags":0,"parameters":"(Rect rect, {TextDirection textDirection})","returnType":"Path"},"offset":207,"length":149,"codeOffset":220,"codeLength":136},{"element":{"kind":"METHOD","name":"getOuterPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":380,"length":12,"startLine":15,"startColumn":8},"flags":0,"parameters":"(Rect rect, {TextDirection textDirection})","returnType":"Path"},"offset":362,"length":149,"codeOffset":375,"codeLength":136},{"element":{"kind":"METHOD","name":"paint","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":535,"length":5,"startLine":21,"startColumn":8},"flags":0,"parameters":"(Canvas canvas, Rect rect, {TextDirection…
[12:52:25 pm] [Analyzer] [Info] <== {"event":"flutter.outline","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","outline":{"kind":"DART_ELEMENT","offset":0,"length":757,"codeOffset":0,"codeLength":757,"dartElement":{"kind":"COMPILATION_UNIT","name":"<unit>","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":0,"length":757,"startLine":1,"startColumn":1},"flags":0},"children":[{"kind":"DART_ELEMENT","offset":43,"length":714,"codeOffset":43,"codeLength":714,"dartElement":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"flags":0},"children":[{"kind":"DART_ELEMENT","offset":91,"length":110,"codeOffset":137,"codeLength":64,"dartElement":{"kind":"GETTER","name":"dimensions","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":160,"length":10,"startLine":6,"startColumn":26},"flags":0,"returnType":"EdgeInsetsGeometry"}},{"kind":"DART_ELEMENT","offset":207,"length":149,"codeOffset":220,"codeLength":136,"dartElement":{"kind":"METHOD","name":"getInnerPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":225,"length":12,"startLine":9,"startColumn":8},"flags":0,"parameters":"(Rect rect, {TextDirection textDirection})","returnType":"Path"}},{"kind":"DART_ELEMENT","offset":362,"length":149,"codeOffset":375,"codeLength":136,"dartElement":{"kind":"METHOD","name":"getOuterPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":380,"length":12,"startLine":15,"startColumn":8},"flags":0,"parameters":"(Rect rect, {TextDirection textDirection})","returnType":"Path"}},{"kind":"DART_ELEMENT","offset":517,"length":117,"codeOffset":530,"codeLength":104,"dartElement":{"kind":"METHOD","name":"paint","location":{"file":"…
[12:52:25 pm] [General] [Info] "import 'package:flutter/material.dart';\r\n\r\nclass CustomShapeBorder extends ShapeBorder{\r\n  @override\r\n  // TODO: implement dimensions\r\n  EdgeInsetsGeometry get dimensions => throw UnimplementedError();\r\n\r\n  @override\r\n  Path getInnerPath(Rect rect, {TextDirection textDirection}) {\r\n    // TODO: implement getInnerPath\r\n    throw UnimplementedError();\r\n  }\r\n\r\n  @override\r\n  Path getOuterPath(Rect rect, {TextDirection textDirection}) {\r\n    // TODO: implement getOuterPath\r\n    throw UnimplementedError();\r\n  }\r\n\r\n  @override\r\n  void paint(Canvas canvas, Rect rect, {TextDirection textDirection}) {\r\n    // TODO: implement paint\r\n  }\r\n\r\n  @override\r\n  ShapeBorder scale(double t) {\r\n    // TODO: implement scale\r\n    throw UnimplementedError();\r\n  }\r\n  \r\n}"
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is th(R
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is ct r
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is , {TextDirect
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is erPa
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is h(Re
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is rect, {TextDi
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is void p
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is int(Ca
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is as c
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is nvas
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is ect rect, {Te
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is eBorde
[12:52:25 pm] [General] [Info] Default value for linkedEditGroup is
[12:52:25 pm] [General] [Info] Will replace whole document! Got 13 placeholders
[12:52:25 pm] [General] [Info] Appending th(R,Rect,Object choices with number 1
[12:52:25 pm] [General] [Info] Appending 1 of characters from original document
[12:52:25 pm] [General] [Info] Appending placeholder ct r with number 2
[12:52:25 pm] [General] [Info] Appending 3 of characters from original document
[12:52:25 pm] [General] [Info] Appending , {TextDirect,TextDirection,Object choices with number 3
[12:52:25 pm] [General] [Info] Appending 126 of characters from original document
[12:52:25 pm] [General] [Info] Appending erPa,Rect,Object choices with number 4
[12:52:25 pm] [General] [Info] Appending 1 of characters from original document
[12:52:25 pm] [General] [Info] Appending placeholder h(Re with number 5
[12:52:25 pm] [General] [Info] Appending 3 of characters from original document
[12:52:25 pm] [General] [Info] Appending rect, {TextDi,TextDirection,Object choices with number 6
[12:52:25 pm] [General] [Info] Appending 119 of characters from original document
[12:52:25 pm] [General] [Info] Appending void p,Canvas,Object choices with number 7
[12:52:25 pm] [General] [Info] Appending 1 of characters from original document
[12:52:25 pm] [General] [Info] Appending placeholder int(Ca with number 8
[12:52:25 pm] [General] [Info] Appending 2 of characters from original document
[12:52:25 pm] [General] [Info] Appending as c,Rect,Object choices with number 9
[12:52:25 pm] [General] [Info] Appending 1 of characters from original document
[12:52:25 pm] [General] [Info] Appending placeholder nvas with number 10
[12:52:25 pm] [General] [Info] Appending 3 of characters from original document
[12:52:25 pm] [General] [Info] Appending ect rect, {Te,TextDirection,Object choices with number 11
[12:52:25 pm] [General] [Info] Appending 87 of characters from original document
[12:52:25 pm] [General] [Info] Appending eBorde,double,num,Object,Comparable<num> choices with number 12
[12:52:25 pm] [General] [Info] Appending 1 of characters from original document
[12:52:25 pm] [General] [Info] Appending placeholder   with number 13
[12:52:25 pm] [General] [Info] Calling insertSnippet with:
${1|th(R,Rect,Object|}e${2:ct r}ect${3|, {TextDirect,TextDirection,Object|}ion textDirection\}) {
    // TODO: implement getInnerPath
    throw UnimplementedError();
  \}

  @override
  Path getOut${4|erPa,Rect,Object|}t${5:h(Re}ct ${6|rect, {TextDi,TextDirection,Object|}rection textDirection\}) {
    // TODO: implement getOuterPath
    throw UnimplementedError();
  \}

  @override
  ${7|void p,Canvas,Object|}a${8:int(Ca}nv${9|as c,Rect,Object|}a${10:nvas}, R${11|ect rect, {Te,TextDirection,Object|}xtDirection textDirection\}) {
    // TODO: implement paint
  \}

  @override
  Shap${12|eBorde,double,num,Object,Comparable<num>|}r${13: }
[12:52:25 pm] [Analyzer] [Info] <== {"event":"completion.availableSuggestions","params":{"changedLibraries":[{"id":977,"uri":"package:vs_code_issue/shapeBorderTest.dart","items":[{"label":"CustomShapeBorder","declaringLibraryUri":"package:vs_code_issue/shapeBorderTest.dart","element":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":0,"startLine":3,"startColumn":7},"flags":0},"relevanceTags":["package:vs_code_issue/shapeBorderTest.dart::CustomShapeBorder","CustomShapeBorder"]},{"label":"CustomShapeBorder","declaringLibraryUri":"package:vs_code_issue/shapeBorderTest.dart","element":{"kind":"CONSTRUCTOR","name":"","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":-1,"length":0,"startLine":0,"startColumn":0},"flags":0,"parameters":"()","returnType":"CustomShapeBorder"},"parameterNames":[],"parameterTypes":[],"relevanceTags":["package:vs_code_issue/shapeBorderTest.dart::CustomShapeBorder",""],"requiredParameterCount":0}]}],"removedLibraries":[]}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
[12:52:25 pm] [Analyzer] [Info] ==> {"id":"336","method":"analysis.updateContent","params":{"files":{"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart":{"edits":[{"id":"","length":430,"offset":235,"replacement":"th(Rect rect${3|, {TextDirect,TextDirection,Object|}ion textDirection}) {\r\n      // TODO: implement getInnerPath\r\n      throw UnimplementedError();\r\n    }\r\n  \r\n    @override\r\n    Path getOuterPath(Rect rectrection textDirection}) {\r\n      // TODO: implement getOuterPath\r\n      throw UnimplementedError();\r\n    }\r\n  \r\n    @override\r\n    void paint(Canvas canvas, Rect rectxtDirection textDirection}) {\r\n      // TODO: implement paint\r\n    }\r\n  \r\n    @override\r\n    ShapeBorder "}],"type":"change"}}},"clientRequestTime":1600068145202}
[12:52:25 pm] [Analyzer] [Info] <== {"id":"336","result":{}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.errors","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","errors":[{"severity":"ERROR","type":"STATIC_WARNING","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"message":"Missing concrete implementations of 'ShapeBorder.paint' and 'ShapeBorder.scale'.","correction":"Try implementing the missing methods, or make the class abstract.","code":"non_abstract_class_inherits_abstract_member","url":"https://dart.dev/tools/diagnostic-messages#non_abstract_class_inherits_abstract_member","hasFix":true},{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":319,"length":28,"startLine":10,"startColumn":10},"message":"TODO: implement getInnerPath","code":"todo","hasFix":false},{"severity":"ERROR","type":"SYNTACTIC_ERROR","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":465,"length":1,"startLine":15,"startColumn":56},"message":"Expected a method, getter, setter or operator declaration.","correction":"This appears to be incomplete code. Try removing it or completing it.","code":"expected_executable","hasFix":false},{"severity":"ERROR","type":"SYNTACTIC_ERROR","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":248,"length":1,"startLine":9,"startColumn":31},"message":"Expected to find ')'.","code":"expected_token","hasFix":true},{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":647,"length":21,"startLine":22,"startColumn":10},"message":"TODO: implement paint","code":"todo","hasFix":false},{"severity":"ERROR","type":"SYNTACTIC_ERROR","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset…
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.occurrences","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","occurrences":[{"element":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"flags":0},"offsets":[49],"length":17},{"element":{"kind":"CLASS","name":"ShapeBorder","location":{"file":"C:\\code\\flutter\\flutter\\packages\\flutter\\lib\\src\\painting\\borders.dart","offset":9668,"length":11,"startLine":290,"startColumn":16},"flags":1},"offsets":[75,700],"length":11},{"element":{"kind":"TOP_LEVEL_VARIABLE","name":"override","location":{"file":"C:\\code\\flutter\\flutter\\bin\\cache\\pkg\\sky_engine\\lib\\core\\annotations.dart","offset":4627,"length":8,"startLine":114,"startColumn":14},"flags":10,"returnType":"Object"},"offsets":[92,208,400,558,686],"length":8},{"element":{"kind":"CLASS","name":"EdgeInsetsGeometry","location":{"file":"C:\\code\\flutter\\flutter\\packages\\flutter\\lib\\src\\painting\\edge_insets.dart","offset":866,"length":18,"startLine":27,"startColumn":16},"flags":1},"offsets":[137],"length":18},{"element":{"kind":"FIELD","name":"dimensions","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":-1,"length":10,"startLine":1,"startColumn":0},"flags":4,"returnType":"EdgeInsetsGeometry"},"offsets":[160],"length":10},{"element":{"kind":"CLASS","name":"UnimplementedError","location":{"file":"C:\\code\\flutter\\flutter\\bin\\cache\\pkg\\sky_engine\\lib\\core\\errors.dart","offset":18272,"length":18,"startLine":548,"startColumn":7},"flags":0},"offsets":[180,361,771],"length":18},{"element":{"kind":"CLASS","name":"Path","location":{"file":"C:\\code\\flutter\\flutter\\bin\\cache\\pkg\\sky_engine\\lib\\ui\\painting.dart","offset":75851,"length":4,"startLine":1938,"startColumn":7},"flags":0},"offsets":[220,414],"length":4},{"element":{"kind…
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.closingLabels","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","labels":[]}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.folding","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","regions":[{"kind":"CLASS_BODY","offset":87,"length":375},{"kind":"FUNCTION_BODY","offset":308,"length":80},{"kind":"FUNCTION_BODY","offset":636,"length":38},{"kind":"FUNCTION_BODY","offset":729,"length":67}]}}
[12:52:25 pm] [Analyzer] [Info] <== {"event":"analysis.outline","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","kind":"LIBRARY","outline":{"element":{"kind":"COMPILATION_UNIT","name":"<unit>","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":0,"length":804,"startLine":1,"startColumn":1},"flags":0},"offset":0,"length":804,"codeOffset":0,"codeLength":804,"children":[{"element":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"flags":0},"offset":43,"length":420,"codeOffset":43,"codeLength":420,"children":[{"element":{"kind":"GETTER","name":"dimensions","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":160,"length":10,"startLine":6,"startColumn":26},"flags":0,"returnType":"EdgeInsetsGeometry"},"offset":91,"length":110,"codeOffset":137,"codeLength":64},{"element":{"kind":"METHOD","name":"getInnerPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":225,"length":12,"startLine":9,"startColumn":8},"flags":0,"parameters":"(Rect rect$)","returnType":"Path"},"offset":207,"length":182,"codeOffset":220,"codeLength":169},{"element":{"kind":"METHOD","name":"getOuterPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":419,"length":12,"startLine":15,"startColumn":10},"flags":0,"parameters":"(Rect rectrection)","returnType":"Path"},"offset":399,"length":50,"codeOffset":414,"codeLength":35},{"element":{"kind":"FIELD","name":"textDirection","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":449,"length":13,"startLine":15,"startColumn":40},"flags":0,"returnType":""},"offset":449,"length":13,"codeOffset":449,"codeLength":13}]},{"element":{"kind":"FUN…
[12:52:25 pm] [Analyzer] [Info] <== {"event":"flutter.outline","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","outline":{"kind":"DART_ELEMENT","offset":0,"length":804,"codeOffset":0,"codeLength":804,"dartElement":{"kind":"COMPILATION_UNIT","name":"<unit>","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":0,"length":804,"startLine":1,"startColumn":1},"flags":0},"children":[{"kind":"DART_ELEMENT","offset":43,"length":420,"codeOffset":43,"codeLength":420,"dartElement":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"flags":0},"children":[{"kind":"DART_ELEMENT","offset":91,"length":110,"codeOffset":137,"codeLength":64,"dartElement":{"kind":"GETTER","name":"dimensions","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":160,"length":10,"startLine":6,"startColumn":26},"flags":0,"returnType":"EdgeInsetsGeometry"}},{"kind":"DART_ELEMENT","offset":207,"length":182,"codeOffset":220,"codeLength":169,"dartElement":{"kind":"METHOD","name":"getInnerPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":225,"length":12,"startLine":9,"startColumn":8},"flags":0,"parameters":"(Rect rect$)","returnType":"Path"}},{"kind":"DART_ELEMENT","offset":399,"length":50,"codeOffset":414,"codeLength":35,"dartElement":{"kind":"METHOD","name":"getOuterPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":419,"length":12,"startLine":15,"startColumn":10},"flags":0,"parameters":"(Rect rectrection)","returnType":"Path"}},{"kind":"DART_ELEMENT","offset":449,"length":13,"codeOffset":449,"codeLength":13,"dartElement":{"kind":"FIELD","name":"textDirection","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\…
[12:52:25 pm] [Analyzer] [Info] <== {"event":"completion.availableSuggestions","params":{"changedLibraries":[{"id":977,"uri":"package:vs_code_issue/shapeBorderTest.dart","items":[{"label":"paint","declaringLibraryUri":"package:vs_code_issue/shapeBorderTest.dart","element":{"kind":"FUNCTION","name":"paint","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":577,"length":0,"startLine":21,"startColumn":10},"flags":0,"parameters":"(Canvas canvas, Rect rectxtDirection)","returnType":"void"},"defaultArgumentListString":"canvas, rectxtDirection","defaultArgumentListTextRanges":[0,6,8,15],"parameterNames":["canvas","rectxtDirection"],"parameterTypes":["Canvas","Rect"],"requiredParameterCount":2},{"label":"scale","declaringLibraryUri":"package:vs_code_issue/shapeBorderTest.dart","element":{"kind":"FUNCTION","name":"scale","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":712,"length":0,"startLine":26,"startColumn":17},"flags":0,"parameters":"(double t)","returnType":"ShapeBorder"},"defaultArgumentListString":"t","defaultArgumentListTextRanges":[0,1],"parameterNames":["t"],"parameterTypes":["double"],"requiredParameterCount":1},{"label":"CustomShapeBorder","declaringLibraryUri":"package:vs_code_issue/shapeBorderTest.dart","element":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":0,"startLine":3,"startColumn":7},"flags":0},"relevanceTags":["package:vs_code_issue/shapeBorderTest.dart::CustomShapeBorder","CustomShapeBorder"]},{"label":"CustomShapeBorder","declaringLibraryUri":"package:vs_code_issue/shapeBorderTest.dart","element":{"kind":"CONSTRUCTOR","name":"","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":-1,"length":0,"startLine":0,"startColumn":0},"flags":0,"parameters":"()","returnType":"CustomShapeBorder"},"parameterNames":[],"…
[12:52:25 pm] [Analyzer] [Info] <== {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
[12:52:25 pm] [Analyzer] [Info] ==> {"id":"337","method":"edit.getFixes","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":235},"clientRequestTime":1600068145321}
[12:52:25 pm] [Analyzer] [Info] ==> {"id":"338","method":"edit.getAssists","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","length":0,"offset":235},"clientRequestTime":1600068145322}
[12:52:25 pm] [Analyzer] [Info] ==> {"id":"339","method":"edit.getAvailableRefactorings","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","length":0,"offset":235},"clientRequestTime":1600068145322}
[12:52:25 pm] [Analyzer] [Info] <== {"id":"337","result":{"fixes":[]}}
[12:52:25 pm] [Analyzer] [Info] <== {"id":"339","result":{"kinds":["RENAME"]}}
[12:52:25 pm] [Analyzer] [Info] <== {"id":"338","result":{"assists":[{"message":"Convert to async function body","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":307,"length":0,"replacement":"async "},{"offset":220,"length":4,"replacement":"Future<Path>"}]}],"linkedEditGroups":[],"id":"dart.assist.convert.bodyToAsync"},{"message":"Convert to expression body","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":307,"length":82,"replacement":"=> throw UnimplementedError();"}]}],"linkedEditGroups":[],"id":"dart.assist.convert.bodyToExpression"}]}}
[12:52:25 pm] [Analyzer] [Info] ==> {"id":"340","method":"edit.getFixes","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":235},"clientRequestTime":1600068145584}
[12:52:25 pm] [Analyzer] [Info] ==> {"id":"341","method":"edit.getAssists","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","length":0,"offset":235},"clientRequestTime":1600068145584}
[12:52:25 pm] [Analyzer] [Info] ==> {"id":"342","method":"edit.getAvailableRefactorings","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","length":0,"offset":235},"clientRequestTime":1600068145585}
[12:52:25 pm] [Analyzer] [Info] <== {"id":"340","result":{"fixes":[]}}
[12:52:25 pm] [Analyzer] [Info] <== {"id":"342","result":{"kinds":["RENAME"]}}
[12:52:25 pm] [Analyzer] [Info] <== {"id":"341","result":{"assists":[{"message":"Convert to async function body","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":307,"length":0,"replacement":"async "},{"offset":220,"length":4,"replacement":"Future<Path>"}]}],"linkedEditGroups":[],"id":"dart.assist.convert.bodyToAsync"},{"message":"Convert to expression body","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":307,"length":82,"replacement":"=> throw UnimplementedError();"}]}],"linkedEditGroups":[],"id":"dart.assist.convert.bodyToExpression"}]}}
[12:52:26 pm] [Analyzer] [Info] <== {"event":"server.status","params":{"analysis":{"isAnalyzing":true}}}
[12:52:26 pm] [Analyzer] [Info] <== {"event":"completion.availableSuggestions","params":{"changedLibraries":[{"id":978,"uri":"package:vs_code_issue/ShapeBorderTest.dart","items":[{"label":"paint","declaringLibraryUri":"package:vs_code_issue/ShapeBorderTest.dart","element":{"kind":"FUNCTION","name":"paint","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","offset":577,"length":0,"startLine":21,"startColumn":10},"flags":0,"parameters":"(Canvas canvas, Rect rectxtDirection)","returnType":"void"},"defaultArgumentListString":"canvas, rectxtDirection","defaultArgumentListTextRanges":[0,6,8,15],"parameterNames":["canvas","rectxtDirection"],"parameterTypes":["Canvas","Rect"],"requiredParameterCount":2},{"label":"scale","declaringLibraryUri":"package:vs_code_issue/ShapeBorderTest.dart","element":{"kind":"FUNCTION","name":"scale","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","offset":712,"length":0,"startLine":26,"startColumn":17},"flags":0,"parameters":"(double t)","returnType":"ShapeBorder"},"defaultArgumentListString":"t","defaultArgumentListTextRanges":[0,1],"parameterNames":["t"],"parameterTypes":["double"],"requiredParameterCount":1},{"label":"CustomShapeBorder","declaringLibraryUri":"package:vs_code_issue/ShapeBorderTest.dart","element":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","offset":49,"length":0,"startLine":3,"startColumn":7},"flags":0},"relevanceTags":["package:vs_code_issue/ShapeBorderTest.dart::CustomShapeBorder","CustomShapeBorder"]},{"label":"CustomShapeBorder","declaringLibraryUri":"package:vs_code_issue/ShapeBorderTest.dart","element":{"kind":"CONSTRUCTOR","name":"","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","offset":4294967295,"length":0,"startLine":0,"startColumn":0},"flags":0,"parameters":"()","returnType":"CustomShapeBorder"},"parameterNam…
[12:52:26 pm] [Analyzer] [Info] <== {"event":"analysis.errors","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","errors":[{"severity":"ERROR","type":"STATIC_WARNING","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"message":"Missing concrete implementations of 'ShapeBorder.paint' and 'ShapeBorder.scale'.","correction":"Try implementing the missing methods, or make the class abstract.","code":"non_abstract_class_inherits_abstract_member","url":"https://dart.dev/tools/diagnostic-messages#non_abstract_class_inherits_abstract_member","hasFix":true},{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":319,"length":28,"startLine":10,"startColumn":10},"message":"TODO: implement getInnerPath","code":"todo","hasFix":false},{"severity":"ERROR","type":"SYNTACTIC_ERROR","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":465,"length":1,"startLine":15,"startColumn":56},"message":"Expected a method, getter, setter or operator declaration.","correction":"This appears to be incomplete code. Try removing it or completing it.","code":"expected_executable","hasFix":false},{"severity":"ERROR","type":"SYNTACTIC_ERROR","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":248,"length":1,"startLine":9,"startColumn":31},"message":"Expected to find ')'.","code":"expected_token","hasFix":true},{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":647,"length":21,"startLine":22,"startColumn":10},"message":"TODO: implement paint","code":"todo","hasFix":false},{"severity":"ERROR","type":"SYNTACTIC_ERROR","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset…
[12:52:26 pm] [Analyzer] [Info] <== {"event":"analysis.occurrences","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","occurrences":[{"element":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"flags":0},"offsets":[49],"length":17},{"element":{"kind":"CLASS","name":"ShapeBorder","location":{"file":"C:\\code\\flutter\\flutter\\packages\\flutter\\lib\\src\\painting\\borders.dart","offset":9668,"length":11,"startLine":290,"startColumn":16},"flags":1},"offsets":[75,700],"length":11},{"element":{"kind":"TOP_LEVEL_VARIABLE","name":"override","location":{"file":"C:\\code\\flutter\\flutter\\bin\\cache\\pkg\\sky_engine\\lib\\core\\annotations.dart","offset":4627,"length":8,"startLine":114,"startColumn":14},"flags":10,"returnType":"Object"},"offsets":[92,208,400,558,686],"length":8},{"element":{"kind":"CLASS","name":"EdgeInsetsGeometry","location":{"file":"C:\\code\\flutter\\flutter\\packages\\flutter\\lib\\src\\painting\\edge_insets.dart","offset":866,"length":18,"startLine":27,"startColumn":16},"flags":1},"offsets":[137],"length":18},{"element":{"kind":"FIELD","name":"dimensions","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":-1,"length":10,"startLine":1,"startColumn":0},"flags":4,"returnType":"EdgeInsetsGeometry"},"offsets":[160],"length":10},{"element":{"kind":"CLASS","name":"UnimplementedError","location":{"file":"C:\\code\\flutter\\flutter\\bin\\cache\\pkg\\sky_engine\\lib\\core\\errors.dart","offset":18272,"length":18,"startLine":548,"startColumn":7},"flags":0},"offsets":[180,361,771],"length":18},{"element":{"kind":"CLASS","name":"Path","location":{"file":"C:\\code\\flutter\\flutter\\bin\\cache\\pkg\\sky_engine\\lib\\ui\\painting.dart","offset":75851,"length":4,"startLine":1938,"startColumn":7},"flags":0},"offsets":[220,414],"length":4},{"element":{"kind…
[12:52:26 pm] [Analyzer] [Info] <== {"event":"analysis.closingLabels","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","labels":[]}}
[12:52:26 pm] [Analyzer] [Info] <== {"event":"analysis.folding","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","regions":[{"kind":"CLASS_BODY","offset":87,"length":375},{"kind":"FUNCTION_BODY","offset":308,"length":80},{"kind":"FUNCTION_BODY","offset":636,"length":38},{"kind":"FUNCTION_BODY","offset":729,"length":67}]}}
[12:52:26 pm] [Analyzer] [Info] <== {"event":"analysis.outline","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","kind":"LIBRARY","outline":{"element":{"kind":"COMPILATION_UNIT","name":"<unit>","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":0,"length":804,"startLine":1,"startColumn":1},"flags":0},"offset":0,"length":804,"codeOffset":0,"codeLength":804,"children":[{"element":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"flags":0},"offset":43,"length":420,"codeOffset":43,"codeLength":420,"children":[{"element":{"kind":"GETTER","name":"dimensions","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":160,"length":10,"startLine":6,"startColumn":26},"flags":0,"returnType":"EdgeInsetsGeometry"},"offset":91,"length":110,"codeOffset":137,"codeLength":64},{"element":{"kind":"METHOD","name":"getInnerPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":225,"length":12,"startLine":9,"startColumn":8},"flags":0,"parameters":"(Rect rect$)","returnType":"Path"},"offset":207,"length":182,"codeOffset":220,"codeLength":169},{"element":{"kind":"METHOD","name":"getOuterPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":419,"length":12,"startLine":15,"startColumn":10},"flags":0,"parameters":"(Rect rectrection)","returnType":"Path"},"offset":399,"length":50,"codeOffset":414,"codeLength":35},{"element":{"kind":"FIELD","name":"textDirection","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":449,"length":13,"startLine":15,"startColumn":40},"flags":0,"returnType":""},"offset":449,"length":13,"codeOffset":449,"codeLength":13}]},{"element":{"kind":"FUN…
[12:52:26 pm] [Analyzer] [Info] <== {"event":"flutter.outline","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","outline":{"kind":"DART_ELEMENT","offset":0,"length":804,"codeOffset":0,"codeLength":804,"dartElement":{"kind":"COMPILATION_UNIT","name":"<unit>","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":0,"length":804,"startLine":1,"startColumn":1},"flags":0},"children":[{"kind":"DART_ELEMENT","offset":43,"length":420,"codeOffset":43,"codeLength":420,"dartElement":{"kind":"CLASS","name":"CustomShapeBorder","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":49,"length":17,"startLine":3,"startColumn":7},"flags":0},"children":[{"kind":"DART_ELEMENT","offset":91,"length":110,"codeOffset":137,"codeLength":64,"dartElement":{"kind":"GETTER","name":"dimensions","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":160,"length":10,"startLine":6,"startColumn":26},"flags":0,"returnType":"EdgeInsetsGeometry"}},{"kind":"DART_ELEMENT","offset":207,"length":182,"codeOffset":220,"codeLength":169,"dartElement":{"kind":"METHOD","name":"getInnerPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":225,"length":12,"startLine":9,"startColumn":8},"flags":0,"parameters":"(Rect rect$)","returnType":"Path"}},{"kind":"DART_ELEMENT","offset":399,"length":50,"codeOffset":414,"codeLength":35,"dartElement":{"kind":"METHOD","name":"getOuterPath","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":419,"length":12,"startLine":15,"startColumn":10},"flags":0,"parameters":"(Rect rectrection)","returnType":"Path"}},{"kind":"DART_ELEMENT","offset":449,"length":13,"codeOffset":449,"codeLength":13,"dartElement":{"kind":"FIELD","name":"textDirection","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\…
[12:52:26 pm] [Analyzer] [Info] <== {"event":"analysis.errors","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","errors":[{"severity":"INFO","type":"HINT","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","offset":419,"length":12,"startLine":15,"startColumn":10},"message":"This function has a return type of 'Path', but doesn't end with a return statement.","correction":"Try adding a return statement, or changing the return type to 'void'.","code":"missing_return","url":"https://dart.dev/tools/diagnostic-messages#missing_return","hasFix":false},{"severity":"ERROR","type":"SYNTACTIC_ERROR","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","offset":619,"length":13,"startLine":21,"startColumn":52},"message":"Expected to find ')'.","code":"expected_token","hasFix":true},{"severity":"ERROR","type":"COMPILE_TIME_ERROR","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","offset":419,"length":12,"startLine":15,"startColumn":10},"message":"'CustomShapeBorder.getOuterPath' ('Path Function(Rect)') isn't a valid override of 'ShapeBorder.getOuterPath' ('Path Function(Rect, {TextDirection textDirection})').","code":"invalid_override","url":"https://dart.dev/tools/diagnostic-messages#invalid_override","hasFix":false},{"severity":"ERROR","type":"SYNTACTIC_ERROR","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","offset":803,"length":1,"startLine":31,"startColumn":1},"message":"Expected a method, getter, setter or operator declaration.","correction":"This appears to be incomplete code. Try removing it or completing it.","code":"expected_executable","hasFix":false},{"severity":"INFO","type":"TODO","location":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\ShapeBorderTest.dart","offset":477,"length":28,"startLine":16,"startColumn":10},"message":"TODO: implement getOuterPat…
[12:52:26 pm] [Analyzer] [Info] <== {"event":"server.status","params":{"analysis":{"isAnalyzing":false}}}
[12:52:26 pm] [Analyzer] [Info] ==> {"id":"343","method":"edit.getFixes","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","offset":235},"clientRequestTime":1600068146695}
[12:52:26 pm] [Analyzer] [Info] ==> {"id":"344","method":"edit.getAssists","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","length":0,"offset":235},"clientRequestTime":1600068146696}
[12:52:26 pm] [Analyzer] [Info] ==> {"id":"345","method":"edit.getAvailableRefactorings","params":{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","length":0,"offset":235},"clientRequestTime":1600068146696}
[12:52:26 pm] [Analyzer] [Info] <== {"id":"343","result":{"fixes":[]}}
[12:52:26 pm] [Analyzer] [Info] <== {"id":"345","result":{"kinds":["RENAME"]}}
[12:52:26 pm] [Analyzer] [Info] <== {"id":"344","result":{"assists":[{"message":"Convert to async function body","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":307,"length":0,"replacement":"async "},{"offset":220,"length":4,"replacement":"Future<Path>"}]}],"linkedEditGroups":[],"id":"dart.assist.convert.bodyToAsync"},{"message":"Convert to expression body","edits":[{"file":"D:\\work_src\\vscode github issue\\vs_code_issue\\lib\\shapeBorderTest.dart","fileStamp":0,"edits":[{"offset":307,"length":82,"replacement":"=> throw UnimplementedError();"}]}],"linkedEditGroups":[],"id":"dart.assist.convert.bodyToExpression"}]}}
Mon Sep 14 2020 [12:52:29 GMT+0530 (India Standard Time)] Log file ended

@DanTup
Copy link
Member

DanTup commented Sep 14, 2020

Thanks - I think I see what's going on. The edit we're appling has some \n's in it:

"replacement":"\r\n  @override\n  // TODO: implement dimensions\n  EdgeInsetsGeometry

However the edit being made by VS Code has these normalised to \r\n:

"replacement":"\r\n  @override\r\n  // TODO: implement dimensions\r\n

This means all of the offsets calculated for the snippets are now wrong. I'll see if I can repro on Windows and find a solution.

In the meantime, if you're able to try enabling the dart.previewLsp setting (restart VS Code after changing the setting), that uses a different code path so it'd be interesting to know if the issue goes away (in the future, the LSP option will become the default).

Thanks!

@DanTup DanTup added in editor Relates to code editing or language features is bug on windows and removed awaiting info Requires more information from the customer to progress labels Sep 14, 2020
@DanTup DanTup added this to the v3.15.0 milestone Sep 14, 2020
@DanTup DanTup changed the title [ShapeBorder Class]-3of 5 Overrides created have errors when created using QuickFix of VsCode "Create missing overrides" generates invalid code on Windows Sep 14, 2020
@Maverick099
Copy link
Author

ohhh, I get it. I'll turn on the LSP and then report back

@Maverick099
Copy link
Author

@DanTup After turning on the previreLsp the problem doesn't appear. The problem did not appear even after rolling back to version 3.14.1 from 3.15.0-dev.1

image

@Maverick099
Copy link
Author

So I guess the issue can be closed because according to you LSP option will become a default in future.

@DanTup
Copy link
Member

DanTup commented Sep 14, 2020

I'll have a look if there's an easy fix for non-LSP, since it'll still be around for at least a few months (how fast it rolls out depends on how quickly we find/fix any remaining issues).

I'd recommend you stick on LSP to avoid this, and if you find any issues while using it, please open new issues here so I can get them fixed. Thanks!

@Maverick099
Copy link
Author

yep 👍🏻

dart-bot pushed a commit to dart-lang/sdk that referenced this issue Sep 17, 2020
…ent on Windows

See Dart-Code/Dart-Code#2766.

Change-Id: Ib1d5f06a9a3667c704e9656b233cc2cce01fa3d7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/163206
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
@DanTup
Copy link
Member

DanTup commented Sep 23, 2020

Working around this for non-LSP in the VS Code extension is but I've landed some fixes in the server that will prevent generating the problematic edits:

dart-lang/sdk@f820c1f

So the issue is resolved either by:

  • Switching to LSP
  • Updating to a new SDK once that fix ships

Long-term the buggy code here will be removed, once LS becomes the only option.

@DanTup DanTup added the in lsp/analysis server Something to be fixed in the Dart analysis server label Sep 23, 2020
@DanTup DanTup closed this as completed Sep 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in editor Relates to code editing or language features in lsp/analysis server Something to be fixed in the Dart analysis server is bug on windows
Projects
None yet
Development

No branches or pull requests

2 participants