2 poin oleh GN⁺ 2024-09-27 | 1 komentar | Bagikan ke WhatsApp
  • Haystack Editor adalah produk yang menggabungkan kesederhanaan editor kode dengan UI kanvas agar kode lebih mudah dipahami dalam sekali lihat, dan dikembangkan bersama komunitas di repositori ini
  • Repositori ini membuka tidak hanya kode dan issue, tetapi juga roadmap, dan source code disediakan di bawah PolyForm Strict License 1.0.0
  • Distribusi produk merupakan bentuk berbasis repositori dengan kustomisasi tertentu yang ditambahkan, dan disediakan di bawah terms of service terpisah
  • Contoh fitur mencakup Canvas Workspaces, Explorer View, Keyboard Navigation, dan Generate Function, serta mencakup dukungan menyeluruh untuk pengeditan, penelusuran, dan pemahaman kode, debugging ringan, model ekstensi, dan integrasi ringan dengan alat yang sudah ada
  • Haystack diperbarui setiap minggu dengan fitur baru dan perbaikan bug, serta tersedia untuk diunduh di Windows, macOS, dan Linux

Peran repositori Haystack Editor

  • Repositori ini adalah ruang tempat Haystack Software mengembangkan produk Haystack Editor bersama komunitas
  • Selain pengerjaan kode dan issue, roadmap juga dibuka untuk publik
  • Source code disediakan di bawah PolyForm Strict License 1.0.0

Produk Haystack Editor

  • Haystack Editor adalah distribusi dari repositori Haystack Editor, dengan kustomisasi tertentu yang disertakan
  • Distribusi tersebut dirilis di bawah terms of service yang terpisah
  • Produk ini menggabungkan kesederhanaan editor kode dengan UI kanvas agar kode lebih mudah dipahami dalam sekali lihat
  • Cakupan dukungan meliputi hal-hal berikut
    • Pengeditan kode yang menyeluruh
    • Penelusuran kode
    • Dukungan pemahaman kode
    • Debugging ringan
    • Model ekstensi yang kaya
    • Integrasi ringan dengan alat yang sudah ada
  • Haystack diperbarui setiap minggu dengan fitur baru dan perbaikan bug
  • Unduhan untuk Windows, macOS, dan Linux tersedia di situs web Haystack

Pratinjau fitur

  • Menyediakan fitur Canvas Workspaces
  • Menyediakan fitur Explorer View
  • Menyediakan fitur Keyboard Navigation
  • Menyediakan fitur Generate Function

Jalur kontribusi dan umpan balik

  • Ada beberapa cara untuk berpartisipasi dalam proyek
  • Untuk berkontribusi langsung pada codebase, lihat dokumen How to Contribute
    • Cara build dan menjalankan dari source
    • Workflow pengembangan termasuk debugging dan menjalankan pengujian
    • Mengirim PR
    • Mencari issue untuk dikerjakan
  • Kanal umpan balik adalah sebagai berikut

Proyek terkait dan ekstensi bundel

  • Berbagai komponen inti dan ekstensi Haystack berada di repositori terpisah di GitHub
  • Sebagai contoh, node debug adapter dan mono debug adapter masing-masing berada di repositori terpisah
  • Contoh lain adalah repositori Pixi
  • Haystack menyertakan beberapa ekstensi bawaan di folder extensions
    • Termasuk tata bahasa dan snippet untuk berbagai bahasa
    • Ekstensi yang menyediakan dukungan bahasa yang kaya seperti code completion atau Go to Definition menggunakan sufiks language-features
    • Misalnya, ekstensi json menyediakan pewarnaan JSON, dan ekstensi json-language-features menyediakan dukungan bahasa yang kaya untuk JSON

1 komentar

 
GN⁺ 2024-09-27
Komentar Hacker News
  • Ide ini sudah bagus sejak puluhan tahun lalu. Saya berharap Haystack berhasil seperti banyak upaya sebelumnya, dan eksekusi awalnya terlihat menjanjikan.
    Namun sepertinya akan ada banyak rintangan, seperti sulitnya memahami caller/callee atau preferensi UX yang berbeda-beda antar-developer. Saya selalu berpikir ini bisa menjadi lebih kuat di ruang yang jauh lebih luas daripada layar 2D, misalnya lingkungan seperti headset VR.

    • Saya sangat suka ide dunia Haystack VR. Sayang sekali software VR masih berada dalam kondisi yang tidak stabil karena faktor biologis, tetapi saya percaya suatu hari nanti itu akan menjadi masa depan.
  • Sangat keren. Saya membayangkan seluruh codebase organisasi dipetakan seperti ini, terlihat melintasi berbagai framework dan bahasa.
    Entah saya melewatkannya di video atau memang belum mungkin, tetapi menghubungkan node secara manual akan terlalu banyak pekerjaan. Akan bagus jika ada bot sederhana yang dijalankan dari folder repositori untuk mengotomatiskan visualisasinya. Saya menambahkannya ke daftar pantauan.
    Kalau saya, saya akan menargetkan organisasi perusahaan besar atau grup TI pemerintah daerah yang sedang atau berencana melakukan transformasi digital. Mereka perlu menemukan arah dan memahami makna di antara pekerjaan legacy dan pekerjaan baru.
    Jika berjalan baik, Salesforce bisa datang mengetuk dalam setahun. Ini juga tampak cukup cocok dengan visi dan rangkaian produk mereka.

    • Saya suka konsep yang terlihat di video. Namun saya ingin melihatnya lebih besar, dengan lebih banyak jendela, dan semuanya saling terhubung.
      Saya tidak tahu apakah itu benar-benar bisa dipakai dalam kondisi seperti itu, tetapi sepertinya menarik untuk dicoba. Rasanya seperti diagram UML untuk seluruh codebase, dengan ribuan panah.
      Dengan begitu, kita bisa memberi tahu rekan bahwa file yang perlu diubah ada di suatu tempat di kanan atas, dan diff Git juga terlihat secara visual, sehingga kita bisa memperbesar bagian-bagian yang berubah di sana-sini.
    • Jika Anda berpindah mengikuti file atau simbol, koneksinya akan ditambahkan secara otomatis. Saya tidak tahu apakah ini persis yang Anda maksud, tetapi kami mencoba memberi pengguna “alur” berdasarkan kueri bahasa alami.
      Misalnya menangani pertanyaan seperti “apa yang terjadi sejak tombol berlangganan diklik dengan mouse sampai ke backend”.
    • Akan menarik jika panggilan API ke layanan yang berbeda juga bisa “dihubungkan”.
  • Saya penasaran apakah proyek ini terinspirasi oleh Light Table.
    Sebagai permintaan fitur, saya berharap visualisasinya diperluas melampaui 2D. Sistem yang benar-benar kompleks biasanya berupa graf yang rumit—atau kalau mau dibilang bagus, seperti gulungan benang—jadi pengalaman saya, visualisasi bidang 2D saja tidak cukup.
    Akan bagus jika ada semacam visualisasi bola konsentris, dengan layanan batas di lapisan luar dan layanan inti/domain di lapisan dalam.

    • Banyak orang menyebut Light Table, tetapi kami baru mengetahuinya setelah peluncuran.
      Menarik bahwa Anda menyebut tampilan yang lebih mendekati 3D. Kami pernah memikirkan ide ini, tetapi membuatnya dengan benar dalam cara yang dapat dipahami pengguna benar-benar sulit. Meski begitu, ini jelas termasuk dalam visi masa depan.
      Sunting: dugaan tentang Light Table ternyata tidak benar, jadi saya hapus.
    • Saya berharap Anda tidak hanya tahu Light Table dari tahun 2010-an, tetapi juga Oberon dari akhir 1980-an. Oberon juga punya fitur untuk menempatkan kode di atas kanvas tanpa batas.
  • Pertanyaan sampingan besar, tetapi apakah ada infinite canvas open-source yang layak dijadikan pilihan utama? Saya sedang membuat permainan kartu dan membutuhkan infinite canvas multiplayer. Akan senang jika bisa mendapat rekomendasi.

  • Kalau ini berupa ekstensi VSCode, mungkin saya akan mencobanya. Saya ingin menggunakannya, tetapi belakangan ini saya hidup di dalam Cursor.

    • Sepertinya ini masalah yang makin membesar.
  • Saya penasaran mengapa ini tidak bisa dibuat sebagai ekstensi. Idenya benar-benar bagus, dan saya bisa membayangkan dengan sempurna tampilannya berada di dalam tab area editor.
    Dengan begitu, kita juga bisa punya beberapa tab Haystack, sehingga context switching menjadi jauh lebih mudah. Meskipun berbasis VSCode, agak disayangkan harus memasang IDE lain. Tetap saja, semoga terus sukses.

    • Ekstensi VS Code cukup terbatas. Anda bisa mengubah renderer untuk tab editor, tetapi membuat banyak elemen di dalam antarmuka kustom diperlakukan sebagai tab editor kelas satu di seluruh lingkungan dan ekosistem ekstensi pada dasarnya sulit. Selama tidak tertinggal, fork adalah pilihan yang masuk akal.
    • Saya memahami rasa frustrasi itu. Seperti yang saya katakan di komentar lain, cukup sulit membuat Haystack cukup bagus dalam bentuk ekstensi, tetapi pada akhirnya kami juga berencana mengeksplorasi jalur itu.
    • Jika ada batasan pada ekstensi, solusi sementara yang bagus mungkin adalah fitur untuk menyalakan dan mematikan tampilan kanvas. Orang akan ingin berpindah antara kanvas dan tampilan VSCode standar; jika itu bisa dilakukan di dalam Haystack, tidak perlu memasang keduanya.
  • Ini mengingatkan saya pada lingkungan Kansas dari bahasa pemrograman Self. Ada video yang dibuat Sun pada 1995.
    https://www.youtube.com/watch?v=Ox5P7QyL774
    Setelah video ini, fitur pencarian yang lebih menarik ditambahkan.

  • Benar-benar bagus. Ini hampir sama dengan proses yang saya lakukan saat melihat codebase besar, tetapi jauh lebih rapi dan terorganisir.
    Biasanya saya membuka lima atau enam terminal yang menunjuk ke berbagai file sumber dan mencoba membuat peta di kepala. Pada akhirnya saya memang mendapatkan gambaran, tetapi prosesnya berat. Alat seperti ini sepertinya akan sangat membantu. Yang tersisa sekarang hanyalah menggabungkannya dengan monitor ultrawide.

  • Sepertinya ini akan membantu karena mengurangi hal yang harus disimpan di kepala, tetapi UI saat ini terlalu bergantung pada mouse. Akan bagus jika ada shortcut, dan jendela bisa “ditile” seperti window manager dwm sehingga tidak perlu mengatur ukuran jendela secara manual.

    • Sebenarnya kami mencoba membuat kanvas sebisa mungkin dapat dinavigasi dengan keyboard. Ada daftar keybinding pada tombol “Keybindings and Help” di kanan bawah.
      Terkait pengaturan ukuran manual, kami sedang mencoba tiling di dalam viewport. Kalau Anda memberi tahu apa yang membuat Anda perlu mengubah ukuran, mungkin kami bisa memperbaikinya.
  • Ini tampak seperti pendekatan praktis bagi developer untuk membentangkan dan memetakan kode secara luas di ruang dua dimensi. Ini mirip dengan method of loci[1], yaitu cara developer mengodekan potongan kode dan koneksi secara spasial dengan cermat untuk memperkuat memori dan meningkatkan pemahaman.
    Karena itu, saya berani menyarankan penambahan opsi pola latar belakang yang tidak mengganggu tetapi memberi sedikit informasi. Saya tidak punya pola spesifik, tetapi jika latarnya berupa peta dunia, pengguna mungkin bisa lebih cepat mengingat lokasi yang ingin dicari dan lebih cepat memahami posisi mereka sendiri.
    Sebagai kelanjutan ide yang sama, layak dipertimbangkan juga agar pengguna bisa menentukan warna batas tab atau menambahkan noise yang berbeda untuk tiap tab. Noise bisa memudar sesuai tingkat zoom dan jarak dari pusat viewport.
    https://en.wikipedia.org/wiki/Method_of_loci

    • Kami berencana menambahkan minimap untuk membantu pengguna menentukan arah.
      Ide menggunakan perbedaan warna yang halus atau suara juga menarik. Akan kami pikirkan.