Add documentation for word triggers and cursor hints
This commit is contained in:
parent
48ed5337df
commit
ac9cb84e16
|
@ -93,6 +93,77 @@ the **extension** that will be executed to calculate its value. In this case, we
|
||||||
|
|
||||||
In the remaining lines we declared the **parameters** used by the extension, in this case the *date format*.
|
In the remaining lines we declared the **parameters** used by the extension, in this case the *date format*.
|
||||||
|
|
||||||
|
### Cursor Hints
|
||||||
|
|
||||||
|
Let's say you want to use espanso to expand some HTML code snippets, such as:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- trigger: ":div"
|
||||||
|
replace: "<div></div>"
|
||||||
|
```
|
||||||
|
|
||||||
|
With this match, any time you type `:div` you get the `<div></div>` expansion, with the cursor at the end.
|
||||||
|
|
||||||
|
While being useful, this snippet would have been much more convenient if **the cursor was positioned
|
||||||
|
between the tags**, such as `<div>|</div>`.
|
||||||
|
|
||||||
|
Starting from version 0.3.2, espanso supports **cursor hints**, a way to control the position of the cursor
|
||||||
|
after the expansion.
|
||||||
|
|
||||||
|
Using them is very simple, just insert `$|$` where you want the cursor to be positioned, in this case:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- trigger: ":div"
|
||||||
|
replace: "<div>$|$</div>"
|
||||||
|
```
|
||||||
|
|
||||||
|
If you now type `:div`, you get the `<div></div>` expansion, with the cursor between the tags!
|
||||||
|
|
||||||
|
#### Things to keep in mind
|
||||||
|
|
||||||
|
* You can only define **one cursor hint** per match. Multiple hints will be ignored.
|
||||||
|
* This feature should be used with care in **multiline** expansions, as it may yield
|
||||||
|
**unexpected results** when using it in code editors that support **auto indenting**.
|
||||||
|
This is due to the way the feature is implemented: espanso simulates a series of `left arrow`
|
||||||
|
key-presses to position the cursor in the right position. This works perfectly in single line
|
||||||
|
replacements or in non-autoindenting fields, but can be problematic in code editors, as they
|
||||||
|
automatically insert indentations that modify the number of required presses in a way
|
||||||
|
espanso is not capable to detect.
|
||||||
|
|
||||||
|
### Word Triggers
|
||||||
|
|
||||||
|
If you ever thought about using espanso as an **autocorrection tool for typos**, you may have experienced
|
||||||
|
this problem:
|
||||||
|
|
||||||
|
Let's say you occasionally type `ther` instead of `there`. Before the introduction of *word triggers*,
|
||||||
|
you could have used espanso like this:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- trigger: "ther"
|
||||||
|
replace: "there"
|
||||||
|
```
|
||||||
|
|
||||||
|
This would correctly replace `ther` with `there`, but it also has the problem of expanding
|
||||||
|
`other` into `othere`, making it unusable.
|
||||||
|
|
||||||
|
With *word triggers* you can now add the `word: True` property to a match, telling espanso
|
||||||
|
to only trigger that match if surrounded by *word separators* ( such as *spaces*, *commas* and *newlines*).
|
||||||
|
So in this case it becomes:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- trigger: "ther"
|
||||||
|
replace: "there"
|
||||||
|
word: True
|
||||||
|
```
|
||||||
|
|
||||||
|
At this point, espanso will only expand `ther` into `there` when used as a standalone word.
|
||||||
|
For instance:
|
||||||
|
|
||||||
|
Before | After |
|
||||||
|
--- | ---
|
||||||
|
Is ther anyone else? | Is there anyone else? | `ther` is converted to `there`
|
||||||
|
I have other interests | I have other interests | `other` is left unchanged
|
||||||
|
|
||||||
### Script Extension
|
### Script Extension
|
||||||
|
|
||||||
There will be tasks for which espanso was not designed for. For those cases, espanso offers the
|
There will be tasks for which espanso was not designed for. For those cases, espanso offers the
|
||||||
|
|
Loading…
Reference in New Issue
Block a user