diff --git a/apps/web/package.json b/apps/web/package.json index fd3aca76ad247..efec65e3de518 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -34,6 +34,7 @@ "@noble/hashes": "catalog:", "@pierre/diffs": "catalog:", "@pierre/trees": "1.0.0-beta.6", + "@replit/codemirror-vim-core": "0.1.0", "@t3tools/client-runtime": "workspace:*", "@t3tools/contracts": "workspace:*", "@t3tools/provider-core": "workspace:*", diff --git a/apps/web/src/appInit.tsx b/apps/web/src/appInit.tsx index faa71137db049..83623dec24be6 100644 --- a/apps/web/src/appInit.tsx +++ b/apps/web/src/appInit.tsx @@ -59,6 +59,7 @@ import { primaryServerConfigAtom } from "./state/server"; import { environmentShell } from "./state/shell"; import { installChatRouteCommands } from "./shortcuts/chatRouteCommands"; import { startWorkspaceFocus } from "./lib/workspaceFocus"; +import { startVimMode } from "./vim-mode"; import { startI18n } from "./i18n/runtime"; import { installCommandPaletteCommands } from "./shortcuts/commandPaletteCommands"; import { registerOpenFavoriteEditorCommand } from "./components/chat/OpenInPickerShortcut"; @@ -290,6 +291,7 @@ export function startAppServices(): AppRouter { }); startMainAppLocationTracking(router); startWorkspaceFocus(router); + startVimMode(); startBackgroundThreadAnnouncements(appAtomRegistry, router); startThreadVisitedMigration(appAtomRegistry); startSshPasswordPromptQueue(); diff --git a/apps/web/src/browser/ServerBrowserSurface.tsx b/apps/web/src/browser/ServerBrowserSurface.tsx index a881650f69bcf..a7c8070cec002 100644 --- a/apps/web/src/browser/ServerBrowserSurface.tsx +++ b/apps/web/src/browser/ServerBrowserSurface.tsx @@ -798,6 +798,7 @@ export function ServerBrowserSurface(props: { {/* Pin top-left to avoid focus scrolling; 16px prevents iOS focus zoom. */}