[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81394":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":14,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":13,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":15,"starSnapshotCount":15,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},81394,"xlide_vscode","WilliamSmithEdward\u002Fxlide_vscode","WilliamSmithEdward","Excel VBA integration for VS Code - Tree View \u002F Full Direct VBA Read+Write \u002F LiveShare Compatible \u002F Direct Agentic AI Integrations","https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=WilliamSmithE.xlide",null,"TypeScript",45,3,1,0,4,9,46.71,"MIT License",false,"main",true,[24,25,26,27,28,29,30,31,32,33],"agentic-ai","agentic-coding","ai-tools","excel","vba","vba-excel","visual-basic","vscode","vscode-extension","xlsm","2026-06-12 04:01:33","﻿# XLIDE - Excel VBA for VS Code\n\nEdit Excel VBA code directly in VS Code. Browse modules in a sidebar tree,\nedit with syntax highlighting and symbol navigation (Go to Definition,\nFind All References, Rename Symbol), save changes back to the `.xlsm` file\nwith Ctrl+S, and expose every operation to GitHub Copilot via the Language\nModel API.\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsponsors\u002FWilliamSmithEdward\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSponsor-%E2%9D%A4-pink?style=for-the-badge\" alt=\"Sponsor WilliamSmithEdward\">\u003C\u002Fa>\n\n---\n\n## Requirements\n\n- **VS Code** 1.95+\n- **Python 3.10+** -- the VBA read\u002Fwrite backend runs as a child process\n- Python packages: `pyOpenVBA >= 3.0.1`, `openpyxl >= 3.1.0`\n\nNo COM automation, no Office installation, no win32com -- works on Windows,\nmacOS, Linux, and remote containers.\n\n---\n\n## Development setup\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FWilliamSmithEdward\u002Fxlide_vscode.git\ncd xlide_vscode\n\n# TypeScript side\nnpm install\nnpm run compile        # type-check + esbuild bundle -> out\u002Fextension.js\n\n# Python side (optional venv)\npython -m venv .venv\n.venv\\Scripts\\activate   # or: source .venv\u002Fbin\u002Factivate\npip install -r python\u002Frequirements.txt\n```\n\nPress **F5** in VS Code to launch an Extension Development Host with the\nextension loaded and the watch compiler running.\n\n---\n\n## Architecture\n\n```\nxlide_vscode\u002F\n  src\u002F\n    extension.ts            # activate() -- wires everything together\n    pythonBridge.ts         # JSON-RPC 2.0 client over child_process stdio\n    xlideFileSystem.ts      # xlide-vba:\u002F\u002F virtual FileSystemProvider\n    xlsmExplorer.ts         # Sidebar TreeDataProvider\n    commands.ts             # VS Code command registrations\n    agentTools.ts           # vscode.lm.registerTool() for Copilot\n    moduleDump.ts           # Shared export-to-folder logic (UI + AI lane)\n    vbaSymbolIndex.ts       # In-memory cross-module symbol index\n    vbaLanguageProviders.ts # DocumentSymbol \u002F Definition \u002F References \u002F Rename\n  python\u002F\n    server.py               # JSON-RPC 2.0 server (stdin\u002Fstdout, newline-delimited)\n    xlide\u002F\n      vba_io.py             # pyOpenVBA wrappers -- listModules, readModule, writeModule\n      excel_io.py           # openpyxl wrappers -- readCells, writeCells\n  syntaxes\u002F\n    vba.tmLanguage.json     # TextMate grammar (MS-VBAL spec-accurate)\n  language-configuration\u002F\n    vba-language-configuration.json   # Brackets, indent rules, folding\n  walkthrough\u002F              # Markdown content for VS Code Getting Started tab\n  docs\u002F\n    architecture.md         # Full architecture reference\n```\n\n### Key design decisions\n\n| Decision | Rationale |\n|---|---|\n| Long-lived Python process | Amortises ~200 ms Python startup across all requests |\n| `FileSystemProvider` over `TextDocumentContentProvider` | Read\u002Fwrite virtual FS -- Ctrl+S triggers `writeFile` with no custom save command |\n| Virtual URI scheme `xlide-vba:\u002F\u002F` | Decouples workbook path + module name from the editor's file concept |\n| Shared `moduleDump.ts` | Export logic is single-source-of-truth for both UI commands and Copilot agent tools |\n| No COM \u002F no Office | Portability -- pyOpenVBA reads the OVBA binary format directly |\n| Confirmation on write tools | Prevents AI agents from silently mutating production workbooks |\n\n### JSON-RPC methods (Python bridge)\n\n| Method | Params | Returns |\n|---|---|---|\n| `listModules` | `{ path }` | `[{ name, type }]` |\n| `listSubs` | `{ path, module }` | `[{ name, kind, line }]` |\n| `readModule` | `{ path, module }` | `{ source }` |\n| `writeModule` | `{ path, module, source }` | `{}` |\n| `renameModule` | `{ path, module, newName }` | `{}` |\n| `deleteModule` | `{ path, module }` | `{}` |\n| `readCells` | `{ path, sheet, range }` | `{ values }` |\n| `writeCells` | `{ path, sheet, startCell, data }` | `{}` |\n\n### VBA language ID\n\nRegistered as `vba` in `package.json` with extensions `.bas`, `.cls`, `.frm`.\nThe TextMate grammar in `syntaxes\u002Fvba.tmLanguage.json` is scoped to\n`source.vba` and covers all reserved identifiers from MS-VBAL v20250520\n(section 3.3.5.2: statement-keywords, marker-keywords, operator-identifiers,\nreserved-names, special-forms, reserved-type-identifiers, literal-identifiers,\ndef-type directives, and implementation-reserved identifiers).\n\n---\n\n## Build commands\n\n| Command | Purpose |\n|---|---|\n| `npm run compile` | Type-check + dev bundle |\n| `npm run watch` | Incremental type-check + esbuild watch |\n| `npm run package` | Production bundle (minified) |\n| `vsce package --no-dependencies` | Build `.vsix` for distribution |\n\n---\n\n## Copilot agent tools\n\n| Tool name | Reference | Reads\u002FWrites | Confirm |\n|---|---|---|---|\n| `xlide_listModules` | `#xlideListModules` | R | No |\n| `xlide_listSubs` | `#xlideListSubs` | R | No |\n| `xlide_readModule` | `#xlideReadModule` | R | No |\n| `xlide_writeModule` | `#xlideWriteModule` | W | Yes |\n| `xlide_readCells` | `#xlideReadCells` | R | No |\n| `xlide_writeCells` | `#xlideWriteCells` | W | Yes |\n| `xlide_exportModules` | `#xlideExportModules` | W | Yes |\n| `xlide_configureExportMode` | `#xlideConfigureExportMode` | W | Yes |\n\n---\n\n## Per-workbook export config\n\nStored beside each workbook as `\u003Cworkbookname>.extension.repo.json`:\n\n```json\n{\n  \"exportFolder\": \"C:\u002Fabsolute\u002Fpath\u002Fto\u002Fexport\",\n  \"exportMode\": \"trueUp\",\n  \"managedFiles\": [\"Module1.bas\", \"Sheet1.cls\"]\n}\n```\n\n`trueUp` (default) -- replace existing, add new, delete stale files tracked in\n`managedFiles`. `replaceExistingOnly` -- only replaces files already on disk.\n\n---\n\n## Live Share\n\nXLIDE VBA browsing for Live Share **guests** is currently not supported.\nMicrosoft's Live Share platform restricts the shared-service RPC channel\n(`vsls.shareService`) to extensions on a curated first-party allowlist, so\nthird-party extensions like XLIDE cannot proxy VBA read\u002Fwrite calls from a\nguest to the host. The XLIDE Explorer therefore returns an empty tree for\nguests and shows an informational welcome view.\n\nWhat still works in a Live Share session:\n\n| Role | XLIDE behaviour |\n|---|---|\n| **Host** | Full local VBA editing -- open, edit, save `.xlsm`\u002F`.xlsb`\u002F`.xlam` modules exactly as if no session were active. |\n| **Guest** | Can fully view and edit any VBA module the host has open in the editor (Live Share shares those buffers normally). Cannot browse the XLIDE Explorer or open new modules independently -- only the host can navigate and open them. XLIDE panel shows a \"not supported\" notice. |\n| **Guest without XLIDE installed** | No action needed -- XLIDE is host-only. Joining a session does not require the extension. |\n\nRelated upstream issue: [microsoft\u002Flive-share#4877](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Flive-share\u002Fissues\u002F4877)\n(third-party `shareService` allowlist, closed as Not Planned).\n\n---\n\n## Further reading\n\n- [docs\u002Farchitecture.md](docs\u002Farchitecture.md) -- full architecture reference\n- [MS-VBAL specification](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fopenspecs\u002Fmicrosoft_general_purpose_programming_languages\u002Fms-vbal\u002F)\n- [pyOpenVBA](https:\u002F\u002Fgithub.com\u002FWilliamSmithEdward\u002FpyOpenVBA)\n","XLIDE 是一个将 Excel VBA 代码集成到 VS Code 的扩展，支持树形视图浏览、直接读写 VBA 代码，并与 GitHub Copilot 兼容。其核心功能包括语法高亮、符号导航（如跳转定义、查找所有引用、重命名符号）以及通过 Ctrl+S 保存更改回 `.xlsm` 文件。技术上，该扩展使用 TypeScript 编写前端界面，Python 后端处理 VBA 代码的读写操作，无需 COM 自动化或 Office 安装，支持 Windows、macOS 和 Linux 平台。适用于需要在现代开发环境中高效编辑和管理 VBA 代码的场景，特别适合跨平台开发者和希望利用 AI 辅助编码工具提升工作效率的用户。",2,"2026-06-11 04:04:52","CREATED_QUERY"]