{"_id":"@burneikis/pi-vim","_rev":"9-32b89b471472512fcaa29454d3f92217","name":"@burneikis/pi-vim","dist-tags":{"latest":"1.7.0"},"versions":{"1.0.0":{"name":"@burneikis/pi-vim","version":"1.0.0","keywords":["pi-package"],"author":{"name":"burneikis"},"license":"MIT","_id":"@burneikis/pi-vim@1.0.0","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-vim#readme","bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"db9e90e274c6f330ab1723f9e2fb88b8b05bb322","tarball":"https://registry.npmjs.org/@burneikis/pi-vim/-/pi-vim-1.0.0.tgz","fileCount":17,"integrity":"sha512-mRzTpvCy3bgRtEB3do6/1evKO28cln2LaLrE5ZBKisk6zbvlRO8G2xx52/XSb5NAqc5Of5iR6oZqYXCyCM4gUw==","signatures":[{"sig":"MEQCIFo6DGhMqZIrmRv76RdfyzM42P/iBqs7RKU+6CtEH85HAiB9riK5XaF6ohmEvOYYFFUvhk3B7hqzB6LkHSiF4UDDZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129606},"exports":{".":"./index.ts"},"gitHead":"c0569c2ff3d6c888047d04e09c7a82fc5ea740c7","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-vim.git","type":"git"},"_npmVersion":"11.8.0","description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"peerDependencies":{"@mariozechner/pi-tui":"*","@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-vim_1.0.0_1774520356195_0.4037478946183708","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@burneikis/pi-vim","version":"1.0.1","keywords":["pi-package"],"author":{"name":"burneikis"},"license":"MIT","_id":"@burneikis/pi-vim@1.0.1","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-vim#readme","bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"f4303cdc6da18219b0c4081abe8492a2ec2a0a06","tarball":"https://registry.npmjs.org/@burneikis/pi-vim/-/pi-vim-1.0.1.tgz","fileCount":17,"integrity":"sha512-vNZeOHunQqnaqRNlUHIrnqok6ktmW6Aq4npg+noYF1sm6j9M/hHmaoAIcYhyERFRfKapE/DcTvz5+X8eX6/ZTw==","signatures":[{"sig":"MEQCIF4TQCFSGXQ9ckCr5+O5txrfuKWfD7iCe6CRmMgkn3t8AiAWqrISLrewsq04pZNZQnnh9/6pm3kj32tQadb6mfQ5Ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129917},"exports":{".":"./index.ts"},"gitHead":"96e600157c2ca0b5c0f25e0a4c9bf46c870775db","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-vim.git","type":"git"},"_npmVersion":"11.8.0","description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"peerDependencies":{"@burneikis/pi-fzfp":">=2.0.0","@mariozechner/pi-tui":"*","@mariozechner/pi-coding-agent":"*"},"peerDependenciesMeta":{"@burneikis/pi-fzfp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pi-vim_1.0.1_1774521031690_0.4061398764814297","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@burneikis/pi-vim","version":"1.1.0","keywords":["pi-package"],"author":{"name":"burneikis"},"license":"MIT","_id":"@burneikis/pi-vim@1.1.0","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-vim#readme","bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"e81d4358075231f5406c4fe2707edb44618c9a1c","tarball":"https://registry.npmjs.org/@burneikis/pi-vim/-/pi-vim-1.1.0.tgz","fileCount":17,"integrity":"sha512-GORxavDR4GshjLOyp1P+GfH9XHYNwAb7yHYc8J/poCD+BjViTuE7rj/qiltZgmNIMm5VmV2Jgl233UblDg0ZAA==","signatures":[{"sig":"MEUCIDPjr0ubmdoIkhCLhfi/Cq68uIoejx3NpfMpzy7rOFw+AiEAzwN99dPbYl6u/KefLxUhV+uXm61NbtjbBU7qRdrgnIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130015},"exports":{".":"./index.ts"},"gitHead":"30c645754de5585b356cb088be8edfc8f19f5f3d","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-vim.git","type":"git"},"_npmVersion":"11.8.0","description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@burneikis/pi-fzfp":"^2.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"@mariozechner/pi-tui":"*","@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-vim_1.1.0_1774737278527_0.8576974160033684","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@burneikis/pi-vim","version":"1.2.0","keywords":["pi-package"],"author":{"name":"burneikis"},"license":"MIT","_id":"@burneikis/pi-vim@1.2.0","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-vim#readme","bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"3beb9602b1eb222a1e56de270745b6388690bf28","tarball":"https://registry.npmjs.org/@burneikis/pi-vim/-/pi-vim-1.2.0.tgz","fileCount":17,"integrity":"sha512-ozKFMU0GJqsJjrqpP8LMTctVtyeImO0/uq3aB77dt6mZ+bd9V+ZwNeGDG6899JEPk4P3gFD3shHvysaaqdgbSg==","signatures":[{"sig":"MEYCIQC7jW3E5+mDMjTxoVg59dhhWoAX42OJCkIOxEbAfZAs3gIhAMwJ18JY59GCH1XWvP8UcrAyV0rB+xVvhs2jFOlmvtgV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131670},"exports":{".":"./index.ts"},"gitHead":"73bdda570cad9d7b119f61df15f5fb07766a68c1","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-vim.git","type":"git"},"_npmVersion":"11.8.0","description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"peerDependencies":{"@mariozechner/pi-tui":"*","@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-vim_1.2.0_1774740974017_0.7261474677844224","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@burneikis/pi-vim","version":"1.3.0","keywords":["pi-package"],"author":{"name":"burneikis"},"license":"MIT","_id":"@burneikis/pi-vim@1.3.0","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-vim#readme","bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"e99e8d6dbdefe440b56d519cb5443cd13b74e3c2","tarball":"https://registry.npmjs.org/@burneikis/pi-vim/-/pi-vim-1.3.0.tgz","fileCount":17,"integrity":"sha512-f9B8GoKsnhFtWuVH0x0momq0CmZ7FCN1ONpX3sH/kJhRo0aZwcmMsNvGbLipNV6Pu5a1zPjGLWgyw9AwsRnLjw==","signatures":[{"sig":"MEQCICibCj8jtdXyG2yLh5UKAmYbAma1PsVO56ZR1QrX+DvZAiAz3T4hVsRKafzLiyU3DnIp9PJvtkeHGO3P/xDrFSeUMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130015},"exports":{".":"./index.ts"},"gitHead":"2c2a8ce1262560e6180100fb1a7be0a2101ad7f2","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-vim.git","type":"git"},"_npmVersion":"11.8.0","description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@burneikis/pi-fzfp":"^2.1.0"},"_hasShrinkwrap":false,"peerDependencies":{"@mariozechner/pi-tui":"*","@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-vim_1.3.0_1774741425965_0.9937959180668228","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@burneikis/pi-vim","version":"1.4.0","keywords":["pi-package"],"author":{"name":"burneikis"},"license":"MIT","_id":"@burneikis/pi-vim@1.4.0","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-vim#readme","bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"8c5416d06002dca93159ab2906f96f8f3ffa1a4b","tarball":"https://registry.npmjs.org/@burneikis/pi-vim/-/pi-vim-1.4.0.tgz","fileCount":17,"integrity":"sha512-z/nW+78V1ShpdmDArxkNcXgoSVoyJ7ySOcDyKpZtNRKKu9kdMVNR6IHLoKxDruCzgpCnV7RiNcFDfi2IchpqIA==","signatures":[{"sig":"MEUCIHjd7IxKroHGpQrG+oumUtKfQielcSIomzc1ThFtYVywAiEApj50MyjDsig3JJWrenMbyJUSGOYCPJncTPb9qCVWgOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":132497},"exports":{".":"./index.ts"},"gitHead":"83467e204504c16597b9b71c965295270dd27a5d","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-vim.git","type":"git"},"_npmVersion":"11.8.0","description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"peerDependencies":{"@mariozechner/pi-tui":"*","@mariozechner/pi-coding-agent":"*"},"optionalDependencies":{"@burneikis/pi-fzfp":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-vim_1.4.0_1774944527370_0.534764968573799","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@burneikis/pi-vim","version":"1.5.0","keywords":["pi-package"],"author":{"name":"burneikis"},"license":"MIT","_id":"@burneikis/pi-vim@1.5.0","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-vim#readme","bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"b162ef1a148717917c507e7ce197e3190d3f4a48","tarball":"https://registry.npmjs.org/@burneikis/pi-vim/-/pi-vim-1.5.0.tgz","fileCount":17,"integrity":"sha512-ge62Qyx9RUzcIP1SHzF93+inBMcDPt+T/IoHtH+k+PfVx57jTant/UdL5iM95cSqBeqGokv1usC1EPY2TgFR+A==","signatures":[{"sig":"MEUCIQDFaxQofgebPiiB2PYfCLnbTCBc4vzcYAxuBqWxgJvmwwIgdJkPX3EIiWYB+0TAXb2oIXiT6/hlUWyTUyXJ4KD2Yuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135010},"exports":{".":"./index.ts"},"gitHead":"4c737cbd31dbcf5e62aabe27ab2d722a73423ab9","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-vim.git","type":"git"},"_npmVersion":"11.8.0","description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"peerDependencies":{"@mariozechner/pi-tui":"*","@mariozechner/pi-coding-agent":"*"},"optionalDependencies":{"@burneikis/pi-fzfp":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-vim_1.5.0_1781814741634_0.49473197494857324","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@burneikis/pi-vim","version":"1.6.0","keywords":["pi-package"],"author":{"name":"burneikis"},"license":"MIT","_id":"@burneikis/pi-vim@1.6.0","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-vim#readme","bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"fde39e6cd3dd5a4308fe0794a6aa0843335d4ce2","tarball":"https://registry.npmjs.org/@burneikis/pi-vim/-/pi-vim-1.6.0.tgz","fileCount":17,"integrity":"sha512-sOkJBTHuPZigfxh5w5i2aCmVThsz7/wjynQjn+pdYC8d3r4iJ0KYIqUcTV4Z5JbGEdto5idC41WzK6z5Bf7eIA==","signatures":[{"sig":"MEQCIHzWNFF0QuP8YFqvuTutFzioBzzVlnYfptq6sBWP4MqLAiAYFh7DdDPr9ECAXWir/EcxrNRPtg4j/4wvyKFKzB4iXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135044},"exports":{".":"./index.ts"},"gitHead":"800233d9a3ced27c9cda5b73873093df4ee6904c","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-vim.git","type":"git"},"_npmVersion":"11.8.0","description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"peerDependencies":{"@mariozechner/pi-tui":"*","@mariozechner/pi-coding-agent":"*"},"optionalDependencies":{"@burneikis/pi-fzfp":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/pi-vim_1.6.0_1781815088147_0.0832705321728977","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@burneikis/pi-vim","version":"1.7.0","description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","license":"MIT","author":{"name":"burneikis"},"repository":{"type":"git","url":"git+https://github.com/burneikis/pi-vim.git"},"keywords":["pi-package"],"scripts":{"test":"tsx --test test/**/*.test.ts"},"exports":{".":"./index.ts"},"pi":{"extensions":["./index.ts"]},"peerDependencies":{"@mariozechner/pi-coding-agent":"*","@mariozechner/pi-tui":"*"},"optionalDependencies":{"@burneikis/pi-fzfp":"^2.1.0"},"devDependencies":{"@types/node":"^26.1.1","tsx":"^4.23.0"},"gitHead":"b53ce8f38736b8ee34c843728754ee6aaf1ed806","_id":"@burneikis/pi-vim@1.7.0","bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"homepage":"https://github.com/burneikis/pi-vim#readme","_nodeVersion":"22.22.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-T2lwdGHah/hAHYGtFoXDXIbc2/dv4CPGiosFBcmXYL1h3WDj3LNOtWwOtNpIpaT+nCIhc1IxVNjmFTxKH0ZI6A==","shasum":"71de5d677ea4ebcf8a083be9c03070714cfb7dd7","tarball":"https://registry.npmjs.org/@burneikis/pi-vim/-/pi-vim-1.7.0.tgz","fileCount":17,"unpackedSize":138527,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICrDjowBZjosFEcpl5hHgkfJNbCQo87tS0YxuOybsMaIAiEAjbMHU6Q0TPXPUhKQoad16pkqymUlTL5wt4EWwGOWzJ4="}]},"_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"directories":{},"maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-vim_1.7.0_1783689397147_0.16791576188999335"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-26T10:19:16.117Z","modified":"2026-07-10T13:16:37.371Z","1.0.0":"2026-03-26T10:19:16.365Z","1.0.1":"2026-03-26T10:30:31.843Z","1.1.0":"2026-03-28T22:34:38.689Z","1.2.0":"2026-03-28T23:36:14.167Z","1.3.0":"2026-03-28T23:43:46.110Z","1.4.0":"2026-03-31T08:08:47.515Z","1.5.0":"2026-06-18T20:32:21.757Z","1.6.0":"2026-06-18T20:38:08.313Z","1.7.0":"2026-07-10T13:16:37.276Z"},"bugs":{"url":"https://github.com/burneikis/pi-vim/issues"},"author":{"name":"burneikis"},"license":"MIT","homepage":"https://github.com/burneikis/pi-vim#readme","keywords":["pi-package"],"repository":{"type":"git","url":"git+https://github.com/burneikis/pi-vim.git"},"description":"Vim motions extension for pi – normal, insert, visual, and replace modes with operators, motions, text objects, registers, search, and repeat","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"readme":"# pi-vim\n\nVim motions extension for [pi-coding-agent](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent). Replaces the default input editor with a vim-modal editor supporting normal, insert, visual, and replace modes.\n\n## Install\n\n```bash\npi install npm:@burneikis/pi-vim\n```\n\n### With Fuzzy File Picker\n\nInstall [pi-fzfp](https://github.com/burneikis/pi-fzfp) as a separate pi package alongside pi-vim:\n\n```bash\npi install npm:@burneikis/pi-fzfp\n```\n\nThat's it. When both are installed, pi-vim detects pi-fzfp at startup and integrates its fuzzy autocomplete automatically. pi-fzfp will not install its own editor — pi-vim handles the editor and wraps its autocomplete provider with fzfp's fuzzy matching.\n\n> **Requires** [`fd`](https://github.com/sharkdp/fd) and [`fzf`](https://github.com/junegunn/fzf) on your `PATH`.\n\n## Features\n\n### Vim Motions\n- Normal, Insert, Visual, and Replace modes\n- Mode-aware cursor shape updates (Insert = bar cursor, non-Insert = block cursor)\n- Motions (`h`, `j`, `k`, `l`, `w`, `b`, `e`, `0`, `$`, `gg`, `G`, etc.)\n- Operators (`d`, `c`, `y`, `p`, etc.)\n- Text objects (`iw`, `aw`, `i\"`, `a(`, etc.)\n- Search (`/`, `?`, `n`, `N`)\n- Registers and yank/paste\n- Dot repeat\n\n### Fuzzy File Picker (optional, via pi-fzfp)\n- Replaces `@file` autocomplete with weighted dual-key fuzzy matching\n- Basename matches scored 2× higher than path matches\n- Suffix alignment bonus for extension-aware matching (`@acts` → `abct.ts` over `abct.scss`)\n- Path prefix pre-filtering when query contains `/`\n- Test file penalty as a tiebreaker\n\n## Integration Protocol\n\npi-vim and pi-fzfp coordinate via `pi.events` so they work regardless of which extension loads first. Other custom editors can use the same protocol to integrate pi-fzfp.\n\n### As an editor extension that wants pi-fzfp integration\n\nRegister listeners during your extension factory (before `session_start`), so they are in place regardless of load order:\n\n```typescript\nimport type { ExtensionAPI } from \"@mariozechner/pi-coding-agent\";\nimport type { AutocompleteProvider } from \"@mariozechner/pi-tui\";\n\nexport default function (pi: ExtensionAPI) {\n  let wrapAutocomplete: ((provider: AutocompleteProvider) => AutocompleteProvider) | undefined;\n\n  // Tell pi-fzfp not to set its own editor component.\n  pi.events.on(\"pi-fzfp:check-editor\", (ack: () => void) => { ack(); });\n\n  // Receive the provider (pi-fzfp emits this from both its factory and\n  // session_start to cover both load orderings).\n  pi.events.on(\"pi-fzfp:provider\", (fn: (provider: AutocompleteProvider) => AutocompleteProvider) => {\n    wrapAutocomplete = fn;\n  });\n\n  pi.on(\"session_start\", (_event, ctx) => {\n    ctx.ui.setEditorComponent((tui, theme, keybindings) =>\n      new MyEditor(tui, theme, keybindings, wrapAutocomplete)\n    );\n  });\n}\n```\n\nThen apply `wrapAutocomplete` inside your editor's `setAutocompleteProvider`:\n\n```typescript\noverride setAutocompleteProvider(provider: AutocompleteProvider): void {\n  super.setAutocompleteProvider(this.wrapAutocomplete ? this.wrapAutocomplete(provider) : provider);\n}\n```\n","readmeFilename":"README.md"}