@google/gemini-cli 0.25.0-preview.0 → 0.26.0-nightly.20260119.20580d754
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/google-gemini-cli-0.26.0-nightly.20260115.6cb3ae4e0.tgz +0 -0
- package/dist/package.json +4 -3
- package/dist/src/commands/extensions/configure.js +8 -1
- package/dist/src/commands/extensions/configure.js.map +1 -1
- package/dist/src/commands/hooks/migrate.js +1 -1
- package/dist/src/commands/hooks/migrate.js.map +1 -1
- package/dist/src/commands/mcp/list.js +2 -2
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/commands/mcp/list.test.js +25 -8
- package/dist/src/commands/mcp/list.test.js.map +1 -1
- package/dist/src/commands/skills/disable.js +6 -4
- package/dist/src/commands/skills/disable.js.map +1 -1
- package/dist/src/commands/skills/disable.test.js +16 -0
- package/dist/src/commands/skills/disable.test.js.map +1 -1
- package/dist/src/commands/skills/enable.test.js +3 -3
- package/dist/src/commands/skills/enable.test.js.map +1 -1
- package/dist/src/commands/skills/install.d.ts +1 -0
- package/dist/src/commands/skills/install.js +17 -2
- package/dist/src/commands/skills/install.js.map +1 -1
- package/dist/src/commands/skills/install.test.js +43 -5
- package/dist/src/commands/skills/install.test.js.map +1 -1
- package/dist/src/config/config.d.ts +3 -3
- package/dist/src/config/config.integration.test.js +3 -2
- package/dist/src/config/config.integration.test.js.map +1 -1
- package/dist/src/config/config.js +37 -26
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +361 -280
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager-agents.test.js +3 -4
- package/dist/src/config/extension-manager-agents.test.js.map +1 -1
- package/dist/src/config/extension-manager-scope.test.js +13 -15
- package/dist/src/config/extension-manager-scope.test.js.map +1 -1
- package/dist/src/config/extension-manager-skills.test.js +5 -7
- package/dist/src/config/extension-manager-skills.test.js.map +1 -1
- package/dist/src/config/extension-manager.d.ts +2 -2
- package/dist/src/config/extension-manager.js +16 -11
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.test.js +13 -21
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensions/consent.d.ts +4 -0
- package/dist/src/config/extensions/consent.js +40 -16
- package/dist/src/config/extensions/consent.js.map +1 -1
- package/dist/src/config/extensions/consent.test.js +31 -7
- package/dist/src/config/extensions/consent.test.js.map +1 -1
- package/dist/src/config/extensions/extensionUpdates.test.js +5 -2
- package/dist/src/config/extensions/extensionUpdates.test.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +58 -59
- package/dist/src/config/keyBindings.js +131 -135
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/keyBindings.test.js +3 -8
- package/dist/src/config/keyBindings.test.js.map +1 -1
- package/dist/src/config/policy-engine.integration.test.js +15 -0
- package/dist/src/config/policy-engine.integration.test.js.map +1 -1
- package/dist/src/config/settings.d.ts +24 -6
- package/dist/src/config/settings.js +150 -6
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.js +258 -3
- package/dist/src/config/settings.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +53 -20
- package/dist/src/config/settingsSchema.js +48 -22
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +22 -2
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/skills-backward-compatibility.test.js +99 -0
- package/dist/src/config/skills-backward-compatibility.test.js.map +1 -0
- package/dist/src/core/initializer.js +2 -2
- package/dist/src/core/initializer.js.map +1 -1
- package/dist/src/core/initializer.test.js.map +1 -1
- package/dist/src/core/theme.js +1 -1
- package/dist/src/core/theme.js.map +1 -1
- package/dist/src/core/theme.test.js.map +1 -1
- package/dist/src/gemini.js +51 -19
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +48 -61
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.d.ts +1 -2
- package/dist/src/nonInteractiveCli.js +1 -16
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.js +0 -39
- package/dist/src/nonInteractiveCli.test.js.map +1 -1
- package/dist/src/test-utils/mockCommandContext.js +7 -1
- package/dist/src/test-utils/mockCommandContext.js.map +1 -1
- package/dist/src/test-utils/render.js +2 -0
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/App.test.js +2 -2
- package/dist/src/ui/App.test.js.map +1 -1
- package/dist/src/ui/AppContainer.js +41 -35
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +33 -22
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.test.js +0 -1
- package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.js +5 -5
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js +0 -2
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +1 -1
- package/dist/src/ui/auth/useAuth.js +3 -3
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +1 -1
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/agentsCommand.js +158 -1
- package/dist/src/ui/commands/agentsCommand.js.map +1 -1
- package/dist/src/ui/commands/agentsCommand.test.js +140 -1
- package/dist/src/ui/commands/agentsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.js +23 -23
- package/dist/src/ui/commands/hooksCommand.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.test.js +12 -15
- package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
- package/dist/src/ui/commands/policiesCommand.js +3 -0
- package/dist/src/ui/commands/policiesCommand.js.map +1 -1
- package/dist/src/ui/commands/policiesCommand.test.js +2 -1
- package/dist/src/ui/commands/policiesCommand.test.js.map +1 -1
- package/dist/src/ui/commands/skillsCommand.test.js +14 -7
- package/dist/src/ui/commands/skillsCommand.test.js.map +1 -1
- package/dist/src/ui/components/AdminSettingsChangedDialog.d.ts +6 -0
- package/dist/src/ui/components/AdminSettingsChangedDialog.js +22 -0
- package/dist/src/ui/components/AdminSettingsChangedDialog.js.map +1 -0
- package/dist/src/ui/components/AdminSettingsChangedDialog.test.d.ts +6 -0
- package/dist/src/ui/components/AdminSettingsChangedDialog.test.js +43 -0
- package/dist/src/ui/components/AdminSettingsChangedDialog.test.js.map +1 -0
- package/dist/src/ui/components/AppHeader.js +1 -1
- package/dist/src/ui/components/AppHeader.js.map +1 -1
- package/dist/src/ui/components/Composer.js +4 -6
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +17 -9
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +4 -4
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/DialogManager.test.js +0 -14
- package/dist/src/ui/components/DialogManager.test.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js +3 -3
- package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/Footer.js +5 -5
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Help.js +2 -1
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.test.js +1 -0
- package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +6 -9
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +8 -14
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js +0 -1
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/RewindConfirmation.d.ts +21 -0
- package/dist/src/ui/components/RewindConfirmation.js +63 -0
- package/dist/src/ui/components/RewindConfirmation.js.map +1 -0
- package/dist/src/ui/components/RewindConfirmation.test.d.ts +6 -0
- package/dist/src/ui/components/RewindConfirmation.test.js +53 -0
- package/dist/src/ui/components/RewindConfirmation.test.js.map +1 -0
- package/dist/src/ui/components/RewindViewer.d.ts +15 -0
- package/dist/src/ui/components/RewindViewer.js +79 -0
- package/dist/src/ui/components/RewindViewer.js.map +1 -0
- package/dist/src/ui/components/RewindViewer.test.d.ts +6 -0
- package/dist/src/ui/components/RewindViewer.test.js +239 -0
- package/dist/src/ui/components/RewindViewer.test.js.map +1 -0
- package/dist/src/ui/components/SessionBrowser.test.js +0 -1
- package/dist/src/ui/components/SessionBrowser.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +4 -4
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +14 -14
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatusDisplay.js +3 -4
- package/dist/src/ui/components/StatusDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.js +2 -2
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +8 -3
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +18 -0
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
- package/dist/src/ui/components/shared/TextInput.test.js +0 -8
- package/dist/src/ui/components/shared/TextInput.test.js.map +1 -1
- package/dist/src/ui/components/shared/performance.test.d.ts +1 -0
- package/dist/src/ui/components/shared/performance.test.js +67 -0
- package/dist/src/ui/components/shared/performance.test.js.map +1 -0
- package/dist/src/ui/components/shared/text-buffer.d.ts +1 -0
- package/dist/src/ui/components/shared/text-buffer.js +80 -54
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.test.js +97 -21
- package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
- package/dist/src/ui/constants/tips.js +150 -150
- package/dist/src/ui/constants/tips.js.map +1 -1
- package/dist/src/ui/constants/wittyPhrases.js +118 -118
- package/dist/src/ui/constants/wittyPhrases.js.map +1 -1
- package/dist/src/ui/constants.d.ts +2 -0
- package/dist/src/ui/constants.js +2 -0
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.d.ts +0 -1
- package/dist/src/ui/contexts/KeypressContext.js +2 -6
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +2 -10
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +1 -0
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +2 -2
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/contexts/VimModeContext.js +3 -3
- package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +0 -5
- package/dist/src/ui/hooks/slashCommandProcessor.js +42 -11
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +1 -144
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/useAlternateBuffer.js +1 -1
- package/dist/src/ui/hooks/useAlternateBuffer.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.js +21 -1
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.js +4 -4
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion_agents.test.js +2 -0
- package/dist/src/ui/hooks/useAtCompletion_agents.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.js +1 -1
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +17 -5
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +103 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useKeypress.test.js +11 -13
- package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
- package/dist/src/ui/hooks/usePermissionsModifyTrust.js +1 -1
- package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.d.ts +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.test.js +0 -3
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useShowMemoryCommand.js +1 -1
- package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -1
- package/dist/src/ui/hooks/useThemeCommand.js +4 -4
- package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +62 -46
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/vim.js +0 -1
- package/dist/src/ui/hooks/vim.js.map +1 -1
- package/dist/src/ui/hooks/vim.test.js +0 -1
- package/dist/src/ui/hooks/vim.test.js.map +1 -1
- package/dist/src/ui/keyMatchers.js +1 -16
- package/dist/src/ui/keyMatchers.js.map +1 -1
- package/dist/src/ui/keyMatchers.test.js +2 -14
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/types.d.ts +1 -5
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +1 -1
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.js +31 -6
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +71 -10
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/formatters.d.ts +9 -0
- package/dist/src/ui/utils/formatters.js +26 -0
- package/dist/src/ui/utils/formatters.js.map +1 -1
- package/dist/src/ui/utils/formatters.test.js +70 -2
- package/dist/src/ui/utils/formatters.test.js.map +1 -1
- package/dist/src/ui/utils/highlight.js +18 -1
- package/dist/src/ui/utils/highlight.js.map +1 -1
- package/dist/src/ui/utils/highlight.test.js +2 -2
- package/dist/src/ui/utils/highlight.test.js.map +1 -1
- package/dist/src/ui/utils/textUtils.d.ts +0 -1
- package/dist/src/ui/utils/textUtils.js +17 -12
- package/dist/src/ui/utils/textUtils.js.map +1 -1
- package/dist/src/ui/utils/textUtils.test.js +1 -0
- package/dist/src/ui/utils/textUtils.test.js.map +1 -1
- package/dist/src/ui/utils/ui-sizing.js +1 -1
- package/dist/src/ui/utils/ui-sizing.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.js +1 -1
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.test.js +3 -3
- package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
- package/dist/src/utils/agentSettings.d.ts +31 -0
- package/dist/src/utils/agentSettings.js +103 -0
- package/dist/src/utils/agentSettings.js.map +1 -0
- package/dist/src/utils/agentUtils.d.ts +15 -0
- package/dist/src/utils/agentUtils.js +50 -0
- package/dist/src/utils/agentUtils.js.map +1 -0
- package/dist/src/utils/agentUtils.test.d.ts +6 -0
- package/dist/src/utils/agentUtils.test.js +121 -0
- package/dist/src/utils/agentUtils.test.js.map +1 -0
- package/dist/src/utils/handleAutoUpdate.js +4 -4
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.test.js +8 -4
- package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
- package/dist/src/utils/installationInfo.d.ts +1 -1
- package/dist/src/utils/installationInfo.js +13 -13
- package/dist/src/utils/installationInfo.js.map +1 -1
- package/dist/src/utils/installationInfo.test.js +28 -20
- package/dist/src/utils/installationInfo.test.js.map +1 -1
- package/dist/src/utils/relaunch.d.ts +2 -1
- package/dist/src/utils/relaunch.js +6 -3
- package/dist/src/utils/relaunch.js.map +1 -1
- package/dist/src/utils/settingsUtils.d.ts +7 -0
- package/dist/src/utils/settingsUtils.js +17 -0
- package/dist/src/utils/settingsUtils.js.map +1 -1
- package/dist/src/utils/settingsUtils.test.js +33 -33
- package/dist/src/utils/settingsUtils.test.js.map +1 -1
- package/dist/src/utils/skillUtils.d.ts +2 -1
- package/dist/src/utils/skillUtils.js +58 -56
- package/dist/src/utils/skillUtils.js.map +1 -1
- package/dist/src/utils/skillUtils.test.js +13 -0
- package/dist/src/utils/skillUtils.test.js.map +1 -1
- package/dist/src/utils/terminalTheme.js +4 -4
- package/dist/src/utils/terminalTheme.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.js +1 -1
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.test.js +2 -4
- package/dist/src/validateNonInterActiveAuth.test.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.js +8 -3
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -4
- package/dist/src/ui/components/ShellConfirmationDialog.d.ts +0 -15
- package/dist/src/ui/components/ShellConfirmationDialog.js +0 -49
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +0 -1
- package/dist/src/ui/components/ShellConfirmationDialog.test.js +0 -40
- package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +0 -1
- /package/dist/src/{ui/components/ShellConfirmationDialog.test.d.ts → config/skills-backward-compatibility.test.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/TextInput.test.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TextInput.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/TextInput.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, afterEach, vi } from 'vitest';
|
|
7
|
+
import { act } from 'react';
|
|
8
|
+
import { renderHook } from '../../../test-utils/render.js';
|
|
9
|
+
import { useTextBuffer } from './text-buffer.js';
|
|
10
|
+
import { parseInputForHighlighting } from '../../utils/highlight.js';
|
|
11
|
+
describe('text-buffer performance', () => {
|
|
12
|
+
afterEach(() => {
|
|
13
|
+
vi.restoreAllMocks();
|
|
14
|
+
});
|
|
15
|
+
it('should handle pasting large amounts of text efficiently', () => {
|
|
16
|
+
const viewport = { width: 80, height: 24 };
|
|
17
|
+
const { result } = renderHook(() => useTextBuffer({
|
|
18
|
+
viewport,
|
|
19
|
+
isValidPath: () => false,
|
|
20
|
+
}));
|
|
21
|
+
const lines = 5000;
|
|
22
|
+
const largeText = Array.from({ length: lines }, (_, i) => `Line ${i}: some sample text with many @path/to/image${i}.png and maybe some more @path/to/another/image.png references to trigger regex. This line is much longer than the previous one to test wrapping.`).join('\n');
|
|
23
|
+
const start = Date.now();
|
|
24
|
+
act(() => {
|
|
25
|
+
result.current.insert(largeText, { paste: true });
|
|
26
|
+
});
|
|
27
|
+
const end = Date.now();
|
|
28
|
+
const duration = end - start;
|
|
29
|
+
expect(duration).toBeLessThan(5000);
|
|
30
|
+
});
|
|
31
|
+
it('should handle character-by-character insertion in a large buffer efficiently', () => {
|
|
32
|
+
const lines = 5000;
|
|
33
|
+
const initialText = Array.from({ length: lines }, (_, i) => `Line ${i}: some sample text with @path/to/image.png`).join('\n');
|
|
34
|
+
const viewport = { width: 80, height: 24 };
|
|
35
|
+
const { result } = renderHook(() => useTextBuffer({
|
|
36
|
+
initialText,
|
|
37
|
+
viewport,
|
|
38
|
+
isValidPath: () => false,
|
|
39
|
+
}));
|
|
40
|
+
const start = Date.now();
|
|
41
|
+
const charsToInsert = 100;
|
|
42
|
+
for (let i = 0; i < charsToInsert; i++) {
|
|
43
|
+
act(() => {
|
|
44
|
+
result.current.insert('a');
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
const end = Date.now();
|
|
48
|
+
const duration = end - start;
|
|
49
|
+
expect(duration).toBeLessThan(5000);
|
|
50
|
+
});
|
|
51
|
+
it('should highlight many lines efficiently', () => {
|
|
52
|
+
const lines = 5000;
|
|
53
|
+
const sampleLines = Array.from({ length: lines }, (_, i) => `Line ${i}: some sample text with @path/to/image${i}.png /command and more @file.txt`);
|
|
54
|
+
const start = Date.now();
|
|
55
|
+
for (let i = 0; i < 100; i++) {
|
|
56
|
+
// Simulate 100 renders
|
|
57
|
+
for (const line of sampleLines.slice(0, 20)) {
|
|
58
|
+
// 20 visible lines
|
|
59
|
+
parseInputForHighlighting(line, 1, []);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const end = Date.now();
|
|
63
|
+
const duration = end - start;
|
|
64
|
+
expect(duration).toBeLessThan(500);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=performance.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/performance.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -322,6 +322,7 @@ export interface TextBuffer {
|
|
|
322
322
|
visualToTransformedMap: number[];
|
|
323
323
|
/** Cached transformations per logical line */
|
|
324
324
|
transformationsByLine: Transformation[][];
|
|
325
|
+
visualLayout: VisualLayout;
|
|
325
326
|
/**
|
|
326
327
|
* Replaces the entire buffer content with the provided text.
|
|
327
328
|
* The operation is undoable.
|
|
@@ -9,11 +9,13 @@ import os from 'node:os';
|
|
|
9
9
|
import pathMod from 'node:path';
|
|
10
10
|
import * as path from 'node:path';
|
|
11
11
|
import { useState, useCallback, useEffect, useMemo, useReducer } from 'react';
|
|
12
|
+
import { LRUCache } from 'mnemonist';
|
|
12
13
|
import { coreEvents, CoreEvent, debugLogger, unescapePath, getEditorCommand, isGuiEditor, } from '@google/gemini-cli-core';
|
|
13
14
|
import { toCodePoints, cpLen, cpSlice, stripUnsafeCharacters, getCachedStringWidth, } from '../../utils/textUtils.js';
|
|
14
15
|
import { parsePastedPaths } from '../../utils/clipboardUtils.js';
|
|
15
16
|
import { keyMatchers, Command } from '../../keyMatchers.js';
|
|
16
17
|
import { handleVimAction } from './vim-buffer-actions.js';
|
|
18
|
+
import { LRU_BUFFER_PERF_CACHE_LIMIT } from '../../constants.js';
|
|
17
19
|
// Helper functions for line-based word navigation
|
|
18
20
|
export const isWordCharStrict = (char) => /[\w\p{L}\p{N}]/u.test(char); // Matches a single character that is any Unicode letter, any Unicode number, or an underscore
|
|
19
21
|
export const isWhitespace = (char) => /\s/.test(char);
|
|
@@ -504,7 +506,12 @@ export function getTransformedImagePath(filePath) {
|
|
|
504
506
|
: baseName;
|
|
505
507
|
return `[Image ${truncatedBase}${extension}]`;
|
|
506
508
|
}
|
|
509
|
+
const transformationsCache = new LRUCache(LRU_BUFFER_PERF_CACHE_LIMIT);
|
|
507
510
|
export function calculateTransformationsForLine(line) {
|
|
511
|
+
const cached = transformationsCache.get(line);
|
|
512
|
+
if (cached) {
|
|
513
|
+
return cached;
|
|
514
|
+
}
|
|
508
515
|
const transformations = [];
|
|
509
516
|
let match;
|
|
510
517
|
// Reset regex state to ensure clean matching from start of line
|
|
@@ -520,6 +527,7 @@ export function calculateTransformationsForLine(line) {
|
|
|
520
527
|
collapsedText: getTransformedImagePath(logicalText),
|
|
521
528
|
});
|
|
522
529
|
}
|
|
530
|
+
transformationsCache.set(line, transformations);
|
|
523
531
|
return transformations;
|
|
524
532
|
}
|
|
525
533
|
export function calculateTransformations(lines) {
|
|
@@ -591,6 +599,15 @@ export function calculateTransformedLine(logLine, logIndex, logicalCursor, trans
|
|
|
591
599
|
transformedToLogMap.push(cpLen(logLine));
|
|
592
600
|
return { transformedLine, transformedToLogMap };
|
|
593
601
|
}
|
|
602
|
+
const lineLayoutCache = new LRUCache(LRU_BUFFER_PERF_CACHE_LIMIT);
|
|
603
|
+
function getLineLayoutCacheKey(line, viewportWidth, isCursorOnLine, cursorCol) {
|
|
604
|
+
// Most lines (99.9% in a large buffer) are not cursor lines.
|
|
605
|
+
// We use a simpler key for them to reduce string allocation overhead.
|
|
606
|
+
if (!isCursorOnLine) {
|
|
607
|
+
return `${viewportWidth}:N:${line}`;
|
|
608
|
+
}
|
|
609
|
+
return `${viewportWidth}:C:${cursorCol}:${line}`;
|
|
610
|
+
}
|
|
594
611
|
// Calculates the visual wrapping of lines and the mapping between logical and visual coordinates.
|
|
595
612
|
// This is an expensive operation and should be memoized.
|
|
596
613
|
function calculateLayout(logicalLines, viewportWidth, logicalCursor) {
|
|
@@ -601,15 +618,38 @@ function calculateLayout(logicalLines, viewportWidth, logicalCursor) {
|
|
|
601
618
|
const visualToTransformedMap = [];
|
|
602
619
|
logicalLines.forEach((logLine, logIndex) => {
|
|
603
620
|
logicalToVisualMap[logIndex] = [];
|
|
621
|
+
const isCursorOnLine = logIndex === logicalCursor[0];
|
|
622
|
+
const cacheKey = getLineLayoutCacheKey(logLine, viewportWidth, isCursorOnLine, logicalCursor[1]);
|
|
623
|
+
const cached = lineLayoutCache.get(cacheKey);
|
|
624
|
+
if (cached) {
|
|
625
|
+
const visualLineOffset = visualLines.length;
|
|
626
|
+
visualLines.push(...cached.visualLines);
|
|
627
|
+
cached.logicalToVisualMap.forEach(([relVisualIdx, logCol]) => {
|
|
628
|
+
logicalToVisualMap[logIndex].push([
|
|
629
|
+
visualLineOffset + relVisualIdx,
|
|
630
|
+
logCol,
|
|
631
|
+
]);
|
|
632
|
+
});
|
|
633
|
+
cached.visualToLogicalMap.forEach(([, logCol]) => {
|
|
634
|
+
visualToLogicalMap.push([logIndex, logCol]);
|
|
635
|
+
});
|
|
636
|
+
transformedToLogicalMaps[logIndex] = cached.transformedToLogMap;
|
|
637
|
+
visualToTransformedMap.push(...cached.visualToTransformedMap);
|
|
638
|
+
return;
|
|
639
|
+
}
|
|
640
|
+
// Not in cache, calculate
|
|
604
641
|
const transformations = calculateTransformationsForLine(logLine);
|
|
605
642
|
const { transformedLine, transformedToLogMap } = calculateTransformedLine(logLine, logIndex, logicalCursor, transformations);
|
|
606
|
-
|
|
643
|
+
const lineVisualLines = [];
|
|
644
|
+
const lineLogicalToVisualMap = [];
|
|
645
|
+
const lineVisualToLogicalMap = [];
|
|
646
|
+
const lineVisualToTransformedMap = [];
|
|
607
647
|
if (transformedLine.length === 0) {
|
|
608
648
|
// Handle empty logical line
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
649
|
+
lineLogicalToVisualMap.push([0, 0]);
|
|
650
|
+
lineVisualToLogicalMap.push([logIndex, 0]);
|
|
651
|
+
lineVisualToTransformedMap.push(0);
|
|
652
|
+
lineVisualLines.push('');
|
|
613
653
|
}
|
|
614
654
|
else {
|
|
615
655
|
// Non-empty logical line
|
|
@@ -645,14 +685,6 @@ function calculateLayout(logicalLines, viewportWidth, logicalCursor) {
|
|
|
645
685
|
currentChunk = char;
|
|
646
686
|
numCodePointsInChunk = 1;
|
|
647
687
|
}
|
|
648
|
-
else if (numCodePointsInChunk === 0 &&
|
|
649
|
-
charVisualWidth <= viewportWidth) {
|
|
650
|
-
// This case should ideally be caught by the next iteration if the char fits.
|
|
651
|
-
// If it doesn't fit (because currentChunkVisualWidth was already > 0 from a previous char that filled the line),
|
|
652
|
-
// then numCodePointsInChunk would not be 0.
|
|
653
|
-
// This branch means the current char *itself* doesn't fit an empty line, which is handled by the above.
|
|
654
|
-
// If we are here, it means the loop should break and the current chunk (which is empty) is finalized.
|
|
655
|
-
}
|
|
656
688
|
}
|
|
657
689
|
break; // Break from inner loop to finalize this chunk
|
|
658
690
|
}
|
|
@@ -666,45 +698,48 @@ function calculateLayout(logicalLines, viewportWidth, logicalCursor) {
|
|
|
666
698
|
numCodePointsAtLastWordBreak = numCodePointsInChunk - 1; // Chars *before* the space
|
|
667
699
|
}
|
|
668
700
|
}
|
|
669
|
-
// If the inner loop completed without breaking (i.e., remaining text fits)
|
|
670
|
-
// or if the loop broke but numCodePointsInChunk is still 0 (e.g. first char too wide for empty line)
|
|
671
701
|
if (numCodePointsInChunk === 0 &&
|
|
672
702
|
currentPosInLogLine < codePointsInLogLine.length) {
|
|
673
|
-
// This can happen if the very first character considered for a new visual line is wider than the viewport.
|
|
674
|
-
// In this case, we take that single character.
|
|
675
703
|
const firstChar = codePointsInLogLine[currentPosInLogLine];
|
|
676
704
|
currentChunk = firstChar;
|
|
677
|
-
numCodePointsInChunk = 1; // Ensure we advance
|
|
678
|
-
}
|
|
679
|
-
// If after everything, numCodePointsInChunk is still 0 but we haven't processed the whole logical line,
|
|
680
|
-
// it implies an issue, like viewportWidth being 0 or less. Avoid infinite loop.
|
|
681
|
-
if (numCodePointsInChunk === 0 &&
|
|
682
|
-
currentPosInLogLine < codePointsInLogLine.length) {
|
|
683
|
-
// Force advance by one character to prevent infinite loop if something went wrong
|
|
684
|
-
currentChunk = codePointsInLogLine[currentPosInLogLine];
|
|
685
705
|
numCodePointsInChunk = 1;
|
|
686
706
|
}
|
|
687
707
|
const logicalStartCol = transformedToLogMap[currentPosInLogLine] ?? 0;
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
visualToLogicalMap.push([logIndex, logicalStartCol]);
|
|
693
|
-
visualToTransformedMap.push(currentPosInLogLine);
|
|
694
|
-
visualLines.push(currentChunk);
|
|
708
|
+
lineLogicalToVisualMap.push([lineVisualLines.length, logicalStartCol]);
|
|
709
|
+
lineVisualToLogicalMap.push([logIndex, logicalStartCol]);
|
|
710
|
+
lineVisualToTransformedMap.push(currentPosInLogLine);
|
|
711
|
+
lineVisualLines.push(currentChunk);
|
|
695
712
|
const logicalStartOfThisChunk = currentPosInLogLine;
|
|
696
713
|
currentPosInLogLine += numCodePointsInChunk;
|
|
697
|
-
// If the chunk processed did not consume the entire logical line,
|
|
698
|
-
// and the character immediately following the chunk is a space,
|
|
699
|
-
// advance past this space as it acted as a delimiter for word wrapping.
|
|
700
714
|
if (logicalStartOfThisChunk + numCodePointsInChunk <
|
|
701
715
|
codePointsInLogLine.length &&
|
|
702
|
-
currentPosInLogLine < codePointsInLogLine.length &&
|
|
716
|
+
currentPosInLogLine < codePointsInLogLine.length &&
|
|
703
717
|
codePointsInLogLine[currentPosInLogLine] === ' ') {
|
|
704
718
|
currentPosInLogLine++;
|
|
705
719
|
}
|
|
706
720
|
}
|
|
707
721
|
}
|
|
722
|
+
// Cache the result for this line
|
|
723
|
+
lineLayoutCache.set(cacheKey, {
|
|
724
|
+
visualLines: lineVisualLines,
|
|
725
|
+
logicalToVisualMap: lineLogicalToVisualMap,
|
|
726
|
+
visualToLogicalMap: lineVisualToLogicalMap,
|
|
727
|
+
transformedToLogMap,
|
|
728
|
+
visualToTransformedMap: lineVisualToTransformedMap,
|
|
729
|
+
});
|
|
730
|
+
const visualLineOffset = visualLines.length;
|
|
731
|
+
visualLines.push(...lineVisualLines);
|
|
732
|
+
lineLogicalToVisualMap.forEach(([relVisualIdx, logCol]) => {
|
|
733
|
+
logicalToVisualMap[logIndex].push([
|
|
734
|
+
visualLineOffset + relVisualIdx,
|
|
735
|
+
logCol,
|
|
736
|
+
]);
|
|
737
|
+
});
|
|
738
|
+
lineVisualToLogicalMap.forEach(([, logCol]) => {
|
|
739
|
+
visualToLogicalMap.push([logIndex, logCol]);
|
|
740
|
+
});
|
|
741
|
+
transformedToLogicalMaps[logIndex] = transformedToLogMap;
|
|
742
|
+
visualToTransformedMap.push(...lineVisualToTransformedMap);
|
|
708
743
|
});
|
|
709
744
|
// If the entire logical text was empty, ensure there's one empty visual line.
|
|
710
745
|
if (logicalLines.length === 0 ||
|
|
@@ -1582,26 +1617,17 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
|
|
|
1582
1617
|
}, [text, stdin, setRawMode, getPreferredEditor]);
|
|
1583
1618
|
const handleInput = useCallback((key) => {
|
|
1584
1619
|
const { sequence: input } = key;
|
|
1585
|
-
if (key.paste)
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
insert(input, { paste: key.paste });
|
|
1589
|
-
return;
|
|
1590
|
-
}
|
|
1591
|
-
if (!singleLine &&
|
|
1592
|
-
(key.name === 'return' ||
|
|
1593
|
-
input === '\r' ||
|
|
1594
|
-
input === '\n' ||
|
|
1595
|
-
input === '\\r') // VSCode terminal represents shift + enter this way
|
|
1596
|
-
)
|
|
1620
|
+
if (key.name === 'paste')
|
|
1621
|
+
insert(input, { paste: true });
|
|
1622
|
+
else if (keyMatchers[Command.RETURN](key))
|
|
1597
1623
|
newline();
|
|
1598
1624
|
else if (keyMatchers[Command.MOVE_LEFT](key))
|
|
1599
1625
|
move('left');
|
|
1600
1626
|
else if (keyMatchers[Command.MOVE_RIGHT](key))
|
|
1601
1627
|
move('right');
|
|
1602
|
-
else if (key
|
|
1628
|
+
else if (keyMatchers[Command.MOVE_UP](key))
|
|
1603
1629
|
move('up');
|
|
1604
|
-
else if (key
|
|
1630
|
+
else if (keyMatchers[Command.MOVE_DOWN](key))
|
|
1605
1631
|
move('down');
|
|
1606
1632
|
else if (keyMatchers[Command.MOVE_WORD_LEFT](key))
|
|
1607
1633
|
move('wordLeft');
|
|
@@ -1623,9 +1649,8 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
|
|
|
1623
1649
|
undo();
|
|
1624
1650
|
else if (keyMatchers[Command.REDO](key))
|
|
1625
1651
|
redo();
|
|
1626
|
-
else if (key.insertable)
|
|
1627
|
-
insert(input, { paste:
|
|
1628
|
-
}
|
|
1652
|
+
else if (key.insertable)
|
|
1653
|
+
insert(input, { paste: false });
|
|
1629
1654
|
}, [
|
|
1630
1655
|
newline,
|
|
1631
1656
|
move,
|
|
@@ -1636,7 +1661,6 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
|
|
|
1636
1661
|
insert,
|
|
1637
1662
|
undo,
|
|
1638
1663
|
redo,
|
|
1639
|
-
singleLine,
|
|
1640
1664
|
]);
|
|
1641
1665
|
const renderedVisualLines = useMemo(() => visualLines.slice(visualScrollRow, visualScrollRow + viewport.height), [visualLines, visualScrollRow, viewport.height]);
|
|
1642
1666
|
const replaceRange = useCallback((startRow, startCol, endRow, endCol, text) => {
|
|
@@ -1711,6 +1735,7 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
|
|
|
1711
1735
|
transformedToLogicalMaps,
|
|
1712
1736
|
visualToTransformedMap,
|
|
1713
1737
|
transformationsByLine,
|
|
1738
|
+
visualLayout,
|
|
1714
1739
|
setText,
|
|
1715
1740
|
insert,
|
|
1716
1741
|
newline,
|
|
@@ -1778,6 +1803,7 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
|
|
|
1778
1803
|
transformedToLogicalMaps,
|
|
1779
1804
|
visualToTransformedMap,
|
|
1780
1805
|
transformationsByLine,
|
|
1806
|
+
visualLayout,
|
|
1781
1807
|
setText,
|
|
1782
1808
|
insert,
|
|
1783
1809
|
newline,
|