PostgreSQL 专用服务器语言 Postgres Language Server 发布,为开发者提供更多支持
2023年8月9日消息,PostgreSQL 专用服务器语言 Postgres Language Server 发布。该项目正在开发中,仅供合作者使用。大部分工作仍有待完成,但他们已经验证了该方法的有效性。这些开发人员将项目公开,以便他们可以在社区的帮助下无缝地开发它。
功能
语言服务器协议 (LPS) 是代码编辑器和服务器之间的开放协议,用于提供代码智能工具,例如代码完成和语法突出显示。该项目为 Postgres 实现了一种服务器语言,通过添加以下内容,显着改善了开发人员在他们最喜欢的编辑器中的体验:
- 语义突出显示
- 语法错误诊断
- 悬停时显示 SQL 注释
- 自动完成
- 代码操作,例如
Execute the statement under the cursor
、 或Execute the current file
- 可配置的代码格式
- ... 还有很多
动机
尽管 Postgres 越来越受欢迎,IDE 和编辑器中对 PL/pgSQL 的支持仍然有限。尽管有一些通用 SQL1 语言服务器在解析器中提供 Postgres 语法作为“ (风味)选项”,但由于 PostgreSQL 复杂且不断变化的语法,它们通常达不到要求。有一些专有 IDE2 运行良好,但该功能仅在受影响的 IDE 中可用。
该服务器语言旨在支持 Postgres,并且仅支持 Postgres。服务器使用 libpg_query,这使得利用 PostgreSQL 源代码可靠地分析 SQL 代码成为可能。在服务器语言中使用 Postgres 可能看起来不传统,但它是解析所有有效 PostgreSQL 请求的唯一可靠方法。尽管 libpg_query 是为了运行 SQL 而构建的,而不是构建服务器语言,但所有弱点都在解析器 板条箱。
一旦解析器稳定并实现了健壮且可扩展的数据模型,服务器语言不仅将提供语义突出显示、代码完成和错误诊断语法错误等基本功能,而且还将充当所有主要工具的用户界面在 Postgres 生态系统中。
路线图
这是从可能存在格式错误的 PostgreSQL 源代码构建具体语法树和抽象语法树的概念证明。板条箱 postgres_lsp创建它是为了证明它可以端到端工作,并且只是一种非常基本的服务器语言,具有语义突出显示和错误诊断功能。在进一步开发功能之前,他们必须做一些背景工作:
- 结束分析器
- 实施稳健且可扩展的数据模型
- 正确配置服务器语言
- 实现基本的服务器语言功能
- 集成所有现有的开源工具
- 构建缺失的部分
- (也许)通过声明式模式管理支持高级功能
安装:这尚未准备好用于生产用途。仅当您想帮助开发时才安装它。
来源:GitHub:https://github.com/supabase/postgres_lsp
免责声明:
1、本站资源由自动抓取工具收集整理于网络。
2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。
3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。
4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。
5、如果您喜欢本资源,请您支持作者,购买正版内容。
6、资源失效,请下方留言,欢迎分享资源链接
文章评论