又整新活,新版 IntelliJ IDEA 有点东西!

news/2024/7/16 7:48:04 标签: intellij-idea, java, ide

又整新活,新版 IntelliJ IDEA 有点东西!

作为一个经常使用IntelliJ IDEA来写代码的老用户,每次对于JetBrains软件的更新都是非常关注的。

这不最近这段时间,JetBrains连发了多个软件的EAP版本:

img

同时JetBrains的官博中也宣布了一个重要的新特性,那就是:

在所有JetBrains IDEs和.NET Tools中都将集成一个名为【AI Assistant】的AI助手。

img

也就是说,不管是像IDEA、Clion、PyCharm这类JetBrains IDE:

img

还是像ReSharper、Rider、dotPeek等这类.NET工具:

img

都将会集成【AI Assistant】这个新特性。

img

众所周知,最近这段时间以来,生成式AI和大语言模型正在迅速改变软件开发工具的格局,所以JetBrains也表示会理所当然地把这些AI功能集成并融入到自己的产品中。

据官方介绍,这些AI功能将由JetBrains AI服务模块提供支持。

该服务对用户透明,可以将用户连接到不同的大语言模型,并在JetBrains的软件产品中来启用特定的AI功能。同时该服务还支持OpenAI包括托管JetBrains所创建的诸多较小模型。

未来JetBrains也计划与更多AI模型供应商合作,让用户能够根据需要来获得最佳的选项和模型,此外官方也计划在未来支持本地(包括可本地部署)模型,以扩大使用场景和功能。

所以接下来我们就结合官方给出的示例来看看这次新特性所带来的一些变化。

AI对话

用户可以直接使用AI Assistant工具窗口来进行大模型对话,比如可以直接提问题或者基于当前任务的一些问答对话。

img

这时候IDE就会给出一些基于该项目上下文的结果,如果用户接受,则可以直接将基于AI生成的代码插入到当前内容之中,非常方便。

代码理解

除了可以生成内容,这次新加的AI Assistant还支持代码理解和内容建议。

用户可以直接在当前IDE中选中特定代码,然后通过呼出【AI Actions】菜单来调用相关的AI辅助功能,典型的比如:

  • 代码段理解
  • 代码重构建议
  • 潜在问题发现

img

不得不说,这一点对于平时写代码或者阅读代码过程中的效率提升,还是非常有帮助的。

文档生成

新加入的AI助手同样支持文档或代码注释的自动生成,不过目前是支持Java, Kotlin和Python代码。

以Java和Kotlin代码为例,可以直接使用标准方式/**即可触发代码注释文档的自动生成。

img

命名建议

当用户需要重命名Java,Kotlin或者Python等代码中的某些变量、函数或者声明时,这个AI助手会根据上下文内容来给出一些对应的内容建议。

img

Commit信息生成

新版本的【代码信息提交】窗口现在也多了一个【Generate Commit Message with AI Assistant】按钮。

单击该功能之后,AI Assistant助手将根据代码更改的内容差异来自动生成Commit信息,可以说非常方便了。

img

后记

总而言之,从新版本给出的一些功能特性和示例来看,感觉还是挺不错的。

虽然有些第三方插件也支持类似功能了,可这次毕竟是官方推出的新特性,相信无论在功能性、稳定性以及用户体验等方面应该都会有一个不错的完成度的。

不过JetBrains官方表示,目前这个JetBrains AI服务并不会立即对所有用户开放,而是会先邀请一定数量的用户进行试用,后续才会逐渐铺开。

那对于JetBrains此次推出的这个新特性,大家觉得怎么样,期待吗?

注:本文在GitHub开源仓库「编程之路」 github.com/rd2coding/R… 中已经收录,里面有我整理的6大编程方向(岗位)的自学路线+知识点大梳理、面试考点、我的简历、几本硬核pdf笔记,以及程序员生活和感悟,欢迎star。


http://www.niftyadmin.cn/n/5331742.html

相关文章

深度学习笔记(八)——构建网络的常用辅助增强方法:数据增强扩充、断点续训、可视化和部署预测

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 要构建一个完善可用的神经网络,除了设计网络结构以外,还需要添加一些辅助代码来增强…

【数据结构】归并排序的两种实现方式与计数排序

前言:在前面我们讲了各种常见的排序,今天我们就来对排序部分收个尾,再来对归并排序通过递归和非递归的方法进行实现,与对计数排序进行简单的学习。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏…

【MATLAB】SVMD_LSTM神经网络时序预测算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 SVMD-LSTM神经网络时序预测算法是一种结合了单变量经验模态分解(Singular Value Decomposition,SVD)和长短期记忆神经网络(LSTM&#xff09…

C/C++内存布局

1. C 结构体的内存布局 以一个例子来看struct的内存结构 #define NP_FUNC_WRAPPER __attribute__((optimize(0)))struct StructBody {int first_int_placeholder;int second_int_placeholder;double third_double_placeholder; };class ClassBody {public:int first_int_place…

FreeBSD上安装mysql数据库

安装前提 1、使用pkg安装mysql有个前提FreeBSD版本12.2及以上。 2、内存最好是8GB及以上 安装 $ pkg search mysql …… mysql80-client-8.0.35 Multithreaded SQL database (client) mysql80-server-8.0.35 Multithreaded SQL database (server) mysql81…

QCefView初步使用

QCefView的简介 QCefView是使用Qt对cef3的简单包装,以使用Qt的开发。具体的参考见: https://cefview.github.io/QCefView/zh/docs/intros/buiding https://blog.csdn.net/m0_37251750/article/details/126508912 编译过成依赖Cef的包,Cef有二进制发行包…

大模型开启应用时代 数钉科技一锤定音

叮叮叮叮!数钉智造大模型,“定音”强势发布! 随着科技的飞速发展,大模型技术已逐渐成为推动产业变革的核心力量。在这一浪潮中,数钉科技凭借深厚的技术积累和敏锐的市场洞察力,成功利用大模型技术搭建起智能…

在 SpringBoot中的WebSocket使用介绍

在 Spring Boot 中,WebSocket 是一种非常有用的通信协议。WebSocket 可以使客户端和服务器之间实现双向通信,而不是传统的单向 HTTP 请求和响应。本文将介绍在 Spring Boot 中如何使用 WebSocket。 添加依赖 在 pom.xml 文件中添加以下依赖:…