Skip to content

feat: add code editor widget support to dialog SDK#43

Merged
pabloinigoblasco merged 1 commit into
developmentfrom
feat/dialog-code-editor
Apr 13, 2026
Merged

feat: add code editor widget support to dialog SDK#43
pabloinigoblasco merged 1 commit into
developmentfrom
feat/dialog-code-editor

Conversation

@pabloinigoblasco
Copy link
Copy Markdown
Collaborator

@pabloinigoblasco pabloinigoblasco commented Apr 10, 2026

Summary

  • Extends the Dialog SDK so plugins can embed an editable code area in their dialogs
  • A QPlainTextEdit configured via setCodeContent() / setCodeLanguage() enters "code editor" mode with Lua syntax highlighting out-of-the-box
  • Events fire via onCodeChanged() virtual on DialogPluginTyped
  • Read-only setPlainText usage is unchanged — the code editor path is opt-in via the new code_content key

Test plan

  • Build pj_plugins — no compile errors
  • A dialog with a QPlainTextEdit using setPlainText still works as before (read-only display)
  • A dialog with a QPlainTextEdit using setCodeContent("editor", "lua") shows Lua syntax highlighting and fires onCodeChanged on every keystroke

🤖 Generated with Claude Code

Extends the Dialog SDK with a QPlainTextEdit code editor mode:

Contents:
- WidgetData::setCodeContent() / setCodeLanguage() to configure a code editor
- WidgetDataView::codeContent() / codeLanguage() accessors on the host side
- DialogPluginTyped::onCodeChanged() virtual for typed event dispatch
- WidgetEvent::codeChanged() and WidgetEventBuilder::codeChanged() for the event layer
- LuaSyntaxHighlighter (lua_syntax_highlighter.hpp) applied automatically when language is "lua"
- widget_binding.cpp: QPlainTextEdit detects code_content key and enters editor mode, wiring textChanged to codeChanged events only when the language property is set
@pabloinigoblasco pabloinigoblasco merged commit c9cddeb into development Apr 13, 2026
2 checks passed
pabloinigoblasco added a commit that referenced this pull request Apr 13, 2026
Remove setCodeContent, setCodeLanguage, codeContent and codeLanguage
from this branch — they were accidentally included from the source
commit but belong to the code editor PR (#43), not the chart color PR.
pabloinigoblasco added a commit that referenced this pull request Apr 14, 2026
)

* feat(dialog-sdk): add per-series color and interactive chart legend

Extend ChartSeries with an optional color field (hex "#rrggbb") that
overrides the Qt Charts theme color for individual series. When set,
the ChartPreviewWidget applies a QPen with the specified color after
addSeries so the theme assignment does not win.

Add an interactive legend to ChartPreviewWidget: clicking a legend
marker toggles the corresponding series visibility (with faded label
when hidden). Define the matplotlib tab10 10-color palette for
consistent default colors across chart instances.

* fix: remove code editor methods that belong to a different PR

Remove setCodeContent, setCodeLanguage, codeContent and codeLanguage
from this branch — they were accidentally included from the source
commit but belong to the code editor PR (#43), not the chart color PR.
pabloinigoblasco added a commit that referenced this pull request Apr 15, 2026
Sync from GitHub development:
- PR #43: feat(dialog_sdk): add code editor widget support
- PR #46: refactor(manifest): enforce array type for encoding field
- PR #50: fix(dialog-sdk): wire buttonBox for QDialog roots

# Conflicts:
#	pj_plugins/dialog_protocol/include/pj_plugins/host/widget_event_builder.hpp
#	pj_plugins/dialog_protocol/include/pj_plugins/sdk/dialog_plugin_typed.hpp
#	pj_plugins/dialog_protocol/include/pj_plugins/sdk/widget_event.hpp
@pabloinigoblasco pabloinigoblasco deleted the feat/dialog-code-editor branch May 4, 2026 12:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant