mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 09:26:19 +04:00
Add command line parameter to specify log file (#3807)
* Add command line parameter to specify log file I had the logs of my debug helix mixed in with the logs from the production helix. Add a `--log` command line argument to redirect any logs to other files, making my debugging easier :-) * Update completion files with `--log` argument
This commit is contained in:
parent
8988c1ecc7
commit
130793dfd0
@ -16,7 +16,7 @@ _hx() {
|
|||||||
COMPREPLY=($(compgen -W "$languages" -- $2))
|
COMPREPLY=($(compgen -W "$languages" -- $2))
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
COMPREPLY=($(compgen -fd -W "-h --help --tutor -V --version -v -vv -vvv --health -g --grammar --vsplit --hsplit -c --config" -- $2))
|
COMPREPLY=($(compgen -fd -W "-h --help --tutor -V --version -v -vv -vvv --health -g --grammar --vsplit --hsplit -c --config --log" -- $2))
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
} && complete -F _hx hx
|
} && complete -F _hx hx
|
||||||
|
@ -36,6 +36,11 @@ set edit:completion:arg-completer[hx] = {|@args|
|
|||||||
edit:complete-filename $args[-1] | each { |v| put $v[stem] }
|
edit:complete-filename $args[-1] | each { |v| put $v[stem] }
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
# When we have --log, we need a file
|
||||||
|
if (has-values "log" $args[-2]) {
|
||||||
|
edit:complete-filename $args[-1] | each { |v| put $v[stem] }
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
edit:complete-filename $args[-1] | each { |v| put $v[stem]}
|
edit:complete-filename $args[-1] | each { |v| put $v[stem]}
|
||||||
$candidate "--help" "(Prints help information)"
|
$candidate "--help" "(Prints help information)"
|
||||||
@ -46,4 +51,5 @@ set edit:completion:arg-completer[hx] = {|@args|
|
|||||||
$candidate "--vsplit" "(Splits all given files vertically)"
|
$candidate "--vsplit" "(Splits all given files vertically)"
|
||||||
$candidate "--hsplit" "(Splits all given files horizontally)"
|
$candidate "--hsplit" "(Splits all given files horizontally)"
|
||||||
$candidate "--config" "(Specifies a file to use for configuration)"
|
$candidate "--config" "(Specifies a file to use for configuration)"
|
||||||
|
$candidate "--log" "(Specifies a file to write log data into)"
|
||||||
}
|
}
|
@ -12,3 +12,4 @@ complete -c hx -s V -l version -d "Prints version information"
|
|||||||
complete -c hx -l vsplit -d "Splits all given files vertically into different windows"
|
complete -c hx -l vsplit -d "Splits all given files vertically into different windows"
|
||||||
complete -c hx -l hsplit -d "Splits all given files horizontally into different windows"
|
complete -c hx -l hsplit -d "Splits all given files horizontally into different windows"
|
||||||
complete -c hx -s c -l config -d "Specifies a file to use for completion"
|
complete -c hx -s c -l config -d "Specifies a file to use for completion"
|
||||||
|
complete -c hx -s c -l log -d "Specifies a file to write log data into"
|
||||||
|
@ -18,6 +18,7 @@ _hx() {
|
|||||||
"--hsplit[Splits all given files horizontally into different windows]" \
|
"--hsplit[Splits all given files horizontally into different windows]" \
|
||||||
"-c[Specifies a file to use for configuration]" \
|
"-c[Specifies a file to use for configuration]" \
|
||||||
"--config[Specifies a file to use for configuration]" \
|
"--config[Specifies a file to use for configuration]" \
|
||||||
|
"--log[Specifies a file to write log data into]" \
|
||||||
"*:file:_files"
|
"*:file:_files"
|
||||||
|
|
||||||
case "$state" in
|
case "$state" in
|
||||||
|
@ -14,6 +14,7 @@ pub struct Args {
|
|||||||
pub build_grammars: bool,
|
pub build_grammars: bool,
|
||||||
pub split: Option<Layout>,
|
pub split: Option<Layout>,
|
||||||
pub verbosity: u64,
|
pub verbosity: u64,
|
||||||
|
pub log_file: Option<PathBuf>,
|
||||||
pub config_file: Option<PathBuf>,
|
pub config_file: Option<PathBuf>,
|
||||||
pub files: Vec<(PathBuf, Position)>,
|
pub files: Vec<(PathBuf, Position)>,
|
||||||
}
|
}
|
||||||
@ -48,6 +49,10 @@ pub fn parse_args() -> Result<Args> {
|
|||||||
Some(path) => args.config_file = Some(path.into()),
|
Some(path) => args.config_file = Some(path.into()),
|
||||||
None => anyhow::bail!("--config must specify a path to read"),
|
None => anyhow::bail!("--config must specify a path to read"),
|
||||||
},
|
},
|
||||||
|
"--log" => match argv.next().as_deref() {
|
||||||
|
Some(path) => args.log_file = Some(path.into()),
|
||||||
|
None => anyhow::bail!("--log must specify a path to write"),
|
||||||
|
},
|
||||||
arg if arg.starts_with("--") => {
|
arg if arg.starts_with("--") => {
|
||||||
anyhow::bail!("unexpected double dash argument: {}", arg)
|
anyhow::bail!("unexpected double dash argument: {}", arg)
|
||||||
}
|
}
|
||||||
|
@ -67,6 +67,7 @@ async fn main_impl() -> Result<i32> {
|
|||||||
-g, --grammar {{fetch|build}} Fetches or builds tree-sitter grammars listed in languages.toml
|
-g, --grammar {{fetch|build}} Fetches or builds tree-sitter grammars listed in languages.toml
|
||||||
-c, --config <file> Specifies a file to use for configuration
|
-c, --config <file> Specifies a file to use for configuration
|
||||||
-v Increases logging verbosity each use for up to 3 times
|
-v Increases logging verbosity each use for up to 3 times
|
||||||
|
--log Specifies a file to use for logging
|
||||||
(default file: {})
|
(default file: {})
|
||||||
-V, --version Prints version information
|
-V, --version Prints version information
|
||||||
--vsplit Splits all given files vertically into different windows
|
--vsplit Splits all given files vertically into different windows
|
||||||
@ -114,6 +115,7 @@ async fn main_impl() -> Result<i32> {
|
|||||||
return Ok(0);
|
return Ok(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let logpath = args.log_file.as_ref().cloned().unwrap_or(logpath);
|
||||||
setup_logging(logpath, args.verbosity).context("failed to initialize logging")?;
|
setup_logging(logpath, args.verbosity).context("failed to initialize logging")?;
|
||||||
|
|
||||||
let config_dir = helix_loader::config_dir();
|
let config_dir = helix_loader::config_dir();
|
||||||
|
Loading…
Reference in New Issue
Block a user