* Links welcome.htm in the package details for all project types
* Uses v17 project file format for new lexical model projects
* Nit: changes shortcut key for 'supported languages' from 'l' to 's'
to fix conflict with 'full copyright'.
Fixes: #13135
* Add unit test to verify the format of message detail strings
(max line length of 80 chars)
* Add unit test to verify non-null, non-empty message strings
* Tidy up a number of messages (to pass unit tests)
* Add message details for all kmw compiler messages
* Add a clickable link for the TIKE message window for each message
so that explanations and further message details are more accessible
to authors (`kmc message` is already available for command-line users)
* Fixes a number of minor issues with the messages window in TIKE,
mostly relating to when popup menu commands are enabled and how
messages are selected.
Fixes: #13134
Keyman Core expects US English virtual key codes, so make sure that the
debuggers translate the key codes they receive from Windows to the hard-
coded values for US English, as defined in ScanCodeMap.
Fixes: #13052
Adds a new set of 'New Project' dialogs to allow authors to easily copy
keyboards from local filesystem, Keyman Cloud (including a keyboard
search web page, implemented in keymanapp/keyman.com#536), and
directly from a GitHub URL. Adds related documentation.
Fixes: #13073
Depends-on: keymanapp/keyman.com#536
Adds 'verbose' and 'debug' log levels and corresponding error severity
levels. This means the internal error severity values have changed to
match - 'info' is now 2 instead of 0.
Fixes: #12975
Adds a new design-time font property for when `&displayMap` is in use in
a keyboard, so that the web debugger can use that font as appropriate.
If the keyboard does not have a `&displayMap` store, then the DisplayMap
font property is disabled, and the web debugger will use the OSK Font
instead, as previously was the case.
Note that the font for `&displayMap` has to be installed on the keyboard
author's system in order for it to be served up.
Fixes: #12123
When pasting into the wordlist grid, the editor will now check if the
clipboard text contains newlines or tabs, and if so, will paste the
text as new rows in the wordlist (with a prompt), rather than pasting
the whole text into the current cell.
If the clipboard text does not contain NL or TAB then the default
in-cell editor paste handling will run.
Fixes: #12517
Adds support for using RichEdit 4.1, and sets the richedit control into
the correct mode for rendering arbitrary Unicode correctly. Removes
some unnecessary per-character refresh for improved performance.
Fixes: #12454
RichEdit allows text selection one character past end-of-string, so we
need to cater for that as well in passing text ranges to the character
grid.
Fixes: #12454
The Windows Clipboard Win+V key event emits Ctrl+V after rewriting the
clipboard, in order to trigger a Paste action in the active app.
However, the Ctrl key event has been given a scan code value of zero by
Windows Clipboard, which was confusing the Keyman Developer Debugger,
causing it to process Ctrl as an unrecognized key rather than as a
modifier, and leading to an unsupported state.
This is a fix for the immediate issue. We could do more to improve
resilience such that `km_core_state_debug_items()` can never end up with
this exception when `km_core_process_event()` has returned true.
Fixes: #11978
Fixes: KEYMAN-DEVELOPER-20W
When a project is loaded, the IDE parses .kps files to retrieve metadata
for viewing. If the .kps file was malformed, then the parser could fail,
blocking the load of the project. Instead, we just ignore the errors and
show no metadata. Note that the Package Editor already loads the file
successfully and reports on the problem, allowing the user to fix it.
Fixes: #11992
Fixes: KEYMAN-DEVELOPER-23W