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

提供IDE插件(Jetbrains/VSCode/...) #277

Open
aaaa-j opened this issue Apr 27, 2022 · 8 comments
Open

提供IDE插件(Jetbrains/VSCode/...) #277

aaaa-j opened this issue Apr 27, 2022 · 8 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@aaaa-j
Copy link
Collaborator

aaaa-j commented Apr 27, 2022

No description provided.

@aaaa-j aaaa-j created this issue from a note in 计划实现的功能 Plan (To Do) Apr 27, 2022
@aaaa-j aaaa-j added the help wanted Extra attention is needed label Apr 27, 2022
@Akitata
Copy link
Contributor

Akitata commented Apr 27, 2022

@aaaa-j

我能够开发JetBrains平台相关插件,请问有计划实现的feature list吗?

@bensonhome
Copy link
Collaborator

bensonhome commented Apr 27, 2022

@aaaa-j

我能够开发JetBrains平台相关插件,请问有计划实现的feature list吗?

@Akitata 感谢您的热心参与!

目前计划实现的feature:

  1. 支持扫描参数配置、启动扫描操作
  2. 扫描完成后,在ide下方区域展示问题列表,点击单个问题,在代码编辑区自动跳转到对应文件的问题所在行(高亮显示)
  3. 在代码编辑区问题所在代码行处展示问题提示信息(类似IDE自带语法告警展示)
  4. 支持对当前打开的文件进行快速扫描,展示当前文件结果
  5. ...

JetBrains 的pylint插件,我们认为是一个比较好的范例,可以参考。
以上是目前的初步计划,如果您有什么好的想法,也欢迎一起探讨,打造一款好用的IDE插件。

@Akitata
Copy link
Contributor

Akitata commented Apr 27, 2022

@bensonhome

感谢回复,您提出这些功能我评估下来都是可以结合JetBrains现有的api做出实现的。

我的问题是插件应该与CodeAnalysis Server之间的交互该如何处理?

目前看CodeAnalysis是需要依赖于Git/SVN去完成扫描,在IDE中用户可能有以下几种情况:

  1. 项目可能未使用Git/SVN管理项目或未关联remote repository
  2. 用户想要在commit前做一次扫描以发现问题
  3. 对当前打开的文件进行快速扫描,展示当前文件结果(就是您提到的第4条feature)

针对这些情况,应该需要评估一下CodeAnalysis Server能否在当前架构下去新增一种非Git/SVN类型的项目进行扫描。

我认为交互模式可能是需要通过OpenApi去上传一个代码的zip包或者一个代码文件到Server,Server去分发给CodeAnalysis Client节点扫描后,结果上报给Server,插件再去Server获取结果在IDE中完成相应展示逻辑。

另一种可能实现的交互模式是让用户自己在本地装一个CodeAnalysis Client去做一次localscan,但我认为这不是很优雅的方式,毕竟我们不像pylint一样只是个不到2M的小工具,动辄几个G的扫描工具包足以劝退很多用户。

希望各位可以帮忙看下这个问题,谢谢!

@bensonhome
Copy link
Collaborator

@Akitata
感谢您的思考和宝贵建议!

  1. 对于IDE的用户使用场景上,和我们的想法是一致的。
  2. 对于IDE场景,我们确实也计划(正在排期实现)去支持对非SCM管理的项目进行扫描(也就是并不要求项目与Git/SVN关联)。
  3. 实现方式上,我们计划是通过localscan方式在本地扫描,扫描工具只会在首次进行下载,后续只是检查和更新,并不会增加太多成本。
    不建议通过上传代码到远端机器扫描的方式,理由如下:
    -(1)拷贝和传输代码文件,存在代码安全风险,不是一个好的方式;
    -(2)远端扫描会增加传输时间和机器资源成本,不如直接在本地扫描;
    -(3)对于编译型工具,需要依赖本地的编译环境,在本地执行,可以复用本地环境,远端环境不一定能满足扫描。

@aaaa-j aaaa-j added the enhancement New feature or request label Jun 21, 2022
@bensonhome
Copy link
Collaborator

@Akitata client已经支持扫描非SCM管理的代码(通过quickscan命令扫描),是否有兴趣实现JetBrains插件呢?

@tuchg
Copy link

tuchg commented Oct 25, 2022

@Akitata client已经支持扫描非SCM管理的代码(通过quickscan命令扫描),是否有兴趣实现JetBrains插件呢?

我有兴趣都实现下,两个平台都有插件开发经验,不知是另外开一个仓库还是?(考虑到插件复杂度以及后续问题规模)

@bensonhome
Copy link
Collaborator

@Akitata client已经支持扫描非SCM管理的代码(通过quickscan命令扫描),是否有兴趣实现JetBrains插件呢?

我有兴趣都实现下,两个平台都有插件开发经验,不知是另外开一个仓库还是?(考虑到插件复杂度以及后续问题规模)

@tuchg 感谢您的参与,可以fork我们的仓库,在plugins/下创建一个插件子目录来开发(类似已有的jenkins插件),后面合入到主仓库

@tuchg
Copy link

tuchg commented Oct 27, 2022

Akitata
@bensonhome
我是在想 能否达成一种合作关系,而且 IDE 插件不比 jenkins,目前这个仓库已经够膨胀了 比如你们举例的 pylint 它也是分开的仓库,单独维护会好很多

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
No open projects
Development

No branches or pull requests

4 participants