@machina.ai/cell-cli 1.11.0-rc1 → 1.13.0-rc1
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/package.json +12 -10
- package/dist/src/commands/extensions/disable.d.ts +1 -1
- package/dist/src/commands/extensions/disable.js +15 -7
- package/dist/src/commands/extensions/disable.js.map +1 -1
- package/dist/src/commands/extensions/enable.d.ts +1 -1
- package/dist/src/commands/extensions/enable.js +15 -7
- package/dist/src/commands/extensions/enable.js.map +1 -1
- package/dist/src/commands/extensions/install.js +14 -3
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +39 -19
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/commands/extensions/link.js +14 -3
- package/dist/src/commands/extensions/link.js.map +1 -1
- package/dist/src/commands/extensions/list.js +13 -4
- package/dist/src/commands/extensions/list.js.map +1 -1
- package/dist/src/commands/extensions/uninstall.js +13 -2
- package/dist/src/commands/extensions/uninstall.js.map +1 -1
- package/dist/src/commands/extensions/update.js +18 -13
- package/dist/src/commands/extensions/update.js.map +1 -1
- package/dist/src/commands/extensions/validate.d.ts +12 -0
- package/dist/src/commands/extensions/validate.js +83 -0
- package/dist/src/commands/extensions/validate.js.map +1 -0
- package/dist/src/commands/extensions/validate.test.js +93 -0
- package/dist/src/commands/extensions/validate.test.js.map +1 -0
- package/dist/src/commands/extensions.js +3 -0
- package/dist/src/commands/extensions.js.map +1 -1
- package/dist/src/commands/mcp/add.test.js +3 -0
- package/dist/src/commands/mcp/add.test.js.map +1 -1
- package/dist/src/commands/mcp/list.js +10 -3
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/commands/mcp/list.test.js +37 -27
- package/dist/src/commands/mcp/list.test.js.map +1 -1
- package/dist/src/config/auth.js +0 -5
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.d.ts +6 -3
- package/dist/src/config/config.js +65 -80
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +235 -212
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager.d.ts +63 -0
- package/dist/src/config/extension-manager.js +450 -0
- package/dist/src/config/extension-manager.js.map +1 -0
- package/dist/src/config/extension.d.ts +4 -51
- package/dist/src/config/extension.js +1 -535
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/extension.test.js +525 -201
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensions/consent.d.ts +38 -0
- package/dist/src/config/extensions/consent.js +123 -0
- package/dist/src/config/extensions/consent.js.map +1 -0
- package/dist/src/config/extensions/extensionEnablement.d.ts +1 -1
- package/dist/src/config/extensions/extensionEnablement.js +4 -3
- package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
- package/dist/src/config/extensions/extensionEnablement.test.js +10 -10
- package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.d.ts +15 -0
- package/dist/src/config/extensions/extensionSettings.js +113 -0
- package/dist/src/config/extensions/extensionSettings.js.map +1 -0
- package/dist/src/config/extensions/extensionSettings.test.d.ts +6 -0
- package/dist/src/config/extensions/extensionSettings.test.js +254 -0
- package/dist/src/config/extensions/extensionSettings.test.js.map +1 -0
- package/dist/src/config/extensions/github.d.ts +2 -2
- package/dist/src/config/extensions/github.js +5 -10
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +153 -167
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/extensions/github_fetch.d.ts +1 -1
- package/dist/src/config/extensions/github_fetch.js +13 -1
- package/dist/src/config/extensions/github_fetch.js.map +1 -1
- package/dist/src/config/extensions/github_fetch.test.d.ts +6 -0
- package/dist/src/config/extensions/github_fetch.test.js +169 -0
- package/dist/src/config/extensions/github_fetch.test.js.map +1 -0
- package/dist/src/config/extensions/storage.d.ts +14 -0
- package/dist/src/config/extensions/storage.js +32 -0
- package/dist/src/config/extensions/storage.js.map +1 -0
- package/dist/src/config/extensions/update.d.ts +4 -4
- package/dist/src/config/extensions/update.js +39 -39
- package/dist/src/config/extensions/update.js.map +1 -1
- package/dist/src/config/extensions/update.test.js +72 -74
- package/dist/src/config/extensions/update.test.js.map +1 -1
- package/dist/src/config/extensions/variableSchema.d.ts +0 -6
- package/dist/src/config/extensions/variableSchema.js.map +1 -1
- package/dist/src/config/extensions/variables.d.ts +4 -0
- package/dist/src/config/extensions/variables.js +6 -0
- package/dist/src/config/extensions/variables.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +3 -0
- package/dist/src/config/keyBindings.js +30 -8
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/keyBindings.test.js +17 -0
- package/dist/src/config/keyBindings.test.js.map +1 -1
- package/dist/src/config/policies/read-only.toml +56 -0
- package/dist/src/config/policies/write.toml +63 -0
- package/dist/src/config/policies/yolo.toml +31 -0
- package/dist/src/config/policy-engine.integration.test.js +41 -38
- package/dist/src/config/policy-engine.integration.test.js.map +1 -1
- package/dist/src/config/policy.d.ts +2 -2
- package/dist/src/config/policy.js +10 -148
- package/dist/src/config/policy.js.map +1 -1
- package/dist/src/config/sandboxConfig.d.ts +1 -1
- package/dist/src/config/sandboxConfig.js +6 -3
- package/dist/src/config/sandboxConfig.js.map +1 -1
- package/dist/src/config/settings.d.ts +2 -1
- package/dist/src/config/settings.js +58 -18
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.js +128 -69
- package/dist/src/config/settings.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +170 -28
- package/dist/src/config/settingsSchema.js +418 -27
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +42 -1
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/trustedFolders.d.ts +1 -1
- package/dist/src/config/trustedFolders.js +4 -2
- package/dist/src/config/trustedFolders.js.map +1 -1
- package/dist/src/core/initializer.js +2 -1
- package/dist/src/core/initializer.js.map +1 -1
- package/dist/src/gemini.d.ts +1 -1
- package/dist/src/gemini.js +46 -16
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +88 -30
- 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/nonInteractiveCli.d.ts +9 -1
- package/dist/src/nonInteractiveCli.js +114 -7
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.js +355 -112
- package/dist/src/nonInteractiveCli.test.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +4 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +22 -0
- package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
- package/dist/src/services/FeedbackService.js +2 -2
- package/dist/src/services/FeedbackService.js.map +1 -1
- package/dist/src/services/McpPromptLoader.js +2 -2
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.test.js +4 -2
- package/dist/src/services/McpPromptLoader.test.js.map +1 -1
- package/dist/src/test-utils/async.d.ts +9 -0
- package/dist/src/test-utils/async.js +29 -0
- package/dist/src/test-utils/async.js.map +1 -0
- package/dist/src/test-utils/createExtension.d.ts +3 -1
- package/dist/src/test-utils/createExtension.js +3 -3
- package/dist/src/test-utils/createExtension.js.map +1 -1
- package/dist/src/test-utils/render.d.ts +16 -2
- package/dist/src/test-utils/render.js +66 -4
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/test-utils/render.test.d.ts +6 -0
- package/dist/src/test-utils/render.test.js +79 -0
- package/dist/src/test-utils/render.test.js.map +1 -0
- package/dist/src/ui/App.test.js +1 -1
- package/dist/src/ui/App.test.js.map +1 -1
- package/dist/src/ui/AppContainer.js +181 -65
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +505 -147
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/IdeIntegrationNudge.js +1 -1
- package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.d.ts +14 -0
- package/dist/src/ui/auth/ApiAuthDialog.js +26 -0
- package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -0
- package/dist/src/ui/auth/ApiAuthDialog.test.d.ts +6 -0
- package/dist/src/ui/auth/ApiAuthDialog.test.js +91 -0
- package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -0
- package/dist/src/ui/auth/AuthDialog.js +7 -3
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/useAuth.d.ts +2 -0
- package/dist/src/ui/auth/useAuth.js +31 -2
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/colors.js +3 -0
- package/dist/src/ui/colors.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.js +1 -1
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +64 -11
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.test.js +72 -1
- package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +14 -14
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.js +4 -0
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +1 -1
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.test.js +3 -1
- package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
- package/dist/src/ui/commands/policiesCommand.d.ts +7 -0
- package/dist/src/ui/commands/policiesCommand.js +59 -0
- package/dist/src/ui/commands/policiesCommand.js.map +1 -0
- package/dist/src/ui/commands/policiesCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/policiesCommand.test.js +83 -0
- package/dist/src/ui/commands/policiesCommand.test.js.map +1 -0
- package/dist/src/ui/components/AnsiOutput.test.js +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
- package/dist/src/ui/components/AsciiArt.d.ts +3 -3
- package/dist/src/ui/components/AsciiArt.js +3 -3
- package/dist/src/ui/components/Composer.js +1 -1
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +5 -2
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ConfigInitDisplay.js +4 -6
- package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
- package/dist/src/ui/components/ConsentPrompt.test.js +18 -8
- package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ConsoleSummaryDisplay.js +1 -1
- package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +11 -6
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +4 -0
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +2 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +4 -3
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Footer.test.js +83 -0
- package/dist/src/ui/components/Footer.test.js.map +1 -1
- package/dist/src/ui/components/Header.test.js +13 -5
- package/dist/src/ui/components/Header.test.js.map +1 -1
- package/dist/src/ui/components/Help.test.js +5 -4
- package/dist/src/ui/components/Help.test.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +27 -8
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +776 -727
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.js +2 -2
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.test.js +28 -15
- package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.js +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js +2 -2
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/MainContent.js +15 -4
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +1 -1
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +23 -13
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/Notifications.js +38 -5
- package/dist/src/ui/components/Notifications.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +2 -2
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/PrepareLabel.test.js +14 -8
- package/dist/src/ui/components/PrepareLabel.test.js.map +1 -1
- package/dist/src/ui/components/ProQuotaDialog.test.js +14 -6
- package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
- package/dist/src/ui/components/QueuedMessageDisplay.test.js +11 -6
- package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +32 -25
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +428 -532
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.test.js +2 -2
- package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +2 -2
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.js +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.test.js +25 -17
- package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.js +27 -5
- package/dist/src/ui/components/messages/Todo.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.test.js +20 -8
- package/dist/src/ui/components/messages/Todo.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +29 -15
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/WarningMessage.js +2 -2
- package/dist/src/ui/components/messages/WarningMessage.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.test.js +43 -22
- package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
- package/dist/src/ui/components/shared/TextInput.d.ts +15 -0
- package/dist/src/ui/components/shared/TextInput.js +38 -0
- package/dist/src/ui/components/shared/TextInput.js.map +1 -0
- package/dist/src/ui/components/shared/TextInput.test.d.ts +6 -0
- package/dist/src/ui/components/shared/TextInput.test.js +242 -0
- package/dist/src/ui/components/shared/TextInput.test.js.map +1 -0
- package/dist/src/ui/components/shared/text-buffer.d.ts +9 -2
- package/dist/src/ui/components/shared/text-buffer.js +51 -13
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.test.js +385 -202
- package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
- package/dist/src/ui/components/views/ChatList.test.js +7 -4
- package/dist/src/ui/components/views/ChatList.test.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.d.ts +7 -1
- package/dist/src/ui/components/views/ExtensionsList.js +9 -11
- package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.test.js +43 -22
- package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +23 -12
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.d.ts +3 -2
- package/dist/src/ui/contexts/KeypressContext.js +610 -540
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +438 -718
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/MouseContext.d.ts +21 -0
- package/dist/src/ui/contexts/MouseContext.js +89 -0
- package/dist/src/ui/contexts/MouseContext.js.map +1 -0
- package/dist/src/ui/contexts/MouseContext.test.d.ts +6 -0
- package/dist/src/ui/contexts/MouseContext.test.js +164 -0
- package/dist/src/ui/contexts/MouseContext.test.js.map +1 -0
- package/dist/src/ui/contexts/SessionContext.test.js +35 -17
- package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +2 -0
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +2 -0
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +31 -9
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +163 -64
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.test.js +64 -35
- package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +193 -165
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.js +16 -5
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js +10 -0
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +32 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.js +66 -64
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.test.js +26 -9
- package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
- package/dist/src/ui/hooks/useEditorSettings.test.js +40 -34
- package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.d.ts +14 -5
- package/dist/src/ui/hooks/useExtensionUpdates.js +18 -13
- package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.test.js +49 -44
- package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
- package/dist/src/ui/hooks/useFlickerDetector.test.js +9 -5
- package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.test.js +25 -9
- package/dist/src/ui/hooks/useFocus.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js +46 -22
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +56 -19
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +260 -411
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.js +4 -0
- package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.test.js +46 -34
- package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
- package/dist/src/ui/hooks/useHistoryManager.test.js +2 -1
- package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
- package/dist/src/ui/hooks/useIdeTrustListener.test.js +40 -9
- package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistory.test.js +2 -1
- package/dist/src/ui/hooks/useInputHistory.test.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistoryStore.test.js +2 -1
- package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
- package/dist/src/ui/hooks/useKeypress.test.js +103 -114
- package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +24 -6
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMemoryMonitor.test.js +10 -5
- package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.test.js +62 -45
- package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
- package/dist/src/ui/hooks/useModelCommand.test.js +21 -11
- package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -1
- package/dist/src/ui/hooks/useMouse.d.ts +17 -0
- package/dist/src/ui/hooks/useMouse.js +27 -0
- package/dist/src/ui/hooks/useMouse.js.map +1 -0
- package/dist/src/ui/hooks/useMouse.test.d.ts +6 -0
- package/dist/src/ui/hooks/useMouse.test.js +57 -0
- package/dist/src/ui/hooks/useMouse.test.js.map +1 -0
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +2 -2
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.test.js +109 -106
- package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
- package/dist/src/ui/hooks/usePrivacySettings.test.js +26 -6
- package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
- package/dist/src/ui/hooks/usePromptCompletion.js +2 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.js +13 -14
- package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js +55 -48
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.d.ts +8 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +59 -34
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.test.d.ts +6 -0
- package/dist/src/ui/hooks/useReactToolScheduler.test.js +65 -0
- package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -0
- package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +2 -2
- package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.js +5 -4
- package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.test.js +272 -183
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useShellHistory.test.js +52 -20
- package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +18 -7
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +275 -137
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useTimer.test.js +43 -14
- package/dist/src/ui/hooks/useTimer.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +226 -242
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/vim.test.js +235 -355
- package/dist/src/ui/hooks/vim.test.js.map +1 -1
- package/dist/src/ui/keyMatchers.test.js +30 -3
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/state/extensions.d.ts +1 -0
- package/dist/src/ui/state/extensions.js +1 -0
- package/dist/src/ui/state/extensions.js.map +1 -1
- package/dist/src/ui/themes/ansi-light.js +1 -0
- package/dist/src/ui/themes/ansi-light.js.map +1 -1
- package/dist/src/ui/themes/ansi.js +1 -0
- package/dist/src/ui/themes/ansi.js.map +1 -1
- package/dist/src/ui/themes/atom-one-dark.js +2 -0
- package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
- package/dist/src/ui/themes/ayu-light.js +2 -0
- package/dist/src/ui/themes/ayu-light.js.map +1 -1
- package/dist/src/ui/themes/ayu.js +2 -0
- package/dist/src/ui/themes/ayu.js.map +1 -1
- package/dist/src/ui/themes/color-utils.d.ts +1 -0
- package/dist/src/ui/themes/color-utils.js +6 -0
- package/dist/src/ui/themes/color-utils.js.map +1 -1
- package/dist/src/ui/themes/color-utils.test.js +13 -1
- package/dist/src/ui/themes/color-utils.test.js.map +1 -1
- package/dist/src/ui/themes/dracula.js +2 -0
- package/dist/src/ui/themes/dracula.js.map +1 -1
- package/dist/src/ui/themes/github-dark.js +2 -0
- package/dist/src/ui/themes/github-dark.js.map +1 -1
- package/dist/src/ui/themes/github-light.js +2 -0
- package/dist/src/ui/themes/github-light.js.map +1 -1
- package/dist/src/ui/themes/googlecode.js +2 -0
- package/dist/src/ui/themes/googlecode.js.map +1 -1
- package/dist/src/ui/themes/no-color.js +3 -0
- package/dist/src/ui/themes/no-color.js.map +1 -1
- package/dist/src/ui/themes/semantic-tokens.d.ts +2 -0
- package/dist/src/ui/themes/semantic-tokens.js +6 -0
- package/dist/src/ui/themes/semantic-tokens.js.map +1 -1
- package/dist/src/ui/themes/shades-of-purple.js +2 -0
- package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +3 -0
- package/dist/src/ui/themes/theme.js +14 -3
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/theme.test.js +67 -1
- package/dist/src/ui/themes/theme.test.js.map +1 -1
- package/dist/src/ui/themes/xcode.js +2 -0
- package/dist/src/ui/themes/xcode.js.map +1 -1
- package/dist/src/ui/types.d.ts +3 -1
- package/dist/src/ui/types.js +2 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +2 -1
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +1 -0
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +11 -10
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js +11 -9
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.js +2 -2
- package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
- package/dist/src/ui/utils/input.d.ts +17 -0
- package/dist/src/ui/utils/input.js +51 -0
- package/dist/src/ui/utils/input.js.map +1 -0
- package/dist/src/ui/utils/input.test.d.ts +6 -0
- package/dist/src/ui/utils/input.test.js +44 -0
- package/dist/src/ui/utils/input.test.js.map +1 -0
- package/dist/src/ui/utils/kittyProtocolDetector.js +13 -4
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
- package/dist/src/ui/utils/mouse.d.ts +31 -0
- package/dist/src/ui/utils/mouse.js +164 -0
- package/dist/src/ui/utils/mouse.js.map +1 -0
- package/dist/src/ui/utils/mouse.test.d.ts +6 -0
- package/dist/src/ui/utils/mouse.test.js +131 -0
- package/dist/src/ui/utils/mouse.test.js.map +1 -0
- package/dist/src/ui/utils/textOutput.d.ts +25 -0
- package/dist/src/ui/utils/textOutput.js +49 -0
- package/dist/src/ui/utils/textOutput.js.map +1 -0
- package/dist/src/ui/utils/textOutput.test.d.ts +6 -0
- package/dist/src/ui/utils/textOutput.test.js +79 -0
- package/dist/src/ui/utils/textOutput.test.js.map +1 -0
- package/dist/src/ui/utils/updateCheck.d.ts +7 -1
- package/dist/src/ui/utils/updateCheck.js +33 -29
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.test.js +24 -50
- package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
- package/dist/src/utils/commentJson.js +2 -2
- package/dist/src/utils/commentJson.js.map +1 -1
- package/dist/src/utils/commentJson.test.js +7 -6
- package/dist/src/utils/commentJson.test.js.map +1 -1
- package/dist/src/utils/envVarResolver.d.ts +2 -2
- package/dist/src/utils/envVarResolver.js +10 -7
- package/dist/src/utils/envVarResolver.js.map +1 -1
- package/dist/src/utils/events.d.ts +11 -2
- package/dist/src/utils/events.js +1 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.js +9 -3
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/sandbox.js +16 -18
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/version.js +6 -2
- package/dist/src/utils/version.js.map +1 -1
- package/dist/src/zed-integration/acp.js +2 -1
- package/dist/src/zed-integration/acp.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +4 -4
- package/dist/src/zed-integration/zedIntegration.d.ts +2 -2
- package/dist/src/zed-integration/zedIntegration.js +12 -19
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -14
- package/dist/src/config/policy.test.js +0 -360
- package/dist/src/config/policy.test.js.map +0 -1
- package/dist/src/utils/package.d.ts +0 -12
- package/dist/src/utils/package.js +0 -24
- package/dist/src/utils/package.js.map +0 -1
- /package/dist/src/{config/policy.test.d.ts → commands/extensions/validate.test.d.ts} +0 -0
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
7
|
-
import {
|
|
7
|
+
import { act } from 'react';
|
|
8
|
+
import { renderHook } from '../../test-utils/render.js';
|
|
9
|
+
import { waitFor } from '../../test-utils/async.js';
|
|
8
10
|
import { useVim } from './vim.js';
|
|
9
11
|
import { textBufferReducer } from '../components/shared/text-buffer.js';
|
|
10
12
|
// Mock the VimModeContext
|
|
@@ -1006,23 +1008,32 @@ describe('useVim hook', () => {
|
|
|
1006
1008
|
});
|
|
1007
1009
|
});
|
|
1008
1010
|
describe('Shell command pass-through', () => {
|
|
1009
|
-
it('should pass through ctrl+r in INSERT mode', () => {
|
|
1011
|
+
it('should pass through ctrl+r in INSERT mode', async () => {
|
|
1010
1012
|
mockVimContext.vimMode = 'INSERT';
|
|
1011
1013
|
const { result } = renderVimHook();
|
|
1014
|
+
await waitFor(() => {
|
|
1015
|
+
expect(result.current.mode).toBe('INSERT');
|
|
1016
|
+
});
|
|
1012
1017
|
const handled = result.current.handleInput(createKey({ name: 'r', ctrl: true }));
|
|
1013
1018
|
expect(handled).toBe(false);
|
|
1014
1019
|
});
|
|
1015
|
-
it('should pass through ! in INSERT mode when buffer is empty', () => {
|
|
1020
|
+
it('should pass through ! in INSERT mode when buffer is empty', async () => {
|
|
1016
1021
|
mockVimContext.vimMode = 'INSERT';
|
|
1017
1022
|
const emptyBuffer = createMockBuffer('');
|
|
1018
1023
|
const { result } = renderVimHook(emptyBuffer);
|
|
1024
|
+
await waitFor(() => {
|
|
1025
|
+
expect(result.current.mode).toBe('INSERT');
|
|
1026
|
+
});
|
|
1019
1027
|
const handled = result.current.handleInput(createKey({ sequence: '!' }));
|
|
1020
1028
|
expect(handled).toBe(false);
|
|
1021
1029
|
});
|
|
1022
|
-
it('should handle ! as input in INSERT mode when buffer is not empty', () => {
|
|
1030
|
+
it('should handle ! as input in INSERT mode when buffer is not empty', async () => {
|
|
1023
1031
|
mockVimContext.vimMode = 'INSERT';
|
|
1024
1032
|
const nonEmptyBuffer = createMockBuffer('not empty');
|
|
1025
1033
|
const { result } = renderVimHook(nonEmptyBuffer);
|
|
1034
|
+
await waitFor(() => {
|
|
1035
|
+
expect(result.current.mode).toBe('INSERT');
|
|
1036
|
+
});
|
|
1026
1037
|
const key = createKey({ sequence: '!', name: '!' });
|
|
1027
1038
|
act(() => {
|
|
1028
1039
|
result.current.handleInput(key);
|
|
@@ -1032,357 +1043,226 @@ describe('useVim hook', () => {
|
|
|
1032
1043
|
});
|
|
1033
1044
|
// Line operations (dd, cc) are tested in text-buffer.test.ts
|
|
1034
1045
|
describe('Reducer-based integration tests', () => {
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
clipboard: null,
|
|
1256
|
-
selectionAnchor: null,
|
|
1257
|
-
});
|
|
1258
|
-
const result = textBufferReducer(initialState, {
|
|
1259
|
-
type: 'vim_delete_line',
|
|
1260
|
-
payload: { count: 1 },
|
|
1261
|
-
});
|
|
1262
|
-
expect(result.lines).toEqual(['line1', 'line3']);
|
|
1263
|
-
expect(result.cursorRow).toBe(1);
|
|
1264
|
-
expect(result.cursorCol).toBe(0);
|
|
1265
|
-
});
|
|
1266
|
-
it('should delete multiple lines with count', () => {
|
|
1267
|
-
const initialState = createMockTextBufferState({
|
|
1268
|
-
lines: ['line1', 'line2', 'line3', 'line4'],
|
|
1269
|
-
cursorRow: 1,
|
|
1270
|
-
cursorCol: 2,
|
|
1271
|
-
preferredCol: null,
|
|
1272
|
-
undoStack: [],
|
|
1273
|
-
redoStack: [],
|
|
1274
|
-
clipboard: null,
|
|
1275
|
-
selectionAnchor: null,
|
|
1276
|
-
});
|
|
1277
|
-
const result = textBufferReducer(initialState, {
|
|
1278
|
-
type: 'vim_delete_line',
|
|
1279
|
-
payload: { count: 2 },
|
|
1280
|
-
});
|
|
1281
|
-
// Should delete lines 1 and 2
|
|
1282
|
-
expect(result.lines).toEqual(['line1', 'line4']);
|
|
1283
|
-
expect(result.cursorRow).toBe(1);
|
|
1284
|
-
expect(result.cursorCol).toBe(0);
|
|
1285
|
-
});
|
|
1286
|
-
it('should handle deleting last line', () => {
|
|
1287
|
-
const initialState = createMockTextBufferState({
|
|
1288
|
-
lines: ['only line'],
|
|
1289
|
-
cursorRow: 0,
|
|
1290
|
-
cursorCol: 3,
|
|
1291
|
-
preferredCol: null,
|
|
1292
|
-
undoStack: [],
|
|
1293
|
-
redoStack: [],
|
|
1294
|
-
clipboard: null,
|
|
1295
|
-
selectionAnchor: null,
|
|
1296
|
-
});
|
|
1297
|
-
const result = textBufferReducer(initialState, {
|
|
1298
|
-
type: 'vim_delete_line',
|
|
1299
|
-
payload: { count: 1 },
|
|
1300
|
-
});
|
|
1301
|
-
// Should leave an empty line when deleting the only line
|
|
1302
|
-
expect(result.lines).toEqual(['']);
|
|
1303
|
-
expect(result.cursorRow).toBe(0);
|
|
1304
|
-
expect(result.cursorCol).toBe(0);
|
|
1305
|
-
});
|
|
1306
|
-
});
|
|
1307
|
-
describe('D (delete to end of line)', () => {
|
|
1308
|
-
it('should delete from cursor to end of line', () => {
|
|
1309
|
-
const initialState = createMockTextBufferState({
|
|
1310
|
-
lines: ['hello world test'],
|
|
1311
|
-
cursorRow: 0,
|
|
1312
|
-
cursorCol: 6, // cursor on 'w' in "world"
|
|
1313
|
-
preferredCol: null,
|
|
1314
|
-
undoStack: [],
|
|
1315
|
-
redoStack: [],
|
|
1316
|
-
clipboard: null,
|
|
1317
|
-
selectionAnchor: null,
|
|
1318
|
-
});
|
|
1319
|
-
const result = textBufferReducer(initialState, {
|
|
1320
|
-
type: 'vim_delete_to_end_of_line',
|
|
1321
|
-
});
|
|
1322
|
-
// Should delete "world test", leaving "hello "
|
|
1323
|
-
expect(result.lines).toEqual(['hello ']);
|
|
1324
|
-
expect(result.cursorRow).toBe(0);
|
|
1325
|
-
expect(result.cursorCol).toBe(6);
|
|
1326
|
-
});
|
|
1327
|
-
it('should handle D at end of line', () => {
|
|
1328
|
-
const initialState = createMockTextBufferState({
|
|
1329
|
-
lines: ['hello world'],
|
|
1330
|
-
cursorRow: 0,
|
|
1331
|
-
cursorCol: 11, // cursor at end
|
|
1332
|
-
preferredCol: null,
|
|
1333
|
-
undoStack: [],
|
|
1334
|
-
redoStack: [],
|
|
1335
|
-
clipboard: null,
|
|
1336
|
-
selectionAnchor: null,
|
|
1337
|
-
});
|
|
1338
|
-
const result = textBufferReducer(initialState, {
|
|
1339
|
-
type: 'vim_delete_to_end_of_line',
|
|
1340
|
-
});
|
|
1341
|
-
// Should not change anything when at end of line
|
|
1342
|
-
expect(result.lines).toEqual(['hello world']);
|
|
1343
|
-
expect(result.cursorRow).toBe(0);
|
|
1344
|
-
expect(result.cursorCol).toBe(11);
|
|
1345
|
-
});
|
|
1346
|
-
});
|
|
1347
|
-
describe('C (change to end of line)', () => {
|
|
1348
|
-
it('should change from cursor to end of line', () => {
|
|
1349
|
-
const initialState = createMockTextBufferState({
|
|
1350
|
-
lines: ['hello world test'],
|
|
1351
|
-
cursorRow: 0,
|
|
1352
|
-
cursorCol: 6, // cursor on 'w' in "world"
|
|
1353
|
-
preferredCol: null,
|
|
1354
|
-
undoStack: [],
|
|
1355
|
-
redoStack: [],
|
|
1356
|
-
clipboard: null,
|
|
1357
|
-
selectionAnchor: null,
|
|
1358
|
-
});
|
|
1359
|
-
const result = textBufferReducer(initialState, {
|
|
1360
|
-
type: 'vim_change_to_end_of_line',
|
|
1361
|
-
});
|
|
1362
|
-
// Should delete "world test", leaving "hello "
|
|
1363
|
-
expect(result.lines).toEqual(['hello ']);
|
|
1364
|
-
expect(result.cursorRow).toBe(0);
|
|
1365
|
-
expect(result.cursorCol).toBe(6);
|
|
1366
|
-
});
|
|
1367
|
-
it('should handle C at beginning of line', () => {
|
|
1368
|
-
const initialState = createMockTextBufferState({
|
|
1369
|
-
lines: ['hello world'],
|
|
1370
|
-
cursorRow: 0,
|
|
1371
|
-
cursorCol: 0,
|
|
1372
|
-
preferredCol: null,
|
|
1373
|
-
undoStack: [],
|
|
1374
|
-
redoStack: [],
|
|
1375
|
-
clipboard: null,
|
|
1376
|
-
selectionAnchor: null,
|
|
1377
|
-
});
|
|
1378
|
-
const result = textBufferReducer(initialState, {
|
|
1379
|
-
type: 'vim_change_to_end_of_line',
|
|
1380
|
-
});
|
|
1381
|
-
// Should delete entire line content
|
|
1382
|
-
expect(result.lines).toEqual(['']);
|
|
1383
|
-
expect(result.cursorRow).toBe(0);
|
|
1384
|
-
expect(result.cursorCol).toBe(0);
|
|
1385
|
-
});
|
|
1046
|
+
const testCases = [
|
|
1047
|
+
{
|
|
1048
|
+
command: 'de',
|
|
1049
|
+
desc: 'delete from cursor to end of current word',
|
|
1050
|
+
lines: ['hello world test'],
|
|
1051
|
+
cursorRow: 0,
|
|
1052
|
+
cursorCol: 1,
|
|
1053
|
+
actionType: 'vim_delete_word_end',
|
|
1054
|
+
count: 1,
|
|
1055
|
+
expectedLines: ['h world test'],
|
|
1056
|
+
expectedCursorRow: 0,
|
|
1057
|
+
expectedCursorCol: 1,
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
command: 'de',
|
|
1061
|
+
desc: 'delete multiple word ends with count',
|
|
1062
|
+
lines: ['hello world test more'],
|
|
1063
|
+
cursorRow: 0,
|
|
1064
|
+
cursorCol: 1,
|
|
1065
|
+
actionType: 'vim_delete_word_end',
|
|
1066
|
+
count: 2,
|
|
1067
|
+
expectedLines: ['h test more'],
|
|
1068
|
+
expectedCursorRow: 0,
|
|
1069
|
+
expectedCursorCol: 1,
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
command: 'db',
|
|
1073
|
+
desc: 'delete from cursor to start of previous word',
|
|
1074
|
+
lines: ['hello world test'],
|
|
1075
|
+
cursorRow: 0,
|
|
1076
|
+
cursorCol: 11,
|
|
1077
|
+
actionType: 'vim_delete_word_backward',
|
|
1078
|
+
count: 1,
|
|
1079
|
+
expectedLines: ['hello test'],
|
|
1080
|
+
expectedCursorRow: 0,
|
|
1081
|
+
expectedCursorCol: 6,
|
|
1082
|
+
},
|
|
1083
|
+
{
|
|
1084
|
+
command: 'db',
|
|
1085
|
+
desc: 'delete multiple words backward with count',
|
|
1086
|
+
lines: ['hello world test more'],
|
|
1087
|
+
cursorRow: 0,
|
|
1088
|
+
cursorCol: 17,
|
|
1089
|
+
actionType: 'vim_delete_word_backward',
|
|
1090
|
+
count: 2,
|
|
1091
|
+
expectedLines: ['hello more'],
|
|
1092
|
+
expectedCursorRow: 0,
|
|
1093
|
+
expectedCursorCol: 6,
|
|
1094
|
+
},
|
|
1095
|
+
{
|
|
1096
|
+
command: 'cw',
|
|
1097
|
+
desc: 'delete from cursor to start of next word',
|
|
1098
|
+
lines: ['hello world test'],
|
|
1099
|
+
cursorRow: 0,
|
|
1100
|
+
cursorCol: 0,
|
|
1101
|
+
actionType: 'vim_change_word_forward',
|
|
1102
|
+
count: 1,
|
|
1103
|
+
expectedLines: ['world test'],
|
|
1104
|
+
expectedCursorRow: 0,
|
|
1105
|
+
expectedCursorCol: 0,
|
|
1106
|
+
},
|
|
1107
|
+
{
|
|
1108
|
+
command: 'cw',
|
|
1109
|
+
desc: 'change multiple words with count',
|
|
1110
|
+
lines: ['hello world test more'],
|
|
1111
|
+
cursorRow: 0,
|
|
1112
|
+
cursorCol: 0,
|
|
1113
|
+
actionType: 'vim_change_word_forward',
|
|
1114
|
+
count: 2,
|
|
1115
|
+
expectedLines: ['test more'],
|
|
1116
|
+
expectedCursorRow: 0,
|
|
1117
|
+
expectedCursorCol: 0,
|
|
1118
|
+
},
|
|
1119
|
+
{
|
|
1120
|
+
command: 'ce',
|
|
1121
|
+
desc: 'change from cursor to end of current word',
|
|
1122
|
+
lines: ['hello world test'],
|
|
1123
|
+
cursorRow: 0,
|
|
1124
|
+
cursorCol: 1,
|
|
1125
|
+
actionType: 'vim_change_word_end',
|
|
1126
|
+
count: 1,
|
|
1127
|
+
expectedLines: ['h world test'],
|
|
1128
|
+
expectedCursorRow: 0,
|
|
1129
|
+
expectedCursorCol: 1,
|
|
1130
|
+
},
|
|
1131
|
+
{
|
|
1132
|
+
command: 'ce',
|
|
1133
|
+
desc: 'change multiple word ends with count',
|
|
1134
|
+
lines: ['hello world test'],
|
|
1135
|
+
cursorRow: 0,
|
|
1136
|
+
cursorCol: 1,
|
|
1137
|
+
actionType: 'vim_change_word_end',
|
|
1138
|
+
count: 2,
|
|
1139
|
+
expectedLines: ['h test'],
|
|
1140
|
+
expectedCursorRow: 0,
|
|
1141
|
+
expectedCursorCol: 1,
|
|
1142
|
+
},
|
|
1143
|
+
{
|
|
1144
|
+
command: 'cb',
|
|
1145
|
+
desc: 'change from cursor to start of previous word',
|
|
1146
|
+
lines: ['hello world test'],
|
|
1147
|
+
cursorRow: 0,
|
|
1148
|
+
cursorCol: 11,
|
|
1149
|
+
actionType: 'vim_change_word_backward',
|
|
1150
|
+
count: 1,
|
|
1151
|
+
expectedLines: ['hello test'],
|
|
1152
|
+
expectedCursorRow: 0,
|
|
1153
|
+
expectedCursorCol: 6,
|
|
1154
|
+
},
|
|
1155
|
+
{
|
|
1156
|
+
command: 'cc',
|
|
1157
|
+
desc: 'clear the line and place cursor at the start',
|
|
1158
|
+
lines: [' hello world'],
|
|
1159
|
+
cursorRow: 0,
|
|
1160
|
+
cursorCol: 5,
|
|
1161
|
+
actionType: 'vim_change_line',
|
|
1162
|
+
count: 1,
|
|
1163
|
+
expectedLines: [''],
|
|
1164
|
+
expectedCursorRow: 0,
|
|
1165
|
+
expectedCursorCol: 0,
|
|
1166
|
+
},
|
|
1167
|
+
{
|
|
1168
|
+
command: 'dd',
|
|
1169
|
+
desc: 'delete the current line',
|
|
1170
|
+
lines: ['line1', 'line2', 'line3'],
|
|
1171
|
+
cursorRow: 1,
|
|
1172
|
+
cursorCol: 2,
|
|
1173
|
+
actionType: 'vim_delete_line',
|
|
1174
|
+
count: 1,
|
|
1175
|
+
expectedLines: ['line1', 'line3'],
|
|
1176
|
+
expectedCursorRow: 1,
|
|
1177
|
+
expectedCursorCol: 0,
|
|
1178
|
+
},
|
|
1179
|
+
{
|
|
1180
|
+
command: 'dd',
|
|
1181
|
+
desc: 'delete multiple lines with count',
|
|
1182
|
+
lines: ['line1', 'line2', 'line3', 'line4'],
|
|
1183
|
+
cursorRow: 1,
|
|
1184
|
+
cursorCol: 2,
|
|
1185
|
+
actionType: 'vim_delete_line',
|
|
1186
|
+
count: 2,
|
|
1187
|
+
expectedLines: ['line1', 'line4'],
|
|
1188
|
+
expectedCursorRow: 1,
|
|
1189
|
+
expectedCursorCol: 0,
|
|
1190
|
+
},
|
|
1191
|
+
{
|
|
1192
|
+
command: 'dd',
|
|
1193
|
+
desc: 'handle deleting last line',
|
|
1194
|
+
lines: ['only line'],
|
|
1195
|
+
cursorRow: 0,
|
|
1196
|
+
cursorCol: 3,
|
|
1197
|
+
actionType: 'vim_delete_line',
|
|
1198
|
+
count: 1,
|
|
1199
|
+
expectedLines: [''],
|
|
1200
|
+
expectedCursorRow: 0,
|
|
1201
|
+
expectedCursorCol: 0,
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
command: 'D',
|
|
1205
|
+
desc: 'delete from cursor to end of line',
|
|
1206
|
+
lines: ['hello world test'],
|
|
1207
|
+
cursorRow: 0,
|
|
1208
|
+
cursorCol: 6,
|
|
1209
|
+
actionType: 'vim_delete_to_end_of_line',
|
|
1210
|
+
expectedLines: ['hello '],
|
|
1211
|
+
expectedCursorRow: 0,
|
|
1212
|
+
expectedCursorCol: 6,
|
|
1213
|
+
},
|
|
1214
|
+
{
|
|
1215
|
+
command: 'D',
|
|
1216
|
+
desc: 'handle D at end of line',
|
|
1217
|
+
lines: ['hello world'],
|
|
1218
|
+
cursorRow: 0,
|
|
1219
|
+
cursorCol: 11,
|
|
1220
|
+
actionType: 'vim_delete_to_end_of_line',
|
|
1221
|
+
expectedLines: ['hello world'],
|
|
1222
|
+
expectedCursorRow: 0,
|
|
1223
|
+
expectedCursorCol: 11,
|
|
1224
|
+
},
|
|
1225
|
+
{
|
|
1226
|
+
command: 'C',
|
|
1227
|
+
desc: 'change from cursor to end of line',
|
|
1228
|
+
lines: ['hello world test'],
|
|
1229
|
+
cursorRow: 0,
|
|
1230
|
+
cursorCol: 6,
|
|
1231
|
+
actionType: 'vim_change_to_end_of_line',
|
|
1232
|
+
expectedLines: ['hello '],
|
|
1233
|
+
expectedCursorRow: 0,
|
|
1234
|
+
expectedCursorCol: 6,
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
command: 'C',
|
|
1238
|
+
desc: 'handle C at beginning of line',
|
|
1239
|
+
lines: ['hello world'],
|
|
1240
|
+
cursorRow: 0,
|
|
1241
|
+
cursorCol: 0,
|
|
1242
|
+
actionType: 'vim_change_to_end_of_line',
|
|
1243
|
+
expectedLines: [''],
|
|
1244
|
+
expectedCursorRow: 0,
|
|
1245
|
+
expectedCursorCol: 0,
|
|
1246
|
+
},
|
|
1247
|
+
];
|
|
1248
|
+
it.each(testCases)('$command: should $desc', ({ lines, cursorRow, cursorCol, actionType, count, expectedLines, expectedCursorRow, expectedCursorCol, }) => {
|
|
1249
|
+
const initialState = createMockTextBufferState({
|
|
1250
|
+
lines,
|
|
1251
|
+
cursorRow,
|
|
1252
|
+
cursorCol,
|
|
1253
|
+
preferredCol: null,
|
|
1254
|
+
undoStack: [],
|
|
1255
|
+
redoStack: [],
|
|
1256
|
+
clipboard: null,
|
|
1257
|
+
selectionAnchor: null,
|
|
1258
|
+
});
|
|
1259
|
+
const action = (count
|
|
1260
|
+
? { type: actionType, payload: { count } }
|
|
1261
|
+
: { type: actionType });
|
|
1262
|
+
const result = textBufferReducer(initialState, action);
|
|
1263
|
+
expect(result.lines).toEqual(expectedLines);
|
|
1264
|
+
expect(result.cursorRow).toBe(expectedCursorRow);
|
|
1265
|
+
expect(result.cursorCol).toBe(expectedCursorCol);
|
|
1386
1266
|
});
|
|
1387
1267
|
});
|
|
1388
1268
|
});
|