Add lyrics spellcheck feature (Tools > Check lyrics spelling...) #31220
+1,509
−0
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.
Resolves: Feature request for lyrics spellchecking in MuseScore
Summary
This PR adds a new Tools > Check lyrics spelling... feature that allows users to scan all lyrics in their score for spelling errors using the Hunspell spell checking library.
Problem Solved
Lyrics entry in MuseScore is error-prone. The current workaround requires:
This is slow and brittle, especially on large scores or multi-verse choral works.
Feature Overview
Architecture
This is an end-to-end feature spanning:
HunspellSpellCheckerwith platform-specific dictionary discoveryLyricsSpellCheckServicewith word reconstruction from syllablesLyricsSpellingIssuesModel(QAbstractListModel)Files Added (22 files, ~1,500 lines)
ispellchecker.h,ilyricsspellcheckservice.hhunspellspellchecker.cpp/.h,lyricsspellcheckservice.cpp/.h,stubspellchecker.hLyricsSpellingIssuesDialog.qml,lyricsspellingissuesmodel.cpp/.hSetupHunspell.cmake, CMakeLists changeslyricsspellcheck_tests.cpp,spellcheckermock.hTest Plan
cmake -DMUE_COMPILE_USE_SYSTEM_HUNSPELL=ON)Prerequisites for Testing
macOS:
brew install hunspellLinux:
sudo apt install hunspell libhunspell-dev hunspell-en-usWindows: Install hunspell and place dictionaries in
%APPDATA%/hunspell/Checklist