Excel Lambda Tools is a production-ready Visual Studio Code extension foundation for developing and maintaining Microsoft Excel LAMBDA libraries stored in workbook Name Manager.
Project Overview
The extension transforms VS Code into a dedicated environment for Excel LAMBDA engineering, starting with extraction and synchronization workflows.
Features
- Extract LAMBDA Functions from
.xls, .xlsx, and .xlsm files.
- Export each detected function to an individual
.lambda file inside a workbook-scoped folder:
lambdas/<workbook_name>__<ext>/
- Exports Name Manager description metadata when available (
Description: field in .lambda).
- Exports Name Manager scope metadata (
Scope: field, e.g. Workbook or Worksheet:<SheetName>).
- Sync validates
Scope against the target workbook and blocks (single sync) or skips (sync all) functions whose worksheet scope does not exist.
- Sync architecture ready for bidirectional reconciliation:
- create
- update
- delete
- conflict detection
- Modular parser layer designed for future evolution (parameters, LET variables, dependencies, docs, comments).
Installation
From source
- Clone the repository.
- Install dependencies:
npm install
- Build:
npm run build
- Press
F5 in VS Code to launch the Extension Development Host.
Development
Scripts
npm run build: Production bundle with esbuild.
npm run watch: Rebuild on file changes.
npm run lint: ESLint checks with TypeScript rules.
npm run test: Unit tests with Vitest.
npm run package: Builds and generates .vsix package.
Localization Settings
You can configure localized preview generation in .lambda files:
excelLambda.localization.locale
- Default:
pt-BR
- Supported starter maps:
pt-BR, en-US, es-ES, fr-FR, de-DE
excelLambda.localization.customMapFilePath
- Optional path to a custom JSON map file
- Can be absolute or workspace-relative
Template file available at:
media/localization/custom-map.template.json
Expected JSON schema:
{
"functions": {
"XLOOKUP": "PROCX"
},
"booleans": {
"TRUE": "VERDADEIRO",
"FALSE": "FALSO"
}
}
Custom map entries are merged on top of the selected locale map.
Workspace Commands
Excel Lambda Tools: Extract LAMBDA Functions
Excel Lambda Tools: Sync [name_function] with workbook
Excel Lambda Tools: Sync ALL LAMBDA functions
Right-click an .xls, .xlsx, or .xlsm file and use:
Excel Lambda Tools -> Extract LAMBDA Functions
Excel Lambda Tools -> Sync ALL LAMBDA functions
Right-click a .lambda file and use:
Excel Lambda Tools -> Sync [name_function] with workbook
Build
npm run build
Bundled output is generated at dist/extension.js.
Debug
- Open this project in VS Code.
- Run
npm install and npm run build.
- Press
F5.
- In the Extension Development Host, right-click a workbook and run extension commands.
Packaging
npm run package
This generates a .vsix artifact using @vscode/vsce.
Publishing
- Create a publisher in the Visual Studio Marketplace.
- Update
publisher in package.json.
- Authenticate with a PAT:
npx vsce login <publisher>
- Publish:
npx vsce publish
Architecture Summary
src/commands: command orchestration and UI interaction.
src/excel: workbook access using SheetJS.
src/parser: extensible formula parsing contracts and implementation.
src/models: strongly typed domain model.
src/services: business logic (extract, write, sync, dependency analysis).
src/views: view/output abstractions for sync preview.
src/utils: shared utility helpers.
test: unit test suite.
Roadmap Compatibility
The codebase is intentionally organized to support future capabilities without major refactoring:
- Import LAMBDA Functions
- Generate Documentation
- Compare Libraries
- Dependency Graph
- Tree View
- Symbol Navigation
- IntelliSense
- Markdown Export
- JSON Export
- Automatic Documentation
- Workspace Explorer
- Git integration
License
MIT
Author
- Daniel Becker Bighelini
- danielbighelini@gmail.com