Commit graph

1110 commits

Author SHA1 Message Date
Marc Durdin
cbe8810a6d fix(developer): handle exception on unpaired surrogate
Fixes #6480.
2022-04-07 10:47:13 +10:00
Marc Durdin
4c60319266
Merge branch 'beta' into feat/developer/6462-duplicate-store-group-definitions 2022-04-04 19:35:01 +10:00
Marc Durdin
5a8064ef4e
Merge branch 'beta' into fix/developer/5472-kmconvert-check-parameters 2022-04-04 19:32:42 +10:00
Marc Durdin
10ec7fbc2f
Merge pull request #6466 from keymanapp/fix/developer/2748-icon-editor-font-color
fix(developer): icon editor font color now follows fgcolor
2022-04-04 19:30:04 +10:00
Marc Durdin
551dbe4cdf
Merge pull request #6465 from keymanapp/feat/developer/2749-icon-editor-clear-all-button
feat(developer): add Clear All button to icon editor
2022-04-04 19:29:54 +10:00
Marc Durdin
348036c703
Merge pull request #6445 from keymanapp/feat/developer/194-check-filename-case
feat(developer): check filename case consistency when compiling keyboard
2022-04-04 19:29:22 +10:00
Marc Durdin
7f914c9e82
Merge pull request #6440 from keymanapp/feat/developer/355-unreachable-code
feat(developer): hint on unreachable code
2022-04-04 19:29:13 +10:00
Marc Durdin
ce67954d20 fix(developer): icon editor font color now follows fgcolor
Fixes #2748.

Note that transparent text is not supported for ClearType or antialiased
modes.
2022-04-04 10:24:14 +10:00
Marc Durdin
e9e5d285af feat(developer): add Clear All button to icon editor
Fixes #2749.

Adds a Clear All button which does the same as Edit/Clear Selection.

At the same time, fixes the Clear code for transparent background
colours; previously, clear all with transparent background gave a black
fill.
2022-04-04 09:29:31 +10:00
Marc Durdin
55561b3d34 fix(developer): improves More Help link for icon tool
Fixes #2750.

This tweaks the More Help link to open the correct part of the Keyboard
Editor help page. Goes together with keymanapp/help.keyman.com#526.

The context help data needs a consolidated rewrite. This does not
attempt to touch that, nor does it attempt to add more contextual help
links for any other part of the Developer IDE. That is work for another
day...
2022-04-04 09:25:43 +10:00
Marc Durdin
3e6f416bfa feat(developer): check for duplicate store/group names
Fixes #6462.

The compiler will now produce an error if a store() or group() name is
re-used, as this is invalid.
2022-04-04 08:08:28 +10:00
Marc Durdin
10b81d56ba
Update windows/src/developer/kmcmpdll/Compiler.rc
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2022-04-03 06:39:48 +10:00
Marc Durdin
5dcd95da41
Merge pull request #6449 from keymanapp/feat/developer/5063-multiple-virtual-keys
feat(developer): keep Virtual Key Identifier dialog open on Insert
2022-04-01 07:32:53 +11:00
Marc Durdin
674ff3a711 fix(developer): update kmconvert command line call 2022-03-31 12:11:47 +11:00
Marc Durdin
34e2d7008c fix(developer): validate kmconvert parameters
Checks common error scenarios in kmconvert command line parameters.
2022-03-31 11:38:03 +11:00
Marc Durdin
0696587cc8 refactor(developer): KMConvertParameters use private setters
First part of #5472.

Refactoring with no behavioural change to make it easier to validate
parameters.
2022-03-31 10:09:53 +11:00
Marc Durdin
62e2f51887 feat(developer): keep Virtual Key Identifier dialog open on Insert
Fixes #5063.

It can be useful to be able to insert multiple keys into the active
keyboard source file. With this tweak, the dialog no longer closes with
the Insert button, only with the Close button.
2022-03-31 06:24:59 +11:00
Marc Durdin
a639eaa946 feat(developer): promote 'info' messages to 'hint'
There was confusion in the compiler between INFO and HINT type messages.
The problem is that INFO messages will be suppressed by -s/-ss in
kmcomp, but we actually still want HINT messages to be emitted. So I
have gone ahead and renamed CERR_INFO to CERR_HINT and updated all the
places.

This was necessary in order for the kmcomp e2e test 194 to pass.
2022-03-30 17:04:48 +11:00
Marc Durdin
d0a26ae62f feat(developer): check filename case consistency when compiling keyboard
Fixes #194.

Adds a check for all the various file types that may be referenced by a
.kmn file to ensure that the case of the reference matches the case in
the filesystem, to ensure that files are transportable across to
case-sensitive filesystems.

The output is provided as a Hint (Info) level message so that it does
not fail keyboard builds.
2022-03-30 16:25:12 +11:00
Marc Durdin
825083e601 fix(developer): Add Wordlist button now copies into source folder
Fixes #2185.

If a wordlist file is not in the same folder as the .model.ts file,
Keyman Developer will now ask the user if they want it copied into the
folder.

Also minor fix: if the user deletes a row in a wordlist, it marks the
file as modified.

Also very minor: the initial folder for the Add Wordlist dialog is now
the same as the .model.ts file.
2022-03-30 10:04:55 +11:00
Marc Durdin
4a619b051d fix(developer): set kmcomp debug build to correct folder 2022-03-30 09:12:27 +11:00
Marc Durdin
7ff1ab8419
Merge pull request #6435 from keymanapp/feat/developer/4854-character-map-builder-integration
feat(developer): improve Touch Layout Editor and Character Map integration
2022-03-30 05:22:17 +11:00
Marc Durdin
175efea0b4 feat(developer): cleanup of unicode support 2022-03-29 14:55:21 +11:00
Marc Durdin
b50ad35d72 feat(developer): hint on unreachable code
Fixes #355.
Fixes #1710.

This is structured as a feature so it is tested as such, but was part of
the set of fixes scheduled for 15.0 beta. Any rule in a group that
Keyman Developer assesses as 'unreachable' will receive a hint message.

The current rule match is fairly simplistic -- it only does an exact
comparison -- so duplication which is indirect, through `any(store)`
references in the context would still result in unreachable rules that
are not picked up.
2022-03-29 12:49:34 +11:00
Marc Durdin
33fda3e59f feat(developer): improve Touch Layout Editor and Character Map integration
Fixes #4854.

Adds some intelligence to the drag + drop integration with the Touch
Layout Editor, so that we always drop a character onto a key cap, we
always drop a code onto a ID field, and can drop both character + code
together (if the key id is T_new_..., or holding Ctrl key).

Hovering over any key for 0.25 sec while dragging will select that key.
You can then continue dragging down to the subkey array and drop onto
any of those keys. Note that you do not need to hover for 0.25 sec
before you drop onto a key -- the drop operation will select the key
under the cursor when dropping.

Double-clicking will update the selected key or subkey; Ctrl will do
both the key cap and the ID.
2022-03-28 11:47:55 +11:00
Marc Durdin
46807d7af2 fix(web): *Shifted* showed unshifted key cap
While this was done in code as a global override, probably following
Apple stylistic changes, it is better to leave this to the keyboard
developer to decide on.
2022-03-28 09:02:22 +11:00
Marc Durdin
d714ccc2d1
Merge pull request #6408 from keymanapp/fix/developer/kmcomp-x64-struct-sizes
fix(developer): structure sizes for kmcomp x64
2022-03-24 09:45:22 +11:00
Marc Durdin
5c388d1d7e
Merge pull request #6366 from keymanapp/feat/web/6364-new-layer-old-layer-replaces-layerchanged
feat(web): `&newLayer` and `&oldLayer`
2022-03-23 16:53:34 +11:00
Marc Durdin
68a792c0b5 fix(developer): structure sizes for kmcomp x64
I am not sure how this was ever working. This just adds the specific
structure sizes for x64 and verifies that the Delphi sizes are the
same as the reported sizes from C++.

Minor tweak to printf format args for kcframe to assist in this, sorting
a compiler warning.
2022-03-22 13:38:32 +11:00
Marc Durdin
0764305211 fix(developer): detect changes in dropdowns in builder
Fixes #6386.

The touch layout editor would not reliably detect changes if using the
mouse to select an item in a dropdown 'autocomplete'.
2022-03-21 17:06:38 +11:00
Marc Durdin
7a5d1b964f chore(web): Merge branch 'beta' into feat/web/6364-new-layer-old-layer-replaces-layerchanged 2022-03-17 04:55:25 +11:00
Marc Durdin
81ec8b86e2
Merge pull request #6347 from keymanapp/fix/developer/warn-on-ncaps-consistency
fix(developer): warn on ncaps usage inconsistency
2022-03-15 10:02:35 +11:00
Marc Durdin
b23df3fbc8 feat(web): &newLayer and &oldLayer
Fixes #6364.

Removes `&layerChanged` and adds `&newLayer` and `&oldLayer` system
stores with the additional nuances around values as described in #6364.
2022-03-13 08:29:15 +11:00
rc-swag
514e585f88
Merge pull request #6187 from keymanapp/fix/windows/imsample-null-pointer-checks
fix(windows): add null pointer checks imsample keyboard
2022-03-10 19:15:38 +10:00
Marc Durdin
62b7d67d1e fix(developer): warn on ncaps usage inconsistency
If a developer has two rules where one includes CAPS and the other
does not include NCAPS, the CAPS rule may not be correctly matched. This
change warns them when this is the case.
2022-03-09 14:13:29 +11:00
Marc Durdin
785c45eb40
Merge pull request #6325 from keymanapp/fix/developer/project-should-not-steal-focus-on-load
fix(developer): project should not steal focus on load ✂
2022-03-08 20:29:51 +11:00
Ross
2dfdecaf44 fix(windows): create registry keys for IM window
This commit adds a function that sets the IM window registry keys
needed for the IMSample keyboard.

It also adds a null pointer check on the lpActiveKeyboard in the imx
callback module.
2022-03-08 18:09:13 +10:00
rc-swag
50f8c7bf3f fix(windows): address review comments imsample kbd
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-03-08 13:53:30 +10:00
Ross
ed54dbead3 fix(windows): null pointer checks 2022-03-08 13:53:29 +10:00
Marc Durdin
9b46242d32
Merge pull request #6324 from keymanapp/fix/developer/prevent-execution-point-breaking-editor-location
fix(developer): prevent execution point breaking editor location ✂
2022-03-07 08:13:34 +11:00
Marc Durdin
3e48acddb3 chore(developer): Keyman Developer Server terminology
Fixes #6326.

Tweaks wording and layout of screens relating to Keyman Developer Server
for consistency.
2022-03-03 10:21:54 +11:00
Marc Durdin
602fafb96b fix(developer): project should not steal focus on load 2022-03-03 06:51:56 +11:00
Marc Durdin
fc889efadc fix(developer): prevent execution point breaking editor location 2022-03-03 06:49:52 +11:00
Marc Durdin
861e02002b
Merge pull request #6315 from keymanapp/feat/developer/3174-word-count-commas
feat(developer): support commas in frequency in wordlists ✂
2022-03-02 13:19:20 +11:00
Marc Durdin
1de021793f
Merge pull request #6311 from keymanapp/fix/developer/6029-font-for-package-model-editors
fix(developer): font for Package and Model Editors ✂
2022-03-02 12:48:54 +11:00
Marc Durdin
42abbd5ce3
Merge pull request #6295 from keymanapp/fix/developer/6077-handle-paste-change-event-touch-layout-editor
fix(developer): handle paste event in touch layout editor
2022-03-02 12:33:30 +11:00
Marc Durdin
a821f65e47
Merge pull request #6313 from keymanapp/chore/developer/4168-remove-package-for-distribution-button
chore(developer): remove Package for Distribution action ✂
2022-03-02 11:39:46 +11:00
Marc Durdin
6f1468195b
Merge pull request #6312 from keymanapp/feat/developer/5415-kmcomp-h-help
feat(developer): kmcomp -h and -help ✂
2022-03-02 11:32:31 +11:00
Marc Durdin
1609a4de92
Merge pull request #6309 from keymanapp/fix/developer/6144-code-to-id
fix(developer): rename Code to ID in Touch Layout Editor ✂
2022-03-02 11:25:27 +11:00
Marc Durdin
0cae56d465 feat(developer): support commas in frequency in wordlists
Fixes #3174.

Google Sheets can export TSV files with formatted numbers, including
having commas as thousands separators. Let's ignore those commas.
2022-03-02 08:40:40 +11:00