Add support for auto surround (#13217)
 In the past, Zed used a single switch called `autoclose` to control both `autoclose` and `auto_surround` functionalities: + `autoclose`: when input '(', append ')' automatically. + `auto_surround`: when select text and input '(', surround text with '(' and ')' automatically. This PR separates `auto_surround` from `autoclose` to support `<`. Previously, if `autoclose` of `<` was set to `false`, `auto_surround` couldn't be used. However, setting `autoclose` to `true` would affect the default behavior of simple expression. For example, `a < b` would become `a <> b`. For more information, see #13187. Fix #12898. Release Notes: - Added support for `auto_surround` ([#12898](https://github.com/zed-industries/zed/issues/12898)).
This commit is contained in:
parent
963b0c010a
commit
95b06097ee
9 changed files with 96 additions and 6 deletions
|
@ -61,6 +61,7 @@ use task::RunnableTag;
|
|||
pub use task_context::{ContextProvider, RunnableRange};
|
||||
use theme::SyntaxTheme;
|
||||
use tree_sitter::{self, wasmtime, Query, QueryCursor, WasmStore};
|
||||
use util::serde::default_true;
|
||||
|
||||
pub use buffer::Operation;
|
||||
pub use buffer::*;
|
||||
|
@ -803,6 +804,9 @@ pub struct BracketPair {
|
|||
pub end: String,
|
||||
/// True if `end` should be automatically inserted right after `start` characters.
|
||||
pub close: bool,
|
||||
/// True if selected text should be surrounded by `start` and `end` characters.
|
||||
#[serde(default = "default_true")]
|
||||
pub surround: bool,
|
||||
/// True if an extra newline should be inserted while the cursor is in the middle
|
||||
/// of that bracket pair.
|
||||
pub newline: bool,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue