Fix two auto-indent issues with Markdown and YAML (#20193)
Closes #13376 Closes #13338 Release Notes: - Fixed unhelpful auto-indent suggestions in markdown. - Added `auto_indent_on_paste` setting, which can be used on a per-language basis, to configure whether indentation should be adjusted when pasting. This setting is enabled by default for languages other than YAML and Markdown.
This commit is contained in:
parent
cfcbfc1d82
commit
4d3a18cbdc
7 changed files with 29 additions and 3 deletions
|
@ -591,6 +591,9 @@ pub struct LanguageConfig {
|
|||
/// the indentation level for a new line.
|
||||
#[serde(default = "auto_indent_using_last_non_empty_line_default")]
|
||||
pub auto_indent_using_last_non_empty_line: bool,
|
||||
// Whether indentation of pasted content should be adjusted based on the context.
|
||||
#[serde(default)]
|
||||
pub auto_indent_on_paste: Option<bool>,
|
||||
/// A regex that is used to determine whether the indentation level should be
|
||||
/// increased in the following line.
|
||||
#[serde(default, deserialize_with = "deserialize_regex")]
|
||||
|
@ -718,6 +721,7 @@ impl Default for LanguageConfig {
|
|||
matcher: LanguageMatcher::default(),
|
||||
brackets: Default::default(),
|
||||
auto_indent_using_last_non_empty_line: auto_indent_using_last_non_empty_line_default(),
|
||||
auto_indent_on_paste: None,
|
||||
increase_indent_pattern: Default::default(),
|
||||
decrease_indent_pattern: Default::default(),
|
||||
autoclose_before: Default::default(),
|
||||
|
|
|
@ -965,6 +965,7 @@ impl LanguageRegistryState {
|
|||
tab_size: language.config.tab_size,
|
||||
hard_tabs: language.config.hard_tabs,
|
||||
soft_wrap: language.config.soft_wrap,
|
||||
auto_indent_on_paste: language.config.auto_indent_on_paste,
|
||||
..Default::default()
|
||||
}
|
||||
.clone(),
|
||||
|
|
|
@ -125,6 +125,8 @@ pub struct LanguageSettings {
|
|||
/// Whether to use additional LSP queries to format (and amend) the code after
|
||||
/// every "trigger" symbol input, defined by LSP server capabilities.
|
||||
pub use_on_type_format: bool,
|
||||
/// Whether indentation of pasted content should be adjusted based on the context.
|
||||
pub auto_indent_on_paste: bool,
|
||||
// Controls how the editor handles the autoclosed characters.
|
||||
pub always_treat_brackets_as_autoclosed: bool,
|
||||
/// Which code actions to run on save
|
||||
|
@ -360,6 +362,10 @@ pub struct LanguageSettingsContent {
|
|||
///
|
||||
/// Default: true
|
||||
pub linked_edits: Option<bool>,
|
||||
/// Whether indentation of pasted content should be adjusted based on the context.
|
||||
///
|
||||
/// Default: true
|
||||
pub auto_indent_on_paste: Option<bool>,
|
||||
/// Task configuration for this language.
|
||||
///
|
||||
/// Default: {}
|
||||
|
@ -1132,6 +1138,7 @@ fn merge_settings(settings: &mut LanguageSettings, src: &LanguageSettingsContent
|
|||
merge(&mut settings.use_autoclose, src.use_autoclose);
|
||||
merge(&mut settings.use_auto_surround, src.use_auto_surround);
|
||||
merge(&mut settings.use_on_type_format, src.use_on_type_format);
|
||||
merge(&mut settings.auto_indent_on_paste, src.auto_indent_on_paste);
|
||||
merge(
|
||||
&mut settings.always_treat_brackets_as_autoclosed,
|
||||
src.always_treat_brackets_as_autoclosed,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue