Shire 1.1 发布:更强大的交互支持,升级 AI 智能体与 IDE 的整合体验

在经过多个项目上的试用后,我们进入了持续的修修补补,以及功能的增强阶段。终于,我们发布了 Shire 1.1 版本,这个版本带来了更强大的交互支持, 多功能升级 AI 与 IDE 的整合体验。

  • 交互:丰富与大量 IDE 插件的交互,可以支持部分三方插件的 UI 入口

  • 语言:支持新的语言 ProtoBuf,以及对 JavaScript 的支持优化

  • 功能:支持更多的代码度量,以及代码质量的检查等

详细可以见 GitHub 上的 CHANGELOG。

解锁更多交互入口,全面提升自定义灵活性

88039ea80de2f89f5a57691c15ee584a.png

基于我们在不同项目的探索试验,我们增加了更多的交互入口,以便于借助 IDE 丰富的插件生态,来提升 Shire 的自定义灵活性。

RightPanel 输出展示

109eff937e602df31e881d9e0d52347b.png

在这个版本中,我们增加了新的 Interaction: RightPanel,用于提供更好的输出显示。我们在设计 Shire 时,定位的是一个智能体编程语言,因此 在并不想让用户过多的关注到输出。但是在实际的使用中,右侧的输出展示是非常重要的,因此我们增加了这个功能。

尽管,我们还不打算在这个版本中添加聊天的功能,但是我们会考虑在后续的版本中增加这个功能。与 AutoDev 相似,RightPanel 也支持 Copy, Paste, Insert 三种操作(Action)。未来,我们也将提供自定义的操作能力。

更加丰富的 ActionLocation

相似的,在新的版本中,我们添加了四种新的入口(ActionLocation),以便于用户可以在不同的地方添加自定义的 Action。

  • DatabaseMenu:在 IDEA 的 Database 右键菜单列表( Ultimate 版本才支持)中添加的 Action。

f8856ea555bd2d78172deb90d80126e0.png

  • ConsoleMenu:在 IDEA 的执行结果右键菜单列表(Menu)中添加的 Action。

99e9998200f6b1ba542e1e0d56e4f9a0.png

  • VCSLogMenu:在 IDEA 的 VCS Log 右键菜单列表中添加的 Action。

b0f1454d3b78e1e46b1a03389be02ab5.png

  • ExtSonarQubeMenu:在 Sonarlint 插件的面板(Panel)中添加的 Action。

503905701e725100a175f24d99079b49.png

未来,我们将进一步对能力进行抽象,让你可以在任意的地方添加自定义的 Action。

外部函数交互

在 issue#146 和 issue#149 中,使用 Python 语言进行交互时,会出现一些问题。在这个版本中,我们优化了 thread 函数的逻辑,使得你现在,可以 直接调用外部的 Python UI 应用,诸如于 issue 中使用的 tk 框架。

266fc64a021183f1db72dfc370c17864.png

你可以在 Shire 中直接唤起这个应用,然后通过这个应用来进行交互。这样,你就可以在 Shire 中,直接调用外部的 Python 应用,来进行交互。

新语言支持:ProtoBuf

考虑到 ProtoBuf 在微服务架构中的重要性,我们在这个版本中增加了对 ProtoBuf 的支持。

ProtoBuf 是一个高效的 IDL(Interface Description Language)工具,它可以用于定义数据结构、服务接口等。通常,我们在微服务架构中会使用 ProtoBuf 来定义服务接口,以及数据结构。

由于 ProtoBuf 的语法比较简单,只需要提供定义 Message 和 Service 两个部分的支持,所以现有的版本支持:

  • Structure 分析:基于 File 和 Class 级别的结构分析

  • 工具上下文:提供 ProtoBuf 版本信息

  • PsiVariable:提供通用的语法支持

尽管,可能还存在一些其它使用 ProtoBuf 的场景,还需要进一步的支持,但是我们会在后续的版本中按需增加。

其它更新

提示词策略影响下的代码度量

考虑到代码的复杂度、行数、变更频率等会影响 Code Review 等策略,我们加入了对代码度量的支持。

  • changeCount:Git 统计当前文件的变更次数

  • complexity:计算当前元素/文件的复杂度

  • lineCount:统计当前元素/文件的行数

语法完善

  • 支持结合登录用户的信息,来生成代码提交信息。

  • 支持 if 语句的语法。

感谢

感谢 @liuk 提供的 PR,修复了一系列的报错,以及语法问题。

其它

从 GitHub 下载最新版本:https://github.com/phodal/shire 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/483215.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Springboot(四十九)SpringBoot3整合jetcache缓存

上文中我们学习了springboot中缓存的基本使用。缓存分为本地caffeine缓存和远程redis缓存。现在有一个小小的问题,我想使用本地caffeine缓存和远程redis缓存组成二级缓存。还想保证他们的一致性,这个事情该怎么办呢? Jetcache框架为我们解决了这个问题。 ‌JetCache‌是一个…

学习笔记052——Spring Boot 自定义 Starter

文章目录 Spring Boot 自定义 Starter1、自定义一个要装载的项目2、创建属性读取类 ServiceProperties3、创建 Service4、创建自动配置类 AutoConfigration5、创建 spring 工程文件6、将项目打成 jar 包7、jar 打包到本地仓库8、配置application.yml Spring Boot 自定义 Starte…

专业清洁艺术,还原生活本色——友嘉高效除菌洗碗机

生活中,每个人都渴望拥有一份洁净的生活环境。而家,作为我们最温馨的港湾,对洁净的追求更是无时无刻不在进行。每当饭后的欢声笑语过后,面对一堆沾满油渍、藏匿着细菌的餐具,我们不禁感到一丝烦忧。然而,有…

C++类与对象(二)

一、默认成员函数 class A{}; 像上面一样,一个什么都没有的类叫做空类,但是这个什么都没有并不是真正的什么都没有,只是我们看不见,空类里面其实是有6个默认成员函数的,当我们在类里面什么都不写的时候,编译…

PHP RabbitMQ连接超时问题

问题背景 Error: The connection timed out after 3 sec while awaiting incoming data 看到这个报错,我不以为意,认为是我设置的超时时间不够导致的,那就设置长一点 Error: The connection timed out after 300 sec while awaiting incom…

在21世纪的我用C语言探寻世界本质——字符函数和字符串函数(2)

人无完人,持之以恒,方能见真我!!! 共同进步!! 文章目录 一、strncpy函数的使用二、strncat函数的使用三、strncmp函数的使用四、strstr的使用和模拟实现五、strtok函数的使用六、strerror和perr…

使用CertD全自动申请和部署SSL证书至服务器

1. Certd简介 Certd是一个开源的证书生命周期管理系统,专注于帮助开发者和组织更加便捷、安全地管理他们的数字证书。无论是在小型个人项目中还是大型企业环境中,Certd都能提供强大的功能,确保您的HTTPS服务始终处于安全状态。 1.1. 技术分…

uniapp实现加密Token并在每次请求前动态更新(vue、微信小程序、原生js也通用!)

导语:在Web开发中,Token作为一种身份验证的机制,被广泛应用于前后端交互过程中。本文将为大家介绍如何在每次请求前动态设置加密的Token,并在请求一次后使Token值加1(或其他动态改变的逻辑),从而…

idea打jar包或引入包

一,通过Maven的方式打jar包 将相要打包的依赖写入到pom.xml文件中,如下所示: 然后使用打包命令: maven package 就能按照pom.xml中设置的打包了。 二,通过idea打包 前段时间遇到一个情况是使用Maven打包的时候src主程…

uniapp在App端引用echarts组件,解决无法渲染formatter问题

在App端option里面直接写上formatter,是无法执行方法的。 解决办法: 需要在echarts组件里面给options再重新赋值 效果图

pytest(二)excel数据驱动

一、excel数据驱动 excel文件内容 excel数据驱动使用方法 import openpyxl import pytestdef get_excel():excel_obj openpyxl.load_workbook("../pytest结合数据驱动-excel/data.xlsx")sheet_obj excel_obj["Sheet1"]values sheet_obj.valuescase_li…

ubuntu 和windows时区设置和时间修改

windows 时区设置 查看当前时区 tzutil /g 列出可选的时区,参考 时区列表备份 tzutil /l 设置时区 tzutil /s "China Standard Time" 修改日期和时间,直接输入date或者time修改 ubuntu 时区设置 timedatectl指令列表:list-timez…

卷积神经网络(CNN)的层次结构

卷积神经网络(CNN)是一种以其处理图像和视频数据的能力而闻名的深度学习模型,其基本结构通常包括以下几个层次,每个层次都有其特定的功能和作用: 1. 输入层(Input Layer): 卷积神经网…

图像与文字的创意融合:使用Python进行视觉艺术创作

原图: 处理过的: import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFont import os# 字体文件路径 vfont ./fonts/方正像素字体.ttfdef text_paint(img_path, text, font_path, font_size):# 使用 OpenCV 加载图片img cv2.i…

【Markdown编辑器】

Markdown编辑器 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注…

Vue 90 ,Element 13 ,Vue + Element UI 中 el-switch 使用小细节解析,避免入坑(获取后端的数据类型自动转变)

目录 前言 在开发过程中,我们经常遇到一些看似简单的问题,但有时正是这些细节问题让我们头疼不已。今天,我就来和大家分享一个我在开发过程中遇到的 el-switch 使用的小坑,希望大家在使用时能够避免。 一. 问题背景 二. 问题分…

el-select 修改样式

这样漂亮的页面,搭配的却是一个白色风格的下拉框 ,这也过于刺眼。。。 调整后样式为: 灯红酒绿总有人看着眼杂,但将风格统一终究是上上选择。下面来处理这个问题。 分为两部分。 第一部分:是修改触发框的样式 第二部…

柔性数组详解+代码展示

系列文章目录 🎈 🎈 我的CSDN主页:OTWOL的主页,欢迎!!!👋🏼👋🏼 🎉🎉我的C语言初阶合集:C语言初阶合集,希望能…

【测试工具JMeter篇】JMeter性能测试入门级教程(七):JMeter断言

一、前言 在 JMeter 中,断言元件(Assertion)用于验证测试结果是否符合预期。断言元件可以检查服务器的响应数据,以确保它们符合期望的模式或值,从而验证性能测试脚本的正确性。断言元件通常在每个请求的响应中添加&am…

【Linux课程学习】:站在文件系统之上理解:软硬链接,软硬链接的区别

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 Linux学习笔记: https://blog.csdn.net/d…