6 poin oleh GN⁺ 2025-06-20 | 2 komentar | Bagikan ke WhatsApp
  • Fitur debugging yang diminta oleh lebih dari 2.000 pengembang akhirnya hadir di Zed
  • Debugger dirancang dengan fokus pada kecepatan, keakraban, dan kemampuan konfigurasi
  • Mendukung bahasa populer seperti Rust, C/C++, JavaScript, Go, Python, serta ekstensi berbasis Debug Adapter Protocol (DAP)
  • Dengan sistem LOCATORS yang intuitif, debugging dapat dilakukan dengan mudah di sebagian besar proyek tanpa konfigurasi terpisah
  • Arsitektur terpisah antara UI dan lapisan data menyiapkan fondasi yang kuat untuk debugging kolaboratif dan skalabilitas

Peluncuran debugger Zed

  • Sesuai permintaan lebih dari 2.000 pengembang, fitur debugging resmi diperkenalkan ke editor Zed. Ini merupakan langkah yang sangat penting menuju Zed 1.0

Tujuan utama

  • Kecepatan: menyediakan perpindahan konteks yang cepat dan pengalaman debugging yang efisien
  • Keakraban: selaras dengan bahasa desain Zed, sambil mendukung semua fitur yang diharapkan dari alur debugger pada umumnya
  • Kemampuan konfigurasi: pengguna dapat bebas menyesuaikan UI, key binding, dan pengaturan debug

Dukungan bahasa dan ekstensi

  • Mendukung secara bawaan bahasa utama seperti Rust, C/C++, JavaScript, Go, dan Python
  • Dapat terhubung dengan semua debug adapter yang mengimplementasikan Debug Adapter Protocol (DAP)
  • Melalui sistem ekstensi, lebih banyak bahasa dan fitur debugging dapat ditambahkan dengan mudah

Konfigurasi debugging yang mudah

  • Memperkenalkan sistem baru bernama LOCATORS yang mengubah konfigurasi build menjadi konfigurasi debug
    • Setelah menulis build task sekali di tasks.json, Anda dapat merujuknya di debug.json, atau memanfaatkan fitur konfigurasi otomatis Zed
  • Zed menjalankan locator secara otomatis dari file executable bawaan atau dari Language Server
  • Dalam sebagian besar kasus, dapat langsung digunakan tanpa konfigurasi debug terpisah
  • Saat ini tersedia dukungan locator untuk Cargo, Python, JavaScript, dan Go (bahasa tambahan akan menyusul)

Fitur sesi debugging

  • Di dalam Zed, status program seperti thread, variabel, breakpoint, dan call stack dapat diperiksa dengan mudah
  • Panel debugger dapat disesuaikan sepenuhnya, sehingga tab bisa di-drag, diurutkan, atau panel dipindahkan dengan bebas
  • Debugging yang berpusat pada keyboard juga didukung, sehingga navigasi kode, toggle breakpoint, dan perpindahan sesi dapat dilakukan tanpa mouse

Arsitektur yang sangat ekstensibel

  • Untuk mendukung debugging berbagai bahasa, lingkungan kolaboratif, dukungan ekstensi, serta caching dan pengelolaan data yang efisien, dirancang arsitektur dua lapis
    • Lapisan data: berkomunikasi langsung dengan debug adapter, menjaga status sesi, melakukan caching respons, dan menangani invalidasi data lama
    • Lapisan UI: hanya meminta data yang diperlukan dan berfokus pada rendering antarmuka
  • Berkat pemisahan ini, implementasi fitur debugging kolaboratif (multiplayer) menjadi lebih mudah, sekaligus lebih hemat bandwidth jaringan

Penerapan API ekstensi dan DAP

  • Karena ada lebih dari 70 implementasi DAP yang beragam, alih-alih mendukung semuanya secara bawaan, API ekstensi Zed diperluas agar integrasi debugger menjadi memungkinkan
  • Dukungan DAP dapat diperluas dengan mendefinisikan skema sendiri, mengimplementasikan logika unduh dan eksekusi adapter, menyuntikkan nilai default konfigurasi debug, serta integrasi otomatis dengan locator
  • Mirip dengan cara kerja ekstensi LSP (Language Server Protocol), pengembang dapat dengan mudah mengintegrasikan debug adapter mereka sendiri ke Zed

Dukungan nilai variabel inline

  • Fitur tampilan nilai variabel inline termasuk dalam LSP, bukan DAP, sehingga dengan cara lama hanya dapat disediakan jika DAP dan LSP sama-sama terhubung
  • Pencocokan sederhana seperti regular expression memiliki akurasi rendah karena masalah seperti scope dan komentar
  • Dengan memanfaatkan Tree-sitter, identifikasi variabel dalam scope kode yang sedang berjalan dapat dilakukan dengan lebih presisi
    • Dukungan per bahasa dimungkinkan melalui file .scm tanpa integrasi LSP tambahan
    • Pada saat peluncuran, Python, Rust, dan Go didukung, dengan lebih banyak bahasa direncanakan menyusul
  • Zed adalah editor yang dibuat oleh para pencipta Tree-sitter

Rencana ke depan

  • Tampilan baru: fitur lanjutan seperti watch list, memory view, disassembly view, dan stack trace akan ditambahkan
  • Konfigurasi otomatis: menargetkan perluasan dukungan konfigurasi otomatis untuk lebih banyak bahasa dan sistem build
  • Penyempurnaan dan perluasan: akan menerima masukan melalui Discord, GitHub, dan kanal lain, serta menunjukkan komitmen kuat untuk terus meningkatkan produk

Lampiran

  • Zed tersedia di macOS dan Linux
  • Sedang merekrut pengembang (jika tertarik, lihat situs resmi)

2 komentar

 
roxie 2025-06-21

Apakah ada yang memakai Zed dengan Java...? hehe

 
GN⁺ 2025-06-20
Komentar Hacker News
  • Saya sangat senang melihat pengerjaan debugger sedang berlangsung. Fitur inilah yang selama ini menjadi penghalang utama saya untuk sepenuhnya beralih ke zed. Namun, untuk mengatakan ini sudah “siap”, rasanya masih belum cukup. Ketiadaan watch window, tampilan stack trace, dan tidak adanya penyebutan data breakpoint terasa disayangkan, sehingga saya menganggapnya masih tahap beta. Saya tahu fitur-fitur itu pada akhirnya akan ditambahkan, tetapi yang tersedia sekarang belum cukup untuk menangani 97% sesi debugging saya. Saya juga berharap dukungan untuk beberapa sesi debugging sekaligus dan rencana debugging multithread disebutkan lebih jelas dalam pengumuman. Secara khusus, saya penasaran dengan ide-ide keren untuk debugging multithread seperti di RemedyBG, misalnya ‘membekukan’ thread tertentu atau menjalankan hanya satu thread secara ‘solo’

    • Halo Laserbeam, saya pengembang yang membuat debugger ini dan juga menulis postingannya. Tampilan stack trace dasar sudah didukung. Segera akan ada tampilan stack trace di dalam sistem multi-buffer, dan bahkan sekarang selama sesi debugging Anda bisa memperluas call stack di multi-buffer lewat aksi “show stack trace” untuk melihat tiap frame. Hanya saja, itu belum mencapai kualitas tinggi menurut standar Zed, jadi belum saya tonjolkan secara publik. PR untuk variabel/ekspresi watch juga dijadwalkan akan di-merge dalam beberapa hari. Fiturnya sudah selesai, tetapi saya berhati-hati memasukkan fitur yang belum cukup teruji menjelang rilis. Data breakpoint adalah prioritas penting, tetapi untuk sementara saya berencana fokus pada pengaturan otomatis, jadi sulit memberi jadwal yang pasti. Beberapa sesi dan debugging multithread juga sudah didukung secara bersamaan; masih ada hal yang perlu disempurnakan, tetapi dukungan dasarnya sudah ada

    • Di posting blog disebutkan bahwa tampilan lanjutan sedang dikembangkan. Rilis dan pengumuman pertama ini berfokus pada peletakan fondasi. Ke depannya akan ditambahkan tampilan lanjutan seperti watch list, memory view, disassembly view, dan stack trace view [tautan terkait]

    • Sesi debugging saya selalu hanya memakai breakpoint biasa dan stepping. Jadi dari sudut pandang saya, ini sudah cukup

    • Saya juga setuju, tetapi melihat kecepatan tim Zed mengembangkan produk, saya merasa fitur-fitur seperti ini akan segera menyusul

    • Saya belum mencoba debugger-nya, tetapi dalam kasus saya saya merasakan hal serupa soal fitur Git. Zed memang punya fitur Git dasar, tetapi masih belum cukup untuk menggantikan seluruh workflow saya saat ini. Saya juga berharap pengembangan di sisi Git terus mendapat perhatian

  • Zed benar-benar editor yang bagus. Belakangan ini saya sedang beralih dari neovim ke zed dan tingkat kepuasannya tinggi. Semuanya terasa sangat cepat dan binding vim juga terintegrasi dengan baik. Mode agen juga merupakan nilai tambah yang praktis. Dibanding VSCode, ekosistem ekstensi memang masih kurang, tetapi sudah cukup mencakup banyak pekerjaan yang saya butuhkan. Debugger selama ini merupakan kekurangan besar, jadi saya sangat senang akhirnya fitur itu ditambahkan

    • Saya penasaran seberapa benar-benar terasa seperti vim binding-nya. Kebanyakan emulator vim cukup mirip, tetapi justru terlalu tanggung sehingga input tombol sering salah dan itu malah lebih menjengkelkan. Saya pernah merasa editor yang sama sekali tidak terasa seperti vim justru kurang membuat jengkel ketika jari terus ‘salah tekan’

    • Saya penasaran bagaimana autocomplete kode Rust di Zed. Akan sangat bagus jika ada lingkungan ajaib seperti Windsurf atau Cursor, di mana semua terasa ter-autocomplete secara mulus dengan “tab-tab-tab”. Khususnya di TypeScript atau bahasa skrip, cara seperti ini nyaris seperti otomatisasi refactoring karena bekerja sangat baik. IntelliJ/RustRover, bahkan dengan model JetBrains atau Co-pilot, belum bisa menyamai Cursor atau Windsurf. Saya pikir itu karena sifat Rust itu sendiri. 1) Saya penasaran apakah autocomplete alami seperti itu kini sudah memungkinkan di Rust, dan apakah itu bekerja di Zed. 2) Saya juga ingin tahu bagaimana rasanya dibandingkan Zed, Cursor, Windsurf, serta dibandingkan cara RustRover dan JetBrains menangani Rust AST

  • Zed terasa seperti mewujudkan sesuatu yang selama ini tidak berhasil dicapai Lapce, Helix, dan Neovim. Saat saya memakai Helix sekitar 2021~2022, saya akhirnya menyerah karena bug dan kurangnya integrasi, dan terutama hampir tidak ada dukungan PHP untuk kebutuhan di perusahaan lama saya. Neovim adalah yang paling nyaman, tetapi banyak plugin komunitas terkenal punya gaya yang sangat keras kepala, sementara plugin alternatif terlalu lambat. Melelahkan karena harus mempertimbangkan terlalu banyak pilihan hanya untuk mendapatkan lingkungan yang stabil. Lapce terasa seperti sekadar “kloning VSCode”, dan saya tidak merasa ada hal yang istimewa darinya. Sampai sekarang pun saya belum menganggapnya cukup matang untuk dipakai sebagai daily driver. Dalam hal itu, Zed menjadi editor terbaik dalam waktu singkat, dan belakangan ini saya merasa bersyukur setiap hari. Penambahan debugger juga sangat saya sambut

    • Penjelasan “(karena itu perusahaan lama saya)” pada dukungan PHP sebenarnya tidak perlu

    • Menilai sesuatu sebagai “kloning VSCode” juga sudut pandang yang menarik. Interpretasi yang lucu terhadap editor paling populer dalam sejarah manusia

  • Saya kagum melihat Zed berkembang menjadi IDE yang semakin matang, ringan, dan penuh fitur. Menurut saya DAP dan LSP adalah inovasi terbaik yang terjadi pada alat pemrograman dalam 10 tahun terakhir

  • Awalnya saya tertarik pada Zed, tetapi ketika “AI” mulai diintegrasikan, minat saya memudar. Saya sudah lelah karena “AI” ada di mana-mana. Saya berencana tetap memakai Neovim sampai ada sesuatu yang lebih baik, dan saya rasa perubahan seperti itu baru akan datang setelah “gelembung AI” pecah

    • Zed adalah editor pertama yang membuat saya ingin mencoba fitur AI. Secara keseluruhan saya merasakan fondasi yang solid, dan nuansa AI-nya hanya hadir sebatas autocomplete seperti di editor lain. Rasanya seperti, “yang Anda inginkan bukan AI, melainkan editor yang bagus dan cepat; kami membuat itu, lalu juga menambahkan fitur AI.” Pesaing lain terasa seperti “AI adalah inti kami dan editornya hanya pelengkap”, sedangkan Zed punya fokus yang berbeda

    • Setelah saya cek, ternyata neovim sampai disponsori oleh dua produk AI, dan itu membuat saya terkejut. Memang belum sampai tingkat integrasi AI secara langsung, tetapi sekarang makin sulit untuk benar-benar menghindarinya

    • Saya hanya mematikan semua opsi terkait AI dan memakainya seperti biasa. Ini editor yang cukup bagus. Saya masih harus masuk ke VSCode untuk menangani merge conflict, tetapi secara keseluruhan saya puas

    • Saya penasaran seberapa invasif fitur AI di Zed dalam praktiknya, dan apakah bisa dinonaktifkan lewat pengaturan

    • Saat saya memakai Zed seperti biasa, fitur AI sama sekali tidak mengganggu. Kadang berguna, tetapi saya tidak sering memakainya

  • Sejak dukungan Linux dirilis, saya selalu mengecek setiap kali apakah dukungan untuk tampilan biasa (LoDPI) sudah ada. Sampai sekarang masih belum didukung, dan itu terasa disayangkan

    • Ini benar-benar situasi yang menjengkelkan. Rendering teks adalah hal dasar untuk editor kode, tetapi sepertinya tidak ada orang di tim Zed yang memakai layar biasa (non-retina). Tautan isu GitHub terkait

    • Ini memang solusi sementara, tetapi kalau Anda memasang BetterDisplay (alat gratis) dan mengubah layar LoDPI menjadi HiDPI, rendering teksnya jadi lumayan baik

    • Saya memakainya setiap hari di layar laptop Linux 1920x1200 dan sama sekali tidak melihat masalah

    • Jika belum ada dukungan Windows, dan di Linux pun layar biasa belum didukung, saya jadi penasaran apakah ini pada dasarnya masih perusahaan yang berpusat pada Mac

  • Saat ini saya ingin pindah dari Cursor ke Zed untuk proyek Python yang memakai Pyright, tetapi penggunaan baterainya terlalu tinggi sampai sulit dibenarkan. Isu ini sudah ada di GitHub, dan sangat disayangkan timnya tidak menaikkan prioritasnya

    • Justru saya mengalami di Cursor, setelah dibiarkan terbuka beberapa jam, MacBook M3 Max saya menjadi panas, kipas menyala, dan CPU hampir habis terpakai. Sebaliknya, Zed berjalan tanpa masalah sama sekali. Menarik bahwa pengalaman penggunaan bisa sangat bertolak belakang hanya karena tumpukan teknologi yang sedikit berbeda
  • Saya rasa Zed adalah contoh pengembangan produk yang nyata. Sangat menyenangkan melihat pilihan yang bukan sekadar pengemasan ulang mesin Chrome lainnya

  • Sejujurnya saya terkejut karena ada bagian yang lambat. Saat berpindah file di daftar tab ada jeda, dan respons saat mengetik juga lebih lambat daripada Emacs (dengan lsp-mode aktif) atau browser web. Memori yang dipakai juga sekitar 60MiB lebih banyak daripada Emacs. Di sisi lain, kecepatan startup-nya memang sangat cepat. Jadi bertolak belakang dengan slogan “editor cepat”, malah lebih lambat daripada Emacs Lisp + inti C. Setelah melihat struktur pluginnya, sepertinya plugin dikompilasi ke WASM dan berjalan di VM. Saya penasaran apakah itu penyebabnya

    • Saya penasaran bagaimana zed bisa terasa lebih lambat daripada emacs. Dalam pengalaman saya, zed sangat cepat sampai nyaris tanpa latensi. Editing, lsp, dan perpindahan file semuanya terasa seketika. Justru emacs sering saya tinggalkan karena masalah latensi, terutama di lingkungan pengembangan jarak jauh

    • Menanggapi pertanyaan apakah plugin yang berjalan sebagai WASM di VM membuatnya lambat, plugin yang saya lihat hanya mengurus hal seperti meluncurkan server, jadi tidak berhubungan langsung dengan respons pengetikan. Saya justru curiga penyebabnya adalah penggunaan GPU. Dalam compositing GPU, latensi mudah muncul, dan itu juga bisa bertumpuk dengan rendering di tingkat OS. Saya juga ingat emacs pernah memakai trik melewati event loop dan langsung memperbarui UI, yang akhirnya menimbulkan masalah kompatibilitas

    • emacs punya paket debugger berbasis DAP yang dirancang dengan baik bernama dape. Tautan terkait Paket itu dirancang tanpa dependensi dan berpotensi dimasukkan ke emacs bawaan di masa depan

    • Bisa jadi ini masalah pada rendering pipeline. Saya penasaran sistem operasi apa yang Anda pakai

  • Hal yang ingin saya minta dari tim zed adalah deteksi bahasa C dan C++ yang benar. Semua editor terus mengulangi kesalahan memperlakukan C seolah-olah C++ (padahal C berbeda dari C++ dan tidak boleh dicampur), dan bahkan jika standar C sudah ditentukan di compile_commands.json, kode dengan error sintaks C++ pun sering tetap dikenali sebagai C++. Kalau deteksi bahasanya saja benar, ini editor yang sangat bagus

    • Anda bisa menyesuaikan aturan deteksi bahasa berdasarkan nama/path file di pengaturan. Namun saat membuat file baru, editor memang harus menebak bahasanya