惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
C
Comments on: Blog
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
Martin Fowler
Martin Fowler
A
About on SuperTechFans
H
Help Net Security
美团技术团队
I
InfoQ
Engineering at Meta
Engineering at Meta
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
I
Intezer
Microsoft Azure Blog
Microsoft Azure Blog
T
ThreatConnect
The Register - Security
The Register - Security
Cisco Talos Blog
Cisco Talos Blog
V
Vulnerabilities – Threatpost
A
Arctic Wolf
Spread Privacy
Spread Privacy
Know Your Adversary
Know Your Adversary
C
CERT Recently Published Vulnerability Notes
P
Privacy & Cybersecurity Law Blog
T
Tenable Blog
爱范儿
爱范儿
F
Full Disclosure
L
Lohrmann on Cybersecurity
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
GbyAI
GbyAI
P
Privacy International News Feed
T
True Tiger Recordings
O
OpenAI News
MyScale Blog
MyScale Blog
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
Simon Willison's Weblog
Simon Willison's Weblog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 叶小钗
Y
Y Combinator Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
雷峰网
雷峰网
N
News | PayPal Newsroom
T
Tailwind CSS Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
Google Online Security Blog
Google Online Security Blog

Hacker News: Front Page

Incident with Pull Requests, Issues, Git Operations and API Requests How Private Equity Bought America’s Essential Services I’m tired of talking to AI Mini Micro Go: Support for Generic Methods Unicode 18.0.0 Beyond the Prompt: Claude Code GitHub - craigmccaskill/posthorn: Self-hosted email gateway between your apps and a transactional mail provider (Postmark, Resend, Mailgun, AWS SES, or outbound-SMTP). Three ingress shapes (HTTP form, HTTP API, SMTP). One Docker container, one TOML config. The just-say-no engineer was a ZIRP phenomenon Gear Commit TSDuck – The MPEG Transport Stream Toolkit So, Where Does Next-Token Prediction Leave Us? Stripe is friendly to “friendly fraud” Erin Brockovich made a map to track data centers around the country agent memory: an anatomy How Wikipedia Whitewashes Mao Your AI Tools Are Only as Good as Your Judgment — And That's the Point The OSS Sabotage Manual Became Corporate Best Practice Overview · Cloudflare Flagship docs Xiaomi MiMo Api Open Platform - Token Plan Global Launch Colorado and California Exempt Open Source from Age Attestation From Rust to Ruby Why is the Left No Fun? Big Tech's Anti-Labor Playbook Has Come for Wikipedia More ETFs Than Stocks The worst job interview I ever had DeepSWE Chemistry behind the Garden Grove chemical tank The Melancholy of Slaying Monsters Uber burned through its entire 2026 AI budget in four months. Now its COO is questioning whether it's worth it | Fortune AltTab is introducing a Pro version — and staying open source · lwouis/alt-tab-macos · Discussion #5533 Stop advertising in your commits! | AksDev Xiaomi MiMo Api Open Platform - Token Plan Global Launch Stack Overflow’s forum is dead thanks to AI, but the company’s still kicking... thanks to AI Stack Overflow's forum is dead thanks to AI Founding Software Engineer at Sage Care | Y Combinator The Real Cost of Owning a Home — Eric Turner Is “colorectal cancer” rising in “young people”? What Color is Your Function? – journal.stuffwithstuff.com Uber, Lyft drivers in Massachusetts form first US ride-share union The ballad of TIGIT 'Incredible' milestone reached as Sweden becomes a smoke-free country Minicor | Scalable Desktop Automations Don't Subscribe So Casually Stockholm poised to become leading European geospatial intel player NVIDIA Vera CPU Benchmarks: Olympus Cores Delivering The Best Performance Ever Seen On ARM C64 BASIC: Game Map Overhead “Camera View” Scientists say they’ve reversed brain aging with a simple nasal spray Dropbox CEO Drew Houston to step down after 19 years at helm of cloud storage pioneer AWS Fired the One Employee Who Gave a Damn Spain blocks prediction markets Polymarket, Kalshi over lack of gambling licence Outsourcing plus LocalAI will soon become more economical vs. Frontier labs EAGLE 3.1: Advancing Speculative Decoding Through Collaboration Between the EAGLE Team, vLLM, and TorchSpec Netherlands blocks US takeover of vital digital supplier GitHub Status Ferrari shares fall after launch of first EV as Jony Ive design proves divisive Incident with Actions and Pages Modern Blu-ray drives can now rip GameCube, Wii, and Xbox 360 games to PC — third-party OmniDrive firmware unlocks game rips from physical media on select players China vs Taiwan: The Geography of an Unfinished War – The Jerusalem Strategic Tribune Daily links from Cory Doctorow Raft Consensus with a Minority of Nodes I bypassed AWS API Gateway auth with a trailing slash. Got $12K bounty. Uber president says AI spending is getting ‘harder to justify’ Exposing Critical Vulnerabilities in CBSE’s On-Screen Marking Portal: From Authentication Bypass to Full Account Takeover — ni5arga A portentous reunion BadHost - CVE-2026-48710 Starlette Host-Header Auth Bypass A reality check on the AI jobs hysteria Mind Your Tone: Investigating How Prompt Politeness Affects LLM Accuracy (short paper) DynIP — Dynamic DNS that actually works Ask HN: Is anyone working at least 4 hours daily on an Apple Vision Pro? GitHub - andreoliwa/logseq-doctor: Heal your Markdown files: convert to outline, list tasks and more tools to come Ask HN: Pregunta para los devs hispanohablantes Language Models Need Sleep Motorola phones have started hijacking the Amazon app to insert affiliate codes [Video] Earthion: A New Mega Drive-Style Shoot-Em-Up Why The Smart Home Bubble Popped GitHub - redraw/rapel: chunked resumable downloads in unstable networks JSX.lol Sonny Rollins, Jazz’s Saxophone Colossus and Greatest Improvisor, Dead at 95 Encrypt Files in Your Browser — Secvant Vault | AES-256 Designing for and Against the Manufactured Normalcy Field TP–7 Notes on Pope Leo XIV’s encyclical on AI About the security content of macOS Tahoe 26.5 - Apple Support Nobody Cracks Open a Programming Book Anymore · unix.foo Chatbot Has a Long Memory. That Isn't Always a Good Thing What is a Direct Attach Copper (DAC) Cable? I Made 6 Frontier AIs Take the MBTI 600 Times. They All Came Back INTJ. Market Outlook: Canada losing top talent as workers head to the U.S. How Shamir's Secret Sharing Works Overview — Agentic Patterns — Veso Research Taking a walk may lead to more creativity than sitting, study finds (2014) Extremely simple internet radio controlled via IRC I'm done. I'm f***ing done [video] Show HN: OpenBrief – Local-first video downloader/summarizer Microsoft Copilot Cowork Exfiltrates Files It’s finally here: meet the Ferrari Luce, Maranello’s first ever fully electric car GitHub - ghetea-patrick/riscrithm: Riscrithm is a lightweight, low-boilerplate macro-assembly dialect that compiles straight down to pure, human-readable RISC-V assembly. It bridges the gap between the expressive syntax of high-level languages and the raw, deterministic hardware execution of bare-metal computing. Jony Ive's Ferrari A few interesting modern pixel fonts – Unsung
GitHub - WilliamSmithEdward/xlide_vscode: Excel VBA integration for VS Code - Tree View / Full Direct VBA Read+Write / LiveShare Compatible / Direct Agentic AI Integrations
sts153 · 2026-05-27 · via Hacker News: Front Page

Edit Excel VBA code directly in VS Code. Browse modules in a sidebar tree, edit with syntax highlighting and symbol navigation (Go to Definition, Find All References, Rename Symbol), save changes back to the .xlsm file with Ctrl+S, and expose every operation to GitHub Copilot via the Language Model API.

Sponsor WilliamSmithEdward


Requirements

  • VS Code 1.95+
  • Python 3.10+ -- the VBA read/write backend runs as a child process
  • Python packages: pyOpenVBA >= 3.0.1, openpyxl >= 3.1.0

No COM automation, no Office installation, no win32com -- works on Windows, macOS, Linux, and remote containers.


Development setup

git clone https://github.com/WilliamSmithEdward/xlide_vscode.git
cd xlide_vscode

# TypeScript side
npm install
npm run compile        # type-check + esbuild bundle -> out/extension.js

# Python side (optional venv)
python -m venv .venv
.venv\Scripts\activate   # or: source .venv/bin/activate
pip install -r python/requirements.txt

Press F5 in VS Code to launch an Extension Development Host with the extension loaded and the watch compiler running.


Architecture

xlide_vscode/
  src/
    extension.ts            # activate() -- wires everything together
    pythonBridge.ts         # JSON-RPC 2.0 client over child_process stdio
    xlideFileSystem.ts      # xlide-vba:// virtual FileSystemProvider
    xlsmExplorer.ts         # Sidebar TreeDataProvider
    commands.ts             # VS Code command registrations
    agentTools.ts           # vscode.lm.registerTool() for Copilot
    moduleDump.ts           # Shared export-to-folder logic (UI + AI lane)
    vbaSymbolIndex.ts       # In-memory cross-module symbol index
    vbaLanguageProviders.ts # DocumentSymbol / Definition / References / Rename
  python/
    server.py               # JSON-RPC 2.0 server (stdin/stdout, newline-delimited)
    xlide/
      vba_io.py             # pyOpenVBA wrappers -- listModules, readModule, writeModule
      excel_io.py           # openpyxl wrappers -- readCells, writeCells
  syntaxes/
    vba.tmLanguage.json     # TextMate grammar (MS-VBAL spec-accurate)
  language-configuration/
    vba-language-configuration.json   # Brackets, indent rules, folding
  walkthrough/              # Markdown content for VS Code Getting Started tab
  docs/
    architecture.md         # Full architecture reference

Key design decisions

Decision Rationale
Long-lived Python process Amortises ~200 ms Python startup across all requests
FileSystemProvider over TextDocumentContentProvider Read/write virtual FS -- Ctrl+S triggers writeFile with no custom save command
Virtual URI scheme xlide-vba:// Decouples workbook path + module name from the editor's file concept
Shared moduleDump.ts Export logic is single-source-of-truth for both UI commands and Copilot agent tools
No COM / no Office Portability -- pyOpenVBA reads the OVBA binary format directly
Confirmation on write tools Prevents AI agents from silently mutating production workbooks

JSON-RPC methods (Python bridge)

Method Params Returns
listModules { path } [{ name, type }]
listSubs { path, module } [{ name, kind, line }]
readModule { path, module } { source }
writeModule { path, module, source } {}
renameModule { path, module, newName } {}
deleteModule { path, module } {}
readCells { path, sheet, range } { values }
writeCells { path, sheet, startCell, data } {}

VBA language ID

Registered as vba in package.json with extensions .bas, .cls, .frm. The TextMate grammar in syntaxes/vba.tmLanguage.json is scoped to source.vba and covers all reserved identifiers from MS-VBAL v20250520 (section 3.3.5.2: statement-keywords, marker-keywords, operator-identifiers, reserved-names, special-forms, reserved-type-identifiers, literal-identifiers, def-type directives, and implementation-reserved identifiers).


Build commands

Command Purpose
npm run compile Type-check + dev bundle
npm run watch Incremental type-check + esbuild watch
npm run package Production bundle (minified)
vsce package --no-dependencies Build .vsix for distribution

Copilot agent tools

Tool name Reference Reads/Writes Confirm
xlide_listModules #xlideListModules R No
xlide_listSubs #xlideListSubs R No
xlide_readModule #xlideReadModule R No
xlide_writeModule #xlideWriteModule W Yes
xlide_readCells #xlideReadCells R No
xlide_writeCells #xlideWriteCells W Yes
xlide_exportModules #xlideExportModules W Yes
xlide_configureExportMode #xlideConfigureExportMode W Yes

Per-workbook export config

Stored beside each workbook as <workbookname>.extension.repo.json:

{
  "exportFolder": "C:/absolute/path/to/export",
  "exportMode": "trueUp",
  "managedFiles": ["Module1.bas", "Sheet1.cls"]
}

trueUp (default) -- replace existing, add new, delete stale files tracked in managedFiles. replaceExistingOnly -- only replaces files already on disk.


Live Share

XLIDE VBA browsing for Live Share guests is currently not supported. Microsoft's Live Share platform restricts the shared-service RPC channel (vsls.shareService) to extensions on a curated first-party allowlist, so third-party extensions like XLIDE cannot proxy VBA read/write calls from a guest to the host. The XLIDE Explorer therefore returns an empty tree for guests and shows an informational welcome view.

What still works in a Live Share session:

Role XLIDE behaviour
Host Full local VBA editing -- open, edit, save .xlsm/.xlsb/.xlam modules exactly as if no session were active.
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.
Guest without XLIDE installed No action needed -- XLIDE is host-only. Joining a session does not require the extension.

Related upstream issue: microsoft/live-share#4877 (third-party shareService allowlist, closed as Not Planned).


Further reading