feat: add /view command to open last result in external editor#14894
Conversation
Implements Issue google-gemini#14862. The /view command saves the last AI response to a temporary markdown file and opens it in the user's configured editor, making it easier to view, copy, and work with longer responses. - Add openInEditor() and getOpenCommand() functions to editor.ts - Create viewCommand.ts with /view slash command implementation - Register viewCommand in BuiltinCommandLoader.ts - Add comprehensive tests for all new functionality
Summary of ChangesHello @sotopelaez092-star, 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 implements a new Highlights
Using Gemini Code AssistThe 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 by creating a comment using either
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 Limitations & Feedback Gemini Code Assist 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. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. 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
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new /view command to open the last AI response in an external editor. The implementation is well-structured, with new core utilities for opening files in editors and a dedicated command file. The test coverage is comprehensive, covering various scenarios for the new command and utility functions.
My review focuses on a couple of high-severity issues. There's a resource leak where temporary files created by the /view command are not deleted, which I've provided a fix for. Additionally, I've found a bug where the openInEditor utility can fail silently, leading to incorrect behavior, and I've suggested a fix for that along with an update to the corresponding test case.
- Add temp file cleanup in finally block to prevent resource leak - Change openInEditor to throw error instead of returning silently - Update tests to verify cleanup and error throwing behavior
|
Works like a charm, this is precisely what I asked for in issue: #14862. Thank you! |
|
Hi @sotopelaez092-star, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this. We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines. Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed. Thank you for your understanding and for being a part of our community! |
|
Hi there! Thank you for your contribution to Gemini CLI. To improve our contribution process and better track changes, we now require all pull requests to be associated with an existing issue, as announced in our recent discussion and as detailed in our CONTRIBUTING.md. This pull request is being closed because it is not currently linked to an issue. You can easily reopen this PR once you have linked it to an issue. How to link an issue: Thank you for your understanding and for being a part of our community! |
Summary
/viewslash command to open last AI response in external editorChanges
openInEditor()andgetOpenCommand()functions to editor.tsTest plan