-
Notifications
You must be signed in to change notification settings - Fork 340
Add an option to "Open on Pub" to the dependencies tree #5590
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @DanTup, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request enhances the usability of the Dart/Flutter dependency tree in VS Code by adding a convenient context menu option. Users can now directly open the pub.dev page for any pub-hosted package listed in their project's dependencies, streamlining the process of looking up package documentation and details.
Highlights
- New Feature: Open on Pub.dev: Introduced a new context menu option 'Open on pub.dev' for dependency nodes within the Dart/Flutter dependency tree view. This allows users to quickly navigate to a package's page on the official Pub package repository.
- Contextual Menu Integration: The 'Open on pub.dev' option is intelligently displayed only for packages that are identified as being hosted on
pub.dev. This is achieved by assigning a new context value (dart-code:depPubHostedPackageNode) to such nodes based on their resolved file path. - Command Implementation: A new command
_dart.openDependencyPageFromTreeNodewas implemented to handle the opening of the browser. It constructs the correctpub.devURL for the selected package, respecting thePUB_HOSTED_URLenvironment variable if set. - Test Coverage: A new test case was added to verify that the
dart-code:depPubHostedPackageNodecontext value is correctly applied to pub-hosted packages and not to other types of dependencies (e.g., local path dependencies).
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.
| Feature | Command | Description |
|---|---|---|
| Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
| Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
| Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
| Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request adds an "Open on pub.dev" option to the dependencies tree. The implementation is clean, introducing a new command and context menu item. The review includes suggestions to improve how pub-hosted packages are detected and to refine the regex used for matching dependency package nodes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds an option to open a dependency’s Pub page directly from the dependencies tree by marking pub-hosted packages with a new context and wiring up a new command/menu.
- Introduce
DART_DEP_PUB_HOSTED_PACKAGE_NODE_CONTEXTand flag hosted packages in the tree. - Register
_dart.openDependencyPageFromTreeNodecommand and implementopenDependencyPage. - Update package.json to contribute the “Open on pub.dev” command and add tests for the new context.
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/shared/constants.contexts.ts | Added DART_DEP_PUB_HOSTED_PACKAGE_NODE_CONTEXT. |
| src/extension/views/packages_view.ts | Annotate pub-hosted packages; register and implement the new open-in-browser command. |
| src/test/dart/views/packages_view.test.ts | Added tests to verify the pub-hosted context on dependencies. |
| package.json | Contributed the new command and menu item for “Open on pub.dev”. |
Comments suppressed due to low confidence (1)
src/extension/views/packages_view.ts:153
- The new
openDependencyPagecommand isn’t covered by existing tests. Consider adding unit tests that mockenvUtils.openInBrowserand verify that the correct URL—respectingPUB_HOSTED_URLandpackageName—is constructed and invoked.
private async openDependencyPage(treeNode: PackageDepPackage) {
Fixes #5589
/gemini review