diff --git a/packages/codemirror/codemirror.mjs b/packages/codemirror/codemirror.mjs index 4fe51ec9..77ed88d9 100644 --- a/packages/codemirror/codemirror.mjs +++ b/packages/codemirror/codemirror.mjs @@ -13,7 +13,7 @@ import { lineNumbers, drawSelection, } from '@codemirror/view'; -import { Pattern, repl } from '@strudel/core'; +import { repl, registerControl } from '@strudel/core'; import { Drawer, cleanupDraw } from '@strudel/draw'; import { isAutoCompletionEnabled } from './autocomplete.mjs'; import { isTooltipEnabled } from './tooltip.mjs'; @@ -354,3 +354,5 @@ function s4() { .toString(16) .substring(1); } + +export const markcss = registerControl('markcss'); diff --git a/packages/codemirror/highlight.mjs b/packages/codemirror/highlight.mjs index 2f8cb38d..d333986c 100644 --- a/packages/codemirror/highlight.mjs +++ b/packages/codemirror/highlight.mjs @@ -93,6 +93,7 @@ const miniLocationHighlights = EditorView.decorations.compute([miniLocations, vi if (haps.has(id)) { const hap = haps.get(id); const color = hap.value?.color ?? 'var(--foreground)'; + const style = hap.value?.markcss || `outline: solid 2px ${color}`; // Get explicit channels for color values /* const swatch = document.createElement('div'); @@ -114,7 +115,7 @@ const miniLocationHighlights = EditorView.decorations.compute([miniLocations, vi to, Decoration.mark({ // attributes: { style: `outline: solid 2px rgba(${channels.join(', ')})` }, - attributes: { style: `outline: solid 2px ${color}` }, + attributes: { style }, }), ); }