Skip to content

Commit

Permalink
Add +N CLI argument to jump to first file's line number (helix-editor…
Browse files Browse the repository at this point in the history
…#8521)

* Accept +num flag for opening at line number

* Update +N argument feature according to feedback in original PR helix-editor#5603

* Only override the line number of the first file if +N is specified

---------

Co-authored-by: Nachum Barcohen <38861757+nabaco@users.noreply.github.com>
  • Loading branch information
2 people authored and dgkf committed Jan 30, 2024
1 parent 942c680 commit 564e974
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
14 changes: 14 additions & 0 deletions helix-term/src/args.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ impl Args {
pub fn parse_args() -> Result<Args> {
let mut args = Args::default();
let mut argv = std::env::args().peekable();
let mut line_number = 0;

argv.next(); // skip the program, we don't care about that

Expand Down Expand Up @@ -88,6 +89,13 @@ impl Args {
}
}
}
arg if arg.starts_with('+') => {
let arg = &arg[1..];
line_number = match arg.parse::<usize>() {
Ok(n) => n.saturating_sub(1),
_ => anyhow::bail!("bad line number after +"),
};
}
arg => args.files.push(parse_file(arg)),
}
}
Expand All @@ -97,6 +105,12 @@ impl Args {
args.files.push(parse_file(&arg));
}

if let Some(file) = args.files.first_mut() {
if line_number != 0 {
file.1.row = line_number;
}
}

Ok(args)
}
}
Expand Down
1 change: 1 addition & 0 deletions helix-term/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ FLAGS:
--vsplit Splits all given files vertically into different windows
--hsplit Splits all given files horizontally into different windows
-w, --working-dir <path> Specify an initial working directory
+N Open the first given file at line number N
",
env!("CARGO_PKG_NAME"),
VERSION_AND_GIT_HASH,
Expand Down

0 comments on commit 564e974

Please sign in to comment.