add-ed 0.11.0-alpha

Embeddable pure rust editor based on ED
Documentation
/// Help text, printed when "help" is entered as a command.
#[cfg(feature = "initial_input_data")]
pub const HELP_TEXT: &str = concat!(
"Application commands:\n",
"  q: Quit the editor. Warns on unsaved changes.\n",
"  Q: Force quit the editor.\n",
"  h: Print last occured error\n",
"  H: Toggle printing errors vs just noting there was an error\n",
"  help: Print this help text\n",
"  =: Print current selection\n",
"  #: Do nothing (start of comment)\n",
"File commands:\n",
"  f: Print current filepath; or set filepath if one is given\n",
"  e: Open given filepath for editing. If none given use current filepath. Warns\n",
"     on unsaved changes.\n",
"  E: Same as 'e' but unconditional (overwriting unsaved changes if any).\n",
"  r: Append contents from given filepath to current selection. If none given\n",
"     use current filepath.\n",
"  w: Write selection (default all) to given filepath. If none given use current\n",
"     filepath.\n",
"  W: Append selection to given filepath. If none given use current filepath.\n",
"Print commands:\n",
"  Most commands take flags p (print), n (numbered print), l (escaped print).\n",
"  (no command): Normal print by default. Also accepts print flags.\n",
"  N: Toggles if the 'n' flag is included in prints by default.\n",
"  L: Toggles if the 'l' flag is included in prints by default.\n",
"  z: Scroll (and print) given number of lines down from end of selection.\n",
"  Z: Scroll (and print) given number of lines up from start of selection.\n",
"Editing commands:\n",
"  a: Append lines entered after the command to selection. Stop line entry with\n",
"     lone '.' on a line.\n",
"  i: Same as 'a' but places lines before selection.\n",
"  c: Same as 'a' except it also cuts the selection into clipboard.\n",
"  A: Same as 'a', but joins the last input line with the line following the\n",
"     input (if any).\n",
"  I: Same as 'i', but joins the first input line with the line preceding the\n",
"     input (if any).\n",
"  C: Same as 'c', but the selection is copied into the input field, allowing\n",
"     direct modification.\n",
"  d: Cut the selection into clipboard.\n",
"  y: Copy the selection into clipboard.\n",
"  x/X: Append/prepend clipboard contents to selection.\n",
"  m: Move the selection to after index given after command.\n",
"  t: Copy the selection to after index given after command.\n",
"  j: Join the selection into one line. (only removes newlines)\n",
"Regex commands:\n",
"  s: Uses the first character as a separator between a regex matching pattern\n",
"     and a replacement string.\n",
"     If no arguments are given it re-uses the arguments given last execution.\n",
"  g: Uses the first character as a separator between a regex matching pattern\n",
"     and any number of commands.\n",
"     If the line doesn't end with the separator it takes input until the\n",
"     separator is given alone on a line.\n",
"  G: Same as 'g' but only takes a pattern. The commands to run against each\n",
"     matching line are given upon each line.\n",
"     Input is terminated by the separator alone on a line, just as 'g' if\n",
"     command line isn't separator terminated.\n",
"  v/V: Same as their 'g' counterparts except they invert the pattern.\n",
);
#[cfg(not(feature = "initial_input_data"))]
pub const HELP_TEXT: &str = concat!(
"Application commands:\n",
"  q: Quit the editor. Warns on unsaved changes.\n",
"  Q: Force quit the editor.\n",
"  h: Print last occured error\n",
"  H: Toggle printing errors vs just noting there was an error\n",
"  help: Print this help text\n",
"  =: Print current selection\n",
"  #: Do nothing (start of comment)\n",
"File commands:\n",
"  f: Print current filepath; or set filepath if one is given\n",
"  e: Open given filepath for editing. If none given use current filepath. Warns\n",
"     on unsaved changes.\n",
"  E: Same as 'e' but unconditional (overwriting unsaved changes if any).\n",
"  r: Append contents from given filepath to current selection. If none given\n",
"     use current filepath.\n",
"  w: Write selection (default all) to given filepath. If none given use current\n",
"     filepath.\n",
"  W: Append selection to given filepath. If none given use current filepath.\n",
"Print commands:\n",
"  Most commands take flags p (print), n (numbered print), l (escaped print).\n",
"  (no command): Normal print by default. Also accepts print flags.\n",
"  N: Toggles if the 'n' flag is included in prints by default.\n",
"  L: Toggles if the 'l' flag is included in prints by default.\n",
"  z: Scroll (and print) given number of lines down from end of selection.\n",
"  Z: Scroll (and print) given number of lines up from start of selection.\n",
"Editing commands:\n",
"  a: Append lines entered after the command to selection. Stop line entry with\n",
"     lone '.' on a line.\n",
"  i: Same as 'a' but places lines before selection.\n",
"  c: Same as 'a' except it also cuts the selection into clipboard.\n",
"  A: Same as 'a', but joins the last input line with the line following the\n",
"     input (if any).\n",
"  I: Same as 'i', but joins the first input line with the line preceding the\n",
"     input (if any).\n",
"  d: Cut the selection into clipboard.\n",
"  y: Copy the selection into clipboard.\n",
"  x/X: Append/prepend clipboard contents to selection.\n",
"  m: Move the selection to after index given after command.\n",
"  t: Copy the selection to after index given after command.\n",
"  j: Join the selection into one line. (only removes newlines)\n",
"Regex commands:\n",
"  s: Uses the first character as a separator between a regex matching pattern\n",
"     and a replacement string.\n",
"     If no arguments are given it re-uses the arguments given last execution.\n",
"  g: Uses the first character as a separator between a regex matching pattern\n",
"     and any number of commands.\n",
"     If the line doesn't end with the separator it takes input until the\n",
"     separator is given alone on a line.\n",
"  G: Same as 'g' but only takes a pattern. The commands to run against each\n",
"     matching line are given upon each line.\n",
"     Input is terminated by the separator alone on a line, just as 'g' if\n",
"     command line isn't separator terminated.\n",
"  v/V: Same as their 'g' counterparts except they invert the pattern.\n",
);

/// Printed when 'h' command is called and no error has occured yet.
pub const NO_ERROR: &str = "No errors recorded.";
/// Printed when 'f' command is called and no default path is yet set.
pub const NO_FILE: &str = "No default file currently set.";