whole_func_string: function createFrameworkExtendCallExpression(t, calleeName, extendName, hasPluginOpt) {
      let args = [t.identifier(extendName)];
  
      if (hasPluginOpt) {
          args.push(t.objectExpression([]));
      }
  
      return t.expressionStatement(
          t.callExpression(
              t.memberExpression(
                  t.identifier(calleeName),
                  t.identifier('use')
              ),
              args
          )
      );
  }
func_code_string: function createFrameworkExtendCallExpression(t, calleeName, extendName, hasPluginOpt) {
      let args = [t.identifier(extendName)];
  
      if (hasPluginOpt) {
          args.push(t.objectExpression([]));
      }
  
      return t.expressionStatement(
          t.callExpression(
              t.memberExpression(
                  t.identifier(calleeName),
                  t.identifier('use')
              ),
              args
          )
      );
  }
func_documentation_string: Create `App.use(xx)` using extension statement
  
  @inner
  @param {Object} t the babel type definition
  @param {string} calleeName the callee name
  @param {string} extendName the extension name
  @param {boolean=} hasPluginOpt whether has extension plugin options
  @return {Object}