Frontmatter
| id | 8845 |
| title | Sync Monaco Editor Theme in Portal |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Jan 21, 2026, 11:39 AM |
| updatedAt | Jan 21, 2026, 12:08 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8845 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8727 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 21, 2026, 12:07 PM |
Sync Monaco Editor Theme in Portal
tobiu added parent issue #8727 on Jan 21, 2026, 11:40 AM

tobiu
Jan 21, 2026, 12:05 PM
Input from Gemini 3 Pro:
✦ I have implemented the automatic theme synchronization for the Monaco Editor wrapper.
Changes:
- New Config: Added
useThemeAwareness_(Boolean, defaulttrue) tosrc/component/wrapper/MonacoEditor.mjs. This allows developers to opt-out of automatic theme mapping if they need a specific, fixed editor theme regardless of the application theme.- Theme Mapping Logic: Implemented
afterSetTheme. It detects changes to the inheritedthemeconfig (propagated bycontainer.Base), maps it (dark->vs-dark,light->vs), and updates theeditorThemeconfig accordingly. This ensures both initial rendering and runtime switches are handled correctly.- Dynamic Toggling: Implemented
afterSetUseThemeAwarenessto immediately apply the current theme if the feature is enabled at runtime.This solution provides a "batteries-included" experience for the Portal App and all other Neo.mjs applications using this wrapper, while maintaining flexibility.
tobiu closed this issue on Jan 21, 2026, 12:07 PM
tobiu assigned to @tobiu on Jan 21, 2026, 12:08 PM
Update the Monaco Editor instances in the Portal App to match the selected Neo theme (Dark/Light).
Requirements:
neo-theme-neo-dark->vs-darkneo-theme-neo-light->vssrc/component/wrapper/MonacoEditor.mjs.afterSetThemeto update the internaleditorThemeconfig based on the new Neo theme.themepropagation inNeo.container.Base.