mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-22 12:11:27 -07:00
97 lines
3.1 KiB
TypeScript
97 lines
3.1 KiB
TypeScript
import { ResolvedConfig } from '../../types';
|
|
import { RuntimeOptionRegistryEntry } from './shared';
|
|
|
|
export function buildRuntimeOptionRegistry(
|
|
defaultConfig: ResolvedConfig,
|
|
): RuntimeOptionRegistryEntry[] {
|
|
return [
|
|
{
|
|
id: 'anki.autoUpdateNewCards',
|
|
path: 'ankiConnect.behavior.autoUpdateNewCards',
|
|
label: 'Auto Update New Cards',
|
|
scope: 'ankiConnect',
|
|
valueType: 'boolean',
|
|
allowedValues: [true, false],
|
|
defaultValue: defaultConfig.ankiConnect.behavior.autoUpdateNewCards,
|
|
requiresRestart: false,
|
|
formatValueForOsd: (value) => (value === true ? 'On' : 'Off'),
|
|
toAnkiPatch: (value) => ({
|
|
behavior: { autoUpdateNewCards: value === true },
|
|
}),
|
|
},
|
|
{
|
|
id: 'subtitle.annotation.nPlusOne',
|
|
path: 'ankiConnect.knownWords.highlightEnabled',
|
|
label: 'N+1 Annotation',
|
|
scope: 'subtitle',
|
|
valueType: 'boolean',
|
|
allowedValues: [true, false],
|
|
defaultValue: defaultConfig.ankiConnect.knownWords.highlightEnabled,
|
|
requiresRestart: false,
|
|
formatValueForOsd: (value) => (value === true ? 'On' : 'Off'),
|
|
toAnkiPatch: (value) => ({
|
|
knownWords: {
|
|
highlightEnabled: value === true,
|
|
},
|
|
}),
|
|
},
|
|
{
|
|
id: 'subtitle.annotation.jlpt',
|
|
path: 'subtitleStyle.enableJlpt',
|
|
label: 'JLPT Annotation',
|
|
scope: 'subtitle',
|
|
valueType: 'boolean',
|
|
allowedValues: [true, false],
|
|
defaultValue: defaultConfig.subtitleStyle.enableJlpt,
|
|
requiresRestart: false,
|
|
formatValueForOsd: (value) => (value === true ? 'On' : 'Off'),
|
|
toAnkiPatch: () => ({}),
|
|
},
|
|
{
|
|
id: 'subtitle.annotation.frequency',
|
|
path: 'subtitleStyle.frequencyDictionary.enabled',
|
|
label: 'Frequency Annotation',
|
|
scope: 'subtitle',
|
|
valueType: 'boolean',
|
|
allowedValues: [true, false],
|
|
defaultValue: defaultConfig.subtitleStyle.frequencyDictionary.enabled,
|
|
requiresRestart: false,
|
|
formatValueForOsd: (value) => (value === true ? 'On' : 'Off'),
|
|
toAnkiPatch: () => ({}),
|
|
},
|
|
{
|
|
id: 'anki.nPlusOneMatchMode',
|
|
path: 'ankiConnect.knownWords.matchMode',
|
|
label: 'Known Word Match Mode',
|
|
scope: 'ankiConnect',
|
|
valueType: 'enum',
|
|
allowedValues: ['headword', 'surface'],
|
|
defaultValue: defaultConfig.ankiConnect.knownWords.matchMode,
|
|
requiresRestart: false,
|
|
formatValueForOsd: (value) => String(value),
|
|
toAnkiPatch: (value) => ({
|
|
knownWords: {
|
|
matchMode: value === 'headword' || value === 'surface' ? value : 'headword',
|
|
},
|
|
}),
|
|
},
|
|
{
|
|
id: 'anki.kikuFieldGrouping',
|
|
path: 'ankiConnect.isKiku.fieldGrouping',
|
|
label: 'Kiku Field Grouping',
|
|
scope: 'ankiConnect',
|
|
valueType: 'enum',
|
|
allowedValues: ['auto', 'manual', 'disabled'],
|
|
defaultValue: 'disabled',
|
|
requiresRestart: false,
|
|
formatValueForOsd: (value) => String(value),
|
|
toAnkiPatch: (value) => ({
|
|
isKiku: {
|
|
fieldGrouping:
|
|
value === 'auto' || value === 'manual' || value === 'disabled' ? value : 'disabled',
|
|
},
|
|
}),
|
|
},
|
|
];
|
|
}
|