code: def validate_param_completion(self, param, leftover_args):
          
          # validates param starts with unfinished word
          completes = self.validate_completion(param)
  
          # show parameter completions when started
          full_param = self.unfinished_word.startswith("--") and param.startswith("--")
          char_param = self.unfinished_word.startswith("-") and not param.startswith("--")
  
          # show full parameters before any are used
          new_param = not self.unfinished_word and not leftover_args and param.startswith("--")
  
          # checks for parameters already in the line as well as aliases
          no_doubles = True
          command_doubles = self.command_param_info.get(self.current_command, {})
          for alias in command_doubles.get(param, []):
              if alias in leftover_args:
                  no_doubles = False
  
          return completes and no_doubles and any((full_param, char_param, new_param))
docs: validates that a param should be completed