aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTornaxO72023-12-15 18:05:04 +0000
committerGitHub2023-12-15 18:05:04 +0000
commit914c83420b9901f596bf771ad5f20495de9a070c (patch)
tree0437b4028945e74ce3f692d429cf9238433bde17
parent33d85606cf36da074d91db498d12233ab4978509 (diff)
fix `:indent-style` crash (#9087)
* removing unreachable statement in `:indent-style` * update checks when setting indent line and update docs * `cargo xtask docgen`
-rw-r--r--book/src/generated/typable-cmd.md2
-rw-r--r--helix-core/src/indent.rs2
-rw-r--r--helix-term/src/commands/typed.rs8
3 files changed, 6 insertions, 6 deletions
diff --git a/book/src/generated/typable-cmd.md b/book/src/generated/typable-cmd.md
index 6280d3c7..f4fcb6f6 100644
--- a/book/src/generated/typable-cmd.md
+++ b/book/src/generated/typable-cmd.md
@@ -17,7 +17,7 @@
| `:write-buffer-close!`, `:wbc!` | Force write changes to disk creating necessary subdirectories and closes the buffer. Accepts an optional path (:write-buffer-close! some/path.txt) |
| `:new`, `:n` | Create a new scratch buffer. |
| `:format`, `:fmt` | Format the file using the LSP formatter. |
-| `:indent-style` | Set the indentation style for editing. ('t' for tabs or 1-8 for number of spaces.) |
+| `:indent-style` | Set the indentation style for editing. ('t' for tabs or 1-16 for number of spaces.) |
| `:line-ending` | Set the document's default line ending. Options: crlf, lf. |
| `:earlier`, `:ear` | Jump back to an earlier point in edit history. Accepts a number of steps or a time span. |
| `:later`, `:lat` | Jump to a later point in edit history. Accepts a number of steps or a time span. |
diff --git a/helix-core/src/indent.rs b/helix-core/src/indent.rs
index 9333460b..1e90db47 100644
--- a/helix-core/src/indent.rs
+++ b/helix-core/src/indent.rs
@@ -22,7 +22,7 @@ pub enum IndentStyle {
// 16 spaces
const INDENTS: &str = " ";
-const MAX_INDENT: u8 = 16;
+pub const MAX_INDENT: u8 = 16;
impl IndentStyle {
/// Creates an `IndentStyle` from an indentation string.
diff --git a/helix-term/src/commands/typed.rs b/helix-term/src/commands/typed.rs
index 4148257f..1d4d6505 100644
--- a/helix-term/src/commands/typed.rs
+++ b/helix-term/src/commands/typed.rs
@@ -6,6 +6,7 @@ use crate::job::Job;
use super::*;
use helix_core::fuzzy::fuzzy_match;
+use helix_core::indent::MAX_INDENT;
use helix_core::{encoding, line_ending, path::get_canonicalized_path, shellwords::Shellwords};
use helix_lsp::{OffsetEncoding, Url};
use helix_view::document::DEFAULT_LANGUAGE_NAME;
@@ -476,8 +477,7 @@ fn set_indent_style(
cx.editor.set_status(match style {
Tabs => "tabs".to_owned(),
Spaces(1) => "1 space".to_owned(),
- Spaces(n) if (2..=8).contains(&n) => format!("{} spaces", n),
- _ => unreachable!(), // Shouldn't happen.
+ Spaces(n) => format!("{} spaces", n),
});
return Ok(());
}
@@ -489,7 +489,7 @@ fn set_indent_style(
Some(arg) => arg
.parse::<u8>()
.ok()
- .filter(|n| (1..=8).contains(n))
+ .filter(|n| (1..=MAX_INDENT).contains(n))
.map(Spaces),
_ => None,
};
@@ -2606,7 +2606,7 @@ pub const TYPABLE_COMMAND_LIST: &[TypableCommand] = &[
TypableCommand {
name: "indent-style",
aliases: &[],
- doc: "Set the indentation style for editing. ('t' for tabs or 1-8 for number of spaces.)",
+ doc: "Set the indentation style for editing. ('t' for tabs or 1-16 for number of spaces.)",
fun: set_indent_style,
signature: CommandSignature::none(),
},