新的 Postgres 语言服务器:postgres-lsp

发布于 2026-06-21,Gavin M. Roy
相关开源软件

原文:https://www.postgresql.org/about/news/new-postgres-language-server-postgres-lsp-3322/ 发布日期:2026-06-21 作者:Gavin M. Roy

基于 tree-sitter-postgres 构建的 postgres-lsp 实现了面向 PostgreSQL SQL 与 PL/pgSQL 的语言服务器协议(Language Server Protocol)。把编辑器指向 .sql 文件后,就可以获得由真正 PostgreSQL 语法支持的诊断、导航、补全和格式化能力,而不是依赖正则表达式启发式规则。

功能

  • 诊断:将 tree-sitter 解析错误报告为 LSP 诊断信息
  • 语义标记:通过语义标记分类提供语法高亮
  • 文档符号:展示 DDL 语句大纲,例如表、函数、视图等
  • 工作区符号:在所有已打开文件中搜索
  • 跳转到定义:跳转到表、函数、类型和列定义
  • 查找引用:在工作区中查找某个符号的所有使用位置
  • 悬停:悬停时显示定义来源
  • 补全:针对关键字、表、列和函数提供上下文感知补全
  • 签名帮助:为函数调用提供参数提示
  • 折叠范围:折叠多行语句
  • 重命名:在工作区内重命名符号
  • 代码操作:提供快速修复和重构改写
  • 格式化:使用 libpgfmt 支持的风格重新格式化 SQL,包括 river、mozilla、aweber、dbt、gitlab、kickstarter、mattmc3、pg_dump
  • PL/pgSQL 支持:通过语言注入解析 PL/pgSQL 函数体

二进制文件和安装说明见:https://github.com/gmr/postgres-lsp