A stack-based calculator plugin for Plover
Project description
RPN Calculator for Plover
RPN Calculator is a stack-based calculator that you can use to calculate equations directly in-line while writing. It uses reverse polish notation, where operations are written after their arguments, rather than in-between.
Commands
Definition | Explanation |
---|---|
{:rpn_put:<characters>} |
Put characters into buffer. For example: {:rpn_put:1} |
{:rpn_put_ext} |
Put all characters after the most recent calculator command into buffer. This allows you to use regular number entry strokes rather than rpn_put strokes to put characters into buffer. |
{:rpn_del_buff} |
Delete rightmost character in buffer. |
{:rpn_clear_buff} |
Clear buffer. |
{:rpn_clear_all} |
Clear and delete everything. |
{:rpn_push} |
Parse and push buffer into stack. |
{:rpn_push_bin} |
Parse and push buffer into stack as binary. |
{:rpn_push_hex} |
Parse and push buffer into stack as hexadecimal. |
{:rpn_add} |
Pop (x, y) from stack (where y is at the top) and push x + y . |
{:rpn_sub} |
Subtraction: Pop (x, y) , push x - y . |
{:rpn_mul} |
Multiplication: Pop (x, y) , push x * y . |
{:rpn_div} |
Division: Pop (x, y) , push x / y . |
{:rpn_intdiv} |
Floor division: Pop (x, y) , push floor(x, y) . |
{:rpn_mod} |
Modulo: Pop (x, y) , push x mod y . |
{:rpn_pow} |
Exponent: Pop (x, y) , push pow(x, y) . |
{:rpn_neg} |
Negation: Pop x , push -x . |
{:rpn_and} |
Bitwise AND: Pop (x, y) , push x & y . |
{:rpn_or} |
Bitwise OR: Pop (x, y) , push `x |
{:rpn_xor} |
Bitwise XOR: Pop (x, y) , push x ^ y . |
{:rpn_not} |
Bitwise NOT: Pop x , push ~x . |
{:rpn_lsl} |
Logical Shift Left: Pop (x, y) , push x << y . |
{:rpn_lsr} |
Logical Shift Right: Pop (x, y) , push x >> y . |
{:rpn_swap} |
Swap top two stack items. |
{:rpn_pop} |
Remove the topmost item. |
{:rpn_dup} |
Duplicate top stack item. |
{:rpn_func:<params>:<return>} |
Define custom function; parameters are separated by commas, and the return value is written using python syntax. For example: {:rpn_func:x,y:3*x+2*y} |
{:rpn_end} |
Mark the end of the calculation. |
Here are a few things to note when using the plugin:
- You can chain these definitions in a single stroke. For instance,
"{:rpn_clear_buff}{:rpn_dup}{:rpn_put:2}{:rpn_mul}"
will let you repeatedly add double the topmost item onto the stack. - When the stack has exactly one item, it will be formatted as a bare number, allowing you to quickly move on after calculation.
- You can use the undo stroke (Typically
*
) to undo all RPN commands. This is helpful whenever you encounter an error during calculation. - Most operations that pop from the stack will push whatever you have in the buffer onto the stack first before popping. This allows you to, for example, use
{:rpn_add}
to directly add the buffer to the item at the top of the stack, without the need to stroke therpn_push
command.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file plover-rpn-calculator-0.0.1.tar.gz
.
File metadata
- Download URL: plover-rpn-calculator-0.0.1.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.3 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce8dc52e8331ffd543537a0c826a3f2b3c6f9792a41872da8bf488524dfd0ddd |
|
MD5 | ac5231de5a5818dfab991f1127ee4df2 |
|
BLAKE2b-256 | 592f3ba75aa1fc198f9fd21643f8d3299f64f9ca49118fee61e2f9f4332859a5 |
File details
Details for the file plover_rpn_calculator-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: plover_rpn_calculator-0.0.1-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.6.0 importlib_metadata/4.8.1 pkginfo/1.8.3 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f46cba6f590bcd4f1706f8778e87f6f710133fd8b7f3267b198bb650d2238f2 |
|
MD5 | 7ea7a8e64acab8187e1551e926acd352 |
|
BLAKE2b-256 | bd1feab3d973f6ed851cff4b9557f257be7b47e28f321aafc1423d1378e94770 |