Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v4.9.0 函数注释无法获取形参名称 #477

Closed
bitbw opened this issue May 17, 2022 · 9 comments
Closed

v4.9.0 函数注释无法获取形参名称 #477

bitbw opened this issue May 17, 2022 · 9 comments

Comments

@bitbw
Copy link

bitbw commented May 17, 2022

描述bug(必填)

v4.9.0 函数注释无法获取形参名称

注释设置(必填):

VsCode设置:

 // 头部注释
  "fileheader.customMade": {
    // Author字段是文件的创建者 可以在specialOptions中更改特殊属性
    // 公司项目和个人项目可以配置不同的用户名与邮箱 搜索: gitconfig includeIf  比如: https://ayase.moe/2021/03/09/customized-git-config/
    // 自动提取当前git config中的: 用户名、邮箱
    "Author": "git config user.name && git config user.email", // 同时获取用户名与邮箱
    // "Author": "git config user.name", // 仅获取用户名
    // "Author": "git config user.email", // 仅获取邮箱
    // "Author": "OBKoro1", // 写死的固定值 不从git config中获取
    "Date": "Do not edit", // 文件创建时间(不变)
    // LastEditors、LastEditTime、FilePath将会自动更新 如果觉得时间更新的太频繁可以使用throttleTime(默认为1分钟)配置更改更新时间。
    "LastEditors": "git config user.name && git config user.email", // 文件最后编辑者 与Author字段一致
    // 由于编辑文件就会变更最后编辑时间,多人协作中合并的时候会导致merge
    // 可以将时间颗粒度改为周、或者月,这样冲突就减少很多。搜索变更时间格式: dateFormat
    "LastEditTime": "Do not edit", // 文件最后编辑时间
    // 输出相对路径,类似: /文件夹名称/src/index.js
    "FilePath": "Do not edit", // 文件在项目中的相对路径 自动更新
    // 插件会自动将光标移动到Description选项中 方便输入 Description字段可以在specialOptions更改
    "Description": "", // 介绍文件的作用、文件的入参、出参。
    // custom_string_obkoro1~custom_string_obkoro100都可以输出自定义信息
    // 可以设置多条自定义信息 设置个性签名、留下QQ、微信联系方式、输入空行等
    "custom_string_obkoro1": "",
    // 版权声明 保留文件所有权利 自动替换年份 获取git配置的用户名和邮箱
    // 版权声明获取git配置, 与Author字段一致: ${git_name} ${git_email} ${git_name_email}
    "custom_string_obkoro1_copyright": "Copyright (c) ${now_year} by ${git_name_email}, All Rights Reserved. "
    // "custom_string_obkoro1_copyright": "Copyright (c) ${now_year} by 写死的公司名/用户名, All Rights Reserved. "
  },
  // 函数注释
  "fileheader.cursorMode": {
    "description": "", // 函数注释生成之后,光标移动到这里
    "param": "", // param 开启函数参数自动提取 需要将光标放在函数行或者函数上方的空白行
    "return": "",
  },
  // 插件配置项
  "fileheader.configObj": {
    "autoAdd": true, // 检测文件没有头部注释,自动添加文件头部注释
    "autoAddLine": 100, // 文件超过多少行数 不再自动添加头部注释
    "autoAlready": true, // 只添加插件支持的语言以及用户通过`language`选项自定义的注释
    "supportAutoLanguage": [], // 设置之后,在数组内的文件才支持自动添加
    // 自动添加头部注释黑名单
    "prohibitAutoAdd": [
      "json"
    ],
    "prohibitItemAutoAdd": [
      "项目的全称禁止项目自动添加头部注释, 使用快捷键自行添加"
    ],
    "folderBlacklist": [
      "node_modules"
    ], // 文件夹或文件名禁止自动添加头部注释
    "wideSame": false, // 头部注释等宽设置
    "wideNum": 13, // 头部注释字段长度 默认为13
    "functionWideNum": 0, // 函数注释等宽设置 设为0 即为关闭
    // 头部注释第几行插入
    "headInsertLine": {
      "php": 2 // php文件 插入到第二行
    },
    "beforeAnnotation": {}, // 头部注释之前插入内容
    "afterAnnotation": {}, // 头部注释之后插入内容
    "specialOptions": {}, // 特殊字段自定义 比如: Author、LastEditTime、LastEditors、FilePath、Description、Date等
    "switch": {
      "newlineAddAnnotation": true // 默认遇到换行符(\r\n \n \r)添加注释符号
    },
    "moveCursor": true, // 自动移动光标到Description所在行
    "dateFormat": "YYYY-MM-DD HH:mm:ss",
    "atSymbol": [
      "@",
      "@"
    ], // 更改所有文件的自定义注释中的@符号
    "atSymbolObj": {}, //  更改单独语言/文件的@
    "colon": [
      ": ",
      ": "
    ], // 更改所有文件的注释冒号
    "colonObj": {}, //  更改单独语言/文件的冒号
    "filePathColon": "路径分隔符替换", // 默认值: mac: / window是: \
    "showErrorMessage": false, // 是否显示插件错误通知 用于debugger
    "writeLog": false, // 错误日志生成
    "CheckFileChange": false, // 单个文件保存时进行diff检查
    "createHeader": false, // 新建文件自动添加头部注释
    "useWorker": false, // 是否使用工作区设置
    "designAddHead": false, // 添加注释图案时添加头部注释
    "headDesignName": "random", // 图案注释使用哪个图案 
    "headDesign": false, // 是否使用图案注释替换头部注释
    // 自定义配置是否在函数内生成注释 不同文件类型和语言类型
    "cursorModeInternalAll": {}, // 默认为false 在函数外生成函数注释
    "openFunctionParamsCheck": true, // 开启关闭自动提取添加函数参数
    "functionParamsShape": [
      "{",
      "}"
    ], // 函数参数外形自定义 
    // "functionParamsShape": "no type" 函数参数不需要类型
    "functionBlankSpaceAll": {}, // 函数注释空格缩进 默认为空对象 默认值为0 不缩进
    "functionTypeSymbol": "*", // 参数没有类型时的默认值
    "typeParamOrder": "type param", // 参数类型 和 参数的位置自定义
    "NoMatchParams": "no show param", // 没匹配到函数参数,是否显示@param与@return这两行 默认不显示param
    "functionParamAddStr": "", // 在 type param 后面增加字符串 可能是冒号,方便输入参数描述
    // 自定义语言注释,自定义取消 head、end 部分
    // 不设置自定义配置language无效 默认都有head、end
    "customHasHeadEnd": {}, // "cancel head and function" | "cancel head" | "cancel function" 
    "throttleTime": 60000, // 对同一个文件 需要过1分钟再次修改文件并保存才会更新注释
    // 自定义语言注释符号,覆盖插件的注释格式
    "language": {
      // js后缀文件
      "js": {
        "head": "/$$",
        "middle": " $ @",
        "end": " $/",
        // 函数自定义注释符号:如果有此配置 会默认使用
        "functionSymbol": {
          "head": "/******* ", // 统一增加几个*号
          "middle": " * @",
          "end": " */"
        },
        "functionParams": "typescript" // 函数注释使用ts语言的解析逻辑
      },
      // 一次匹配多种文件后缀文件 不用重复设置
      "h/hpp/cpp": {
        "head": "/*** ", // 统一增加几个*号
        "middle": " * @",
        "end": " */"
      },
      // 针对有特殊要求的文件如:test.blade.php
      "blade.php": {
        "head": "<!--",
        "middle": " * @",
        "end": "-->",
      }
    },
    // 默认注释  没有匹配到注释符号的时候使用。
    "annotationStr": {
      "head": "/*",
      "middle": " * @",
      "end": " */",
      "use": false
    },
  },
/******* 
 * @description: 
 * @param undefined 
 * @return {*}
 */
function parsePath(expression) {
  return function (obj) {
    let keys = expression.split(".");
    for (const key of keys) {
      obj = obj[key];
    }
    return obj;
  };
}

文件后缀(必填):

js

你得到的注释(必填):

你生成的注释为:

/******* 
 * @description: 
 * @param undefined
 * @return {*}
 */

预期的行为(必填):

预期得到的注释/行为:

/******* 
 * @description: 
 * @param {*} expression
 * @return {*}
 */
@happyTonakai
Copy link

.c也有同样的问题,与配置文件无关,恢复默认设置也是undefined

@happyTonakai
Copy link

验证了一下,该问题是4.8.23引入的,4.8.22没有问题

@itchaox
Copy link

itchaox commented May 18, 2022

可能是版本的问题,可以修改成其他版本试一试,我最开始也有这个问题,然后我切换其他版本就没有这个问题了。

itchao
2022年5月18日12:30:49

@chenliangabc
Copy link

验证了一下,该问题是4.8.23引入的,4.8.22没有问题

同样的问题,但是我这里4.8.22不行,21也不行

@itchaox
Copy link

itchaox commented May 19, 2022

验证了一下,该问题是4.8.23引入的,4.8.22没有问题

同样的问题,但是我这里4.8.22不行,21也不行

我这里是由于版本的问题,你可以再查下资料,或者再切换其他版本试试

itchao
2022年5月19日10:34:49

@chenliangabc
Copy link

验证了一下,该问题是4.8.23引入的,4.8.22没有问题

同样的问题,但是我这里4.8.22不行,21也不行

我这里是由于版本的问题,你可以再查下资料,或者再切换其他版本试试

itchao 2022年5月19日10:34:49

看了下更新日志,4.8.23增加了 functionParamAddStr这个配置,我在配置文件中加上这个配置就可以了
"fileheader.configObj": {
"functionParamAddStr": " ", //引号中好像至少需要一个字符,否则也不行
}

@XWQ2018
Copy link

XWQ2018 commented May 20, 2022

4.9.0版本配置这个这个字段就可以正常使用了"fileheader.configObj": {
"functionParamAddStr": " ", //引号中好像至少需要一个字符,否则也不行
}

@chenliangabc
Copy link

4.9.0版本配置这个这个字段就可以正常使用了"fileheader.configObj": { "functionParamAddStr": " ", //引号中好像至少需要一个字符,否则也不行 }

是的

@OBKoro1
Copy link
Owner

OBKoro1 commented May 21, 2022

hello 大家好 这个问题已修复,更新插件到v4.9.1
如果觉得插件做得还可以的话,就点个Star吧~

@OBKoro1 OBKoro1 closed this as completed May 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants