whole_func_string: function showEventNameLog(name, newName, eventModifiers, attrs, tplOpts) {
      let {logger, file, appType} = tplOpts;
  
      NOT_SUPPORT_MODIFIERS.forEach(item => {
          if (eventModifiers.includes(item)) {
              logger.warn(
                  `${file.path} template event attribute ${name}`,
                  `is not support with ${item} modifier in ${appType} env`
              );
          }
      });
  
      if (attrs.hasOwnProperty(newName)) {
          logger.warn(`${file.path} template attribute ${name} is conflicted with ${newName}`);
      }
  }
func_code_string: function showEventNameLog(name, newName, eventModifiers, attrs, tplOpts) {
      let {logger, file, appType} = tplOpts;
  
      NOT_SUPPORT_MODIFIERS.forEach(item => {
          if (eventModifiers.includes(item)) {
              logger.warn(
                  `${file.path} template event attribute ${name}`,
                  `is not support with ${item} modifier in ${appType} env`
              );
          }
      });
  
      if (attrs.hasOwnProperty(newName)) {
          logger.warn(`${file.path} template attribute ${name} is conflicted with ${newName}`);
      }
  }
func_documentation_string: show warning log when parsing event name
  
  @param {string} name     attribute name
  @param {string} newName  new attribute name
  @param {Array} eventModifiers     array of event modifier
  @param {Object} attrs     all attributes
  @param {Object} tplOpts  template options