def help(self, command = None):
    """
    Show available commands or help on a specific command.
    """
    if command:
      command = self.analyzer.completeCommand(command)
    
    if command in self.analyzer.commands:
      args, _, _, defaults = inspect.getargspec(self.analyzer.commands[command])
      
      if defaults is None:
        defaults = []

      helpString = "Usage: %s " % command
      for i, arg in enumerate(args):
        if arg == "self":
          continue
        if i >= len(args) - len(defaults):
          helpString += "[%s = %s] " % (arg, defaults[i - (len(defaults) - len(args))])
        else:
          helpString += "<%s> " % arg
      
      self.reportInfo(helpString)
      
      if self.analyzer.commands[command].__doc__:
        for line in self.analyzer.commands[command].__doc__.split("\n"):
          line = line.strip()
          if line.startswith("@param"):
            _, arg, text = line.split(" ", 2)
            line = "%-16s %s" % (arg.strip(), text.strip())
          self.reportInfo(line)

      if self.analyzer.commandHelp.get(command):
        self.reportInfo(self.analyzer.commandHelp[command]())
          
      return
    
    self.reportInfo("Available commands:")
    for command, func in sorted(self.analyzer.commands.items()):
      doc = func.__doc__ or ""
      if doc and "." in doc:
        doc = doc.strip().split(".", 1)[0] + "."
      doc = re.sub(" +", " ", doc)
      doc = re.sub("\n", " ", doc)
      doc = StringUtils.wordWrap(doc, columns = 55)
      doc = doc.replace("\n", "\n" + " " * 21)
      self.reportInfo("%-19s- %s" % (command, doc))
    self.reportInfo("""
Tips:
  * You may use abbreviated names for commands, e.g. "h" for "help" or "s-s" for "show-state".
  * Multiple commands may be separated with a semicolon ';'. 
  * Whenever an event range is required, you may pass a single event (e.g. 123), a range of 
    events (10:20 or 10:+10), a single frame (#512) e.g. or a range of frames (#15:#20 or 
    #15:+#5).
  * Named arguments can also be given for commands, e.g. list traceName=t0.
""")
dataset/ETHPy150Open skyostil/tracy/src/analyzer/plugins/core/CorePlugin.py/CoreInteractivePlugin.help/swapped operands of `-`