コード例 #1
0
ファイル: DocAstVistor.cs プロジェクト: xuld/DocPlus
        private void AutoFillTypeByReturnValue(DocComment dc)
        {
            if (dc != null && ReturnValue != null) {
                if (ReturnValue is bool) {
                    dc.AutoFill(NodeNames.Type, "Boolean");
                    dc.AutoFill(NodeNames.DefaultValue, (bool)ReturnValue == true ? "true" : "false");
                } else if (ReturnValue is string) {
                    dc.AutoFill(NodeNames.Type, "String");
                    dc.AutoFill(NodeNames.DefaultValue, new StringLiteral((string)ReturnValue, '"', Location.Empty, Location.Empty).ToString());
                } else if (ReturnValue is double) {
                    dc.AutoFill(NodeNames.Type, "Number");
                    if (!(double.IsNaN((double)ReturnValue)))
                        dc.AutoFill(NodeNames.DefaultValue, ReturnValue.ToString());
                } else if (ReturnValue is ILiteral) {
                    if (ReturnValue is ArrayLiteral) {
                        dc.AutoFill(NodeNames.Type, "Array");
                    } else if (ReturnValue is NullLiteral) {
                        dc.AutoFill(NodeNames.DefaultValue, "null");
                    } else if (ReturnValue is RegExpLiteral) {
                        dc.AutoFill(NodeNames.Type, "RegExp");
                        dc.AutoFill(NodeNames.DefaultValue, ((RegExpLiteral)ReturnValue).ToString());
                    } else if (ReturnValue is FunctionExpression) {
                        dc.AutoFill(NodeNames.Type, "Function");
                        dc.AutoFill(NodeNames.MemberType, "method");

                        if(_project.AutoCreateFunctionParam) {

                            FunctionExpression fn = (FunctionExpression)ReturnValue;

                            var param = (ParamInfoCollection)dc[NodeNames.Param];
                            if(param == null) {
                                dc[NodeNames.Param] = param = new ParamInfoCollection();
                                foreach(Identifier p in fn.Params) {
                                    param.Add(p.Value);
                                }
                            }

                        }
                    }
                }
            }
        }
コード例 #2
0
ファイル: DocAstVistor.cs プロジェクト: xuld/DocPlus
 /// <summary>
 /// 自动识别注释中的名字。
 /// </summary>
 /// <param name="dc">赋值的父对象。</param>
 /// <param name="value">变量。</param>
 private void AutoFillName(DocComment dc, string name)
 {
     if (dc != null && name != null)
         dc.AutoFill(NodeNames.Name, name);
 }