Skip to content

feat(cli): enable mouse clicking for cursor positioning in AskUser multi-line answers#24630

Open
Adib234 wants to merge 2 commits intomainfrom
adibakm/mouse-click-ask-user
Open

feat(cli): enable mouse clicking for cursor positioning in AskUser multi-line answers#24630
Adib234 wants to merge 2 commits intomainfrom
adibakm/mouse-click-ask-user

Conversation

@Adib234
Copy link
Copy Markdown
Contributor

@Adib234 Adib234 commented Apr 3, 2026

Summary

Enables users to position the cursor using mouse clicks within the multi-line TextInput component, specifically addressing the issue where clicking doesn't work in the AskUser tool when in alternate buffer mode.

Details

  • Modified packages/cli/src/ui/components/shared/TextInput.tsx to include a container ref and the useMouseClick hook.
  • Added logic to map screen coordinates to logical buffer positions via buffer.moveToVisualPosition.
  • Updated unit tests in TextInput.test.tsx to support ConfigContext and mock mouse events.
  • Refreshed snapshots for AskUserDialog.test.tsx to reflect visual layout changes.

Related Issues

Fixes #18910

How to Validate

  1. Start the CLI in alternate buffer mode: npm run start -- --alternate-buffer
  2. Trigger the ask_user tool with a text type question (e.g., "Ask me for a multi-line project description").
  3. Type at least 3 lines of text.
  4. Click on different lines/columns and verify the cursor jumps to the correct position.

Pre-Merge Checklist

  • Added/updated tests
  • Validated on required platforms/methods:
    • MacOS
      • npm run

@Adib234 Adib234 requested a review from a team as a code owner April 3, 2026 19:52
@Adib234 Adib234 self-assigned this Apr 3, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 3, 2026

Size Change: +214 B (0%)

Total Size: 34 MB

Filename Size Change
./bundle/chunk-OZRTHEM4.js 0 B -14.8 MB (removed) 🏆
./bundle/chunk-VQQTTAM3.js 0 B -3.15 MB (removed) 🏆
./bundle/core-J3QIEXCO.js 0 B -45.2 kB (removed) 🏆
./bundle/devtoolsService-XFWK7DKK.js 0 B -28.4 kB (removed) 🏆
./bundle/interactiveCli-HSULT7DP.js 0 B -1.63 MB (removed) 🏆
./bundle/oauth2-provider-4KHFQZOK.js 0 B -9.16 kB (removed) 🏆
./bundle/chunk-L3D5QILI.js 14.8 MB +14.8 MB (new file) 🆕
./bundle/chunk-V6PSYNHH.js 3.15 MB +3.15 MB (new file) 🆕
./bundle/core-4RYCNBU3.js 45.2 kB +45.2 kB (new file) 🆕
./bundle/devtoolsService-MMWHCTFX.js 28.4 kB +28.4 kB (new file) 🆕
./bundle/interactiveCli-MIAGTV3Y.js 1.63 MB +1.63 MB (new file) 🆕
./bundle/oauth2-provider-TBWIUR2B.js 9.16 kB +9.16 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size
./bundle/bundled/third_party/index.js 8 MB
./bundle/chunk-34MYV7JD.js 2.45 kB
./bundle/chunk-5AUYMPVF.js 858 B
./bundle/chunk-5PS3AYFU.js 1.18 kB
./bundle/chunk-664ZODQF.js 124 kB
./bundle/chunk-DAHVX5MI.js 206 kB
./bundle/chunk-GFUOVHXW.js 1.96 MB
./bundle/chunk-IUUIT4SU.js 56.5 kB
./bundle/chunk-RJTRUG2J.js 39.8 kB
./bundle/devtools-36NN55EP.js 696 kB
./bundle/dist-T73EYRDX.js 356 B
./bundle/events-XB7DADIJ.js 418 B
./bundle/gemini.js 550 kB
./bundle/getMachineId-bsd-TXG52NKR.js 1.55 kB
./bundle/getMachineId-darwin-7OE4DDZ6.js 1.55 kB
./bundle/getMachineId-linux-SHIFKOOX.js 1.34 kB
./bundle/getMachineId-unsupported-5U5DOEYY.js 1.06 kB
./bundle/getMachineId-win-6KLLGOI4.js 1.72 kB
./bundle/memoryDiscovery-ACCRGPX3.js 980 B
./bundle/multipart-parser-KPBZEGQU.js 11.7 kB
./bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js 222 kB
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js 229 kB
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js 13.4 kB
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js 132 B
./bundle/sandbox-macos-permissive-open.sb 890 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB
./bundle/sandbox-macos-strict-open.sb 4.82 kB
./bundle/sandbox-macos-strict-proxied.sb 5.02 kB
./bundle/src-QVCVGIUX.js 47 kB
./bundle/tree-sitter-7U6MW5PS.js 274 kB
./bundle/tree-sitter-bash-34ZGLXVX.js 1.84 MB

compressed-size-action

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 introduces mouse interaction capabilities to the multi-line TextInput component. By enabling users to click within the terminal interface to position the cursor, it significantly improves the usability of the AskUser tool when operating in alternate buffer mode. The changes include necessary hook integrations and comprehensive updates to the existing test suite to ensure stability and correct behavior.

Highlights

  • Mouse Click Support: Enabled mouse clicking for cursor positioning within the multi-line TextInput component when in alternate buffer mode.
  • Component Integration: Updated TextInput to include a container ref and the useMouseClick hook to map screen coordinates to logical buffer positions.
  • Testing Improvements: Enhanced unit tests in TextInput.test.tsx to support ConfigContext and mock mouse events, and refreshed snapshots for AskUserDialog.test.tsx.
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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request 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 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.

Footnotes

  1. 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.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a 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 implements mouse click functionality for the TextInput component, allowing users to position the cursor by clicking within the input field when it is focused and the terminal is in alternate buffer mode. The implementation involves adding a container reference to the TextInput's layout and utilizing the useMouseClick hook to trigger buffer cursor movement. Corresponding unit tests were updated to include a ConfigWrapper for context and a new test case verifying the registration of the mouse click handler, alongside necessary snapshot updates. I have no feedback to provide.

@gemini-cli gemini-cli bot added area/core Issues related to User Interface, OS Support, Core Functionality 🔒 maintainer only ⛔ Do not contribute. Internal roadmap item. labels Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/core Issues related to User Interface, OS Support, Core Functionality 🔒 maintainer only ⛔ Do not contribute. Internal roadmap item.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enable mouse clicking in multi-line answer in AskUser tool when in alternate buffer mode

1 participant