Skip to content

Commit

Permalink
term: get_terminal_size() for js_node, term.clear() for all js backen…
Browse files Browse the repository at this point in the history
…ds (#12189)
  • Loading branch information
playXE committed Oct 15, 2021
1 parent d3887c1 commit 814b4eb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 8 deletions.
21 changes: 18 additions & 3 deletions vlib/term/term.js.v
@@ -1,8 +1,23 @@
module term

#const $tty = require('tty');
// get_terminal_size returns a number of colums and rows of terminal window.
pub fn get_terminal_size() (int, int) {
// TODO Find a way to get proper width & height of the terminal
// on a Javascript environment
return default_columns_size, default_rows_size
$if js_node {
colums := 0
rows := 0
#let sizes = $tty.WriteStream(1).getWindowSize();
#colums.val = sizes[0];
#rows.val = sizes[1];

return colums, rows
} $else {
return default_columns_size, default_rows_size
}
}

// clear clears current terminal screen.
pub fn clear() {
print('\x1b[2J')
print('\x1b[H')
}
10 changes: 5 additions & 5 deletions vlib/v/gen/js/auto_str_methods.v
Expand Up @@ -264,24 +264,24 @@ fn (mut g JsGen) gen_str_for_multi_return(info ast.MultiReturn, styp string, str
arg_str_fn_name := g.get_str_fn(typ)

if should_use_indent_func(sym.kind) && !sym_has_str_method {
fn_builder.writeln('\tstrings__Builder_write_string(sb, ${arg_str_fn_name}(a.arg$i));')
fn_builder.writeln('\tstrings__Builder_write_string(sb, ${arg_str_fn_name}(a[$i]));')
} else if sym.kind in [.f32, .f64] {
if sym.kind == .f32 {
tmp_val := str_intp_g32('a.arg$i')
tmp_val := str_intp_g32('a[$i]')
fn_builder.writeln('\tstrings__Builder_write_string(sb, $tmp_val);')
} else {
tmp_val := str_intp_g64('a.arg$i')
tmp_val := str_intp_g64('a[$i]')
fn_builder.writeln('\tstrings__Builder_write_string(sb, $tmp_val);')
}
} else if sym.kind == .string {
tmp_str := str_intp_sq('a.arg$i')
tmp_str := str_intp_sq('a[$i]')
fn_builder.writeln('\tstrings__Builder_write_string(sb, $tmp_str);')
} else if sym.kind == .function {
fn_builder.writeln('\tstrings__Builder_write_string(sb, ${arg_str_fn_name}());')
} else {
deref, deref_label := deref_kind(str_method_expects_ptr, is_arg_ptr, typ)
fn_builder.writeln('\t\tstrings__Builder_write_string(sb, new string("$deref_label"));')
fn_builder.writeln('\tstrings__Builder_write_string(sb, ${arg_str_fn_name}( $deref a.arg$i));')
fn_builder.writeln('\tstrings__Builder_write_string(sb, ${arg_str_fn_name}( $deref a[$i]));')
}
if i != info.types.len - 1 {
fn_builder.writeln('\tstrings__Builder_write_string(sb, new string(", "));')
Expand Down

0 comments on commit 814b4eb

Please sign in to comment.