Commit graph

828 commits

Author SHA1 Message Date
Marc Durdin
0c782e22d3 fix(developer): Compiler check for if and nul at start of context
Fixes #4280.

Adds checks to verify that `if()`, `platform()`, `baselayout()` and
`nul` are at the start of the context in the appropriate order.

Adds unit tests to validate these checks.

These are conditions that have been present in earlier versions of
Keyman but not enforced until now. Keyboards that do not meet these
conditions would not work correctly in all circumstances and should be
updated to meet the requirements.

An alternative would have been to reorder the context string but that is
much more complex as manipulation would also have been required for the
output string. The enforced order is logical and reduces confusion in
any case.

Updated documentation coming along shortly.
2021-02-03 15:28:53 +11:00
Marc Durdin
171b6fac54 fix(developer): debug information with unicode identifiers
Fixes #4250.

This implements @jahorton's suggestion of including the original name
in a comment alongside the munged name, as well as appending the unique
integer identifier of each symbol.

Note: the error reporting code needed a massage to support Unicode error
strings; in the future we should update the C++ compiler to emit
Unicode error strings also.
2021-02-03 10:54:20 +11:00
Marc Durdin
adafdb9c84 fix(developer): Import Keyboard support for Targets
Fixes #2657.

Importing a Windows Keyboard had an option to select default targets for
the imported keyboard, but the option was ignored. This propagates the
option setting through the import process.
2021-02-02 16:12:45 +11:00
Marc Durdin
5208404cd6 fix(developer): Generate platforms correctly from template
Fixes #2679.

If web is specified but not a touch platform, exclude touch layout from
a generated project. Also, fixup list of supported platforms in the
generated README.md.
2021-02-02 15:50:56 +11:00
Marc Durdin
7c3bbeda15 fix(windows): tweaks for strings.xml support
* Process setup strings also
* Remove legacy references to cust files from TIKE
* Add unit test to Makefile
2021-01-25 13:41:56 +11:00
Marc Durdin
11612a193a fix(developer): Debug character grid performance
The character grid in the debugger would become very slow as the number
of characters increased, with substantial flickering. This refactor
removes the unnecessary recalculations of the grid cell count and
thus resolves performance problems.
2021-01-13 14:09:43 +11:00
Marc Durdin
d1513315bf
Merge pull request #4200 from keymanapp/fix/developer/1692-respect-tab-setting
fix(developer): Respect tab editor option
2020-12-23 08:34:51 +11:00
Marc Durdin
522163219f
Merge pull request #4198 from keymanapp/fix/developer/1724-touch-layout-editor-fonts
fix(developer): make touch layout editor source view fonts consistent
2020-12-23 08:34:40 +11:00
Marc Durdin
a2b750efb9
Merge pull request #4199 from keymanapp/fix/developer/3000-encoding-for-model-ts
fix(developer): Encoding for .model.ts files
2020-12-22 15:32:24 +11:00
Marc Durdin
e85d920f48
Merge pull request #4190 from keymanapp/fix/developer/4015-ltr-enter-and-bksp
fix(developer): Map symbols for *LTREnter* and *LTRBkSp*
2020-12-22 15:31:48 +11:00
Marc Durdin
8414f06fc6 fix(developer): Respect tab editor option
Fixes #1692.

The wrong option was being set -- not sure how this was missed earlier!

Also ensures that TSV files will always use Tabs, regardless of the
global setting.
2020-12-22 13:07:40 +11:00
Marc Durdin
718c19a80c fix(developer): Encoding for .model.ts files
Fixes #3000.

The model editor would save .model.ts files with Windows-1252 (aka ANSI)
encoding, losing non-ANSI characters in the process.

While fixing this, noted that the class member `model` was not being
used apart from in Load (no longer in Save), so reduced its
scope accordingly.
2020-12-22 12:30:22 +11:00
Marc Durdin
dfe5aa5745 fix(developer): make touch layout editor source view fonts consistent
Fixes #1724.
2020-12-22 11:42:50 +11:00
Marc Durdin
c5ea3a5db6 chore(common): update copyright year in various locations 2020-12-22 10:56:55 +11:00
Marc Durdin
5a661112a6 fix(developer): Map symbols for *LTREnter* and *LTRBkSp*
Fixes #4015.

Maps `*LTREnter*` and `*LTRBkSp*` to the correct symbols on the
touch layout builder.
2020-12-21 14:57:45 +11:00
Marc Durdin
498100f78b fix(windows): split signed and unsigned versions of setup.exe 2020-12-03 14:56:25 +11:00
Marc Durdin
9e46b555d9 fix(windows): Rename to Keyman
Fixes #4003.

This addresses the majority of locations where we use the name "Keyman
Desktop" in code. There will be some filenames and paths that do not
change at this point -- particularly at a source level. For now, the
focus is on the user interface changes.

While making these changes, I also made the VERSION and MANIFEST
resources more consistent.
2020-12-02 09:56:14 +11:00
Marc Durdin
48a3d0c9fa
Update windows/src/developer/TIKE/compile/CompileKeymanWeb.pas
Co-authored-by: Joshua Horton <joshua_horton@sil.org>
2020-11-25 12:50:45 +11:00
Marc Durdin
0b62095726 feat(developer): improve downlevel support for new special labels 2020-11-23 06:23:47 +11:00
Marc Durdin
c6f25b1484 chore: tweak comment 2020-11-18 09:11:40 +11:00
Marc Durdin
83325e878c feat(developer): add new touch layout special tags
Fixes #3863.

This adds the new `*RTLEnter*` and other tags introduced in #3851 to
the touch layout editor, and adds validation for use in 14.0 keyboards.

Due to a limitation in the compiler architecture, use of these tags
will not trigger the automatic keyboard versioning functionality; the
keyboard developer must explicitly specify `store(&VERSION) '14.0'`.

Also:

* synchronised error codes between .h and .pas.
* synchronised touch layout tags between Developer and KeymanWeb, and
  cleaned up builder.js usage thereof.
* added support for KeymanwebOsk font override when special tags are
  identified.
* added basic tests to ensure that the compiler is catching use of these
  tags as needed.
* updated keymanweb-osk.ttf font in Developer.
2020-11-18 08:58:57 +11:00
Marc Durdin
4de4f3c42e feat(developer): support major version upgrades
See also keymanapp/api.keyman.com#123
2020-11-16 15:33:26 +11:00
Marc Durdin
42aab7a4c4
Merge pull request #3834 from keymanapp/chore/windows/3590-symbol-server
chore(windows): symbol server support
2020-11-12 15:07:44 +11:00
Marc Durdin
f3dce9e580
Merge pull request #3833 from keymanapp/fix/windows/3831-sizeofimage-header
fix(windows): SizeOfImage header was wrong for dbg
2020-11-12 15:07:37 +11:00
Marc Durdin
ebf03bb873
Merge pull request #3830 from keymanapp/fix/windows/3810-import-windows-keyboard-layout-mismatch
fix(windows): Import OSK wrong for European layouts
2020-11-12 15:07:19 +11:00
Marc Durdin
79cd83e105 chore(windows): fixup makefiles 2020-11-11 10:33:18 +11:00
Marc Durdin
00a9744253 chore(windows): symbol server support, initial steps 2020-11-11 10:33:16 +11:00
Marc Durdin
60abfdf1df fix(developer): Remove IE dependency from Developer Setup
Fixes #3832.

Removes the now-unneeded Internet Explorer dependency from Developer
Setup, and corresponding strings (plus a couple of other unused
strings).

I18n of these strings is a future project.
2020-11-08 14:00:49 +11:00
Marc Durdin
af07e236a0
Merge pull request #3829 from keymanapp/fix/developer/3827-debug-default-font
fix(developer): debug window inherits editor font
2020-11-07 10:58:46 +11:00
Marc Durdin
3d977d9c92
Merge pull request #3816 from keymanapp/fix/developer/917-support-for-context-and-notany
fix(developer): support for notany() and context()
2020-11-07 10:50:52 +11:00
Marc Durdin
5deb799e33 chore: address review comments 2020-11-06 17:59:06 +11:00
Marc Durdin
3d1601ffe5 fix(windows): SizeOfImage header was wrong for dbg
Fixes #3831.

This fixes both issues reported in the bug (dproj changes ensure
separate .tds, and Makefile changes fix order of execution so that
dbg is generated after sentryprep's cleanup).
2020-11-06 17:36:56 +11:00
Marc Durdin
526164fbd4 fix(windows): detect 102nd key in keyboard import
The detection of the 102nd key is a heuristic - it will decide it is
present if it has a vk code and its corresponding unshifted character
is not the same as the backslash key. This matches the general pattern
for US vs European keyboards.
2020-11-06 08:15:21 +11:00
Marc Durdin
79f6910971 fix(windows): Import OSK wrong for European layouts
Fixes #3810.

Importing a Windows keyboard would not produce correct OSK for European
layouts because it was based on virtual key instead of scan code.
Mapping through the scan code back to "US" base layout resolves the
issue.

Note that there is a slight difference between Import Windows Keyboard
and Fill from Layout results, as deadkeys have slightly more information
in the Import process, and can display the base deadkey, whereas Fill
from Layout will result in a blank deadkey. This difference is by
design.
2020-11-06 07:49:10 +11:00
Marc Durdin
ef7d2bfb0e fix(developer): debug window inherits editor font
Fixes #3827.

The debugger was not inheriting the editor font -- this is a regression
from when we replaced TPlusMemo with Monaco editor.
2020-11-06 07:12:17 +11:00
Marc Durdin
fe986a2fda
Merge pull request #3818 from keymanapp/fix/developer/1584-incorrect-script-for-language
fix(developer): Incorrect script:language map
2020-11-05 13:11:09 +11:00
Marc Durdin
94a062f20a fix(developer): remove obsolete NRSIAllTags
Relates to #799.

Removes NRSIAllTags, alltags.txt, parser and utility units.

Also re-enables standardsdata.dpr unit test which needed some syntax
cleanup.
2020-11-04 18:41:17 +11:00
Marc Durdin
3c2857da51 fix(developer): Incorrect script:language map
Fixes #1584.

In the "Select BCP 47 Tag" dialog, when the user starts typing a
language tag, e.g. "hi" for Hindi, the "h" would match "ha" for Hausa,
and set the script to "Latn". When the "i" was then typed, the script
box would not be cleared, giving an incorrect result of "hi-Latn"
instead of just plain "hi".

The earlier issue of "yo-Brai" has already been resolved.
2020-11-04 15:01:21 +11:00
Marc Durdin
d8e70bea77 fix(developer): support for notany() and context()
This is part 1 of 2 of a fix for #917. This adds in version 14.0
targeting and a new function `KNO` which is used in one specific place:
when a context() statement references a notany() statement. This
minimizes any risk in this change because existing supported patterns
should compile identically.

If the compiler finds this pattern, it will enforce 14.0 minimum version
for web targets.
2020-11-04 13:49:48 +11:00
Marc Durdin
4c7e6f242f fix(windows): Crash in Keep in Touch external link
Fixes #3756.
Fixes KEYMAN-WINDOWS-5F.
Fixes KEYMAN-WINDOWS-5E.
2020-10-27 08:21:33 +11:00
Marc Durdin
2354970427 fix(developer): crash creating basic project
Fixes #3715.

This is a regression introduced in #1720.
2020-10-19 11:26:39 +11:00
Marc Durdin
47adfac4f6 chore: address review comments 2020-10-08 15:21:35 +11:00
Marc Durdin
3c32267a50 chore: don't add tag to version in filenames
While it might be nice to add the tag to versions in filenames, this
creates a lot of work on the website where we make some filename
assumptions. So, this PR winds that detail of filename changes back,
and renames copydev.in to download.in to make it consistent with the
other download.in files.
2020-10-08 14:59:59 +11:00
Marc Durdin
c42eed6235 chore: address review comments 2020-10-08 14:25:14 +11:00
Marc Durdin
80db548432 chore: address review comments 2020-10-08 13:35:33 +11:00
Marc Durdin
4e18f9a531 chore: address review comments 2020-10-08 13:34:37 +11:00
Marc Durdin
c655c4eaf5 fix(windows): improve version numbers
Release build executables should have 3 component version numbers with
the version tag appended, e.g. keymandesktop-14.0.155-alpha-local.exe.

Coming later, rename keymandesktop-version.exe to keyman-version.exe.
2020-10-08 09:13:48 +11:00
Marc Durdin
ccdf820a5d
Merge pull request #3670 from keymanapp/fix/developer/ci-use-repo-tier-and-version
fix(developer): ci uses repo tier and version
2020-10-08 06:21:08 +11:00
Marc Durdin
3319f5d29d fix: call to build.sh now has invalid variables 2020-10-07 14:34:35 +11:00
Marc Durdin
53a197fba5 chore(windows): Move to Windows SDK 10.0.17763.0
This removes the requirement for the Windows 8.1 SDK.
2020-10-05 14:11:34 +11:00