Ensure that each editor theme is only created once (#17095)

GitOrigin-RevId: 3551e02fab44fae7fcab5cb12886d45969e3990f
This commit is contained in:
Alf Eaton
2024-02-16 09:05:03 +00:00
committed by Copybot
parent aa17e1e7e1
commit 3f29aa2195
15 changed files with 679 additions and 647 deletions
@@ -31,19 +31,7 @@ type Options = { spellCheckLanguage?: string }
*/
export const spelling = ({ spellCheckLanguage }: Options) => {
return [
EditorView.baseTheme({
'.ol-cm-spelling-error': {
textDecorationColor: 'red',
textDecorationLine: 'underline',
textDecorationStyle: 'dotted',
textDecorationThickness: '2px',
textDecorationSkipInk: 'none',
textUnderlineOffset: '0.2em',
},
'.cm-tooltip.ol-cm-spelling-context-menu-tooltip': {
borderWidth: '0',
},
}),
spellingTheme,
parserWatcher,
spellCheckLanguageConf.of(spellCheckLanguageFacet.of(spellCheckLanguage)),
spellCheckField,
@@ -54,6 +42,20 @@ export const spelling = ({ spellCheckLanguage }: Options) => {
]
}
const spellingTheme = EditorView.baseTheme({
'.ol-cm-spelling-error': {
textDecorationColor: 'red',
textDecorationLine: 'underline',
textDecorationStyle: 'dotted',
textDecorationThickness: '2px',
textDecorationSkipInk: 'none',
textUnderlineOffset: '0.2em',
},
'.cm-tooltip.ol-cm-spelling-context-menu-tooltip': {
borderWidth: '0',
},
})
const spellCheckField = StateField.define<SpellChecker | null>({
create(state) {
const [spellCheckLanguage] = state.facet(spellCheckLanguageFacet)