diff options
author | Skyler Hawthorne | 2022-02-25 08:36:54 +0000 |
---|---|---|
committer | GitHub | 2022-02-25 08:36:54 +0000 |
commit | a494f47a5df543a3ab8d6530a5acbc2a5bd04d44 (patch) | |
tree | 084ef1b24c593d58d6616b37e073073d93009ff3 /book/src | |
parent | b935fac9576cf333e22b82e40da8c4d73c8e547d (diff) |
Configurable auto pairs (#1624)
* impl auto pairs config
Implements configuration for which pairs of tokens get auto completed.
In order to help with this, the logic for when *not* to auto complete
has been generalized from a specific hardcoded list of characters to
simply testing if the next/prev char is alphanumeric.
It is possible to configure a global list of pairs as well as at the
language level. The language config will take precedence over the
global config.
* rename AutoPair -> Pair
* clean up insert_char command
* remove Rc
* remove some explicit cloning with another impl
* fix lint
* review comments
* global auto-pairs = false takes precedence over language settings
* make clippy happy
* print out editor config on startup
* move auto pairs accessor into Document
* rearrange auto pair doc comment
* use pattern in Froms
Diffstat (limited to 'book/src')
-rw-r--r-- | book/src/configuration.md | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/book/src/configuration.md b/book/src/configuration.md index 8048f548..8f6e8bbb 100644 --- a/book/src/configuration.md +++ b/book/src/configuration.md @@ -36,7 +36,6 @@ hidden = false | `shell` | Shell to use when running external commands. | Unix: `["sh", "-c"]`<br/>Windows: `["cmd", "/C"]` | | `line-number` | Line number display: `absolute` simply shows each line's number, while `relative` shows the distance from the current line. When unfocused or in insert mode, `relative` will still show absolute line numbers. | `absolute` | | `smart-case` | Enable smart case regex searching (case insensitive unless pattern contains upper case characters) | `true` | -| `auto-pairs` | Enable automatic insertion of pairs to parenthese, brackets, etc. | `true` | | `auto-completion` | Enable automatic pop up of auto-completion. | `true` | | `idle-timeout` | Time in milliseconds since last keypress before idle timers trigger. Used for autocompletion, set to 0 for instant. | `400` | | `completion-trigger-len` | The min-length of word under cursor to trigger autocompletion | `2` | @@ -76,6 +75,49 @@ available, which is not defined by default. |`git-exclude` | Enables reading `.git/info/exclude` files. | true |`max-depth` | Set with an integer value for maximum depth to recurse. | Defaults to `None`. +### `[editor.auto-pairs]` Section + +Enable automatic insertion of pairs to parentheses, brackets, etc. Can be +a simple boolean value, or a specific mapping of pairs of single characters. + +| Key | Description | +| --- | ----------- | +| `false` | Completely disable auto pairing, regardless of language-specific settings +| `true` | Use the default pairs: <code>(){}[]''""``</code> +| Mapping of pairs | e.g. `{ "(" = ")", "{" = "}", ... }` + +Example + +```toml +[editor.auto-pairs] +'(' = ')' +'{' = '}' +'[' = ']' +'"' = '"' +'`' = '`' +'<' = '>' +``` + +Additionally, this setting can be used in a language config. Unless +the editor setting is `false`, this will override the editor config in +documents with this language. + +Example `languages.toml` that adds <> and removes '' + +```toml +[[language]] +name = "rust" + +[language.auto-pairs] +'(' = ')' +'{' = '}' +'[' = ']' +'"' = '"' +'`' = '`' +'<' = '>' +``` + + ## LSP To display all language server messages in the status line add the following to your `config.toml`: |