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

Analyzer freezes multiple times per hour #47851

Closed
friebetill opened this issue Dec 4, 2021 · 16 comments
Closed

Analyzer freezes multiple times per hour #47851

friebetill opened this issue Dec 4, 2021 · 16 comments
Labels
analyzer-crash-report Issues which have been reported due to an analysis server crash analyzer-stability area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. P2 A bug or feature request we're likely to work on type-bug Incorrect behavior (everything from a crash to more subtle misbehavior)

Comments

@friebetill
Copy link

friebetill commented Dec 4, 2021

I already created a discussion on Reddit and was referred to this repository to post an issue.

The issue is that the analyzer doesn't run stable and I have to restart it several times within an hour. I can tell that the analyzer is no longer responding because the code is underlined in red in odd places and the places don't change even if I rewrite the code. Then I have to restart the analyzer with the command Dart: Restart Analysis Server. After a few seconds, I can continue programming. Nevertheless, the problem is quite annoying, since I sometimes think that my code is incorrect, although only the analyzer is freezed. On Reddit it sounds like several people are having the problem with VSCode, but there are no issues with Android Studio.

Here is a picture of what this looks like

image

Additionally, I noticed that often there are the same entries in the code suggestions. However, I do not know if the two problems have the same cause.

Here is a picture of what this looks like

image

I use macOS Monterey as my OS, but have also seen the problem on macOS Big Sur and Windows. My editor is VSCode, I haven't programmed with Android Studio for a long time.

My project has about 160k lines of code and I use a lot of linter rules
include: package:flutter_lints/flutter.yaml
analyzer:
  exclude:
    - lib/**/*.g.dart
    - lib/**/*.gql.dart
    - lib/**/*.gql.g.dart
    - lib/i18n/*.dart
    - lib/main.config.dart
    - ios/**/*.dart
    - macos/**/*.dart
    - linux/**/*.dart
  strong-mode:
    implicit-casts: false
  errors:
    dead_code: error
    unused_element: error
    unused_import: error
    unused_local_variable: error
    missing_required_param: warning
    missing_return: warning
  plugins:
    - dart_code_metrics
dart_code_metrics:
  # anti-patterns:
    # - long-method
    # - long-parameter-list
  metrics:
    # These values are strongly increased for now
    cyclomatic-complexity: 50
    lines-of-code: 100
    lines-of-executable-code: 150
    maximum-nesting-level: 10
    number-of-methods: 100
    number-of-parameters: 14
    source-lines-of-code: 100
    weight-of-class: 100
  metrics-exclude:
    - test/**
  rules:
    # - avoid-late-keyword
    # - avoid-non-null-assertion
    # - avoid-returning-widgets
    # - avoid-unused-parameters
    - binary-expression-operand-order
    - double-literal-format
    # - member-ordering
    # - member-ordering-extended
    - newline-before-return
    - no-boolean-literal-compare
    # - no-empty-block
    # - no-equal-arguments
    - no-equal-then-else
    # - no-magic-number
    # - no-object-declaration
    - prefer-conditional-expressions
    - prefer-trailing-comma
linter:
  rules:
    - always_declare_return_types
    # - always_put_required_named_parameters_first
    - always_put_control_body_on_new_line
    - always_put_required_named_parameters_first
    - always_require_non_null_named_parameters
    # - always_use_package_imports
    - annotate_overrides
    - avoid_annotating_with_dynamic
    # - avoid_as
    - avoid_bool_literals_in_conditional_expressions
    - avoid_catches_without_on_clauses
    - avoid_catching_errors
    - avoid_classes_with_only_static_members
    - avoid_double_and_int_checks
    # - avoid_dynamic_calls
    - avoid_empty_else
    - avoid_equals_and_hash_code_on_mutable_classes
    - avoid_escaping_inner_quotes
    - avoid_field_initializers_in_const_classes
    - avoid_function_literals_in_foreach_calls
    - avoid_implementing_value_types
    - avoid_init_to_null
    - avoid_js_rounded_ints
    - avoid_multiple_declarations_per_line
    - avoid_null_checks_in_equality_operators
    - avoid_positional_boolean_parameters
    - avoid_print
    - avoid_private_typedef_functions
    - avoid_redundant_argument_values
    - avoid_relative_lib_imports
    - avoid_renaming_method_parameters
    - avoid_return_types_on_setters
    - avoid_returning_null
    - avoid_returning_null_for_future
    - avoid_returning_null_for_void
    - avoid_returning_this
    # - avoid_setters_without_getters
    - avoid_shadowing_type_parameters
    - avoid_single_cascade_in_expression_statements
    - avoid_slow_async_io
    - avoid_type_to_string
    - avoid_types_as_parameter_names
    - avoid_types_on_closure_parameters
    - avoid_unnecessary_containers
    - avoid_unused_constructor_parameters
    - avoid_void_async
    - avoid_web_libraries_in_flutter
    - await_only_futures
    - camel_case_extensions
    - camel_case_types
    - cancel_subscriptions
    - cascade_invocations
    - cast_nullable_to_non_nullable
    - close_sinks
    # https://github.com/dart-lang/linter/issues/574
    # - comment_references
    - constant_identifier_names
    - control_flow_in_finally
    - curly_braces_in_flow_control_structures
    - deprecated_consistency
    # - diagnostic_describe_all_properties
    - directives_ordering
    # - do_not_use_environment
    - empty_catches
    - empty_constructor_bodies
    - empty_statements
    - eol_at_end_of_file
    - exhaustive_cases
    - file_names
    - flutter_style_todos
    - hash_and_equals
    - implementation_imports
    - invariant_booleans
    - iterable_contains_unrelated_type
    - join_return_with_assignment
    - leading_newlines_in_multiline_strings
    - library_names
    - library_prefixes
    - lines_longer_than_80_chars
    - list_remove_unrelated_type
    # - literal_only_boolean_expressions
    - missing_whitespace_between_adjacent_strings
    - no_adjacent_strings_in_list
    # - no_default_cases
    - no_duplicate_case_values
    - no_logic_in_create_state
    - no_runtimeType_toString
    - non_constant_identifier_names
    # - null_check_on_nullable_type_parameter
    - null_closures
    - omit_local_variable_types
    - one_member_abstracts
    - only_throw_errors
    - overridden_fields
    - package_api_docs
    - package_names
    - package_prefixed_library_names
    - parameter_assignments
    - prefer_adjacent_string_concatenation
    - prefer_asserts_in_initializer_lists
    # - prefer_asserts_with_message
    - prefer_collection_literals
    - prefer_conditional_assignment
    - prefer_const_constructors
    - prefer_const_constructors_in_immutables
    - prefer_const_declarations
    - prefer_const_literals_to_create_immutables
    - prefer_constructors_over_static_methods
    - prefer_contains
    - prefer_equal_for_default_values
    # - prefer_expression_function_bodies
    - prefer_final_fields
    - prefer_final_in_for_each
    - prefer_final_locals
    # - prefer_final_parameters
    - prefer_for_elements_to_map_fromIterable
    - prefer_foreach
    - prefer_function_declarations_over_variables
    - prefer_generic_function_type_aliases
    - prefer_if_elements_to_conditional_expressions
    - prefer_if_null_operators
    - prefer_initializing_formals
    - prefer_inlined_adds
    - prefer_int_literals
    - prefer_interpolation_to_compose_strings
    - prefer_is_empty
    - prefer_is_not_empty
    - prefer_is_not_operator
    - prefer_iterable_whereType
    - prefer_mixin
    - prefer_null_aware_method_calls
    - prefer_null_aware_operators
    - prefer_relative_imports
    - prefer_single_quotes
    - prefer_spread_collections
    - prefer_typing_uninitialized_variables
    - prefer_void_to_null
    - provide_deprecation_message
    # - public_member_api_docs
    - recursive_getters
    - sized_box_for_whitespace
    - slash_for_doc_comments
    - sort_child_properties_last
    - sort_constructors_first
    - sort_pub_dependencies
    - sort_unnamed_constructors_first
    # - super_goes_last
    - test_types_in_equals
    - throw_in_finally
    - tighten_type_of_initializing_formals
    - type_annotate_public_apis
    - type_init_formals
    - unawaited_futures
    - unnecessary_await_in_return
    - unnecessary_brace_in_string_interps
    - unnecessary_const
    - unnecessary_getters_setters
    - unnecessary_lambdas
    - unnecessary_new
    - unnecessary_null_aware_assignments
    # - unnecessary_null_checks
    - unnecessary_null_in_if_null_operators
    - unnecessary_nullable_for_final_variable_declarations
    - unnecessary_overrides
    - unnecessary_parenthesis
    - unnecessary_raw_strings
    - unnecessary_statements
    - unnecessary_string_escapes
    - unnecessary_string_interpolations
    - unnecessary_this
    - unrelated_type_equality_checks
    - unsafe_html
    - use_build_context_synchronously
    - use_full_hex_values_for_flutter_colors
    - use_function_type_syntax_for_parameters
    - use_if_null_to_convert_nulls_to_bools
    - use_is_even_rather_than_modulo
    - use_key_in_widget_constructors
    - use_late_for_private_fields_and_variables
    - use_named_constants
    - use_raw_strings
    - use_rethrow_when_possible
    - use_setters_to_change_properties
    - use_string_buffers
    - use_to_and_as_if_applicable
    - valid_regexps
    - void_checks

Some technical data:

Dart SDK version: 2.14.4 (stable) (Wed Oct 13 11:11:32 2021 +0200) on "macos_x64"
Flutter 2.5.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 18116933e7 (7 weeks ago) • 2021-10-15 10:46:35 -0700
VS Code 1.62.3 ccbaa2d27e38e5afa3e5c21c1c7bef4657064247 arm64
Dart Extension v3.29.0
Flutter Extension v3.29.0

Unfortunately I don't know how to create a reproducing example of the problem or how to find the necessary logs for this issue.

@lrhn lrhn added the area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. label Dec 6, 2021
@scheglov
Copy link
Contributor

scheglov commented Dec 6, 2021

@DanTup

@DanTup
Copy link
Collaborator

DanTup commented Dec 6, 2021

It seems like there are two issues here:

  • the analyzer freezing/stopping, which requires a restart
  • duplicate items in hovers/code actions (and perhaps more)

I'm not sure about the first one, but it may be helpful to enable the server instrumentation log. If you run the Preferences: Open Workspace Preferences command in your project, then set the dart.analyzerInstrumentationLogFile setting to a path (for example logs/analyzer.instrum.txt) then all of the traffic between VS Code and the server will be logged. Next time you see this issue where it freezes, the last section of that file might be useful to debug (though be aware that it will include parts of your source files before sharing).

The second issue I think is likely similar to Dart-Code/Dart-Code#3555 which is where a plugin (dart_mode_metrics in your case) registers for Dart files, and we incorrectly create two registrations for some Dart functionality (one for the plugin, and one for the servers base functionality). I can see my VS code making two Hover requests - although strangely it only seems to render one in the UI. In any case, I should be able to fix it fairly easily.

@DanTup
Copy link
Collaborator

DanTup commented Dec 6, 2021

I can see my VS code making two Hover requests

I spoke too soon - these were for two different locations as I moved my mouse around. @friebetill do you see the duplicate hovers always, or only after some time/some restarts?

@scheglov
Copy link
Contributor

scheglov commented Dec 6, 2021

In case if the instrumentation log does not show exceptions, and we have an infinite loop somewhere in the server, enabling Observatory and looking at CPU profile might allow us to see where this cycling happens. Although this will require some investigation on your side. See a similar discussion.

@DanTup
Copy link
Collaborator

DanTup commented Dec 6, 2021

I no longer think the duplicates are related to Dart-Code/Dart-Code#3555. In that case we were ending up with two registrations, whereas what I saw today was a single registration with two document selectors for Dart. It appears that this is fine and does not trigger multiple calls (which is why I didn't see it).

@friebetill when you next see duplicate content in the hover/mouseover, could you do the following:

  • Run the Dart: Capture Analysis Server Logs command in VS Code
  • Hover over something that triggers the issue
  • Click the Cancel button in the logging notification to stop logging and open the log

Any lines in that log that contain textDocument/hover would be useful. As would any lines from the instrumentation log file that contain client/registerCapability and client/unregisterCapability.

@friebetill
Copy link
Author

do you see the duplicate hovers always, or only after some time/some restarts?

I see the duplicate entries only after some time and not immediately after I start VSCode. Right now the duplications occurred after a few minutes without me restarting the analyzer.

Here are the logs I recorded with `Dart: Capture Analysis Server Logs`.
Dart Code extension: 3.29.0
Flutter extension: 3.29.0 (activated)

App: Visual Studio Code
Version: 1.62.3
Platform: mac

Workspace type: Flutter
Analyzer type: LSP
Multi-root?: true

Dart SDK:
    Loc: /usr/local/Caskroom/flutter/2.5.3/flutter/bin/cache/dart-sdk
    Ver: 2.14.4
Flutter SDK:
    Loc: /usr/local/Caskroom/flutter/2.5.3/flutter
    Ver: 2.5.3

HTTP_PROXY: undefined
NO_PROXY: undefined

Logging Categories:
    General, Analyzer, CommandProcesses

Mon Dec 06 2021 [21:51:19 GMT+0100 (Central European Standard Time)] Log file started
[9:51:21 PM] [Analyzer] [Info] ==> Content-Length: 255
[9:51:21 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3074,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":162,"character":10}}}
[9:51:21 PM] [Analyzer] [Info] ==> Content-Length: 255
[9:51:21 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3075,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":162,"character":10}}}
[9:51:21 PM] [Analyzer] [Info] <== Content-Length: 160
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:21 PM] [Analyzer] [Info] <== {"id":3074,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":""},"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}}}}
[9:51:21 PM] [Analyzer] [Info] <== Content-Length: 160
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:21 PM] [Analyzer] [Info] <== {"id":3075,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":""},"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}}}}
[9:51:21 PM] [Analyzer] [Info] ==> Content-Length: 840
[9:51:21 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3076,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"context":{"diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name.","code":"undefined_identifier","codeDescription":{"href":"file:///diagnostics/undefined_identifier"},"severity":1,"source":"dart"},{"range":{"start":{"line":162,"character":19},"end":{"line":162,"character":20}},"message":"Expected to find ')'.","code":"expected_token","severity":1,"source":"dart"}],"only":["quickfix"]}}}
[9:51:21 PM] [Analyzer] [Info] ==> Content-Length: 840
[9:51:21 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3077,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"context":{"diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name.","code":"undefined_identifier","codeDescription":{"href":"file:///diagnostics/undefined_identifier"},"severity":1,"source":"dart"},{"range":{"start":{"line":162,"character":19},"end":{"line":162,"character":20}},"message":"Expected to find ')'.","code":"expected_token","severity":1,"source":"dart"}],"only":["quickfix"]}}}
[9:51:21 PM] [Analyzer] [Info] <== Content-Length: 5668
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:21 PM] [Analyzer] [Info] <== {"id":3076,"jsonrpc":"2.0","result":[{"title":"Create class 'tnirp'","kind":"quickfix.create.class","diagnostics":[{"range":{"start":{"line":162,"character":31},"end":{"line":162,"character":36}},"severity":1,"code":"undefined_class","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_class"},"source":"dart","message":"Undefined class 'tnirp'.\nTry changing the name to the name of an existing class, or creating a class with the name 'tnirp'."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":250,"character":1},"end":{"line":250,"character":1}},"newText":"\n\nclass tnirp {\n}"}]}]}},{"title":"Create getter 'pngBytess'","kind":"quickfix.create.getter","diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":40,"character":56},"end":{"line":40,"character":56}},"newText":"\n\n  Object? get pngBytess => null;"}]}]}},{"title":"Create local variable 'pngBytess'","kind":"quickfix.create.localVariable","diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocum…
[9:51:21 PM] [Analyzer] [Info] <== Content-Length: 5668
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:21 PM] [Analyzer] [Info] <== {"id":3077,"jsonrpc":"2.0","result":[{"title":"Create class 'tnirp'","kind":"quickfix.create.class","diagnostics":[{"range":{"start":{"line":162,"character":31},"end":{"line":162,"character":36}},"severity":1,"code":"undefined_class","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_class"},"source":"dart","message":"Undefined class 'tnirp'.\nTry changing the name to the name of an existing class, or creating a class with the name 'tnirp'."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":250,"character":1},"end":{"line":250,"character":1}},"newText":"\n\nclass tnirp {\n}"}]}]}},{"title":"Create getter 'pngBytess'","kind":"quickfix.create.getter","diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":40,"character":56},"end":{"line":40,"character":56}},"newText":"\n\n  Object? get pngBytess => null;"}]}]}},{"title":"Create local variable 'pngBytess'","kind":"quickfix.create.localVariable","diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocum…
[9:51:23 PM] [Analyzer] [Info] ==> Content-Length: 254
[9:51:23 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3078,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":162,"character":6}}}
[9:51:23 PM] [Analyzer] [Info] ==> Content-Length: 254
[9:51:23 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3079,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":162,"character":6}}}
[9:51:23 PM] [Analyzer] [Info] <== Content-Length: 280
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:23 PM] [Analyzer] [Info] <== {"id":3078,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":"```dart\nvoid print(Object? object)\n```\n*dart:core*\n\n---\nPrints a string representation of the object to the console."},"range":{"start":{"line":162,"character":4},"end":{"line":162,"character":9}}}}Content-Length: 280
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:23 PM] [Analyzer] [Info] <== {"id":3079,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":"```dart\nvoid print(Object? object)\n```\n*dart:core*\n\n---\nPrints a string representation of the object to the console."},"range":{"start":{"line":162,"character":4},"end":{"line":162,"character":9}}}}
[9:51:23 PM] [Analyzer] [Info] ==> Content-Length: 1070
[9:51:23 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3080,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"range":{"start":{"line":162,"character":4},"end":{"line":162,"character":9}},"context":{"diagnostics":[{"range":{"start":{"line":162,"character":4},"end":{"line":162,"character":9}},"message":"This expression has a type of 'void' so its value can't be used.\nTry checking to see if you're using the correct API; there might be a function or call that returns void you didn't expect. Also check type parameters and variables which might also be void.","code":"use_of_void_result","codeDescription":{"href":"file:///diagnostics/use_of_void_result"},"severity":1,"source":"dart"},{"range":{"start":{"line":162,"character":4},"end":{"line":162,"character":9}},"message":"Avoid `print` calls in production code.","code":"avoid_print","codeDescription":{"href":"file:///linter/lints/avoid_print.html"},"severity":3,"source":"dart"}],"only":["quickfix"]}}}
[9:51:23 PM] [Analyzer] [Info] ==> Content-Length: 1070
[9:51:23 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3081,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"range":{"start":{"line":162,"character":4},"end":{"line":162,"character":9}},"context":{"diagnostics":[{"range":{"start":{"line":162,"character":4},"end":{"line":162,"character":9}},"message":"This expression has a type of 'void' so its value can't be used.\nTry checking to see if you're using the correct API; there might be a function or call that returns void you didn't expect. Also check type parameters and variables which might also be void.","code":"use_of_void_result","codeDescription":{"href":"file:///diagnostics/use_of_void_result"},"severity":1,"source":"dart"},{"range":{"start":{"line":162,"character":4},"end":{"line":162,"character":9}},"message":"Avoid `print` calls in production code.","code":"avoid_print","codeDescription":{"href":"file:///linter/lints/avoid_print.html"},"severity":3,"source":"dart"}],"only":["quickfix"]}}}
[9:51:23 PM] [Analyzer] [Info] <== Content-Length: 5668
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:23 PM] [Analyzer] [Info] <== {"id":3080,"jsonrpc":"2.0","result":[{"title":"Create class 'tnirp'","kind":"quickfix.create.class","diagnostics":[{"range":{"start":{"line":162,"character":31},"end":{"line":162,"character":36}},"severity":1,"code":"undefined_class","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_class"},"source":"dart","message":"Undefined class 'tnirp'.\nTry changing the name to the name of an existing class, or creating a class with the name 'tnirp'."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":250,"character":1},"end":{"line":250,"character":1}},"newText":"\n\nclass tnirp {\n}"}]}]}},{"title":"Create getter 'pngBytess'","kind":"quickfix.create.getter","diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":40,"character":56},"end":{"line":40,"character":56}},"newText":"\n\n  Object? get pngBytess => null;"}]}]}},{"title":"Create local variable 'pngBytess'","kind":"quickfix.create.localVariable","diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocum…
[9:51:23 PM] [Analyzer] [Info] <== Content-Length: 5668
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:23 PM] [Analyzer] [Info] <== {"id":3081,"jsonrpc":"2.0","result":[{"title":"Create class 'tnirp'","kind":"quickfix.create.class","diagnostics":[{"range":{"start":{"line":162,"character":31},"end":{"line":162,"character":36}},"severity":1,"code":"undefined_class","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_class"},"source":"dart","message":"Undefined class 'tnirp'.\nTry changing the name to the name of an existing class, or creating a class with the name 'tnirp'."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":250,"character":1},"end":{"line":250,"character":1}},"newText":"\n\nclass tnirp {\n}"}]}]}},{"title":"Create getter 'pngBytess'","kind":"quickfix.create.getter","diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":40,"character":56},"end":{"line":40,"character":56}},"newText":"\n\n  Object? get pngBytess => null;"}]}]}},{"title":"Create local variable 'pngBytess'","kind":"quickfix.create.localVariable","diagnostics":[{"range":{"start":{"line":162,"character":10},"end":{"line":162,"character":19}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name 'pngBytess'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocum…
[9:51:25 PM] [Analyzer] [Info] ==> Content-Length: 254
[9:51:25 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3082,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":164,"character":6}}}
[9:51:25 PM] [Analyzer] [Info] ==> Content-Length: 254
[9:51:25 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3083,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":164,"character":6}}}
[9:51:25 PM] [Analyzer] [Info] <== Content-Length: 190
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:25 PM] [Analyzer] [Info] <== {"id":3082,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":"```dart\ndynamic _isSaving\n```"},"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}}}}Content-Length: 190
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:25 PM] [Analyzer] [Info] <== {"id":3083,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":"```dart\ndynamic _isSaving\n```"},"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}}}}
[9:51:25 PM] [Analyzer] [Info] ==> Content-Length: 254
[9:51:25 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3084,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":165,"character":7}}}
[9:51:25 PM] [Analyzer] [Info] ==> Content-Length: 254
[9:51:25 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3085,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":165,"character":7}}}
[9:51:25 PM] [Analyzer] [Info] <== Content-Length: 190
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:25 PM] [Analyzer] [Info] <== {"id":3084,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":"```dart\ndynamic _isSaving\n```"},"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}}}}Content-Length: 190
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:25 PM] [Analyzer] [Info] <== {"id":3085,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":"```dart\ndynamic _isSaving\n```"},"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}}}}
[9:51:25 PM] [Analyzer] [Info] ==> Content-Length: 1011
[9:51:25 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3086,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"context":{"diagnostics":[{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"message":"The value of the local variable '_isSaving' isn't used.\nTry removing the variable or using it.","code":"unused_local_variable","codeDescription":{"href":"file:///diagnostics/unused_local_variable"},"severity":1,"source":"dart"},{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"message":"Expected to find ';'.","code":"expected_token","severity":1,"source":"dart"},{"range":{"start":{"line":165,"character":13},"end":{"line":165,"character":14}},"message":"Expected an identifier.","code":"missing_identifier","severity":1,"source":"dart"}],"only":["quickfix"]}}}
[9:51:25 PM] [Analyzer] [Info] ==> Content-Length: 1011
[9:51:25 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3087,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"context":{"diagnostics":[{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"message":"The value of the local variable '_isSaving' isn't used.\nTry removing the variable or using it.","code":"unused_local_variable","codeDescription":{"href":"file:///diagnostics/unused_local_variable"},"severity":1,"source":"dart"},{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"message":"Expected to find ';'.","code":"expected_token","severity":1,"source":"dart"},{"range":{"start":{"line":165,"character":13},"end":{"line":165,"character":14}},"message":"Expected an identifier.","code":"missing_identifier","severity":1,"source":"dart"}],"only":["quickfix"]}}}
[9:51:25 PM] [Analyzer] [Info] <== Content-Length: 2838
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:25 PM] [Analyzer] [Info] <== {"id":3086,"jsonrpc":"2.0","result":[{"title":"Insert ';'","kind":"quickfix.insertSemicolon","diagnostics":[{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"severity":1,"code":"expected_token","source":"dart","message":"Expected to find ';'."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":165,"character":13},"end":{"line":165,"character":13}},"newText":";"}]}]}},{"title":"Remove unused local variable","kind":"quickfix.remove.unusedLocalVariable","diagnostics":[{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"severity":3,"code":"unused_local_variable","codeDescription":{"href":"https://dart.dev/diagnostics/unused_local_variable"},"source":"dart","message":"The value of the local variable '_isSaving' isn't used.\nTry removing the variable or using it."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":162,"character":31},"end":{"line":165,"character":13}},"newText":""}]}]}},{"title":"Ignore 'unused_local_variable' for this line","kind":"quickfix.ignore.line","diagnostics":[{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"severity":3,"code":"unused_local_variable","codeDescription":{"href":"https://dart.dev/diagnostics/unused_local_variable"},"source":"dart","message":"The value of the local variable '_isSaving' isn't used.\nTry removing the variable or using it."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":165,"character":0},"end":{"line":165,…
[9:51:25 PM] [Analyzer] [Info] <== Content-Length: 2838
Content-Type: application/vscode-jsonrpc; charset=utf-8

{"id":3087,"jsonrpc":"2.0","result":[{"title":"Insert ';'","kind":"quickfix.insertSemicolon","diagnostics":[{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"severity":1,"code":"expected_token","source":"dart","message":"Expected to find ';'."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":165,"character":13},"end":{"line":165,"character":13}},"newText":";"}]}]}},{"title":"Remove unused local variable","kind":"quickfix.remove.unusedLocalVariable","diagnostics":[{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"severity":3,"code":"unused_local_variable","codeDescription":{"href":"https://dart.dev/diagnostics/unused_local_variable"},"source":"dart","message":"The value of the local variable '_isSaving' isn't used.\nTry removing the variable or using it."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":162,"character":31},"end":{"line":165,"character":13}},"newText":""}]}]}},{"title":"Ignore 'unused_local_variable' for this line","kind":"quickfix.ignore.line","diagnostics":[{"range":{"start":{"line":165,"character":4},"end":{"line":165,"character":13}},"severity":3,"code":"unused_local_variable","codeDescription":{"href":"https://dart.dev/diagnostics/unused_local_variable"},"source":"dart","message":"The value of the local variable '_isSaving' isn't used.\nTry removing the variable or using it."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file…
[9:51:27 PM] [Analyzer] [Info] ==> Content-Length: 255
[9:51:27 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3088,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":154,"character":13}}}
[9:51:27 PM] [Analyzer] [Info] ==> Content-Length: 255
[9:51:27 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3089,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":154,"character":13}}}
[9:51:27 PM] [Analyzer] [Info] <== Content-Length: 183
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:27 PM] [Analyzer] [Info] <== {"id":3088,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":"```dart\nSize size\n```"},"range":{"start":{"line":154,"character":10},"end":{"line":154,"character":14}}}}Content-Length: 183
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:27 PM] [Analyzer] [Info] <== {"id":3089,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":"```dart\nSize size\n```"},"range":{"start":{"line":154,"character":10},"end":{"line":154,"character":14}}}}
[9:51:27 PM] [Analyzer] [Info] ==> Content-Length: 255
[9:51:27 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3090,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":152,"character":13}}}
[9:51:27 PM] [Analyzer] [Info] ==> Content-Length: 255
[9:51:27 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3091,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"position":{"line":152,"character":13}}}
[9:51:27 PM] [Analyzer] [Info] <== Content-Length: 159
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:27 PM] [Analyzer] [Info] <== {"id":3090,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":""},"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}}}}Content-Length: 159
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:27 PM] [Analyzer] [Info] <== {"id":3091,"jsonrpc":"2.0","result":{"contents":{"kind":"markdown","value":""},"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}}}}
[9:51:27 PM] [Analyzer] [Info] ==> Content-Length: 1652
[9:51:27 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3092,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"context":{"diagnostics":[{"range":{"start":{"line":152,"character":22},"end":{"line":152,"character":23}},"message":"Unexpected text ';'.\nTry removing the text.","code":"unexpected_token","severity":1,"source":"dart"},{"range":{"start":{"line":152,"character":22},"end":{"line":152,"character":23}},"message":"Expected to find ';'.","code":"expected_token","severity":1,"source":"dart"},{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"message":"Avoid using unnecessary statements.","code":"unnecessary_statements","codeDescription":{"href":"file:///linter/lints/unnecessary_statements.html"},"severity":3,"source":"dart"},{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"message":"Undefined name '_isSavingsSavingze'.\nTry correcting the name to one that is defined, or defining the name.","code":"undefined_identifier","codeDescription":{"href":"file:///diagnostics/undefined_identifier"},"severity":1,"source":"dart"},{"range":{"start":{"line":152,"character":22},"end":{"line":152,"character":23}},"message":"Expected an identifier.","code":"missing_identifier","severity":1,"source":"dart"},{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"message":"Expected to find ';'.","code":"expected_token","severity":1,"source":"dart"}],"only":["quickfix"]}}}
[9:51:27 PM] [Analyzer] [Info] ==> Content-Length: 1652
[9:51:27 PM] [Analyzer] [Info] ==> {"jsonrpc":"2.0","id":3093,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"context":{"diagnostics":[{"range":{"start":{"line":152,"character":22},"end":{"line":152,"character":23}},"message":"Unexpected text ';'.\nTry removing the text.","code":"unexpected_token","severity":1,"source":"dart"},{"range":{"start":{"line":152,"character":22},"end":{"line":152,"character":23}},"message":"Expected to find ';'.","code":"expected_token","severity":1,"source":"dart"},{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"message":"Avoid using unnecessary statements.","code":"unnecessary_statements","codeDescription":{"href":"file:///linter/lints/unnecessary_statements.html"},"severity":3,"source":"dart"},{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"message":"Undefined name '_isSavingsSavingze'.\nTry correcting the name to one that is defined, or defining the name.","code":"undefined_identifier","codeDescription":{"href":"file:///diagnostics/undefined_identifier"},"severity":1,"source":"dart"},{"range":{"start":{"line":152,"character":22},"end":{"line":152,"character":23}},"message":"Expected an identifier.","code":"missing_identifier","severity":1,"source":"dart"},{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"message":"Expected to find ';'.","code":"expected_token","severity":1,"source":"dart"}],"only":["quickfix"]}}}
[9:51:27 PM] [Analyzer] [Info] <== Content-Length: 7885
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:27 PM] [Analyzer] [Info] <== {"id":3092,"jsonrpc":"2.0","result":[{"title":"Create class '_isSavingsSavingze'","kind":"quickfix.create.class","diagnostics":[{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name '_isSavingsSavingze'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":250,"character":1},"end":{"line":250,"character":1}},"newText":"\n\nclass _isSavingsSavingze {\n}"}]}]}},{"title":"Create getter '_isSavingsSavingze'","kind":"quickfix.create.getter","diagnostics":[{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name '_isSavingsSavingze'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":40,"character":56},"end":{"line":40,"character":56}},"newText":"\n\n  get _isSavingsSavingze => null;"}]}]}},{"title":"Create local variable '_isSavingsSavingze'","kind":"quickfix.create.localVariable","diagnostics":[{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name '_isSavingsSavingze'.\nTry correcting the name to one that is defined, or definin…
[9:51:27 PM] [Analyzer] [Info] <== Content-Length: 7885
Content-Type: application/vscode-jsonrpc; charset=utf-8
[9:51:27 PM] [Analyzer] [Info] <== {"id":3093,"jsonrpc":"2.0","result":[{"title":"Create class '_isSavingsSavingze'","kind":"quickfix.create.class","diagnostics":[{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name '_isSavingsSavingze'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":250,"character":1},"end":{"line":250,"character":1}},"newText":"\n\nclass _isSavingsSavingze {\n}"}]}]}},{"title":"Create getter '_isSavingsSavingze'","kind":"quickfix.create.getter","diagnostics":[{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name '_isSavingsSavingze'.\nTry correcting the name to one that is defined, or defining the name."}],"edit":{"documentChanges":[{"textDocument":{"version":32,"uri":"file:///Users/friebetill/Developer/path/to/file.dart"},"edits":[{"range":{"start":{"line":40,"character":56},"end":{"line":40,"character":56}},"newText":"\n\n  get _isSavingsSavingze => null;"}]}]}},{"title":"Create local variable '_isSavingsSavingze'","kind":"quickfix.create.localVariable","diagnostics":[{"range":{"start":{"line":152,"character":4},"end":{"line":152,"character":22}},"severity":1,"code":"undefined_identifier","codeDescription":{"href":"https://dart.dev/diagnostics/undefined_identifier"},"source":"dart","message":"Undefined name '_isSavingsSavingze'.\nTry correcting the name to one that is defined, or definin…
Mon Dec 06 2021 [21:51:29 GMT+0100 (Central European Standard Time)] Log file ended

I will add the logs with dart.analyzerInstrumentationLogFile later.

It may very well be related to the plugin dart_code_metrics. I had it disabled for a few hours yesterday and the error no longer occurred.

@DanTup
Copy link
Collaborator

DanTup commented Dec 7, 2021

@friebetill thanks! This confirms VS Code is sending two requests to the server, so it does seem consistent with duplicate registrations. I suspect dart_code_metrics may be the trigger (since it affects the registrations), although the bug is likely not with that plugin but rather the server.

If you can extract all lines with client/registerCapability and client/unregisterCapability from the instrumentation log, that might help understand what's happened.

@friebetill
Copy link
Author

friebetill commented Dec 7, 2021

Here are all lines (3) of the analyzer.instrum.txt file that contain client/registerCapability or client/unregisterCapability:

1638883461324:Res:{"id"::2,"method"::"client/registerCapability","params"::{"registrations"::[{"id"::"0","method"::"textDocument/didOpen","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"1","method"::"textDocument/didClose","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"2","method"::"textDocument/didChange","registerOptions"::{"syncKind"::2,"documentSelector"::[{"language"::"dart","scheme"::"file"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"3","method"::"textDocument/completion","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"triggerCharacters"::[".","=","(","$","\"","'","{","/","::"],"resolveProvider"::true}},{"id"::"4","method"::"textDocument/completion","registerOptions"::{"documentSelector"::[{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}],"resolveProvider"::true}},{"id"::"5","method"::"textDocument/hover","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"6","method"::"textDocument/signatureHelp","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"triggerCharacters"::["("],"retriggerCharacters"::[","]}},{"id"::"7","method"::"textDocument/references","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"8","method"::"textDocument/documentHighlight","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"9","method"::"textDocument/documentSymbol","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"10","method"::"textDocument/formatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"11","method"::"textDocument/onTypeFormatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"firstTriggerCharacter"::"}","moreTriggerCharacter"::[";"]}},{"id"::"12","method"::"textDocument/rangeFormatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"13","method"::"textDocument/definition","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"14","method"::"textDocument/implementation","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"15","method"::"textDocument/codeAction","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"codeActionKinds"::["source","source.organizeImports","source.fixAll","source.sortMembers","quickfix","refactor"]}},{"id"::"16","method"::"textDocument/rename","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"prepareProvider"::true}},{"id"::"17","method"::"textDocument/foldingRange","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"18","method"::"workspace/willRenameFiles","registerOptions"::{"filters"::[{"scheme"::"file","pattern"::{"glob"::"**/*.dart","matches"::"file"}}]}},{"id"::"19","method"::"workspace/didChangeConfiguration"},{"id"::"20","method"::"textDocument/selectionRange","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"21","method"::"textDocument/semanticTokens","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"legend"::{"tokenTypes"::["annotation","keyword","class","comment","variable","parameter","enum","enumMember","type","source","property","method","namespace","boolean","number","string","function","typeParameter"],"tokenModifiers"::["documentation","declaration","static","escape","control","label","constructor","interpolation","void"]},"range"::true,"full"::{"delta"::false}}}]},"jsonrpc"::"2.0"}
1638883461508:Res:{"id"::4,"method"::"client/unregisterCapability","params"::{"unregisterations"::[{"id"::"0","method"::"textDocument/didOpen"},{"id"::"1","method"::"textDocument/didClose"},{"id"::"2","method"::"textDocument/didChange"},{"id"::"4","method"::"textDocument/completion"},{"id"::"5","method"::"textDocument/hover"},{"id"::"6","method"::"textDocument/signatureHelp"},{"id"::"7","method"::"textDocument/references"},{"id"::"8","method"::"textDocument/documentHighlight"},{"id"::"9","method"::"textDocument/documentSymbol"},{"id"::"10","method"::"textDocument/formatting"},{"id"::"13","method"::"textDocument/definition"},{"id"::"14","method"::"textDocument/implementation"},{"id"::"15","method"::"textDocument/codeAction"},{"id"::"16","method"::"textDocument/rename"},{"id"::"17","method"::"textDocument/foldingRange"},{"id"::"21","method"::"textDocument/semanticTokens"}]},"jsonrpc"::"2.0"}
1638883461630:Res:{"id"::5,"method"::"client/registerCapability","params"::{"registrations"::[{"id"::"22","method"::"textDocument/didOpen","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"23","method"::"textDocument/didClose","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"24","method"::"textDocument/didChange","registerOptions"::{"syncKind"::2,"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"26","method"::"textDocument/completion","registerOptions"::{"documentSelector"::[{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}],"resolveProvider"::true}},{"id"::"27","method"::"textDocument/hover","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"28","method"::"textDocument/signatureHelp","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"triggerCharacters"::["("],"retriggerCharacters"::[","]}},{"id"::"29","method"::"textDocument/references","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"30","method"::"textDocument/documentHighlight","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"31","method"::"textDocument/documentSymbol","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"32","method"::"textDocument/formatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"35","method"::"textDocument/definition","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"36","method"::"textDocument/implementation","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"37","method"::"textDocument/codeAction","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"codeActionKinds"::["source","source.organizeImports","source.fixAll","source.sortMembers","quickfix","refactor"]}},{"id"::"38","method"::"textDocument/rename","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"prepareProvider"::true}},{"id"::"39","method"::"textDocument/foldingRange","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"43","method"::"textDocument/semanticTokens","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"legend"::{"tokenTypes"::["annotation","keyword","class","comment","variable","parameter","enum","enumMember","type","source","property","method","namespace","boolean","number","string","function","typeParameter"],"tokenModifiers"::["documentation","declaration","static","escape","control","label","constructor","interpolation","void"]},"range"::true,"full"::{"delta"::false}}}]},"jsonrpc"::"2.0"}

What might be interesting is that there are about 100000 lines in the file and about 95% of the lines look similar to this one:

1638886355234:PluginNoti:{"event"::"analysis.errors","params"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","errors"::[]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638886355234:Res:{"method"::"textDocument/publishDiagnostics","params"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart","diagnostics"::[]},"jsonrpc"::"2.0"}

Here is client/registerCapability and client/unregisterCapability from another log file:

1638889221964:Res:{"id"::2,"method"::"client/registerCapability","params"::{"registrations"::[{"id"::"0","method"::"textDocument/didOpen","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"1","method"::"textDocument/didClose","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"2","method"::"textDocument/didChange","registerOptions"::{"syncKind"::2,"documentSelector"::[{"language"::"dart","scheme"::"file"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"3","method"::"textDocument/completion","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"triggerCharacters"::[".","=","(","$","\"","'","{","/","::"],"resolveProvider"::true}},{"id"::"4","method"::"textDocument/completion","registerOptions"::{"documentSelector"::[{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}],"resolveProvider"::true}},{"id"::"5","method"::"textDocument/hover","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"6","method"::"textDocument/signatureHelp","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"triggerCharacters"::["("],"retriggerCharacters"::[","]}},{"id"::"7","method"::"textDocument/references","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"8","method"::"textDocument/documentHighlight","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"9","method"::"textDocument/documentSymbol","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"10","method"::"textDocument/formatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"11","method"::"textDocument/onTypeFormatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"firstTriggerCharacter"::"}","moreTriggerCharacter"::[";"]}},{"id"::"12","method"::"textDocument/rangeFormatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"13","method"::"textDocument/definition","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"14","method"::"textDocument/implementation","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"15","method"::"textDocument/codeAction","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"codeActionKinds"::["source","source.organizeImports","source.fixAll","source.sortMembers","quickfix","refactor"]}},{"id"::"16","method"::"textDocument/rename","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"prepareProvider"::true}},{"id"::"17","method"::"textDocument/foldingRange","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"18","method"::"workspace/willRenameFiles","registerOptions"::{"filters"::[{"scheme"::"file","pattern"::{"glob"::"**/*.dart","matches"::"file"}}]}},{"id"::"19","method"::"workspace/didChangeConfiguration"},{"id"::"20","method"::"textDocument/selectionRange","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"21","method"::"textDocument/semanticTokens","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"legend"::{"tokenTypes"::["annotation","keyword","class","comment","variable","parameter","enum","enumMember","type","source","property","method","namespace","boolean","number","string","function","typeParameter"],"tokenModifiers"::["documentation","declaration","static","escape","control","label","constructor","interpolation","void"]},"range"::true,"full"::{"delta"::false}}}]},"jsonrpc"::"2.0"}
1638889222153:Res:{"id"::4,"method"::"client/unregisterCapability","params"::{"unregisterations"::[{"id"::"0","method"::"textDocument/didOpen"},{"id"::"1","method"::"textDocument/didClose"},{"id"::"2","method"::"textDocument/didChange"},{"id"::"4","method"::"textDocument/completion"},{"id"::"5","method"::"textDocument/hover"},{"id"::"6","method"::"textDocument/signatureHelp"},{"id"::"7","method"::"textDocument/references"},{"id"::"8","method"::"textDocument/documentHighlight"},{"id"::"9","method"::"textDocument/documentSymbol"},{"id"::"10","method"::"textDocument/formatting"},{"id"::"13","method"::"textDocument/definition"},{"id"::"14","method"::"textDocument/implementation"},{"id"::"15","method"::"textDocument/codeAction"},{"id"::"16","method"::"textDocument/rename"},{"id"::"17","method"::"textDocument/foldingRange"},{"id"::"21","method"::"textDocument/semanticTokens"}]},"jsonrpc"::"2.0"}
1638889222262:Res:{"id"::5,"method"::"client/registerCapability","params"::{"registrations"::[{"id"::"22","method"::"textDocument/didOpen","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"23","method"::"textDocument/didClose","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"24","method"::"textDocument/didChange","registerOptions"::{"syncKind"::2,"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"26","method"::"textDocument/completion","registerOptions"::{"documentSelector"::[{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}],"resolveProvider"::true}},{"id"::"27","method"::"textDocument/hover","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"28","method"::"textDocument/signatureHelp","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"triggerCharacters"::["("],"retriggerCharacters"::[","]}},{"id"::"29","method"::"textDocument/references","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"30","method"::"textDocument/documentHighlight","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"31","method"::"textDocument/documentSymbol","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"32","method"::"textDocument/formatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"35","method"::"textDocument/definition","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"36","method"::"textDocument/implementation","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"37","method"::"textDocument/codeAction","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"codeActionKinds"::["source","source.organizeImports","source.fixAll","source.sortMembers","quickfix","refactor"]}},{"id"::"38","method"::"textDocument/rename","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"prepareProvider"::true}},{"id"::"39","method"::"textDocument/foldingRange","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"43","method"::"textDocument/semanticTokens","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"legend"::{"tokenTypes"::["annotation","keyword","class","comment","variable","parameter","enum","enumMember","type","source","property","method","namespace","boolean","number","string","function","typeParameter"],"tokenModifiers"::["documentation","declaration","static","escape","control","label","constructor","interpolation","void"]},"range"::true,"full"::{"delta"::false}}}]},"jsonrpc"::"2.0"}
1638889939315:Res:{"id"::79,"method"::"client/unregisterCapability","params"::{"unregisterations"::[{"id"::"22","method"::"textDocument/didOpen"},{"id"::"23","method"::"textDocument/didClose"},{"id"::"24","method"::"textDocument/didChange"},{"id"::"26","method"::"textDocument/completion"},{"id"::"27","method"::"textDocument/hover"},{"id"::"28","method"::"textDocument/signatureHelp"},{"id"::"29","method"::"textDocument/references"},{"id"::"30","method"::"textDocument/documentHighlight"},{"id"::"31","method"::"textDocument/documentSymbol"},{"id"::"32","method"::"textDocument/formatting"},{"id"::"35","method"::"textDocument/definition"},{"id"::"36","method"::"textDocument/implementation"},{"id"::"37","method"::"textDocument/codeAction"},{"id"::"38","method"::"textDocument/rename"},{"id"::"39","method"::"textDocument/foldingRange"},{"id"::"43","method"::"textDocument/semanticTokens"}]},"jsonrpc"::"2.0"}
1638889940013:Res:{"id"::81,"method"::"client/unregisterCapability","params"::{"unregisterations"::[{"id"::"66","method"::"textDocument/didOpen"},{"id"::"67","method"::"textDocument/didClose"},{"id"::"68","method"::"textDocument/didChange"},{"id"::"70","method"::"textDocument/completion"},{"id"::"71","method"::"textDocument/hover"},{"id"::"72","method"::"textDocument/signatureHelp"},{"id"::"73","method"::"textDocument/references"},{"id"::"74","method"::"textDocument/documentHighlight"},{"id"::"75","method"::"textDocument/documentSymbol"},{"id"::"76","method"::"textDocument/formatting"},{"id"::"79","method"::"textDocument/definition"},{"id"::"80","method"::"textDocument/implementation"},{"id"::"81","method"::"textDocument/codeAction"},{"id"::"82","method"::"textDocument/rename"},{"id"::"83","method"::"textDocument/foldingRange"},{"id"::"87","method"::"textDocument/semanticTokens"}]},"jsonrpc"::"2.0"}
1638889941499:Res:{"id"::82,"method"::"client/registerCapability","params"::{"registrations"::[{"id"::"66","method"::"textDocument/didOpen","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"67","method"::"textDocument/didClose","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"68","method"::"textDocument/didChange","registerOptions"::{"syncKind"::2,"documentSelector"::[{"language"::"dart","scheme"::"file"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"70","method"::"textDocument/completion","registerOptions"::{"documentSelector"::[{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}],"resolveProvider"::true}},{"id"::"71","method"::"textDocument/hover","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"72","method"::"textDocument/signatureHelp","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"triggerCharacters"::["("],"retriggerCharacters"::[","]}},{"id"::"73","method"::"textDocument/references","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"74","method"::"textDocument/documentHighlight","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"75","method"::"textDocument/documentSymbol","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"76","method"::"textDocument/formatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"79","method"::"textDocument/definition","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"80","method"::"textDocument/implementation","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"81","method"::"textDocument/codeAction","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"codeActionKinds"::["source","source.organizeImports","source.fixAll","source.sortMembers","quickfix","refactor"]}},{"id"::"82","method"::"textDocument/rename","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"prepareProvider"::true}},{"id"::"83","method"::"textDocument/foldingRange","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}]}},{"id"::"87","method"::"textDocument/semanticTokens","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"}],"legend"::{"tokenTypes"::["annotation","keyword","class","comment","variable","parameter","enum","enumMember","type","source","property","method","namespace","boolean","number","string","function","typeParameter"],"tokenModifiers"::["documentation","declaration","static","escape","control","label","constructor","interpolation","void"]},"range"::true,"full"::{"delta"::false}}}]},"jsonrpc"::"2.0"}
1638889941505:Res:{"id"::83,"method"::"client/registerCapability","params"::{"registrations"::[{"id"::"110","method"::"textDocument/didOpen","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"111","method"::"textDocument/didClose","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"112","method"::"textDocument/didChange","registerOptions"::{"syncKind"::2,"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}]}},{"id"::"114","method"::"textDocument/completion","registerOptions"::{"documentSelector"::[{"scheme"::"file","pattern"::"**/*.dart"},{"language"::"yaml","scheme"::"file","pattern"::"**/pubspec.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/analysis_options.yaml"},{"language"::"yaml","scheme"::"file","pattern"::"**/lib/fix_data.yaml"}],"resolveProvider"::true}},{"id"::"115","method"::"textDocument/hover","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"116","method"::"textDocument/signatureHelp","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"triggerCharacters"::["("],"retriggerCharacters"::[","]}},{"id"::"117","method"::"textDocument/references","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"118","method"::"textDocument/documentHighlight","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"119","method"::"textDocument/documentSymbol","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"120","method"::"textDocument/formatting","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"123","method"::"textDocument/definition","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"124","method"::"textDocument/implementation","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"125","method"::"textDocument/codeAction","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"codeActionKinds"::["source","source.organizeImports","source.fixAll","source.sortMembers","quickfix","refactor"]}},{"id"::"126","method"::"textDocument/rename","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"prepareProvider"::true}},{"id"::"127","method"::"textDocument/foldingRange","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}]}},{"id"::"131","method"::"textDocument/semanticTokens","registerOptions"::{"documentSelector"::[{"language"::"dart","scheme"::"file"},{"scheme"::"file","pattern"::"**/*.dart"}],"legend"::{"tokenTypes"::["annotation","keyword","class","comment","variable","parameter","enum","enumMember","type","source","property","method","namespace","boolean","number","string","function","typeParameter"],"tokenModifiers"::["documentation","declaration","static","escape","control","label","constructor","interpolation","void"]},"range"::true,"full"::{"delta"::false}}}]},"jsonrpc"::"2.0"}

@DanTup
Copy link
Collaborator

DanTup commented Dec 7, 2021

@friebetill thanks! I can't se anything wrong with the first set of capabilities, but in the second one something is certainly wrong, as there is an unregister call that is unregistering capabilities that are in a register that comes after it. Seems like somehow they are out of order, which means the unregistrations will fail, and we'll end up with two.

I'll try to figure out how that's happened.

What might be interesting is that there are about 100000 lines in the file and about 95% of the lines look similar to this one:

Are they for the same file path, or different? It's no unusual to get a large number of these for different files, though if they're for the same file that seems wrong. Are you able to include a slightly larger snippet from that file?

@friebetill
Copy link
Author

friebetill commented Dec 7, 2021

Are they for the same file path, or different? It's no unusual to get a large number of these for different files, though if they're for the same file that seems wrong. Are you able to include a slightly larger snippet from that file?

In each line a different file is referenced. I can send you the log file privately if it helps find the problem.

Thank you for all your efforts to find the cause!

@DanTup
Copy link
Collaborator

DanTup commented Dec 7, 2021

I have a fix out for review for the duplicate registrations. It occurred when we tried to rebuild the registrations twice concurrently (this could be triggered by multiple plugin events). With this change the unregister/register requests will be made atomically:

https://dart-review.googlesource.com/c/sdk/+/222303/

I'm not certain this resolves the whole issue though. It would certainly have resulted in worse performance (since a lot of things would be done multiple times) but I don't know if it would seem like it's completely frozen. The last lines of an instrumentation log when you experience the freeze (before you restart) may be useful to track that down.

In each line a different file is referenced

That sounds like expected behaviour then. Possibly there's some optimisation that could be done here (not re-sending an empty error set if no errors have previously been sent) but I doubt that's causing any noticeable performance drop (unless it seems to be happening repeatedly when it shouldn't).

copybara-service bot pushed a commit that referenced this issue Dec 8, 2021
…tically

Fixes at least some of the issues in #47851.

Change-Id: Id92a1aa82b55d9fda244e7fd279028db392777d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/222303
Reviewed-by: Brian Wilkerson <[email protected]>
@friebetill
Copy link
Author

Here are the last lines of the log before the analyzer froze
1638991533368:Res:{"id"::504,"jsonrpc"::"2.0","result"::[{"name"::"Ratepath/to/file.dart","kind"::5,"deprecated"::false,"range"::{"start"::{"line"::12,"character"::0},"end"::{"line"::24,"character"::1}},"selectionRange"::{"start"::{"line"::12,"character"::6},"end"::{"line"::12,"character"::21}},"children"::[{"name"::"Ratepath/to/file.dart","detail"::"(this._inAppReview, this._userHistory, {Key? key})","kind"::9,"deprecated"::false,"range"::{"start"::{"line"::13,"character"::2},"end"::{"line"::17,"character"::23}},"selectionRange"::{"start"::{"line"::13,"character"::8},"end"::{"line"::13,"character"::23}}},{"name"::"_inAppReview","kind"::8,"deprecated"::false,"range"::{"start"::{"line"::19,"character"::20},"end"::{"line"::19,"character"::32}},"selectionRange"::{"start"::{"line"::19,"character"::20},"end"::{"line"::19,"character"::32}}},{"name"::"_userHistory","kind"::8,"deprecated"::false,"range"::{"start"::{"line"::20,"character"::20},"end"::{"line"::20,"character"::32}},"selectionRange"::{"start"::{"line"::20,"character"::20},"end"::{"line"::20,"character"::32}}},{"name"::"createState","detail"::"()","kind"::6,"deprecated"::false,"range"::{"start"::{"line"::23,"character"::2},"end"::{"line"::23,"character"::66}},"selectionRange"::{"start"::{"line"::23,"character"::25},"end"::{"line"::23,"character"::36}}}]},{"name"::"_Ratepath/to/file.dart","kind"::5,"deprecated"::false,"range"::{"start"::{"line"::26,"character"::0},"end"::{"line"::103,"character"::1}},"selectionRange"::{"start"::{"line"::26,"character"::6},"end"::{"line"::26,"character"::27}},"children"::[{"name"::"neverShowAgainDuration","kind"::8,"deprecated"::false,"range"::{"start"::{"line"::27,"character"::8},"end"::{"line"::27,"character"::41}},"selectionRange"::{"start"::{"line"::27,"character"::8},"end"::{"line"::27,"character"::30}}},{"name"::"initState","detail"::"()","kind"::6,"deprecated"::false,"range"::{"start"::{"line"::30,"character"::2},"end"::{"line"::35,"character"::3}},"selectionRange"::{"start"::{"line"::30,"character"::7},"end"::{"line"::30,"character"::16}}},{"name"::"build","detail"::"(BuildContext context)","kind"::6,"deprecated"::false,"range"::{"start"::{"line"::38,"character"::2},"end"::{"line"::68,"character"::3}},"selectionRange"::{"start"::{"line"::38,"character"::9},"end"::{"line"::38,"character"::14}}},{"name"::"_handleNeverButtonTap","detail"::"()","kind"::6,"deprecated"::false,"range"::{"start"::{"line"::70,"character"::2},"end"::{"line"::75,"character"::3}},"selectionRange"::{"start"::{"line"::70,"character"::7},"end"::{"line"::70,"character"::28}}},{"name"::"_handleLaterButtonTap","detail"::"()","kind"::6,"deprecated"::false,"range"::{"start"::{"line"::77,"character"::2},"end"::{"line"::82,"character"::3}},"selectionRange"::{"start"::{"line"::77,"character"::7},"end"::{"line"::77,"character"::28}}},{"name"::"_handleRateButtonTap","detail"::"()","kind"::6,"deprecated"::false,"range"::{"start"::{"line"::84,"character"::2},"end"::{"line"::102,"character"::3}},"selectionRange"::{"start"::{"line"::84,"character"::15},"end"::{"line"::84,"character"::35}}}]}]}
1638991533369:Res:{"id"::501,"jsonrpc"::"2.0","result"::[{"title"::"Sort Members","kind"::"source.sortMembers","command"::{"title"::"Sort Members","command"::"edit.sortMembers","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Organize Imports","kind"::"source.organizeImports","command"::{"title"::"Organize Imports","command"::"edit.organizeImports","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Fix All","kind"::"source.fixAll","command"::{"title"::"Fix All","command"::"edit.fixAll","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Extract Method","kind"::"refactor.extract","command"::{"title"::"Extract Method","command"::"refactor.perform","arguments"::["EXTRACT_METHOD","/Users/friebetill/Developer/path/to/file.dart",70,1356,0,null]}},{"title"::"Extract Local Variable","kind"::"refactor.extract","command"::{"title"::"Extract Local Variable","command"::"refactor.perform","arguments"::["EXTRACT_LOCAL_VARIABLE","/Users/friebetill/Developer/path/to/file.dart",70,1356,0,null]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this line","kind"::"quickfix.ignore.line","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::48,"character"::0},"end"::{"line"::48,"character"::0}},"newText"::"              // ignore:: lines_longer_than_80_chars\n"}]}]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this file","kind"::"quickfix.ignore.file","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::0,"character"::0},"end"::{"line"::0,"character"::0}},"newText"::"// ignore_for_file:: lines_longer_than_80_chars\n\n"}]}]}},{"title"::"Add trailing comma.","kind"::"quickfix","diagnostics"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"severity"::2,"code"::"prefer-trailing-comma","codeDescription"::{"href"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma"},"source"::"dart","message"::"Prefer trailing comma.\nTextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"newText"::"TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}]}}]}
1638991533369:Res:{"id"::502,"jsonrpc"::"2.0","result"::[{"title"::"Sort Members","kind"::"source.sortMembers","command"::{"title"::"Sort Members","command"::"edit.sortMembers","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Organize Imports","kind"::"source.organizeImports","command"::{"title"::"Organize Imports","command"::"edit.organizeImports","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Fix All","kind"::"source.fixAll","command"::{"title"::"Fix All","command"::"edit.fixAll","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Extract Method","kind"::"refactor.extract","command"::{"title"::"Extract Method","command"::"refactor.perform","arguments"::["EXTRACT_METHOD","/Users/friebetill/Developer/path/to/file.dart",70,1356,0,null]}},{"title"::"Extract Local Variable","kind"::"refactor.extract","command"::{"title"::"Extract Local Variable","command"::"refactor.perform","arguments"::["EXTRACT_LOCAL_VARIABLE","/Users/friebetill/Developer/path/to/file.dart",70,1356,0,null]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this line","kind"::"quickfix.ignore.line","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::48,"character"::0},"end"::{"line"::48,"character"::0}},"newText"::"              // ignore:: lines_longer_than_80_chars\n"}]}]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this file","kind"::"quickfix.ignore.file","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::0,"character"::0},"end"::{"line"::0,"character"::0}},"newText"::"// ignore_for_file:: lines_longer_than_80_chars\n\n"}]}]}},{"title"::"Add trailing comma.","kind"::"quickfix","diagnostics"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"severity"::2,"code"::"prefer-trailing-comma","codeDescription"::{"href"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma"},"source"::"dart","message"::"Prefer trailing comma.\nTextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"newText"::"TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}]}}]}
1638991533379:Res:{"method"::"$/progress","params"::{"token"::"ANALYZING","value"::{"kind"::"end"}},"jsonrpc"::"2.0"}
1638991533616:Req:{"jsonrpc"::"2.0","id"::505,"method"::"textDocument/codeAction","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"range"::{"start"::{"line"::48,"character"::42},"end"::{"line"::48,"character"::42}},"context"::{"diagnostics"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"message"::"Prefer trailing comma.\nTextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","codeDescription"::{"href"::"file::///docs/rules/common/prefer-trailing-comma"},"severity"::2,"source"::"dart"},{"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"message"::"Prefer trailing comma.\nchildren:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","codeDescription"::{"href"::"file::///docs/rules/common/prefer-trailing-comma"},"severity"::2,"source"::"dart"}]}}}
1638991533618:PluginReq:{"id"::"490","method"::"edit.getAssists","params"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1356,"length"::0}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991533619:PluginReq:{"id"::"491","method"::"edit.getFixes","params"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1356}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991533619:Req:{"jsonrpc"::"2.0","id"::506,"method"::"textDocument/codeAction","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"range"::{"start"::{"line"::48,"character"::42},"end"::{"line"::48,"character"::42}},"context"::{"diagnostics"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"message"::"Prefer trailing comma.\nTextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","codeDescription"::{"href"::"file::///docs/rules/common/prefer-trailing-comma"},"severity"::2,"source"::"dart"},{"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"message"::"Prefer trailing comma.\nchildren:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","codeDescription"::{"href"::"file::///docs/rules/common/prefer-trailing-comma"},"severity"::2,"source"::"dart"}]}}}
1638991533619:PluginReq:{"id"::"492","method"::"edit.getAssists","params"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1356,"length"::0}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991533620:PluginReq:{"id"::"493","method"::"edit.getFixes","params"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1356}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991533627:PluginRes:{"id"::"490","requestTime"::1638991533618,"result"::{"assists"::[]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991533627:PluginRes:{"id"::"491","requestTime"::1638991533619,"result"::{"fixes"::[{"error"::{"severity"::"WARNING","type"::"LINT","location"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1254,"length"::262,"startLine"::47,"startColumn"::13,"endLine"::52,"endColumn"::19},"message"::"Prefer trailing comma.","correction"::"TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","url"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma","hasFix"::true},"fixes"::[{"priority"::1,"change"::{"message"::"Add trailing comma.","edits"::[{"file"::"/Users/friebetill/Developer/path/to/file.dart","fileStamp"::148,"edits"::[{"offset"::1254,"length"::262,"replacement"::"TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}],"linkedEditGroups"::[]}}]},{"error"::{"severity"::"WARNING","type"::"LINT","location"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1230,"length"::286,"startLine"::46,"startColumn"::11,"endLine"::52,"endColumn"::19},"message"::"Prefer trailing comma.","correction"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","url"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma","hasFix"::true},"fixes"::[{"priority"::1,"change"::{"message"::"Add trailing comma.","edits"::[{"file"::"/Users/friebetill/Developer/path/to/file.dart","fileStamp"::148,"edits"::[{"offset"::1230,"length"::286,"replacement"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}],"linkedEditGroups"::[]}}]}]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991533628:PluginRes:{"id"::"492","requestTime"::1638991533620,"result"::{"assists"::[]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991533628:PluginRes:{"id"::"493","requestTime"::1638991533620,"result"::{"fixes"::[{"error"::{"severity"::"WARNING","type"::"LINT","location"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1254,"length"::262,"startLine"::47,"startColumn"::13,"endLine"::52,"endColumn"::19},"message"::"Prefer trailing comma.","correction"::"TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","url"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma","hasFix"::true},"fixes"::[{"priority"::1,"change"::{"message"::"Add trailing comma.","edits"::[{"file"::"/Users/friebetill/Developer/path/to/file.dart","fileStamp"::148,"edits"::[{"offset"::1254,"length"::262,"replacement"::"TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}],"linkedEditGroups"::[]}}]},{"error"::{"severity"::"WARNING","type"::"LINT","location"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1230,"length"::286,"startLine"::46,"startColumn"::11,"endLine"::52,"endColumn"::19},"message"::"Prefer trailing comma.","correction"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","url"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma","hasFix"::true},"fixes"::[{"priority"::1,"change"::{"message"::"Add trailing comma.","edits"::[{"file"::"/Users/friebetill/Developer/path/to/file.dart","fileStamp"::148,"edits"::[{"offset"::1230,"length"::286,"replacement"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}],"linkedEditGroups"::[]}}]}]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991533628:Res:{"id"::505,"jsonrpc"::"2.0","result"::[{"title"::"Sort Members","kind"::"source.sortMembers","command"::{"title"::"Sort Members","command"::"edit.sortMembers","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Organize Imports","kind"::"source.organizeImports","command"::{"title"::"Organize Imports","command"::"edit.organizeImports","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Fix All","kind"::"source.fixAll","command"::{"title"::"Fix All","command"::"edit.fixAll","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Extract Method","kind"::"refactor.extract","command"::{"title"::"Extract Method","command"::"refactor.perform","arguments"::["EXTRACT_METHOD","/Users/friebetill/Developer/path/to/file.dart",70,1356,0,null]}},{"title"::"Extract Local Variable","kind"::"refactor.extract","command"::{"title"::"Extract Local Variable","command"::"refactor.perform","arguments"::["EXTRACT_LOCAL_VARIABLE","/Users/friebetill/Developer/path/to/file.dart",70,1356,0,null]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this line","kind"::"quickfix.ignore.line","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::48,"character"::0},"end"::{"line"::48,"character"::0}},"newText"::"              // ignore:: lines_longer_than_80_chars\n"}]}]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this file","kind"::"quickfix.ignore.file","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::0,"character"::0},"end"::{"line"::0,"character"::0}},"newText"::"// ignore_for_file:: lines_longer_than_80_chars\n\n"}]}]}},{"title"::"Add trailing comma.","kind"::"quickfix","diagnostics"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"severity"::2,"code"::"prefer-trailing-comma","codeDescription"::{"href"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma"},"source"::"dart","message"::"Prefer trailing comma.\nTextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"newText"::"TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}]}}]}
1638991533629:Res:{"id"::506,"jsonrpc"::"2.0","result"::[{"title"::"Sort Members","kind"::"source.sortMembers","command"::{"title"::"Sort Members","command"::"edit.sortMembers","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Organize Imports","kind"::"source.organizeImports","command"::{"title"::"Organize Imports","command"::"edit.organizeImports","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Fix All","kind"::"source.fixAll","command"::{"title"::"Fix All","command"::"edit.fixAll","arguments"::["/Users/friebetill/Developer/path/to/file.dart"]}},{"title"::"Extract Method","kind"::"refactor.extract","command"::{"title"::"Extract Method","command"::"refactor.perform","arguments"::["EXTRACT_METHOD","/Users/friebetill/Developer/path/to/file.dart",70,1356,0,null]}},{"title"::"Extract Local Variable","kind"::"refactor.extract","command"::{"title"::"Extract Local Variable","command"::"refactor.perform","arguments"::["EXTRACT_LOCAL_VARIABLE","/Users/friebetill/Developer/path/to/file.dart",70,1356,0,null]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this line","kind"::"quickfix.ignore.line","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::48,"character"::0},"end"::{"line"::48,"character"::0}},"newText"::"              // ignore:: lines_longer_than_80_chars\n"}]}]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this file","kind"::"quickfix.ignore.file","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::0,"character"::0},"end"::{"line"::0,"character"::0}},"newText"::"// ignore_for_file:: lines_longer_than_80_chars\n\n"}]}]}},{"title"::"Add trailing comma.","kind"::"quickfix","diagnostics"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"severity"::2,"code"::"prefer-trailing-comma","codeDescription"::{"href"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma"},"source"::"dart","message"::"Prefer trailing comma.\nTextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"newText"::"TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}]}}]}
1638991535020:Req:{"jsonrpc"::"2.0","id"::507,"method"::"textDocument/formatting","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"options"::{"tabSize"::2,"insertpath/to/file.dart"::true,"trimTrailingWhitespace"::true}}}
1638991535080:Res:{"id"::507,"jsonrpc"::"2.0","result"::null}
1638991536565:Req:{"jsonrpc"::"2.0","id"::508,"method"::"textDocument/hover","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"position"::{"line"::49,"character"::39}}}
1638991536581:Req:{"jsonrpc"::"2.0","id"::509,"method"::"textDocument/hover","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"position"::{"line"::49,"character"::39}}}
1638991536600:Res:{"id"::508,"jsonrpc"::"2.0","result"::{"contents"::{"kind"::"markdown","value"::"```dart\nTextTheme textTheme\n```\n*package::flutter/src/material/theme_data.dart*\n\n---\nText with a color that contrasts with the card and canvas colors."},"range"::{"start"::{"line"::49,"character"::39},"end"::{"line"::49,"character"::48}}}}
1638991536600:Res:{"id"::509,"jsonrpc"::"2.0","result"::{"contents"::{"kind"::"markdown","value"::"```dart\nTextTheme textTheme\n```\n*package::flutter/src/material/theme_data.dart*\n\n---\nText with a color that contrasts with the card and canvas colors."},"range"::{"start"::{"line"::49,"character"::39},"end"::{"line"::49,"character"::48}}}}
1638991536721:Req:{"jsonrpc"::"2.0","id"::510,"method"::"textDocument/codeAction","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"context"::{"diagnostics"::[{"range"::{"start"::{"line"::51,"character"::16},"end"::{"line"::51,"character"::17}},"message"::"Expected an identifier.","code"::"missing_identifier","severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::46,"character"::22}},"message"::"The named parameter 'child' is required, but there's no corresponding argument.\nTry adding the required argument.","code"::"missing_required_argument","codeDescription"::{"href"::"file::///diagnostics/missing_required_argument"},"severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::49,"character"::12},"end"::{"line"::49,"character"::19}},"message"::"The argument for the named parameter 'primary' was already specified.\nTry removing one of the named arguments, or correcting one of the names to reference a different named parameter.","code"::"duplicate_named_argument","codeDescription"::{"href"::"file::///diagnostics/duplicate_named_argument"},"severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"message"::"Avoid lines longer than 80 characters.","code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"file::///linter/lints/lines_longer_than_80_chars.html"},"severity"::3,"source"::"dart"},{"range"::{"start"::{"line"::51,"character"::16},"end"::{"line"::51,"character"::17}},"message"::"Positional arguments must occur before named arguments.\nTry moving all of the positional arguments before the named arguments.","code"::"positional_after_named_argument","severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::51,"character"::18},"end"::{"line"::51,"character"::19}},"message"::"Expected to find ')'.","code"::"expected_token","severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::51,"character"::18},"end"::{"line"::51,"character"::19}},"message"::"Expected to find ']'.","code"::"expected_token","severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"message"::"Prefer trailing comma.\nTextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","codeDescription"::{"href"::"file::///docs/rules/common/prefer-trailing-comma"},"severity"::2,"source"::"dart"},{"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"message"::"Prefer trailing comma.\nchildren:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","codeDescription"::{"href"::"file::///docs/rules/common/prefer-trailing-comma"},"severity"::2,"source"::"dart"}],"only"::["quickfix"]}}}
1638991536730:PluginReq:{"id"::"494","method"::"edit.getAssists","params"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1230,"length"::286}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991536732:PluginReq:{"id"::"495","method"::"edit.getFixes","params"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1230}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991536734:Req:{"jsonrpc"::"2.0","id"::511,"method"::"textDocument/codeAction","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"context"::{"diagnostics"::[{"range"::{"start"::{"line"::51,"character"::16},"end"::{"line"::51,"character"::17}},"message"::"Expected an identifier.","code"::"missing_identifier","severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::46,"character"::22}},"message"::"The named parameter 'child' is required, but there's no corresponding argument.\nTry adding the required argument.","code"::"missing_required_argument","codeDescription"::{"href"::"file::///diagnostics/missing_required_argument"},"severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::49,"character"::12},"end"::{"line"::49,"character"::19}},"message"::"The argument for the named parameter 'primary' was already specified.\nTry removing one of the named arguments, or correcting one of the names to reference a different named parameter.","code"::"duplicate_named_argument","codeDescription"::{"href"::"file::///diagnostics/duplicate_named_argument"},"severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"message"::"Avoid lines longer than 80 characters.","code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"file::///linter/lints/lines_longer_than_80_chars.html"},"severity"::3,"source"::"dart"},{"range"::{"start"::{"line"::51,"character"::16},"end"::{"line"::51,"character"::17}},"message"::"Positional arguments must occur before named arguments.\nTry moving all of the positional arguments before the named arguments.","code"::"positional_after_named_argument","severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::51,"character"::18},"end"::{"line"::51,"character"::19}},"message"::"Expected to find ')'.","code"::"expected_token","severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::51,"character"::18},"end"::{"line"::51,"character"::19}},"message"::"Expected to find ']'.","code"::"expected_token","severity"::1,"source"::"dart"},{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::51,"character"::18}},"message"::"Prefer trailing comma.\nTextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","codeDescription"::{"href"::"file::///docs/rules/common/prefer-trailing-comma"},"severity"::2,"source"::"dart"},{"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"message"::"Prefer trailing comma.\nchildren:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","codeDescription"::{"href"::"file::///docs/rules/common/prefer-trailing-comma"},"severity"::2,"source"::"dart"}],"only"::["quickfix"]}}}
1638991536736:PluginReq:{"id"::"496","method"::"edit.getAssists","params"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1230,"length"::286}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991536737:PluginReq:{"id"::"497","method"::"edit.getFixes","params"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1230}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991536973:PluginRes:{"id"::"494","requestTime"::1638991536730,"result"::{"assists"::[]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991536974:PluginRes:{"id"::"495","requestTime"::1638991536733,"result"::{"fixes"::[{"error"::{"severity"::"WARNING","type"::"LINT","location"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1230,"length"::286,"startLine"::46,"startColumn"::11,"endLine"::52,"endColumn"::19},"message"::"Prefer trailing comma.","correction"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","url"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma","hasFix"::true},"fixes"::[{"priority"::1,"change"::{"message"::"Add trailing comma.","edits"::[{"file"::"/Users/friebetill/Developer/path/to/file.dart","fileStamp"::148,"edits"::[{"offset"::1230,"length"::286,"replacement"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}],"linkedEditGroups"::[]}}]}]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991536977:PluginRes:{"id"::"496","requestTime"::1638991536736,"result"::{"assists"::[]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991536977:PluginRes:{"id"::"497","requestTime"::1638991536737,"result"::{"fixes"::[{"error"::{"severity"::"WARNING","type"::"LINT","location"::{"file"::"/Users/friebetill/Developer/path/to/file.dart","offset"::1230,"length"::286,"startLine"::46,"startColumn"::11,"endLine"::52,"endColumn"::19},"message"::"Prefer trailing comma.","correction"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),","code"::"prefer-trailing-comma","url"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma","hasFix"::true},"fixes"::[{"priority"::1,"change"::{"message"::"Add trailing comma.","edits"::[{"file"::"/Users/friebetill/Developer/path/to/file.dart","fileStamp"::148,"edits"::[{"offset"::1230,"length"::286,"replacement"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}],"linkedEditGroups"::[]}}]}]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991536978:Res:{"id"::510,"jsonrpc"::"2.0","result"::[{"title"::"Add required argument 'child'","kind"::"quickfix.add.missingRequiredArgument","diagnostics"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::46,"character"::22}},"severity"::1,"code"::"missing_required_argument","codeDescription"::{"href"::"https:://dart.dev/diagnostics/missing_required_argument"},"source"::"dart","message"::"The named parameter 'child' is required, but there's no corresponding argument.\nTry adding the required argument."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::51,"character"::16},"end"::{"line"::51,"character"::16}},"newText"::", child:: null"}]}]}},{"title"::"Create local variable 'yts'","kind"::"quickfix.create.localVariable","diagnostics"::[{"range"::{"start"::{"line"::51,"character"::33},"end"::{"line"::51,"character"::36}},"severity"::1,"code"::"undefined_identifier","codeDescription"::{"href"::"https:://dart.dev/diagnostics/undefined_identifier"},"source"::"dart","message"::"Undefined name 'yts'.\nTry correcting the name to one that is defined, or defining the name."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::39,"character"::4},"end"::{"line"::39,"character"::4}},"newText"::"var yts;\n    "}]}]}},{"title"::"Create method 'leFrom'","kind"::"quickfix.create.method","diagnostics"::[{"range"::{"start"::{"line"::51,"character"::25},"end"::{"line"::51,"character"::31}},"severity"::1,"code"::"undefined_method","codeDescription"::{"href"::"https:://dart.dev/diagnostics/undefined_method"},"source"::"dart","message"::"The method 'leFrom' isn't defined for the type '_Ratepath/to/file.dart'.\nTry correcting the name to the name of an existing method, or defining a method named 'leFrom'."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::102,"character"::3},"end"::{"line"::102,"character"::3}},"newText"::"\n\n  leFrom() {}"}]}]}},{"title"::"Create function 'leFrom'","kind"::"quickfix.create.function","diagnostics"::[{"range"::{"start"::{"line"::51,"character"::25},"end"::{"line"::51,"character"::31}},"severity"::1,"code"::"undefined_method","codeDescription"::{"href"::"https:://dart.dev/diagnostics/undefined_method"},"source"::"dart","message"::"The method 'leFrom' isn't defined for the type '_Ratepath/to/file.dart'.\nTry correcting the name to the name of an existing method, or defining a method named 'leFrom'."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::103,"character"::1},"end"::{"line"::103,"character"::1}},"newText"::"\n\nleFrom() {\n}"}]}]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this line","kind"::"quickfix.ignore.line","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::48,"character"::0},"end"::{"line"::48,"character"::0}},"newText"::"              // ignore:: lines_longer_than_80_chars\n"}]}]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this file","kind"::"quickfix.ignore.file","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::0,"character"::0},"end"::{"line"::0,"character"::0}},"newText"::"// ignore_for_file:: lines_longer_than_80_chars\n\n"}]}]}},{"title"::"Add trailing comma.","kind"::"quickfix","diagnostics"::[{"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"severity"::2,"code"::"prefer-trailing-comma","codeDescription"::{"href"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma"},"source"::"dart","message"::"Prefer trailing comma.\nchildren:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"newText"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}]}}]}
1638991536978:Res:{"id"::511,"jsonrpc"::"2.0","result"::[{"title"::"Add required argument 'child'","kind"::"quickfix.add.missingRequiredArgument","diagnostics"::[{"range"::{"start"::{"line"::46,"character"::12},"end"::{"line"::46,"character"::22}},"severity"::1,"code"::"missing_required_argument","codeDescription"::{"href"::"https:://dart.dev/diagnostics/missing_required_argument"},"source"::"dart","message"::"The named parameter 'child' is required, but there's no corresponding argument.\nTry adding the required argument."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::51,"character"::16},"end"::{"line"::51,"character"::16}},"newText"::", child:: null"}]}]}},{"title"::"Create local variable 'yts'","kind"::"quickfix.create.localVariable","diagnostics"::[{"range"::{"start"::{"line"::51,"character"::33},"end"::{"line"::51,"character"::36}},"severity"::1,"code"::"undefined_identifier","codeDescription"::{"href"::"https:://dart.dev/diagnostics/undefined_identifier"},"source"::"dart","message"::"Undefined name 'yts'.\nTry correcting the name to one that is defined, or defining the name."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::39,"character"::4},"end"::{"line"::39,"character"::4}},"newText"::"var yts;\n    "}]}]}},{"title"::"Create method 'leFrom'","kind"::"quickfix.create.method","diagnostics"::[{"range"::{"start"::{"line"::51,"character"::25},"end"::{"line"::51,"character"::31}},"severity"::1,"code"::"undefined_method","codeDescription"::{"href"::"https:://dart.dev/diagnostics/undefined_method"},"source"::"dart","message"::"The method 'leFrom' isn't defined for the type '_Ratepath/to/file.dart'.\nTry correcting the name to the name of an existing method, or defining a method named 'leFrom'."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::102,"character"::3},"end"::{"line"::102,"character"::3}},"newText"::"\n\n  leFrom() {}"}]}]}},{"title"::"Create function 'leFrom'","kind"::"quickfix.create.function","diagnostics"::[{"range"::{"start"::{"line"::51,"character"::25},"end"::{"line"::51,"character"::31}},"severity"::1,"code"::"undefined_method","codeDescription"::{"href"::"https:://dart.dev/diagnostics/undefined_method"},"source"::"dart","message"::"The method 'leFrom' isn't defined for the type '_Ratepath/to/file.dart'.\nTry correcting the name to the name of an existing method, or defining a method named 'leFrom'."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::103,"character"::1},"end"::{"line"::103,"character"::1}},"newText"::"\n\nleFrom() {\n}"}]}]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this line","kind"::"quickfix.ignore.line","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::48,"character"::0},"end"::{"line"::48,"character"::0}},"newText"::"              // ignore:: lines_longer_than_80_chars\n"}]}]}},{"title"::"Ignore 'lines_longer_than_80_chars' for this file","kind"::"quickfix.ignore.file","diagnostics"::[{"range"::{"start"::{"line"::48,"character"::80},"end"::{"line"::48,"character"::101}},"severity"::3,"code"::"lines_longer_than_80_chars","codeDescription"::{"href"::"https:://dart-lang.github.io/linter/lints/lines_longer_than_80_chars.html"},"source"::"dart","message"::"Avoid lines longer than 80 characters."}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::0,"character"::0},"end"::{"line"::0,"character"::0}},"newText"::"// ignore_for_file:: lines_longer_than_80_chars\n\n"}]}]}},{"title"::"Add trailing comma.","kind"::"quickfix","diagnostics"::[{"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"severity"::2,"code"::"prefer-trailing-comma","codeDescription"::{"href"::"https:://dartcodemetrics.dev/docs/rules/common/prefer-trailing-comma"},"source"::"dart","message"::"Prefer trailing comma.\nchildren:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}],"edit"::{"documentChanges"::[{"textDocument"::{"version"::70,"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"edits"::[{"range"::{"start"::{"line"::45,"character"::10},"end"::{"line"::51,"character"::18}},"newText"::"children:: [\n            TextButton(\n              onPressed:: _handleNeverButtonTap,\n              style:: TextButton.styleFrom(     primary:: Theme.of(context).textTheme.bodyText2!.color,\n            primary:: Theme.of(context).textTheme.bodyText2!.color,\n              \n              ),,),"}]}]}}]}
1638991538981:Req:{"jsonrpc"::"2.0","id"::512,"method"::"textDocument/hover","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"position"::{"line"::51,"character"::34}}}
1638991538995:Req:{"jsonrpc"::"2.0","id"::513,"method"::"textDocument/hover","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"},"position"::{"line"::51,"character"::34}}}
1638991539005:Res:{"id"::512,"jsonrpc"::"2.0","result"::{"contents"::{"kind"::"markdown","value"::""},"range"::{"start"::{"line"::51,"character"::33},"end"::{"line"::51,"character"::36}}}}
1638991539005:Res:{"id"::513,"jsonrpc"::"2.0","result"::{"contents"::{"kind"::"markdown","value"::""},"range"::{"start"::{"line"::51,"character"::33},"end"::{"line"::51,"character"::36}}}}
1638991543901:Req:{"jsonrpc"::"2.0","method"::"textDocument/didClose","params"::{"textDocument"::{"uri"::"file::///Users/friebetill/Developer/path/to/file.dart"}}}
1638991543905:PluginReq:{"id"::"498","method"::"analysis.setPriorityFiles","params"::{"files"::["/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart"]}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991543906:PluginReq:{"id"::"499","method"::"analysis.setSubscriptions","params"::{"subscriptions"::{"NAVIGATION"::["/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart"],"OUTLINE"::["/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart"],"FOLDING"::["/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart"],"OCCURRENCES"::["/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart"],"HIGHLIGHTS"::["/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart","/Users/friebetill/Developer/path/to/file.dart"]}}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991543908:PluginReq:{"id"::"500","method"::"analysis.updateContent","params"::{"files"::{"/Users/friebetill/Developer/path/to/file.dart"::{"type"::"remove"}}}}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991543916:Res:{"id"::35,"method"::"window/workDoneProgress/create","params"::{"token"::"ANALYZING"},"jsonrpc"::"2.0"}
1638991543917:PluginRes:{"id"::"498","requestTime"::1638991543905}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991543917:PluginRes:{"id"::"499","requestTime"::1638991543906}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991543917:PluginRes:{"id"::"500","requestTime"::1638991543908}:file::///Users/friebetill/.dartServer/.plugin_manager/0a79f3b841952477d0b5a6fee8067d74/analyzer_plugin/bin/plugin.dart::
1638991543918:Req:{"jsonrpc"::"2.0","id"::35,"result"::null}
1638991543919:Res:{"method"::"$/progress","params"::{"token"::"ANALYZING","value"::{"kind"::"begin","title"::"Analyzing…"}},"jsonrpc"::"2.0"}
1638991543926:Res:{"method"::"$/progress","params"::{"token"::"ANALYZING","value"::{"kind"::"end"}},"jsonrpc"::"2.0"}

I don't know if the lines are relevant, in case lines before are still needed I saved those.

@DanTup
Copy link
Collaborator

DanTup commented Dec 9, 2021

@friebetill thanks! Unfortunately I can't see anything unusual in the log. It seems like all of the requests logged (both to the server, and then to the dart_code_metrics plugin) completed successfully. When this occurred, exactly what were the symptoms/behaviour you saw?

And if you click Help -> Toggle Developer Tools in VS Code and check the Console tab, are there any errors?

Otherwise, I think it would be useful to review the analysis servers isolates in Observatory as @scheglov suggested, although there are currently some issues that make it a little trickier to access the VM Service for the analysis server through VS Code and LSP - I'll post back some instructions when I've resolved some of them.

@srawlins srawlins added analyzer-crash-report Issues which have been reported due to an analysis server crash analyzer-stability P2 A bug or feature request we're likely to work on type-bug Incorrect behavior (everything from a crash to more subtle misbehavior) labels Dec 14, 2021
@DanTup
Copy link
Collaborator

DanTup commented Mar 14, 2022

Are you still seeing this issue with Dart v2.16? There were fixes made for Dart-Code/Dart-Code#3761 that solved some race conditions when using plugins that analyzed Dart files.

@friebetill
Copy link
Author

friebetill commented Mar 14, 2022

I deactivated dart_code_metrics and the error never appeared again. At the moment I don't get to program Dart, so I can`t test it. I would suggest closing the issue for now and if the problem reoccurs for someone else or for me, reopen it.

@DanTup
Copy link
Collaborator

DanTup commented Mar 14, 2022

Ok, will close. Please do ping if you (or anyone else reading) is seeing this on >= v2.16 of Dart though. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
analyzer-crash-report Issues which have been reported due to an analysis server crash analyzer-stability area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. P2 A bug or feature request we're likely to work on type-bug Incorrect behavior (everything from a crash to more subtle misbehavior)
Projects
None yet
Development

No branches or pull requests

5 participants