@@ -9,7 +9,7 @@ use helix_core::{
11use helix_view::{
11use helix_view::{
12− document::Mode,
12+ document::{IndentStyle, Mode},
13 view::{View, PADDING},
13 view::{View, PADDING},
14 Document, DocumentId, Editor, ViewId,
14 Document, DocumentId, Editor, ViewId,
@@ -979,6 +979,28 @@ mod cmd {
979 doc.format(view.id)
979 doc.format(view.id)
982+ fn set_indent_style(editor: &mut Editor, args: &[&str], event: PromptEvent) {
985+ let style = match args.get(0) {
986+ Some(arg) if "tabs".starts_with(&arg.to_lowercase()) => Some(Tabs),
987+ Some(arg) if arg.len() == 1 => {
988+ let ch = arg.chars().next().unwrap();
989+ if ('1'..='8').contains(&ch) {
990+ Some(Spaces(ch.to_digit(10).unwrap() as u8))
998+ if let Some(s) = style {
999+ let (_, doc) = editor.current();
1000+ doc.indent_style = s;
982 fn earlier(editor: &mut Editor, args: &[&str], event: PromptEvent) {
1004 fn earlier(editor: &mut Editor, args: &[&str], event: PromptEvent) {
983 let uk = match args.join(" ").parse::<helix_core::history::UndoKind>() {
1005 let uk = match args.join(" ").parse::<helix_core::history::UndoKind>() {
984 Ok(uk) => uk,
1006 Ok(uk) => uk,
@@ -1143,6 +1165,13 @@ mod cmd {
1143 fun: format,
1165 fun: format,
1144 completer: None,
1166 completer: None,
1169+ name: "indent_style",
1171+ doc: "Set the indentation style for editing. ('t' for tabs or 1-8 for number of spaces.)",
1172+ fun: set_indent_style,
1146 Command {
1175 Command {
1147 name: "earlier",
1176 name: "earlier",
1148 alias: Some("ear"),
1177 alias: Some("ear"),