Fable: Pindahkan komponen REPL ke repositori ini

Dibuat pada 27 Nov 2018  ·  12Komentar  ·  Sumber: fable-compiler/Fable

Kami telah berbicara beberapa kali tentang komponenisasi REPL. Saya telah berpikir untuk membuat repo yang berbeda untuk meng-host komponen inti ini. Tetapi mengingat bahwa kami telah membuat kompilasi FCS+Fable JS di sini dan kami memerlukan beberapa bagian untuk paket lain (seperti rakitan metadata untuk fable-compiler-js), mungkin lebih mudah jika kami membuat komponen di sini dan menariknya dari repo lain .

Jadi idenya adalah meletakkan di sini:

  • Pekerja web REPL yang dapat menerima pesan untuk dikompilasi, memberikan tooltips, dll
  • Metadata (System.dll dan semacamnya) + rakitan Fable.Repl.Lib (dan file JS yang telah dikompilasi) yang harus dirujuk untuk kompilasi
  • Komponen React untuk editor Monaco untuk kode F#.

Fable-compiler/repl harus menarik komponen ini dan menyediakan UI dan perilaku lainnya. Ini juga akan menjadi dasar untuk situs lain yang menyematkan REPL, misalnya untuk membuat tutorial Markdown F# dengan evaluasi hasil.

Seharusnya tidak terlalu rumit untuk membuat infrastruktur, tetapi ini adalah pekerjaan, saya akan mencoba memulai minggu depan, karena saya mungkin (satu-satunya?) orang yang tahu bagaimana menyatukan semua bagian;)

cc @ncave @MangelMaxime @whitetigle @tpetrich

enhancement

Komentar yang paling membantu

@alfonsogarciacaro Tentu saja tidak, bukan berarti saya tidak mengikuti ;)
Saya hanya bercanda, siapa pun yang ingin tahu (mungkin) tahu dari mengikuti Anda di GitHub.

Langkah selanjutnya -> ke Bulan! (Maksud saya, proyek F# di REPL, petunjuk jab siku ;)

Semua 12 komentar

Saya menambahkan @Krzysztof-Cieslak dalam diskusi.

Komponen React untuk editor Monaco untuk kode F#.

Akan tertarik dengan ini juga, saya mencuri banyak kode untuk membuat Monaco bekerja di AST viewer . Meskipun saya bertanya-tanya apakah lebih masuk akal untuk memiliki semacam Fable.Import.Monaco .

Tolong ping saya jika sudah siap. Saya ingin mengintegrasikan Fable dengan Klipse untuk memungkinkan orang-orang F# menulis posting blog dan tutorial dengan cuplikan kode interaktif.

Ini selesai :) Sekarang rakitan yang diperlukan untuk mengompilasi proyek F# dengan Fable tersedia dalam paket fable-metadata npm, sementara FCS + Fable yang dikompilasi ke JS sedang dikirimkan dalam fable-standalone , bersama dengan pekerja web yang dapat disematkan dalam sebuah situs web.

Fable REPL sudah tergantung pada paket-paket ini. Petunjuknya kurang lebih seperti ini:

  • Salin konten fable-metadata/lib dan fable-standalone/dist ke mana pun Anda menyajikan file statis Anda: contoh
  • Tambahkan referensi ke file-file ini di proyek Anda ( masing-masing ruang nama Fable.Standalone dan Fable.WebWorker ):
fable-standalone/src/Interfaces.fs
fable-Standalone/src/Worker/Shared.fs
  • Mulai pekerja web dengan beberapa info (yang paling penting di mana kumpulan metadata dapat ditemukan).

  • Periksa file src/App/Main.fs dan lihat pesan pekerja untuk mempelajari cara berinteraksi dengan pekerja.

@alfonsogarciacaro Ini adalah pengerjaan ulang dan penyederhanaan repo yang luar biasa! Tidak sabar menunggu posting blog / tweet :)

Karya luar biasa dari kalian semua

@ncave Tapi Anda tidak memiliki akun Twitter, atau kan? ;) TBH, saya agak khawatir tentang membuat ini terlalu publik karena masih tidak sepele untuk menjalankan kode yang dihasilkan dan saya khawatir jika orang mencoba untuk menanamkan REPL di situs mereka akan ada lebih banyak masalah untuk dipecahkan :/

@alfonsogarciacaro Tentu saja tidak, bukan berarti saya tidak mengikuti ;)
Saya hanya bercanda, siapa pun yang ingin tahu (mungkin) tahu dari mengikuti Anda di GitHub.

Langkah selanjutnya -> ke Bulan! (Maksud saya, proyek F# di REPL, petunjuk jab siku ;)

Saya ingin mendukung F# di Klipse (plugin js untuk evaluasi kode) dengan cara yang sama Klipse mendukung LISP , Clojure dan ruby .

Untuk tujuan itu, saya perlu instruksi sederhana untuk diikuti:

  1. Satu file js yang dibundel
  2. Sebuah fungsi evaluasi.

@viebel Petunjuk untuk mencapainya ada di komentar di atas . Saya dapat membantu Anda untuk mengurangi mereka untuk memanggil fungsi eval (dan mungkin fungsi init di awal) tetapi harap dicatat tanpa webworker pengalaman pengguna tidak akan menyenangkan karena Klipse UI akan membeku saat kompiler sedang memuat atau mengkompilasi.

@alfonsogarciacaro Saya tidak terlalu khawatir tentang pembekuan Klipse UI selama kompilasi, dengan asumsi bahwa dibutuhkan kurang dari 300 msec untuk potongan kode pendek.

Tolong bantu saya mengurangi instruksi menjadi panggilan fungsi init + eval

Menutup karena saat ini kami tidak mengalokasikan sumber daya ke REPL.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

et1975 picture et1975  ·  3Komentar

jwosty picture jwosty  ·  3Komentar

tomcl picture tomcl  ·  4Komentar

stkb picture stkb  ·  3Komentar

SirUppyPancakes picture SirUppyPancakes  ·  3Komentar