Commit Graph

36 Commits

Author SHA1 Message Date
Sandy Tao c795168e9c feat(core): Use completionStart/End for slash command auto-completion (#5374) 2025-08-01 18:51:38 +00:00
Sandy Tao 32809a7be7 feat(cli): Improve @ autocompletion for mid-sentence edits (#5321) 2025-07-31 23:07:12 +00:00
Yuki Okita c1fe688956 feat: Multi-Directory Workspace Support (part1: add --include-directories option) (#4605)
Co-authored-by: Allen Hutchison <adh@google.com>
2025-07-30 20:38:20 +00:00
christine betts eb65034117 Load and use MCP server prompts as slash commands in the CLI (#4828)
Co-authored-by: harold <haroldmciver@google.com>
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-07-25 20:56:33 +00:00
Tommaso Sciortino 3c16429fc4 Make useCompletion.test.ts windows compatible (#4766) 2025-07-25 17:32:59 +00:00
Sandy Tao 1d7eb0d250 [Refactor] Centralizes autocompletion logic within useCompletion (#4740) 2025-07-25 04:41:35 +00:00
Abhi 2a95c8287e prefactor(commands): Command Service Prefactor for Extensible Commands (#4511) 2025-07-20 20:57:34 +00:00
Pyush Sinha a01b1219a3 feat: full implementation for .geminiignore in settings and respective tool calls (#3727) 2025-07-20 07:55:33 +00:00
Harold Mciver de27ea6095 feat(cli): allow executing commands on perfect match (#4397)
Co-authored-by: Jenna Inouye <jinouye@google.com>
2025-07-18 04:55:29 +00:00
Lee Won Jun ec5e9d1025 Improve altName completion behavior in slash commands (#4227)
Co-authored-by: Jacob Richman <jacob314@gmail.com>
2025-07-15 23:45:10 +00:00
Sandy Tao 7ffe8038ef Make @ command sort file without extension name (#4158) 2025-07-14 21:10:26 +00:00
Abhi aa10ccba71 feature(commands) - Refactor Slash Command + Vision For the Future (#3175) 2025-07-07 20:45:44 +00:00
zfflxx 97d9386e3f @file don't respect config respectGitIgnore=false (#3382) (#3387)
Co-authored-by: Ryan Fang <ryan.fang@gllue.com>
2025-07-07 05:48:39 +00:00
Seth Troisi 383306e17e Improve slashCommand autoCompletion logic (#2776) 2025-07-01 22:51:43 +00:00
Brandon Keiji f6c36f75e3 fix: prepublish changes to package names (#1420) 2025-06-25 12:41:11 +00:00
Billy Biggs 0779697da6 Add setting enableRecursiveFileSearch to control @-file completion (#1290) 2025-06-22 01:23:35 +00:00
Anas H. Sulaiman 63fbc8ce18 fix: regression in completion filtering (#1135) 2025-06-18 05:05:47 +00:00
Billy Biggs b67806ae9a Support completion of checkpoint names in /resume (#1063) 2025-06-15 11:40:39 -07:00
Anas H. Sulaiman 4873fce791 centralize file filtering in FileDiscoveryService (#1039) 2025-06-14 14:25:34 +00:00
DeWitt Clinton a9e56ee460 Ignore dot files on @-completion. (#978) 2025-06-12 17:04:15 +00:00
DeWitt Clinton f2ab6d08c4 Improve the performance of filename completion over large repositories. (#938) 2025-06-12 07:09:38 -07:00
cperry-goog 18d6a11c04 refactor: rename gemini-code to gemini-cli (#822) 2025-06-07 14:27:22 -07:00
Keith Ballinger c313762ba0 Ignore folders files (#651)
# Add .gitignore-Aware File Filtering to gemini-cli

This pull request introduces .gitignore-based file filtering to the gemini-cli, ensuring that git-ignored files are automatically excluded from file-related operations and suggestions throughout the CLI. The update enhances usability, reduces noise from build artifacts and dependencies, and provides new configuration options for fine-tuning file discovery.

Key Improvements
.gitignore File Filtering

All @ (at) commands, file completions, and core discovery tools now honor .gitignore patterns by default.
Git-ignored files (such as node_modules/, dist/, .env, and .git) are excluded from results unless explicitly overridden.
The behavior can be customized via a new fileFiltering section in settings.json, including options for:
Turning .gitignore respect on/off.
Adding custom ignore patterns.
Allowing or excluding build artifacts.
Configuration & Documentation Updates

settings.json schema extended with fileFiltering options.
Documentation updated to explain new filtering controls and usage patterns.
Testing

New and updated integration/unit tests for file filtering logic, configuration merging, and edge cases.
Test coverage ensures .gitignore filtering works as intended across different workflows.
Internal Refactoring

Core file discovery logic refactored for maintainability and extensibility.
Underlying tools (ls, glob, read-many-files) now support git-aware filtering out of the box.


Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-04 04:40:46 +00:00
Scott Densmore c414512f19 Fix: Make file path case-insensitive in @-command (#659) 2025-05-31 16:19:14 -07:00
Tommaso Sciortino 21fba832d1 Rename server->core (#638) 2025-05-30 18:25:47 -07:00
DeWitt Clinton 01c28df8b2 Add globbing support to @-command file suggestions and resolution. (#462)
Implements recursive glob-based file search for both suggestions and execution of the `@` command.

- When typing `@filename`, suggestions will now include files matching `filename` in nested directories.
- Suggestions are sorted by path depth (shallowest first), then directories before files, then alphabetically.
- The maximum recursion depth for suggestions is set to 10.
- When executing an `@filename` command, if the file is not found directly, a recursive search (using the glob tool) is performed to locate the file.

This addresses the first request in issue #461 by allowing users to quickly reference deeply nested files without typing the full path. Also addresses b/416292478.
2025-05-21 12:22:18 -07:00
DeWitt Clinton 13a6a9a690 Introduce a small easter egg. Woof. (#412)
Also changes auto-completion and /help to skip over slash commands that don't contain a description to avoid spoiling the surprise.
2025-05-17 21:57:27 -07:00
Taylor Mullen 968e09f0b5 fix: Ensure filename is available for diff rendering in write-file
This commit resolves a bug where the `write-file` operation could fail to render content due to a missing filename.

The fix involves:
- Ensuring `fileName` is consistently passed to `DiffRenderer.tsx` through `ToolConfirmationMessage.tsx`, `ToolMessage.tsx`, and `useGeminiStream.ts`.
- Modifying `edit.ts` and `write-file.ts` to include `fileName` in the `FileDiff` object.
- Expanding the `FileDiff` interface in `tools.ts` to include `fileName`.

Additionally, this commit enhances the diff rendering by:
- Adding syntax highlighting based on file extension in `DiffRenderer.tsx`.
- Adding more language mappings to `getLanguageFromExtension` in `DiffRenderer.tsx`.
- Added lots of tests for all the above.

Fixes https://b.corp.google.com/issues/418125982
2025-05-16 10:13:13 -07:00
Miguel Solorio 416813452e Improvements to suggestions & slash commands (#344)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-05-14 16:01:29 -07:00
Allen Hutchison 4a6d0717a1 fix for b/414940078 (#306) 2025-05-09 15:38:19 -07:00
Allen Hutchison adeda6a5b3 Refactor: Memoize hook callbacks, update dependencies, and fix lint errors (#268)
Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-05-06 14:48:49 -07:00
Seth Troisi 2cd976987e slash command altnames and support for ? 2025-05-05 22:33:22 +00:00
Seth Troisi cc838fad44 Add autocomplete for slash commands 2025-05-02 20:58:53 +00:00
Jacob Richman 53ac7952c7 Support escaping spaces in file paths. (#241) 2025-05-01 18:02:04 -07:00
Allen Hutchison 9f20c5f95e Add @ command suggestions in the UI. (#219) 2025-04-30 08:31:32 -07:00
Allen Hutchison e0de69f384 First four independent files for @ commands. (#205) 2025-04-29 08:29:09 -07:00