Postgres Language Server Diluncurkan Setelah Dua Tahun Pengembangan

BigGo Editorial Team
Postgres Language Server Diluncurkan Setelah Dua Tahun Pengembangan

Komunitas pengembang kini memiliki akses ke alat baru yang canggih untuk pengembangan PostgreSQL dengan peluncuran Postgres Language Server, sebuah proyek yang telah dikembangkan selama hampir dua tahun. Language server open-source ini menyediakan fitur-fitur penting seperti penyelesaian otomatis, penyorotan kesalahan sintaks, pemeriksaan tipe, dan linting untuk dialek SQL PostgreSQL.

Repositori GitHub untuk Postgres Language Server, menyoroti pengembangan dan kontribusi komunitasnya
Repositori GitHub untuk Postgres Language Server, menyoroti pengembangan dan kontribusi komunitasnya

Menyelesaikan Pengalaman Pengembangan SQL

Postgres Language Server mengatasi kesenjangan signifikan dalam alur kerja pengembangan bagi mereka yang bekerja secara ekstensif dengan database PostgreSQL. Sebelum adanya alat ini, pengembang sering harus menulis SQL tanpa umpan balik real-time, menjalankan migrasi untuk menangkap kesalahan atau mencari informasi skema secara manual. Language server ini membawa kemampuan IDE modern ke pengembangan SQL, memungkinkan pengembang menangkap kesalahan sebelum eksekusi.

Yang membuat proyek ini menarik adalah pendekatannya dalam mengurai SQL. Seperti yang dijelaskan oleh salah satu penulis bersama dalam komentar, mereka menghadapi tantangan mendasar: parser PostgreSQL sangat kompleks dan terus berkembang, sehingga tidak praktis untuk membuat parser khusus. Selain itu, language server perlu menangani pernyataan SQL yang valid dan tidak lengkap.

Solusi sederhananya adalah dengan menggunakan dua parser – libpg_query asli yang digunakan oleh Postgres sendiri, dan tree-sitter untuk pernyataan yang tidak lengkap, dan menggabungkan hasil yang diurai. Dengan itu, Anda bisa mendapatkan AST yang dapat digunakan untuk diagnostik dan CST tree-sitter untuk penyelesaian otomatis, misalnya.

Implementasi dan Integrasi yang Serbaguna

Postgres Language Server dibangun dengan mempertimbangkan keserbagunaan. Meskipun memanfaatkan Language Server Protocol (LSP) untuk integrasi IDE, desainnya yang transport-agnostic berarti fitur-fiturnya dapat diakses melalui berbagai antarmuka termasuk CLI, API HTTP, dan modul WebAssembly. Ini membuat alat tersebut dapat diakses terlepas dari lingkungan yang disukai pengembang.

Server ini sudah tersedia sebagai binary yang dapat diunduh, paket npm, ekstensi VSCode, dan dapat diinstal melalui nvim-lspconfig dan mason untuk pengguna Neovim. Ketersediaan yang luas ini menunjukkan komitmen tim untuk membuat alat ini semudah mungkin diakses.

Fitur-fitur Postgres Language Server:

  • Penyelesaian otomatis
  • Penyorotan kesalahan sintaks
  • Pemeriksaan tipe (melalui wawasan kesalahan EXPLAIN)
  • Linting (terinspirasi oleh Squawk)

Metode Instalasi yang Tersedia:

  • Unduhan biner dari repositori
  • Paket npm
  • Ekstensi VSCode
  • Neovim (melalui nvim-lspconfig dan mason)

Teknologi Utama yang Digunakan:

  • libpg_query (parser milik Postgres sendiri)
  • tree-sitter (untuk menangani pernyataan yang tidak lengkap)
  • Arsitektur Server-Client dengan desain yang tidak tergantung pada jenis transportasi

Arah Masa Depan dan Dampak Komunitas

Saat ini, language server berfokus pada pernyataan SQL, tetapi para pengembang telah mengindikasikan rencana untuk memperluas dukungan ke badan fungsi dan PL/pgSQL di masa depan. Komunitas telah mulai melaporkan bug dan menyarankan perbaikan, dengan para pengembang menunjukkan responsivitas yang mengesankan dengan cepat mengatasi masalah.

Salah satu kemungkinan menarik yang telah diangkat oleh anggota komunitas adalah potensi untuk mengintegrasikan language server dengan SQL tertanam dalam berbagai bahasa pemrograman. Ini dapat memungkinkan pemeriksaan statis dan penyelesaian otomatis pernyataan SQL dalam kode yang ditulis dalam bahasa seperti Python, Rust, atau TypeScript. Meskipun fungsionalitas ini akan memerlukan solusi sisi editor, para pengembang telah menyebutkan bahwa mereka sedang mengeksplorasi opsi untuk dukungan langsung di API workspace mereka.

Bagi pengembang yang bekerja dengan platform yang sangat memanfaatkan fitur PostgreSQL seperti trigger, Row Level Security, dan fungsi SQL, alat ini mewakili peningkatan signifikan dalam pengalaman pengembangan. Dengan memberikan umpan balik langsung tentang kesalahan sintaks dan menawarkan penyelesaian otomatis berdasarkan informasi skema, Postgres Language Server membantu merampingkan alur kerja pengembangan database dan menangkap potensi masalah lebih awal dalam proses pengembangan.

Referensi: Postgres Language Server | ![, dan dari bahasa Inggris ke bahasa Indonesia, dengan memperhatikan aturan yang diberikan. Saya akan memastikan terjemahan mengalir dengan lancar dan memiliki semantik yang koheren seperti penutur asli.

Tampilan output dari CLI postgres-tools, menunjukkan aplikasi praktis dari pemeriksaan sintaks SQL dan validasi tipe](https://img.bgo.one/news-image/202503291915_postgres-language-server-launches_1.jpg)
*dari bahasa Inggris ke bahasa Indonesia, dengan memperhatikan aturan yang diberikan. Saya akan memastikan terjemahan mengalir dengan lancar dan memiliki semantik yang koheren seperti penutur asli.

Tampilan output dari CLI postgres-tools, menunjukkan aplikasi praktis dari pemeriksaan sintaks SQL dan validasi tipe