Conjugation and declension #590
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contributor checklist
xcodebuildandswiftlint --strictcommands as directed in the testing section of the contributing guideDescription
This PR migrates the iOS keyboard's conjugation and declension systems from hardcoded implementations to a dynamic, JSON contract-based architecture.
Added:
Keyboards/KeyboardsBase/DynamicConjugationViewController.swift - Dynamic view controller that handles both conjugation and declension navigation
Keyboards/DataManager/ConjugationManager.swift - Parses conjugation JSON contracts and builds navigation structures
Keyboards/DataManager/DeclensionManager.swift - Parses declension JSON contracts and builds navigation structures
Keyboards/KeyboardsBase/NavigationStructure.swift - Defines NavigationNode and NavigationLevel structures for recursive navigation
Keyboards/DataContracts/de_declensions.json - German declension contract
Keyboards/DataContracts/ru_declensions.json - Russian declension contract
Updated Keyboards/KeyboardsBase/KeyboardViewController.swift to use new dynamic system, removed old hardcoded conjugation/declension state
Removed stale variables and functions from Keyboards/KeyboardsBase/ScribeFunctionality/Conjugate.swift
Related issue