mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 17:36:19 +04:00
Implement command to change the indent-style setting of a document.
This commit is contained in:
parent
8648e483f7
commit
358ea6a37c
@ -9,7 +9,7 @@
|
||||
};
|
||||
|
||||
use helix_view::{
|
||||
document::Mode,
|
||||
document::{IndentStyle, Mode},
|
||||
view::{View, PADDING},
|
||||
Document, DocumentId, Editor, ViewId,
|
||||
};
|
||||
@ -979,6 +979,28 @@ fn format(editor: &mut Editor, args: &[&str], event: PromptEvent) {
|
||||
doc.format(view.id)
|
||||
}
|
||||
|
||||
fn set_indent_style(editor: &mut Editor, args: &[&str], event: PromptEvent) {
|
||||
use IndentStyle::*;
|
||||
|
||||
let style = match args.get(0) {
|
||||
Some(arg) if "tabs".starts_with(&arg.to_lowercase()) => Some(Tabs),
|
||||
Some(arg) if arg.len() == 1 => {
|
||||
let ch = arg.chars().next().unwrap();
|
||||
if ('1'..='8').contains(&ch) {
|
||||
Some(Spaces(ch.to_digit(10).unwrap() as u8))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
_ => None,
|
||||
};
|
||||
|
||||
if let Some(s) = style {
|
||||
let (_, doc) = editor.current();
|
||||
doc.indent_style = s;
|
||||
}
|
||||
}
|
||||
|
||||
fn earlier(editor: &mut Editor, args: &[&str], event: PromptEvent) {
|
||||
let uk = match args.join(" ").parse::<helix_core::history::UndoKind>() {
|
||||
Ok(uk) => uk,
|
||||
@ -1143,6 +1165,13 @@ fn force_quit_all(editor: &mut Editor, args: &[&str], event: PromptEvent) {
|
||||
fun: format,
|
||||
completer: None,
|
||||
},
|
||||
Command {
|
||||
name: "indent_style",
|
||||
alias: None,
|
||||
doc: "Set the indentation style for editing. ('t' for tabs or 1-8 for number of spaces.)",
|
||||
fun: set_indent_style,
|
||||
completer: None,
|
||||
},
|
||||
Command {
|
||||
name: "earlier",
|
||||
alias: Some("ear"),
|
||||
|
@ -501,7 +501,7 @@ pub fn render_statusline(
|
||||
// Compute the individual info strings.
|
||||
let diag_count = format!("{}", doc.diagnostics().len());
|
||||
let indent_info = match doc.indent_style {
|
||||
IndentStyle::Tabs => "tab",
|
||||
IndentStyle::Tabs => "tabs",
|
||||
IndentStyle::Spaces(1) => "spaces:1",
|
||||
IndentStyle::Spaces(2) => "spaces:2",
|
||||
IndentStyle::Spaces(3) => "spaces:3",
|
||||
|
Loading…
Reference in New Issue
Block a user