Cargo-edit: `cargo add`: File TOML yang Lebih Baik

Dibuat pada 11 Okt 2015  ·  14Komentar  ·  Sumber: killercup/cargo-edit

  • [x] Jangan mengacaukan struktur Cargo.toml terlalu banyak, misalnya tetap melakukan pemesanan
  • [x] Jangan hapus komentar.
  • [x] Gunakan tabel sebaris jika memungkinkan, misalnya clippy = {version = "0.0.19", optional = true}
cargo-add help wanted refinement

Komentar yang paling membantu

Saya masih ingin melihat ini terjadi suatu hari nanti ...

Semua 14 komentar

+1 untuk ini. Berjalan menggunakan cargo add di https://github.com/Hoverbear/rust-rosetta/blob/master/Cargo.toml adalah bencana kecil (komentar dihapus, susunan biner disusun ulang, dll.). Toml yang ditautkan di atas mungkin bisa menjadi contoh kasus yang menarik.

gangguan lain:

  • string kutipan tunggal saya diubah menjadi kutipan ganda (idealnya kargo-add akan mendeteksi gaya string yang mendominasi dan menggunakannya)

kita harus benar-benar mem-parsing ini menjadi AST yang ekstensif dan beroperasi pada level itu daripada menggunakan hashmaps tanpa informasi gaya dan meta.

saya belum membutuhkannya, tetapi saya juga dapat membayangkan Cargo.toml kompleks memiliki beberapa bagian dibagi dengan baris kosong yang harus dipertahankan

Seperti @rgardner yang disebutkan di # 57, ada beberapa upaya oleh @vosen untuk mengimplementasikan sebagian dari ini di alexcrichton / toml-rs # 64.

Sebaiknya gunakan kode itu sebagai titik awal untuk peti baru yang mem-parsing toml menjadi AST yang mempertahankan informasi gaya lebih, tetapi juga menawarkan antarmuka "tingkat tinggi" yang dapat digunakan seperti hashmap bersarang untuk disisipkan dengan mudah / perbarui nilai.

toml-rs ditulis ketika ekosistem karat tidak begitu jauh, jadi mungkin seseorang akan bersenang-senang hanya dengan menerapkan parser TOML baru di nom atau peresil atau lebih.

toml-rs baik untuk membaca TOML, tetapi tidak untuk mengeditnya.

Ide bagus, @ flying-sheep. Selalu ada orang yang meminta saran tentang apa yang harus diterapkan untuk mempelajari Rust. Parser TOML yang dapat menulis file bagus mungkin mudah untuk memulai dan cukup menantang untuk menghabiskan waktu dengannya. Saya rasa saya akan memposting ini di beberapa tempat: smile:

yup, toml sangat mudah diurai. tidak ada spasi, tidak ada ambiguitas. oleh karena itu tidak ada keadaan dan tidak ada kemunduran.

apa pun yang Anda pilih (kombinator parser atau tokenizer klasik + parser AST), seharusnya tidak menjadi masalah

Hai kawan. Diskusi ini sedikit terfragmentasi. Saya telah menyimpulkan keadaan alexcrichton / toml-rs # 64 saat ini tentang Wacana (tl; dr Ini belum mati). Tapi menurutku tempat ini sedikit lebih pas untuk merencanakan apa yang sebenarnya harus dilakukan. Karena tujuan saya sama dengan tujuan Anda (memiliki penguraian TOML yang tidak merusak Cargo.toml , bagian dari PistonDevelopers / VisualRust # 196), saya ingin mengundang Anda untuk bergabung dengan saya di alexcrichton / toml-rs # 64 ( atau mengambil alih). Dari apa yang dapat saya katakan, kode ini adalah yang terjauh di depan saat menangani TOML dengan anggun: pengurutan, spasi putih, komentar semuanya dipertahankan. Apa yang hilang adalah antarmuka publik untuk menanyakan / mengedit / menambah / menghapus elemen.

tomllib (saya mengganti nama toml_parser) sekarang di versi 0.1.1 . Saat ini terbatas pada parsing dokumen, mendapatkan nilai, mengatur / mengubah nilai dan mendapatkan subkunci dari sebuah kunci. Ini seharusnya cukup untuk mendapatkan cargo-bump dan perintah cargo list untuk cargo-edit (dengan menggunakan metode get_children pada kunci "dependencies" dan kemudian get_value pada setiap kunci anak). Untuk rangkaian fitur berikutnya, saya menargetkan perintah cargo add dan cargo rm .

Kedengarannya luar biasa, @joelself! Saya akan melihat tomllib (← nama keren, btw) saat saya di rumah minggu depan. Mungkin aku akan punya waktu untuk membantu! : smiley:

Saya masih ingin melihat ini terjadi suatu hari nanti ...

Saya pikir tiga kotak centang bisa dicentang, tetapi cargo-edit masih menambahkan penentu versi yang dikutip ganda ke file .toml saya yang dikutip tunggal. Haruskah saya mengajukan masalah baru dan membiarkan ini ditutup atau apa yang harus dilakukan? :tersenyum:

@ flying-sheep terbaik Anda membuka yang baru untuk itu!

Diperbaiki oleh # 181 dan # 312.

@ flying-sheep jangan ragu untuk membuka masalah untuk menghormati gaya yang dikutip tunggal.

Aku melakukannya! # 217

Apakah halaman ini membantu?
0 / 5 - 0 peringkat