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.xlsmfiles. - Export each detected function to an individual
.lambdafile 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.WorkbookorWorksheet:<SheetName>). - Sync validates
Scopeagainst 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
F5in 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.vsixpackage.
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
- Default:
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 FunctionsExcel Lambda Tools: Sync [name_function] with workbookExcel Lambda Tools: Sync ALL LAMBDA functions
Explorer Menu
Right-click an .xls, .xlsx, or .xlsm file and use:
Excel Lambda Tools -> Extract LAMBDA FunctionsExcel 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 installandnpm 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
publisherinpackage.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
- [email protected]