A collection of productivity tools for Oracle CPQ developers — including BML code snippets, formatter, syntax highlighting, documentation explorer, built-in themes, inline code quality validation, and inline hover help — all in one extension.
✨ Features
🚀 Snippets for BML functions
- Covers core functions (
json, dictionary, date, string, etc.)
- Quick code patterns for control structures (
if/elif, loops)
🔍 BML Docs Explorer (Sidebar)
- Searchable list of functions with signatures + descriptions + examples
- 📋 Copy or ➕ Insert snippets directly into the editor
- Organized by category for faster lookup
🧹 Formatter for .bml code
- Auto-indents multi-line snippets with your VS Code indentation settings
- Cleans up inconsistent spacing for readable, production-ready BML
🖱️ Hover Help
- Hover over a BML function → see signature and description instantly
- Eliminates constant context-switching to Oracle docs
✅ Inline Code Quality Validation
- Provides a SonarLint-like experience for Oracle CPQ BML language and surfaces common code-quality issues inline as diagnostics.
- Detects and warns/errors on a range of issues including:
- Unused variables (Information)
- Empty
{ ... } blocks (Information)
- Missing semicolons at statement end (Error)
- Excessive nested loop depth (>2) (Warning)
- Variable naming convention violations (arrays/dicts/records/booleans) (Warning)
- Multiple statements on a single line (Error)
print statements not wrapped in if (debug) guards (Hint)
- Single-argument functions used without parentheses (Error)
- Very long statements (>200 chars) (Warning)
- Highlights and marks code appearing after return or throwError statements (Warning)
🎨 Built-in Color Themes
- Includes popular dark and light themes (Monokai, Nord, GitHub Dark Dimmed, Notepad++-like, etc.)
- Optimized for CPQ developers who spend all day in BML
🖍️ Syntax highlighting for .bml files (based on Java grammar)
📦 Works in .bml (recommended), .txt, .c, .java files (so you can draft anywhere)
📽 Demo
✂️ Code Snippets
Insert ready-to-use BML snippets for functions, arrays, dates, JSON, and more.
✅ Inline Code Quality Validation
Provides a SonarLint-like experience for Oracle CPQ BML language.
📄 Hover Help
Get instant documentation and function signature while hovering.
Clean and properly indented BML code with one command.
Browse, search, copy, and insert BML snippets directly from the sidebar.
🔮 Signature Help
Inline function parameter hints while coding.
📂 Use in Plaintext Files
Use BML snippets and features inside plain text files.
🎨 Themes
Switch between built-in dark/light themes for better readability.
🚀 Usage
- Create a
.bml file.
- Use snippets via autocomplete (
bml-json, bml-urldata-get, etc.).
- Format your code with
Shift+Alt+F (or right-click → Format Document).
- Open the CPQ Docs Explorer sidebar (from Activity Bar) to search snippets.
- 📋 Copy snippet → copies to clipboard
- ➕ Insert snippet → inserts at cursor, respecting indentation
- Hover on a BML function → see signature + description instantly.
⚙️ Commands & Settings
Format Document → formats .bml code with CPQ-aware rules.
Developer Tools for CPQ: Open Docs Explorer → open sidebar manually.
- Uses your VS Code settings for indentation (tabs vs spaces).
🛠️ Installation
- Open Visual Studio Code.
- Click on the Extensions icon in the Activity Bar (or press
Ctrl+Shift+X).
- In the search box, type Developer Tools for CPQ.
- Locate the extension in the results list.
- Click Install.
- Reload VS Code if prompted.
You’re ready to start using snippets, formatting, hover help, docs explorer, and themes 🚀.
Have suggestions or found a bug? → Email me or open an issue.