mirror of
https://github.com/wez/wezterm.git
synced 2024-11-22 22:42:48 +03:00
lua: print -> log_info
Make print equivalent to log_info. Improve the various log functions so that all of their arguments are considered. refs: https://github.com/wez/wezterm/issues/641
This commit is contained in:
parent
09f0421b48
commit
0e9d86f9f9
@ -2,8 +2,7 @@ use crate::{FontAttributes, FontStretch, FontWeight, TextStyle};
|
||||
use anyhow::anyhow;
|
||||
use bstr::BString;
|
||||
pub use luahelper::*;
|
||||
use mlua::{FromLua, ToLua, ToLuaMulti};
|
||||
use mlua::{Lua, Table, Value};
|
||||
use mlua::{FromLua, Lua, Table, ToLua, ToLuaMulti, Value, Variadic};
|
||||
use serde::*;
|
||||
use smol::prelude::*;
|
||||
use std::path::Path;
|
||||
@ -94,24 +93,59 @@ pub fn make_lua_context(config_file: &Path) -> anyhow::Result<Lua> {
|
||||
lua.create_function(|_, ()| Ok(crate::running_under_wsl()))?,
|
||||
)?;
|
||||
|
||||
fn print_helper(args: Variadic<Value>) -> String {
|
||||
let mut output = String::new();
|
||||
for (idx, item) in args.into_iter().enumerate() {
|
||||
if idx > 0 {
|
||||
output.push(' ');
|
||||
}
|
||||
|
||||
match item {
|
||||
Value::String(s) => match s.to_str() {
|
||||
Ok(s) => output.push_str(s),
|
||||
Err(_) => {
|
||||
let item = String::from_utf8_lossy(s.as_bytes());
|
||||
output.push_str(&item);
|
||||
}
|
||||
},
|
||||
item @ _ => {
|
||||
let item = format!("{:?}", ValueWrapper(item));
|
||||
output.push_str(&item);
|
||||
}
|
||||
}
|
||||
}
|
||||
output
|
||||
}
|
||||
|
||||
wezterm_mod.set(
|
||||
"log_error",
|
||||
lua.create_function(|_, msg: String| {
|
||||
log::error!("lua: {}", msg);
|
||||
lua.create_function(|_, args: Variadic<Value>| {
|
||||
let output = print_helper(args);
|
||||
log::error!("lua: {}", output);
|
||||
Ok(())
|
||||
})?,
|
||||
)?;
|
||||
wezterm_mod.set(
|
||||
"log_info",
|
||||
lua.create_function(|_, msg: String| {
|
||||
log::info!("lua: {}", msg);
|
||||
lua.create_function(|_, args: Variadic<Value>| {
|
||||
let output = print_helper(args);
|
||||
log::info!("lua: {}", output);
|
||||
Ok(())
|
||||
})?,
|
||||
)?;
|
||||
wezterm_mod.set(
|
||||
"log_warn",
|
||||
lua.create_function(|_, msg: String| {
|
||||
log::warn!("lua: {}", msg);
|
||||
lua.create_function(|_, args: Variadic<Value>| {
|
||||
let output = print_helper(args);
|
||||
log::warn!("lua: {}", output);
|
||||
Ok(())
|
||||
})?,
|
||||
)?;
|
||||
globals.set(
|
||||
"print",
|
||||
lua.create_function(|_, args: Variadic<Value>| {
|
||||
let output = print_helper(args);
|
||||
log::info!("lua: {}", output);
|
||||
Ok(())
|
||||
})?,
|
||||
)?;
|
||||
|
@ -1,4 +1,4 @@
|
||||
# `wezterm.log_error(msg)`
|
||||
# `wezterm.log_error(arg, ..)`
|
||||
|
||||
This function logs the provided message string through wezterm's logging layer
|
||||
at 'ERROR' level. If you started wezterm from a terminal that text will print
|
||||
@ -10,4 +10,8 @@ local wezterm = require 'wezterm';
|
||||
wezterm.log_error("Hello!");
|
||||
```
|
||||
|
||||
*Since: nightly builds only*
|
||||
|
||||
Now accepts multiple arguments, and those arguments can be of any type.
|
||||
|
||||
See also [log_info](log_info.md) and [log_warn](log_warn.md).
|
||||
|
@ -1,4 +1,4 @@
|
||||
# `wezterm.log_info(msg)`
|
||||
# `wezterm.log_info(arg, ..)`
|
||||
|
||||
*Since: 20210314-114017-04b7cedd*
|
||||
|
||||
@ -12,5 +12,10 @@ local wezterm = require 'wezterm';
|
||||
wezterm.log_info("Hello!");
|
||||
```
|
||||
|
||||
*Since: nightly builds only*
|
||||
|
||||
Now accepts multiple arguments, and those arguments can be of any type.
|
||||
|
||||
|
||||
See also [log_error](log_error.md) and [log_warn](log_warn.md).
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# `wezterm.log_warn(msg)`
|
||||
# `wezterm.log_warn(arg, ..)`
|
||||
|
||||
*Since: 20210314-114017-04b7cedd*
|
||||
|
||||
@ -12,5 +12,10 @@ local wezterm = require 'wezterm';
|
||||
wezterm.log_warn("Hello!");
|
||||
```
|
||||
|
||||
*Since: nightly builds only*
|
||||
|
||||
Now accepts multiple arguments, and those arguments can be of any type.
|
||||
|
||||
|
||||
See also [log_info](log_info.md) and [log_error](log_error.md).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user