CodeAnalysis
CodeAnalysis copied to clipboard
提供IDE插件(Jetbrains/VSCode/...)
@aaaa-j
我能够开发JetBrains平台相关插件,请问有计划实现的feature list吗?
@aaaa-j
我能够开发JetBrains平台相关插件,请问有计划实现的feature list吗?
@Akitata 感谢您的热心参与!
目前计划实现的feature:
- 支持扫描参数配置、启动扫描操作
- 扫描完成后,在ide下方区域展示问题列表,点击单个问题,在代码编辑区自动跳转到对应文件的问题所在行(高亮显示)
- 在代码编辑区问题所在代码行处展示问题提示信息(类似IDE自带语法告警展示)
- 支持对当前打开的文件进行快速扫描,展示当前文件结果
- ...
JetBrains 的pylint插件,我们认为是一个比较好的范例,可以参考。 以上是目前的初步计划,如果您有什么好的想法,也欢迎一起探讨,打造一款好用的IDE插件。
@bensonhome
感谢回复,您提出这些功能我评估下来都是可以结合JetBrains现有的api做出实现的。
我的问题是插件应该与CodeAnalysis Server之间的交互该如何处理?
目前看CodeAnalysis是需要依赖于Git/SVN去完成扫描,在IDE中用户可能有以下几种情况:
- 项目可能未使用Git/SVN管理项目或未关联remote repository
- 用户想要在commit前做一次扫描以发现问题
- 对当前打开的文件进行快速扫描,展示当前文件结果(就是您提到的第4条feature)
针对这些情况,应该需要评估一下CodeAnalysis Server能否在当前架构下去新增一种非Git/SVN类型的项目进行扫描。
我认为交互模式可能是需要通过OpenApi去上传一个代码的zip包或者一个代码文件到Server,Server去分发给CodeAnalysis Client节点扫描后,结果上报给Server,插件再去Server获取结果在IDE中完成相应展示逻辑。
另一种可能实现的交互模式是让用户自己在本地装一个CodeAnalysis Client去做一次localscan,但我认为这不是很优雅的方式,毕竟我们不像pylint一样只是个不到2M的小工具,动辄几个G的扫描工具包足以劝退很多用户。
希望各位可以帮忙看下这个问题,谢谢!
@Akitata 感谢您的思考和宝贵建议!
- 对于IDE的用户使用场景上,和我们的想法是一致的。
- 对于IDE场景,我们确实也计划(正在排期实现)去支持对非SCM管理的项目进行扫描(也就是并不要求项目与Git/SVN关联)。
- 实现方式上,我们计划是通过localscan方式在本地扫描,扫描工具只会在首次进行下载,后续只是检查和更新,并不会增加太多成本。 不建议通过上传代码到远端机器扫描的方式,理由如下: -(1)拷贝和传输代码文件,存在代码安全风险,不是一个好的方式; -(2)远端扫描会增加传输时间和机器资源成本,不如直接在本地扫描; -(3)对于编译型工具,需要依赖本地的编译环境,在本地执行,可以复用本地环境,远端环境不一定能满足扫描。
@Akitata client已经支持扫描非SCM管理的代码(通过quickscan命令扫描),是否有兴趣实现JetBrains插件呢?
@Akitata client已经支持扫描非SCM管理的代码(通过quickscan命令扫描),是否有兴趣实现JetBrains插件呢?
我有兴趣都实现下,两个平台都有插件开发经验,不知是另外开一个仓库还是?(考虑到插件复杂度以及后续问题规模)
@Akitata client已经支持扫描非SCM管理的代码(通过quickscan命令扫描),是否有兴趣实现JetBrains插件呢?
我有兴趣都实现下,两个平台都有插件开发经验,不知是另外开一个仓库还是?(考虑到插件复杂度以及后续问题规模)
@tuchg 感谢您的参与,可以fork我们的仓库,在plugins/下创建一个插件子目录来开发(类似已有的jenkins插件),后面合入到主仓库
Akitata @bensonhome 我是在想 能否达成一种合作关系,而且 IDE 插件不比 jenkins,目前这个仓库已经够膨胀了 比如你们举例的 pylint 它也是分开的仓库,单独维护会好很多