🎯 The Problem
When your team moved from the custom NetBeans IDE to VS Code and Cursor, you lost the logical tree view that grouped files by structure, not by folder. Developers were left staring at thousands of raw files with no clear organisation.
✅ The Solution
Marble Studio X adds a permanent sidebar panel that automatically groups every file in your MARBLE project into a clean, four-level logical hierarchy — matching exactly what your team used in NetBeans.
🗂️ Tree Structure
🏗️ FNDBAS
│
├── 📋 Entities
│ └── 🔷 AurenaCmdDiagram
│ ├── 📄 AurenaCmdDiagram.entity
│ ├── 📄 AurenaCmdDiagram.plsql
│ ├── 📄 AurenaCmdDiagram.views
│ └── ⚙️ Generated Files
│ ├── 📄 AurenaCmdDiagram-Base.plsql
│ └── 📄 AurenaCmdDiagram.api
│
├── 🔧 Utilities
├── 🖥️ Client
├── 💼 Business Object
├── 📊 BI
├── 📑 Reports
├── 🗄️ Database Scripts
├── ☕ Java Utilities
└── 🔄 Online Upgrade Scripts
Component → Type Group → Logical Unit → Files
✨ Features
🔍 Smart File Categorisation
Files are classified automatically — no setup required.
| Pass |
How It Works |
Example |
| 1 |
File extension mapped directly to a type group |
.bo → Business Object · .rdf → Reports |
| 2 |
First 2 KB read for metadata headers |
-- Logical unit: Foo · -- Component: FNDBAS |
| ↩️ |
Unnamed files inherit type from a same-named sibling |
Foo.plsql + Foo.utility → placed in Utilities |
🎯 Data Source Quick Pick
Right-click any file → Data Source
All files in the same Logical Unit appear in a Quick Pick panel — grouped into Source Files and Generated Files, each with type icons. Click any entry to jump straight to it.
🖱️ Drag-and-Drop Reordering
Drag Component or Logical Unit nodes to arrange the tree exactly how your team prefers. The order is saved to a JSON file in Dev_studio/ — commit it to source control and every developer automatically gets the same layout.
✏️ Manual Override
For files the scanner can't identify:
- Right-click → Assign Component & Type… → choose Component, Type Group, and Logical Unit
- Right-click an overridden file → Reset to Auto-Detected to undo
Overrides live in a shared JSON config — commit it so the whole team benefits.
♻️ Auto-Refresh
The tree rebuilds automatically on every file save. Use the Refresh button in the panel header to trigger it manually at any time.
📦 Installation
You can install Marble Studio X in either Cursor or VS Code using the Extensions tab (Marketplace), or by installing the .vsix file manually.
Option A — Marketplace / Extensions tab (recommended)
- Open Extensions:
- Windows/Linux:
Ctrl + Shift + X
- macOS:
Cmd + Shift + X
- In the search box, type:
Marble Studio X
- Select Marble Studio X (publisher: VisaDev)
- Click Install
You can also open the extension listing from the Marketplace/registry page in your browser and install from there in VS Code/Cursor.
Note: The Extensions page action Set Color Theme only lists themes contributed by this extension (for Marble Studio X, that is Marble Dark).
To go back, use Revert Previous Theme from the Marble view header, or pick any theme from Preferences: Color Theme.
Option B — Install from VSIX (manual / offline)
- Open Command Palette:
- Windows/Linux:
Ctrl + Shift + P
- macOS:
Cmd + Shift + P
- Run: Extensions: Install from VSIX...
- Select the latest package (currently:
marble-studio-x-2.0.14.vsix)
- Reload window if prompted
After install
- Open your MARBLE project root (must contain both
workspace/ and build/)
- Click the Marble Studio X icon in the Activity Bar
- (Optional) Use Set Marble Dark Theme from the Marble view header
- Theme switching is optional; install does not force Marble Dark
🛠️ Commands
| Command |
Trigger |
Description |
| Refresh |
Panel header button |
Re-scan the project and rebuild the tree |
| Collapse All |
Panel header button |
Collapse all expanded nodes |
| Data Source |
Right-click → file node |
Show all related files for this Logical Unit |
| Assign Component & Type… |
Right-click → file node |
Manually classify an unrecognised file |
| Reset to Auto-Detected |
Right-click → overridden file |
Remove a manual override |
| Hide Other Components |
Right-click → component node |
Show only the selected component (keeps Uncategorised visible) |
| Show All Components |
Tree header / context menu |
Clear component filter and show full tree |
| Set Marble Dark Theme |
Tree header button |
Open theme actions (Set Marble Dark / Revert Previous Theme) |
| Revert Previous Theme |
Tree header button |
Return to your previous color theme (or fallback default) |
⌨️ Shortcuts
Default VS Code / Cursor shortcuts used with Marble Studio X
| Action |
Windows / Linux |
macOS |
| Open Command Palette |
Ctrl + Shift + P |
Cmd + Shift + P |
| Open Extensions view |
Ctrl + Shift + X |
Cmd + Shift + X |
| Open Color Theme picker |
Ctrl + K, then Ctrl + T |
Cmd + K, then Cmd + T |
| Reload window |
Command Palette → Developer: Reload Window |
Command Palette → Developer: Reload Window |
Marble command IDs (for Command Palette / custom keys)
| Command |
Command ID |
| Refresh |
marbleTree.refresh |
| Collapse All |
marbleTree.collapseAll |
| Reveal Current File in Tree |
marbleTree.revealCurrentFile |
| Data Source |
marbleTree.showDataSource |
| Assign Component & Type… |
marbleTree.assignFile |
| Reset to Auto-Detected |
marbleTree.clearOverride |
| Hide Other Components |
marbleTree.hideOtherComponents |
| Show All Components |
marbleTree.showAllComponents |
| Set Marble Dark Theme |
marbleTheme.apply |
| Revert Previous Theme |
marbleTheme.revert |
⚙️ Requirements -IMPORTANT !!!
- VS Code 1.74+ or any recent version of Cursor
- Open the project root — the folder that directly contains
workspace/ and build/
📋 Changelog
2.0.14 — Latest
- Added first-run cache consent dialog (OK/Cancel) with clear explanation of why/where/what is cached
- Cache now stores outside project files in extension global storage under a dedicated
MarbleStudioXCache folder
- Improved cache key stability with normalized workspace paths and descriptive cache file names
- Added single-flight scan queue + save debounce to prevent overlapping scans and "processing forever" behavior
2.0.13
- Theme switching remains optional and non-forced on install
- Revert Previous Theme is now always available when Marble Dark is active
- Added fallback revert path to
Default Dark Modern if no previous theme was stored
- Automatically remembers the latest non-Marble theme for smoother revert behavior
2.0.12
- Fixed Revert Previous Theme to restore theme using the original settings scope (global/workspace/workspace-folder)
- Added compatibility fallback for previously stored theme value format
- Improved fallback detection for default theme when no explicit
workbench.colorTheme is configured
2.0.11
- Added theme actions in Marble view header: Set Marble Dark Theme and Revert Previous Theme
- Revert now restores the last non-Marble theme selected before switching
2.0.10
- Expanded grammar coverage for MARBLE extensions including
.upg and related script files (.ins, .cre, .ddl, .dml, .cln, .xet, etc.)
- Richer syntax highlighting scopes (HTTP methods/status, bind variables, directives, annotations, operators, properties)
- Enhanced
Marble Dark theme with additional token/semantic colors and improved contrast
2.0.9
- Added built-in Marble Dark color theme
- Added TextMate syntax highlighting for MARBLE SQL, Client, and API-style files
- Registered language grammars directly in extension contributions
2.0.8
- Strengthened cache handling with workspace-specific cache files
- Added safer cache storage fallback and legacy cache compatibility
- Manual refresh path now performs a clearer full refresh flow
2.0.7
- Reliability updates for component filtering command argument handling
- Improvements around hide/show component action consistency
2.0.6
- Packaging/version refresh and installable VSIX alignment updates
2.0.5
- Added Hide Other Components on component right-click
- Added Show All Components in tree header/context when filtered
- Components header now displays filter state/count
2.0.4
- Added Marketplace icon support in extension manifest
- Added MIT license metadata and bundled LICENSE in package
2.0.3
- Instant tree load from VS Code extension storage cache on every activation
- Background rescan silently updates tree if files changed since last session
- Manual Refresh always forces a clean scan and clears the cache
- Overrides and drag-and-drop reorder also clear cache so changes are always fresh
2.0.2
- Custom M-tree hexagon Activity Bar icon
- Fixed
npx vsce spawn issue — packaging now uses direct node call
2.0.1
- Fixed categorisation of generated
-Base.client, -Base.projection, -Base.plsvc, -Base.bo files
.plsql source files belonging to Projection LUs now correctly inherit the Client type group
- Professional ThemeIcons across all node and file types
- Data Source right-click command with grouped Quick Pick
- Drag-and-drop node reordering with persistent shared config
- Manual override command with shared JSON storage