1. Mar 04, 2021
    • Marc Durdin's avatar
      chore(developer): tweak expansion test · 7e424aaa
      Marc Durdin authored
      7e424aaa
    • Marc Durdin's avatar
      feat(developer): Range expansions · fe5de67c
      Marc Durdin authored
      Relates to #2241.
      
      Range expansions are a new language feature that reduce verbosity in
      Keyman Keyboard Language (.kmn) files by making it possible to collapse
      sequential ranges with a new `..` operator. It is envisioned that these
      will be used primarily in stores.
      
      Two kinds of expansions are available: character ranges, and virtual key
      ranges.
      
      The syntax is:
      
      ```
      char '..' char
      vkey '..' vkey
      ```
      
      Where the `char` terminator is a single normal character, and the `vkey`
      terminator is a single virtual key. `outs` is permissible for
      terminators but no other statement is allowed. Whitespace is per normal
      Keyman keyboard language syntax.
      
      Character ranges will replace the range with the set of characters
      between the terminators, based on the Unicode value of the terminators.
      
      Examples:
      
      ```
      store(alphabet) 'a' .. 'z'
      store(alpha_not_bq) 'ac'..'pr'..'z'
      store(capitals) U+0041 .. U+005A
      ```
      
      Virtual key ranges work in a similar fashion, but with virtual keys. The
      starting and terminating virtual key must have the same shift state.
      This will be most useful for character and numeric virtual keys, as the
      ranges are based on the numeric value of the virtual key as defined by
      Windows, not its position on the keyboard.
      
      Examples:
      
      ```
      store(alphakeys) [K_A] .. [K_Z]
      store(numkeys) [K_0] .. [K_9]
      ```
      
      Ranges must be positive, that is, you cannot use `'z' .. 'a'`.
      
      While this expansion is not expected to be very useful in rules, it is
      still permitted. `context()` and other offsets are calculated on the
      expanded form, not the collapsed form. Similarly, `any()`/`index()`
      offsets are calculated on the expanded form.
      
      'a' .. 'z' > context(3)  c this produces 'c', not 'z'
      
      Because ranges are expanded at compile time, ranges that are overly
      long will result in an error, so you cannot use, for example:
      
      ```
      store(AllUnicode) U+0020 .. U+10FFFF
      ```
      
      The precise maximum length of a range is dependent on the context where
      it is used.
      
      The changes are entirely compiler-based; no change is made to the .kmx
      file format or to the Keyman apps.
      fe5de67c
    • Keyman Server's avatar
      Merge pull request #4580 from keymanapp/auto/version-beta-14.0.252 · 194b6cd0
      Keyman Server authored
      auto: increment beta version to 14.0.252
      194b6cd0
    • Keyman Build Agent's avatar
      08257cf6
  2. Mar 03, 2021
  3. Mar 02, 2021
  4. Mar 01, 2021
    • Marc Durdin's avatar
      feat(developer): isRTL support for lexical model editor · eb713ec2
      Marc Durdin authored
      Fixes #2556.
      
      This adds support for `isRTL`, `insertAfterWord`, and
      `quotesForKeepSuggestions` punctuation options for lexical models, both
      in the parsing and in the user interface. A number of options are
      presented to the user for the quotes and word breaking characters.
      
      The parser continues to be a regex-based typescriptish parser. Expect it
      to be gross. It's too big a job to do properly right now, so it is
      somewhat limited and will bail if it finds structures it can't
      understand.
      
      I would hope to use something a bit smarter in the future to interface
      with the editor. Probably when we are actually fully web-based and can
      depend on a Typescript compiler directly.
      
      Please don't get mad at me! 😟😟😟
      eb713ec2
    • Darcy Wong's avatar
      Merge pull request #4550 from keymanapp/chore/ios/custom-dictionary-help · a249a89e
      Darcy Wong authored
      chore(ios/app): Adjust help titles for installing custom dictionaries
      a249a89e
    • Marc Durdin's avatar
      fix(developer): support for smp names · 1fcfefa3
      Marc Durdin authored
      1fcfefa3