variable_name_suffix argument setting¶
This page explains the variable_name_suffix argument setting.
What argument is this?¶
The variable_name_suffix argument changes an exported JavaScript’s variable name suffix.
This setting sometimes becomes useful when you want to debug an exported JavaScript code.
Basic usage¶
Each class has a variable_name_suffix, and you can set a suffix with its argument.
The following example sets the my_int suffix to the ap.Int instance:
import apysc as ap
ap.Stage(stage_width=150, stage_height=150, stage_elem_id="stage")
int_val: ap.Int = ap.Int(10, variable_name_suffix="my_int")
ap.trace(int_val)
ap.save_overall_html(
    dest_dir_path="./variable_name_suffix_basic_usage_1/", minify=False
)
In the exported JavaScript code, you can verify its ap.Int variable has the specified suffix, _my_int, as follows:
  // ...
  var i_9__my_int = 10;
  console.log(i_9__my_int, "Called from: tmp.py, line number: 5");
  // ...
Class attributes inherit a suffix value of its class argument’s value.
For example, if you set the my_rectangle value to the variable_name_suffix argument, its attributes (e.g., x, fill_color) also inherit the my_rectangle suffix:
import apysc as ap
ap.Stage(stage_width=150, stage_height=150, stage_elem_id="stage")
rectangle: ap.Rectangle = ap.Rectangle(
    x=50,
    y=50,
    width=50,
    height=50,
    fill_color=ap.Color("#0af"),
    variable_name_suffix="my_rectangle",
)
ap.save_overall_html(
    dest_dir_path="./variable_name_suffix_basic_usage_2/", minify=False
)
In that case, each attribute also has an attribute identifier suffix, such as the x, width:
  var i_9__my_rectangle__x = 50;
  var i_10__my_rectangle__y = 50;
  var i_12__my_rectangle__width = 50;
  // ...
  var rect_1__my_rectangle = stage
    .rect(i_16__my_rectangle__width, i_17__my_rectangle__height)
    .attr({
      fill: s_1__my_rectangle__fill_color,
      "fill-opacity": n_2__my_rectangle__fill_alpha,
      "stroke-width": i_15__my_rectangle__line_thickness,
      "stroke-opacity": n_3__my_rectangle__line_alpha,
      x: i_9__my_rectangle__x,
      y: i_10__my_rectangle__y,
    });
  // ...