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

[Unquoted Imports] Analysis Server Implementation #56713

Open
38 tasks
Tracked by #56614
kallentu opened this issue Sep 11, 2024 · 1 comment
Open
38 tasks
Tracked by #56614

[Unquoted Imports] Analysis Server Implementation #56713

kallentu opened this issue Sep 11, 2024 · 1 comment
Labels
analyzer-server area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. feature-unquoted-imports Implementation of the import shorthands/unquoted imports feature. P2 A bug or feature request we're likely to work on type-enhancement A request for a change that isn't a bug

Comments

@kallentu
Copy link
Member

This issue tracks all the analysis server work items for the unquoted imports feature. Referenced from: https://github.com/dart-lang/sdk/blob/main/pkg/analysis_server/doc/process/new_language_feature.md

WIP below. They have not been evaluated yet.

  • Call Hierarchy (an IDE feature where you can get a call hierarchy if you
    click on a method)
  • Closing Labels (an LSP feature allowing the IDE to show lightly grayed out
    comments at the end of the last line of a multi-line invocation, to aid
    the user in understanding what invocation is closed by a ))
  • Code Completion
  • Code Folding
  • Document Colors (an LSP feature whereby a reference to a color in code can
    be associated with a colored swatch and a color picker)
  • Hovers
  • Implemented/override markers (a legacy protocol feature, only available to
    IntelliJ and Android Studio)
    • Implemented Markers (allows navigation from a base class method to
      methods that override it, or from a base class to classes that
      extend/implement it)
    • Override Markers (allows navigation from a method to the base class
      method it overrides, or from a class to the class that it
      extends/implements)
  • Inlay Hints (an LSP feature allowing extra information to be displayed
    using inline hints)
  • Navigation
    • Go to Definition (LSP feature)
    • Go to Type Definition (LSP feature)
    • Go to Super (LSP feature)
    • Legacy protocol (for IntelliJ and Android Studio)
  • Occurrences
    • Legacy protocol (for IntelliJ and Android Studio)
    • Document Highlights (LSP feature)
  • Organize Imports
  • Outline
    • Flutter Outline
    • Legacy protocol, a.k.a. Document Symbols (for IntelliJ and Android
      Studio)
    • LSP feature
  • Refactorings and quick assists/fixes (note that in addition to potentially
    creating new refactorings and/or quick assists/fixes, part of the work
    required to implement a new language feature includes evaluating each existing
    refactoring and quick fix/assist to see whether it needs to be improved or
    have test cases added to reflect the new feature).
    • Legacy refactorings (for IntelliJ and Android Studio)
    • LSP rename refactoring (note that LSP has a special protocol for
      renames)
    • LSP self-describing refactorings
    • Quick Assists
    • Quick Fixes
  • Search
    • Find References
    • Implementations - LSP
    • Member Declarations
    • Member References
    • Top-level Declarations
  • Selection Range (an LSP feature allowing a selection to be expanded to
    cover the range of an ancestor AST node)
  • Syntax Highlighting
    • Legacy protocol, a.k.a. Semantic Highlights (for IntelliJ and Android
      Studio)
    • Semantic Tokens (LSP feature)
  • Signature Help (an LSP feature that tells the parameters and types needed
    for an invocation)
  • Snippets
  • Sort Members
  • Type Hierarchy
    • Legacy protocol (for IntelliJ and Android Studio)
    • LSP feature
  • Workspace Symbols (LSP feature)
@kallentu kallentu added analyzer-server area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. feature-unquoted-imports Implementation of the import shorthands/unquoted imports feature. P2 A bug or feature request we're likely to work on type-enhancement A request for a change that isn't a bug labels Sep 11, 2024
@FMorschel
Copy link
Contributor

FMorschel commented Jan 29, 2025

note that in addition to potentially creating new refactorings and/or quick assists/fixes, part of the work required to implement a new language feature includes evaluating each existing refactoring and quick fix/assist to see whether it needs to be improved or have test cases added to reflect the new feature

I'm aware this is still a WIP. I just have some questions to leave here as a reference for when we get to assists/fixes/autocomplete.

  1. Will we have a lint for preferring this over the old style (important for the next question)? What about the other way around (not sure someone would want that but maybe - since there are some cases where this can't be used, maybe for consistency)?
  2. Considering the first answer, would our current fixes/assists/autocomplete prefer this new syntax over the current one?

To map what I could find related to imports so we don't miss anything:

We should probably add some "Good" code samples with this new syntax.

We may also need to add tests for:

If I missed anything else please mention.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
analyzer-server area-analyzer Use area-analyzer for Dart analyzer issues, including the analysis server and code completion. feature-unquoted-imports Implementation of the import shorthands/unquoted imports feature. P2 A bug or feature request we're likely to work on type-enhancement A request for a change that isn't a bug
Projects
None yet
Development

No branches or pull requests

2 participants