Diambil dari #1297.
wrap_attributes
:
auto
- mengaktifkan pembungkus atribut.force
- atribut pertama tetap, yang lain dibungkus dengan "wrap_attributes_indent_size"force-aligned
- atribut pertama tetap, yang lain dibungkus dan disejajarkan dengan yang pertamaforce-expand-multiline
- Jika ada lebih dari 1 atribut, SEMUA atribut akan dibungkus dan diindentasi dengan "wrap_attributes_indent_size". DAN: penutup '>' dari tag pembuka juga ada di baris baru. Mode ini saat ini rusak, menghasilkan file indentasi yang salah :(Ada juga beberapa upaya untuk menyediakan beberapa mode tambahan yang berhubungan dengan pembungkusan elemen html panjang dengan banyak atribut: #1285 dan #1262.
Saya pikir ada banyak masalah (ortogonal) di sini dan menempatkan semuanya ke dalam nilai tunggal akan menciptakan lebih banyak kebingungan dan ledakan nama opsi yang aneh jika kita ingin menangani semua kasus.
Jadi, mari kita pisahkan pembungkus, perataan dan jumlah atribut per baris, dll.
wrap_attributes_mode
:
none
- Kami hanya tidak membungkus atribut, titik. (diperlukan?)auto
- Pembungkusan atribut normal, ini harus menjadi default, mungkin, sebagai kasus yang paling logis. Ketika garis terlalu besar, kami membungkus. Jika semua atribut bisa masuk ke dalam satu baris, mereka tetap berada di satu baris, tanpa pembungkus. (Bawaan.)force
- Kami secara paksa membungkus jika ada lebih dari 1 atribut yang ada, jika tidak otomatis.Saat pembungkus sedang beraksi, properti berikut sedang dimainkan. Jika tidak ada pembungkus yang terjadi, mereka tidak memainkan peran apa pun.
wrapped_attributes_per_line
:
multiple
- Pembungkus lembut, default . Pasang sebanyak mungkin attrs per baris yang diizinkan.single
- Atribut pertama tetap di baris pertama, yang lain berada di baris terpisah.single-all
- Semua atribut, termasuk yang pertama, ditempatkan pada baris terpisah. Jadi, setiap atribut berada pada baris yang terpisah, dan baris elemen/tag tidak memiliki atribut yang tersisa.wrapped_attributes_indent
:
wrap_attributes_indent_size
, default .wrapped_attributes_per_line
), maka kita menggunakan wrap_attributes_indent_size
untuk menghitung indentasi.wrapped_attributes_end
:
auto
- defaultmultiline
- >
penutup ada di baris terpisah.wrap_attributes_mode = auto
wrapped_attributes_per_line = multiple
wrapped_attributes_indent = auto
wrapped_attributes_end = auto
wrap_attributes_mode = auto
wrapped_attributes_per_line = multiple
wrapped_attributes_indent = aligned
wrapped_attributes_end = auto
wrap_attributes_mode = auto
wrapped_attributes_per_line = single
wrapped_attributes_indent = aligned
wrapped_attributes_end = auto
force-expand-multiline
saat ini: Pembungkusan paksa jika ada lebih dari 1 atribut, dengan satu atribut per baris, dan dengan akhiran multi-baris, menempatkan >
penutup pada baris baru.wrap_attributes_mode = force
wrapped_attributes_per_line = single-all
wrapped_attributes_indent = auto
wrapped_attributes_end = multiline
@vvs
Keren terima kasih!
Sepertinya ada tumpang tindih antara force
dan multiple
, tetapi beberapa konflik mungkin tidak dapat dihindari dengan kerumitan pengaturan
Seperti yang saya katakan, saya suka nama nilai yang Anda pilih secara umum. Saya pikir saya akan mengubah wrapped_attributes_end
menjadi expand-multiline
- karena itu hanya berkembang ketika elemen adalah elemen multiline.
Sepertinya Anda akan menentang penggunaan daftar nilai yang dipisahkan koma seperti yang dilakukan brace-style
( [collapse|expand|end-expand|none][,preserve-inline]
). Saya bertanya hanya karena saya tidak suka memiliki lebih banyak bidang opsi ketika satu bidang dapat berfungsi.
Hai @bitwiseman. Ya, ada sedikit tumpang tindih antara force
dan multiple
. Pada dasarnya, "memaksa" beberapa atribut sama dengan auto
:)
Saya juga setuju dengan expand-multiline
.
Sepertinya Anda akan menentang menggunakan nilai yang dipisahkan koma
Secara pribadi, saya dapat hidup dengan apa pun, bahkan jika pengaturannya adalah nilai yang dikodekan BASE64! Hal utama adalah saya dapat menyesuaikan perilaku pemformatan dengan kebutuhan saya/tim (yang saat ini sejalan dengan #1262).
Tetapi sebagai masalah preferensi, memiliki "grup opsi" yang terpisah lebih baik sehingga saya dapat memodifikasinya secara mandiri dan memikirkan masalah (ortogonal) yang berbeda secara mandiri. Dan, yang terpenting, membuat lebih mudah untuk mendokumentasikan pengaturan secara terpisah dibandingkan dengan daftar besar semua kemungkinan kombinasi.
@vvs
Poin bagus tentang memiliki pengaturan terpisah untuk perilaku yang berbeda.
Saya suka proposal Anda, dan saya pikir implementasi yang lebih sederhana yang dapat menyelesaikan banyak masalah bagi sebagian orang, akan menjadi opsi untuk mengonfigurasi titik di mana "memaksa" menggunakan auto. Misalnya, dapat mengatakan, jika memiliki atribut kurang dari X, gunakan auto, jika tidak, force wrap.
Saya ingin menggunakan "aligned-multiple" jika menggunakan <= 3 atribut, jika tidak "force-aligned". Apakah ini mungkin saat ini?
@otonielguajardo
Itu tidak ada saat ini.
Apa yang Anda minta mirip dengan #1262, yang pada dasarnya adalah "Izinkan atribut satu baris kecuali mereka akan membungkus, dalam hal ini menyelaraskannya."
Sepertinya @Adondriel meminta sesuatu seperti yang Anda inginkan (berdasarkan jumlah atribut) dalam masalah itu juga.
ada kemajuan?
Ada rencana untuk meninjau kembali ini?
@notiv-nt @Drumstix42
Dengan waktu saya yang terbatas, saya telah memperbaiki bug lain.
Ini masih layak dilakukan, tetapi membutuhkan seseorang untuk meluangkan waktu untuk menyelesaikan desain dan mengimplementasikannya.
Komentar yang paling membantu
Saya suka proposal Anda, dan saya pikir implementasi yang lebih sederhana yang dapat menyelesaikan banyak masalah bagi sebagian orang, akan menjadi opsi untuk mengonfigurasi titik di mana "memaksa" menggunakan auto. Misalnya, dapat mengatakan, jika memiliki atribut kurang dari X, gunakan auto, jika tidak, force wrap.