<feed xmlns='http://www.w3.org/2005/Atom'>
<title>unexpected-keyboard/test/juloo.keyboard2/KeyValueParserTest.java, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/'/>
<entry>
<title>Fix parsing of escaped characters in macros (#1126)</title>
<updated>2025-12-13T14:58:34+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-12-13T14:58:34+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=08ebf8fabc860fb66d586aade838483dda86b5b0'/>
<id>08ebf8fabc860fb66d586aade838483dda86b5b0</id>
<content type='text'>
* refactor: Better printing for KeyValue in tests

* Fix parsing of escaped characters in macros

The parsing code was bugged with custom macros like `symbol:\abc` and
`symbol:\\abc`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* refactor: Better printing for KeyValue in tests

* Fix parsing of escaped characters in macros

The parsing code was bugged with custom macros like `symbol:\abc` and
`symbol:\\abc`.</pre>
</div>
</content>
</entry>
<entry>
<title>Make key symbol smaller when 2 characters long or more</title>
<updated>2025-02-27T23:36:14+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-02-27T23:35:43+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=55cb5f5315c9183f6e4821daa26997e329e30fd8'/>
<id>55cb5f5315c9183f6e4821daa26997e329e30fd8</id>
<content type='text'>
This was the case for string keys but not for macros or keys with custom
symbols.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was the case for string keys but not for macros or keys with custom
symbols.
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor: Remove StringWithSymbol</title>
<updated>2025-02-27T23:17:28+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-02-27T23:17:28+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=b7d1508d7b74b3d634b8f3a547d56c27e10f80c8'/>
<id>b7d1508d7b74b3d634b8f3a547d56c27e10f80c8</id>
<content type='text'>
It's replaced with a macro containing one key.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's replaced with a macro containing one key.
</pre>
</div>
</content>
</entry>
<entry>
<title>KeyValue: Don't wrap keys into a macro when possible</title>
<updated>2025-02-27T22:53:42+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-02-27T22:53:42+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=466e0b82189352ee931916b22494f638fabc9aa3'/>
<id>466e0b82189352ee931916b22494f638fabc9aa3</id>
<content type='text'>
Many kind of KeyValues don't need to be wrapped into a Macro to show a
specific symbol. This is especially useful as Macro keys are not
affected by modifiers.
The parser is changed to have a fast-path when a key value is not a
macro.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Many kind of KeyValues don't need to be wrapped into a Macro to show a
specific symbol. This is especially useful as Macro keys are not
affected by modifiers.
The parser is changed to have a fast-path when a key value is not a
macro.
</pre>
</div>
</content>
</entry>
<entry>
<title>Macro keys (#878)</title>
<updated>2025-02-23T11:12:29+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2025-02-23T11:12:29+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=68be82a4f92f47300b9960cf9cf65040c96f17ed'/>
<id>68be82a4f92f47300b9960cf9cf65040c96f17ed</id>
<content type='text'>
Add "macro" keys that behave as if a sequence of keys is typed.

Macro can be added to custom layouts or through the "Add keys to the
keyboard option". The syntax is:

    symbol:key1,key2,..

The symbol cannot contain a : character. 'key1', 'key2', etc.. are:

  - 'String with \' escaping'
    The key will generate the specified string.
  - keyevent:123
    The key will send a keyevent.
  - The name of any special key
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add "macro" keys that behave as if a sequence of keys is typed.

Macro can be added to custom layouts or through the "Add keys to the
keyboard option". The syntax is:

    symbol:key1,key2,..

The symbol cannot contain a : character. 'key1', 'key2', etc.. are:

  - 'String with \' escaping'
    The key will generate the specified string.
  - keyevent:123
    The key will send a keyevent.
  - The name of any special key
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve Ctrl key labels for Serbian Cyrillic layout</title>
<updated>2024-09-29T20:05:54+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-09-29T20:05:54+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=700ec23bd465fa74828ffd6dfbc42dfc81731510'/>
<id>700ec23bd465fa74828ffd6dfbc42dfc81731510</id>
<content type='text'>
Add the ':char' syntax for defining character keys with a different
symbol.
This new kind of keys is used to implement Ctrl combinations in the
Serbian Cyrillic layout without showing latin letters while the Ctrl
modifier is activated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add the ':char' syntax for defining character keys with a different
symbol.
This new kind of keys is used to implement Ctrl combinations in the
Serbian Cyrillic layout without showing latin letters while the Ctrl
modifier is activated.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add complex keys (#774)</title>
<updated>2024-09-29T19:58:22+00:00</updated>
<author>
<name>Jules Aguillon</name>
</author>
<published>2024-09-29T19:58:22+00:00</published>
<link rel='alternate' type='text/html' href='https://ps.run/git/unexpected-keyboard/commit/?id=9f22e53a3ba8f064e69e3a84c371a7f29ee9e05c'/>
<id>9f22e53a3ba8f064e69e3a84c371a7f29ee9e05c</id>
<content type='text'>
This allows to add new kinds of keys that need more data without making
KeyValue's footprint bigger for common keys.

This changes the [_symbol] field into [_payload], which holds the same
as the previous field for more common keys but can hold bigger objects
for keys of the new "Complex" kind.

This also adds a complex key: String keys with a symbol different than
the outputted string.

Unit tests are added as the Java language is not helpful in making
robust code.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows to add new kinds of keys that need more data without making
KeyValue's footprint bigger for common keys.

This changes the [_symbol] field into [_payload], which holds the same
as the previous field for more common keys but can hold bigger objects
for keys of the new "Complex" kind.

This also adds a complex key: String keys with a symbol different than
the outputted string.

Unit tests are added as the Java language is not helpful in making
robust code.</pre>
</div>
</content>
</entry>
</feed>
