Commit graph

906 commits

Author SHA1 Message Date
Marc Durdin
ed73d5667b chore: add variable docs 2021-07-30 15:27:12 +10:00
Marc Durdin
5f2caba964 fix(developer): compiler use and match behavior for Web should be same as Core
Fixes #5440.

Currently, the behavior of `use()` and `match` for KeymanWeb compiled
keyboards is not identical to the Windows (or Core) behavior. The
example keyboard in #5440 generates 'foo' instead of 'abc' on web.

This fixes that by ensuring that `match` is not called when `use()` is
found in a group rule match.
2021-07-30 14:46:13 +10:00
Marc Durdin
5d32a61a63 chore(windows): patches for Delphi 10.4
Updates Keyman for Windows and Keyman Developer sources so that they
build under Delphi 10.4. No validation has been performed to ensure that
there are no other issues. The intent here is to get a baseline build
working.

Note also IMSample.vcxproj which has its WinSDK version updated for
VS2019.
2021-07-27 16:57:40 +10:00
Marc Durdin
2f9d29905e
Merge pull request #5449 from keymanapp/chore/developer/fixup-devtime-paths
chore(developer): fixup devtime paths
2021-07-19 09:16:52 +10:00
Marc Durdin
121410fd53 chore(developer): fixup devtime paths
After the path refactor, here are some assumed paths that needed fixing.
2021-07-08 15:08:01 +10:00
Marc Durdin
845d65e5e4 chore(windows): remove backup build step
We no longer need to backup debug files as they are saved to the symbol
store during a release build. This reduces the amount of storage
required for a release build and should speed up the build also.

Also fixes the broken build where backup had not been updated for the
new consistent build paths.
2021-07-07 08:09:26 +10:00
Marc Durdin
651932f1bb
Merge pull request #5405 from keymanapp/chore/windows/build-paths
chore(windows): make build paths consistent
2021-07-06 15:27:05 +10:00
Marc Durdin
c4efe63108
Merge pull request #5403 from keymanapp/chore/developer/remove-initclasses
chore(developer): remove obsolete InitClasses
2021-07-01 11:57:29 +10:00
Marc Durdin
996d24fdb3 chore(windows): remove kmndebug ref from this branch 2021-07-01 11:42:33 +10:00
Marc Durdin
5246408ac0 chore(windows): make build paths consistent
More iterations on this yak shave.
2021-07-01 10:52:59 +10:00
Marc Durdin
449083fc0a chore(developer): remove obsolete InitClasses 2021-07-01 07:39:39 +10:00
Marc Durdin
deb01d1a63 chore(windows): make build paths consistent
Move to all projects using bin/ and obj/ for outputs, and
cleanup all Makefiles and project files accordingly. Remove
some obsolete projects along the way. Cleanup .gitignore
also.
2021-07-01 07:38:00 +10:00
Marc Durdin
5507ceb7ed fix(developer): builder commands were ignored
As we changed the User Agent string to have 'Keyman' instead
of 'TIKE', the builder commands were being ignored.
2021-06-29 16:51:34 +10:00
Marc Durdin
f3b59b7dd9 fix(developer): editor commands were ignored
As we changed the User Agent string to have 'Keyman' instead
of 'TIKE', the editor commands were being ignored.
2021-06-29 16:49:07 +10:00
Joshua Horton
05c319ebf4
Merge pull request #5291 from keymanapp/refactor/web/osk-keys
refactor(web): OSK key source-code reorganization
2021-06-22 13:58:39 +07:00
Marc Durdin
3d4acd8e10 chore: correct example 2021-06-17 04:52:33 +10:00
Marc Durdin
87397e8846 fix(developer): kmconvert help match reality
kmconvert built-in help was missing `-targets`, misspelled
`-full-copyright`, and the parameter checking was skipping the last
parameter (which only mattered if the last parameter was `-nologo`, but
still...).
2021-06-17 04:41:09 +10:00
jahorton
92a17542ab refactor(web): special char defn site; used only by keys 2021-06-16 08:47:40 +07:00
Marc Durdin
8e82265d33 fix(developer): support spaces in regression tests
Fixes #5216.

A `<text>` element in the regression text xml which contained only
whitespace would cause the import to crash as this would be ignored by
the XML parser, leading to a `Null` `nodeValue` for that element. To
solve this, we need to:

1. Use `xml:space="preserve"` attribute on `<text>` elements
2. Update the DTD to allow `xml:space` on `<text>` elements
3. While we are at it, move the DTD from `www.tavultesoft.com` to
   `api.keyman.com`.

See also:
* keymanapp/tavultesoft.com#4
* keymanapp/api.keyman.com#155
2021-06-03 09:41:05 +10:00
Marc Durdin
7235bf2057 fix(windows): sentry.dll version handling
Fixes #5166.

This introduces versioned management of sentry.dll for Keyman for
Windows, Keyman Engine and Keyman Developer. As sentry.dll's ABI is not
backwardly compatible, we have to maintain independent copies of each
DLL for each app.

sentry.dll (or sentry.x64.dll for x64 apps) will be found in the
sentry-0.4.9 folder relative to the running process, except when running
from within the keyman repo tree (based on presence of KEYMAN_ROOT env
var). In those cases, the windows/src/ext/sentry sentry.dll will be
used, allowing us to test new debug time sentry DLLs easily.

A little bit of cleanup and consolidation was also done in the
KeymanPaths.pas unit.
2021-05-28 15:55:06 +10:00
Marc Durdin
e46a3ee46c
Merge pull request #5143 from keymanapp/chore/windows/vs2019
chore(windows): move to vc++ 2019
2021-05-25 19:38:32 +10:00
rc-swag
0fd5f01187
Merge pull request #5119 from keymanapp/docs/windows/5118-windows-keyman-engine-readme
docs(windows): Initial commit - README.md
2021-05-25 16:45:50 +10:00
Marc Durdin
f3ba9445dd chore(windows): update vcxproj for vc++2019 2021-05-25 15:58:48 +10:00
rc-swag
98d802f769
docs(windows): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-05-25 08:08:13 +10:00
Ross Cruickshank
b2f3f5d5db docs(windows): add missing markdown "#" 2021-05-24 10:43:49 +10:00
Ross Cruickshank
4bbd242161 docs(windows): adding README.md to windows/src
Fixes #5118
2021-05-24 10:32:06 +10:00
Marc Durdin
8e435f67d1 chore(windows): cleanup old .dof, .bdsproj and .cfg files
Fixes #519.

I have removed these .cfg, .dof, and .bdsproj files from the primary
projects in the Windows source. There is some ambiguity as to whether
.cfg files are used by the command line compiler (I checked with procmon
and they *are* read by dcc32.exe), so we will need to make sure that
no adverse changes have been made by this. In theory at least, the
.dproj data trumps .cfg data -- and all the projects in question have
a .dproj file -- so this should be a safe cleanup.

I have opted not to touch the /buildutils, /ext, /support and
/test folders at this point.
2021-05-24 10:22:28 +10:00
Marc Durdin
998ac33c85
Merge pull request #5096 from keymanapp/fix/developer/5095-editor-settext-not-synchronous
fix(developer): TframeTextEditor.SetText was not synchronous
2021-05-21 08:31:40 +10:00
Marc Durdin
9ecbf9bf60 fix(developer): TframeTextEditor.SetText was not synchronous
Fixes #5095.

If the text editor was loaded, `SetText` would not be synchronous
because it executed some Javascript to make the text change, so setting
the text and immediately reading it again would give the old text. This
is what the On Screen Keyboard editor was doing (it would synchronize
the visual editor and text editor at save). This fix updates `SetText`
to update the backing store as well as the front end editor.
2021-05-18 06:30:22 +10:00
Marc Durdin
17e8780e8e feat(developer): Add 'full copyright' field to templates
Fixes #4807.

We want to differentiate between a short copyright message and a
longer one that also contains a date. The long one is only needed in
one place in a typical keyboard project. This reduces maintenance when
making keyboard updates.
2021-05-14 16:35:44 +10:00
Marc Durdin
c8d6e4fe6f fix(developer): kmconvert commandline and deploy
A few fixes and improvements:
* kmconvert was missing a command line parameter for `-target` to
  specify the platform targets for a project
* kmconvert should avoid throwing unhandled exceptions, rather if
  sentry is not present then just write to console.
* Include kmconvert and its data files in the deployment of kmcomp.zip,
  which is done on the build agent (just need to make sure files are
  in the right place here.)
* Side fix: also made sure kmcomp would emit the exception message to
  console if sentry is not present.
2021-05-14 10:56:58 +10:00
Marc Durdin
72b8e42732 fix(developer): two small issues in kmdecomp
1. build paths when loaded as part of solution were incorrect
2. decompiling `if` statements did not work for `!=`
2021-05-05 09:52:06 +10:00
Marc Durdin
30c64f34aa
Merge pull request #4934 from keymanapp/fix/developer/4803-chiral-warning-is-disruptive
fix(developer): chiral mismatch warning is disruptive
2021-04-21 11:27:07 +10:00
Marc Durdin
355eba3514 fix(developer): chiral mismatch warning is disruptive
Fixes #4803.

This fixes part of #4803 - namely the obtrusive warning flagging that
there are mismatched modifier types in the keyboard. Instead of making
the change during tab switching, it simply shows a warning message in
the design view of the keyboard, which the developer can choose to
ignore.

This does not address the removal of comments or the switch of character
formats which is part of that conversion routine. That is a more complex
change to the parser.
2021-04-21 10:07:33 +10:00
Marc Durdin
3da6a28d79 fix(developer): avoid crash if .kpj.user file is malformed
Fixes #4917.

This updates `TProjectLoader` to use the same exception handling pattern
for loading the .kpj.user file as we use for the .kpj file.
2021-04-20 10:50:16 +10:00
Marc Durdin
d1dd8b022e fix(developer): buffer size for range expansions
Fixes #4830.

There remain some additional buffer size checks we should be doing in
`GetXString` but this will address the current issue by using the
standard maximum buffer size.
2021-03-31 19:10:12 +11:00
Marc Durdin
071bfd9011 fix(developer): requote font names
Fixes #4810.
2021-03-29 20:53:12 +11:00
Marc Durdin
5eb0aec0e8
Merge pull request #4691 from keymanapp/fix/developer/named-code-constants-end-of-line-test
fix(developer): support named character codes at end of line
2021-03-16 23:26:03 +11:00
Marc Durdin
9ae541940a
Merge pull request #4699 from keymanapp/fix/developer/validate-keyboard_info-bcp47-canonicalisation-info
chore(developer): upgrade bcp 47 canonicalisation to warning
2021-03-16 23:25:28 +11:00
Marc Durdin
de74fddbc2 chore(developer): upgrade bcp 47 canonicalisation to warning
This does not trigger a build failure; validation warnings currently always pass.
Info messages are currently suppressed with -s which also suppresses the banner,
which is more plumbing than we should change just now.
2021-03-16 20:07:27 +11:00
Marc Durdin
aa8538a8d9
Merge pull request #4689 from keymanapp/fix/developer/validate-keyboard_info-bcp47-canonicalisation-info
fix(developer): validate keyboard_info should give info on non-canonical bcp47
2021-03-16 19:32:36 +11:00
Marc Durdin
12184f1857 fix(developer): support named character codes at end of line
If a named character code was followed by a `\n`, it would not be
recognised.
2021-03-16 13:49:55 +11:00
Marc Durdin
4f958985a0 fix(developer): &CasedKeys and &MnemonicLayout are not compatible together
The test for `&mnemoniclayout` was incorrectly failing to check the
actual state of `&casedkeys`, which broke all mnemonic layouts.
2021-03-16 13:46:34 +11:00
Marc Durdin
4c82c2b545 fix(developer): validate keyboard_info should give info on non-canonical bcp47 2021-03-16 13:44:23 +11:00
Marc Durdin
523cf39d10 chore(developer): add B11 ISO code for ABNT2 keyboard 2021-03-12 11:11:42 +11:00
Marc Durdin
c10b010d59 fix(developer): Expand filenames before load
Fixes #4583.
2021-03-05 13:44:55 +11:00
Marc Durdin
690a7fd787
Merge pull request #4586 from keymanapp/feat/developer/2241-caps-controlled-keys
feat(developer): &CasedKeys system store
2021-03-05 11:41:16 +11:00
Marc Durdin
103e46c0d5
Merge pull request #4584 from keymanapp/feat/developer/2241-expansions
feat(developer): Range expansions
2021-03-04 15:05:32 +11:00
Marc Durdin
b7765483ec
Merge pull request #4576 from keymanapp/feat/developer/4314-open-containing-folder-options
feat(developer): Add different Open Containing Folder buttons
2021-03-04 15:05:19 +11:00
Marc Durdin
d536345a20
Merge pull request #4574 from keymanapp/fix/developer/2789-support-all-fonts-keyboard-fonts-dialog
fix(developer): Support all fonts in Keyboard Fonts dialog
2021-03-04 15:05:10 +11:00