Kebalikan dari indent [ditutup]

11

Kami mengatakan bahwa kami indentasi kode. Saya sedang menulis pembangun string yang dapat menambah / menghapus tab ke kode indentasi.

Sampel:

builder.Add("<ul>");
builder.Indent();
builder.Add("<li></li>");
builder.Dedent(); // <-- what should this be named.
builder.Add("</ul>");   

Apa yang harus saya beri nama metode?

jgauffin
sumber
3
Ini agak keluar dari topik tetapi: mungkin Anda dapat menghindari secara eksplisit memanggil indent / dedent jika Anda mengganti Add ("<ul>") dan Ident () panggilan dengan BeginElement ("ul") yang akan menyertakan logika indent. (dan juga metode EndElement tentu saja)
David
@ David: +1, tapi tentu saja Anda ingin memasukkan elemen bersarang sebaris ke dalam akun :)
Demian Brecht
11
Bagaimana dengan outdent?
Kevin
@Kevin: Alternatif bagus, tapi mengapa Anda tidak menambahkannya sebagai jawaban?
jgauffin
@ David: Ini digunakan di dalam kerangka kerja dan tidak terpapar ke pengguna (kelasnya bersifat publik sehingga pengguna dapat menggunakannya untuk tujuan itu sendiri). Juga dapat digunakan untuk lebih dari sekedar markup, jadi BeginElementdll tidak sesuai.
jgauffin

Jawaban:

24

Keluar adalah kebalikan dari dalam, semua orang tahu ini. Mengapa tidak menggunakan Indent()dan Outdent()?

Kevin
sumber
Inilah yang saya selalu menyebutnya paling tidak.
Callum Rogers
Sama di sini, saya selalu mendengarnya disebut outdent.
Brian Knoblauch
17

Sebaliknya indent, saya akan menggunakan unindent. Dari Wiktionary:

tidak indentasi

Etimologi
tidak + indentasi; Berasal pada 1980-an ketika komputer membuatnya sepele bagi siapa pun untuk memindahkan teks di sekitar halaman.
Verb
unindent (orang ketiga tunggal unindents hadir tunggal , present particip unindenting , simple past dan past participle unindent )
1. Untuk menghapus indentasi; untuk memindahkan blok teks lebih dekat ke margin kiri.
Saya harus membatalkan pengindeksan baris pertama dari setiap paragraf sehingga esai saya akan muat di satu sisi kertas.

Menurut Kamus Etimologi Online , indentasi berasal dari:

awal 15c., indenten / endenten "untuk membuat takik; untuk memberikan (sesuatu) penampilan yang bergigi atau bergerigi," juga "untuk membuat perjanjian hukum," dari O.Fr. endenter "untuk lekukan atau lekuk, berikan tepi bergerigi ke," dari ML indentare "untuk melengkapi dengan gigi," dari in- "ke, dalam, pada, setelah" (lihat in- (2)) + L. dens (gen . dentis ) "gigi" (lihat gigi). Terkait: indentasi; indentasi . Pengertian pencetakan pertama kali dibuktikan tahun 1670-an. Kata benda pertama kali direkam tahun 1590-an, dari kata kerja. Pengertian kata benda sebelumnya tentang "perjanjian tertulis" (akhir 15c.) Dijelaskan dalam Kamus Bahasa Inggris Tengah sebagai "singkatan tulisan dari endenture ."

Jadi indentasi seperti menaruh "takik" dalam kode sumber. Untuk menghapus takik itu, Anda membatalkan indent: unindent.

Hugo
sumber
16
Indent
Dedent

Untuk mencadangkan ini, google cepat membantu: unindent memiliki 290.000 hit sedangkan dedent memiliki 1.920.000 hit, memberikan indikasi kasar bahwa yang terakhir lebih banyak digunakan. Meskipun ini harus digunakan sebagai argumen dengan sangat hati-hati.

Dedentjuga merupakan terminologi standar yang digunakan dalam python docs .

dagnelies
sumber
2
Sebenarnya "dedent" hanya memiliki 321.000 hit ketika Anda memasukkannya ke dalam tanda kutip dan banyak dari hit itu tidak ada hubungannya dengan indentasi, tetapi lebih merupakan nama atau hal lain (istilah dokter gigi mungkin?). "unindent" memiliki 267.000 hit.
Falcon
2
Dedent bukan kata bahasa Inggris yang sebenarnya. API yang baik jelas dan mudah dipahami oleh siapa pun yang membaca sumbernya (sebanyak saya suka Python, ini memperkenalkan saya pada kekhasan yang tidak saya sukai sama sekali). Di samping satu sama lain, ini masuk akal, tetapi mungkin tidak sebaliknya (atau untuk seseorang yang tidak fasih berbahasa Inggris).
Demian Brecht
1
@ Demian Tentu saja ini kata bahasa Inggris, kami menggunakannya. Bagaimana kita bisa menggunakannya jika tidak ada? Bahasa Inggris bukan bahasa preskriptif yang diatur dengan ketat.
Konrad Rudolph
6
Yah, "outdent" memiliki hampir 14 juta hit.
Mike Sherrill 'Cat Recall'
2
@ Demian Brecht: Itu hanya neologisme. Sebagai seorang programmer, Anda terbenam di dalamnya setiap hari. Terbiasalah.
Jon Purdy
12

Bukankah maksud Anda indentasi ?

Niat berarti sesuatu yang sama sekali berbeda.

Kalau tidak, mungkin Unindent?

Di samping catatan:

  • Menggunakan tab untuk indentasi kode buruk (imho) - spasi lebih portabel.
  • Saya tidak akan membiarkan API ini terpapar ke klien. Mereka builderharus cukup pintar untuk mengetahui apa yang harus dan tidak perlu indentasi.
Demian Brecht
sumber
4
Posting oleh Jeff Atwood tidak mengatakan mengapa menggunakan tab itu buruk. Itu hanya membuang penghinaan untuk pengguna tab pada akhirnya.
Peter Taylor
16
"spasi lebih portabel": apa artinya itu?!?!? ... juga, saya tidak setuju tab itu buruk, sebenarnya, saya pribadi menganggapnya bagus . Ini lebih bersih, lebih mudah diurai, dan memungkinkan pengguna untuk memilih bagaimana spacy mereka harus diwakili dalam tampilan. Saya tidak melihat kelemahan negatif pada mereka, berbeda dengan ruang yang tidak memiliki kelebihan yang disebutkan sebelumnya.
dagnelies
3
@arnaud: Anda harus membaca di tab vs spasi. ini sebagian besar merupakan perdebatan agama, tetapi dalam pengalaman saya, ruang selalu menang ( terutama jika Anda sedang mengerjakan proyek OS atau memiliki banyak pengembang yang menggunakan editor berbeda). sungguh, pada akhirnya, yang penting adalah konsistensi.
Demian Brecht
2
Yang terbaik adalah memiliki editor yang secara otomatis menempatkan spasi X ketika Anda menekan Tab.
Jose Faeti
2
@Konrad: Beri nama satu editor yang tidak mendukung tab?
Callum Rogers
5

Bagaimana dengan SetIndentLevel(int level).

Menghapus indentasi kemudian hanya mengatur level ke 0. Afaik tidak ada istilah untuk kebalikan dari operasi ini.

Elang
sumber
+1 - Itu pendekatan yang lebih baik daripada dua pemanggilan fungsi untuk meningkatkan & mengurangi tingkat indentasi.
mcottle
6
Tidak yakin ini lebih baik dari 2 metode. Menggunakan metode setIndentLevel berarti Anda bertanggung jawab untuk mengingat betapa lekukan yang dalam jika elemen bersarang di dokumen. Itu berarti menjaga meja. Tidak, pasti itu seharusnya menjadi tanggung jawab pembangun, bukan tanggung jawab Anda.
David
1
@ David: Anda dapat dengan mudah membuat dua metode pembungkus untuk melacaknya. Dalam beberapa kasus mungkin lebih baik atau lebih mudah digunakan sementara dalam kasus lain tidak. Dengan antarmuka lain Anda harus memanggil metode kenaikan / penurunan beberapa kali atau dalam satu lingkaran. Jadi saya mungkin ingin ketiga versi: Set / Increase / Decrease
Falcon
1
@ David setIndentLevel(1 + getIndentLevel())- yang terbaik dari kedua dunia.
Izkata
5

Kata "indentasi" tidak benar-benar berarti "masukkan spasi putih" - itu berarti "sesuaikan spasi sehingga semuanya berbaris". Dengan demikian, indentasi dapat berarti menambah atau menghapus tab; sama seperti tidak ada kebalikan dari "berjalan", berbicara secara konsep tidak ada kebalikan dari "indentasi". Anda dapat menghapus indentasi, membatalkan indentasi, atau mengubah level indentasi, yang masing-masing adalah operasi yang entah bagaimana mengembalikan atau mengubah efek indentasi, dengan cara yang berbeda, tetapi tidak satupun dari mereka adalah "kebalikan dari indentasi. "Dedent" dan "unindent" yang populer salah dengan cara yang sama dengan "unsalk" atau "defest". (BTW, ini mungkin pertanyaan yang bagus untuk english.se)

Dalam kasus Anda, saya akan pergi dengan IncreaseIndentationLeveldan DecreaseIndentationLevel.

tammmer
sumber
1
english.se tidak terlalu suka membahas istilah pemrograman.
jgauffin
Ini lebih merupakan istilah penyusunan huruf daripada istilah pemrograman, tapi OK.
tdammers
"Indentasi", bukan "indentasi".
Mike Sherrill 'Cat Recall'
1
Setuju, "Tambah Indentasi" dan "Kurangi Indentasi" adalah istilah yang benar, secara tegas. Saya berharap itu menjadi bahasa yang akan digunakan dan dipahami oleh para programmer. Anda memang menggunakan "akselerasi negatif" ketika Anda berbicara tentang menghentikan mobil Anda, bukan?
StevenV
4

Saya telah melihat kata "outdent", misalnya di Wikipedia Template: Outdent page

Untuk ketinggalan zaman balasan pada halaman pembicaraan ketika indensi terlalu dalam. Indentasi pada halaman pembicaraan dilakukan menggunakan karakter titik dua (:) untuk menghasilkan tab; templat ini menghasilkan bilah konektor dan teks awal untuk menunjukkan outdent, berdasarkan jumlah titik dua yang digunakan dalam indentasi sebelumnya ...

Hans Ke st ing
sumber
2

Saya telah melihat Dedentdi buku Fowler tentang DSL.

Andrey Agibalov
sumber
2

FWIW Google Documents dan MS Word menggunakan "Tambah Indent" dan "Kurangi Indent". Saya lupa editor mana (mungkin itu TinyMCE, telah bekerja dengannya belakangan ini) tapi saya tahu saya pernah melihat "Indent" dan "Outdent"

Wayne Molina
sumber
1

Definisi Indent:

Mulai (satu baris teks) atau posisi (blok teks, tabel, dll.) Lebih jauh dari margin daripada bagian utama teks

Sebenarnya tidak ada yang bertolak belakang dengan ini, tetapi Anda membuat indentasi teks utama lebih jauh dari baris yang ditentukan.

Saya pikir istilah yang lebih baik adalah RemoveIndent () atau ReduceIndent ()

Karena itu, pencarian google untuk istilah "kebalikan dari indent" mengungkapkan istilah berikut: Outdent . http://www.urbandictionary.com/define.php?term=indent Ini mungkin juga cocok.

Gavin Coates
sumber
Outdent sama jeleknya dengan dedent. "In-" dalam "indent" bukanlah awalan, sebenarnya, menggantikannya seolah-olah itu adalah penyalahgunaan tata bahasa Inggris.
tdammers
@tdammers - dalam arti itu. Anda mengubah paragraf ke dalam, jadi yang sebaliknya adalah mengesampingkannya - Outdent. Secara pribadi saya lebih suka Hapus / MengurangiIndent () meskipun untuk nama fungsi ...
Gavin Coates
1
@tdammers: Rupanya "in-" di indent adalah awalan ("ke, di, pada, setelah" - etymonline.com/index.php?term=indent ). Bukan itu penting - saya tidak melihat sesuatu yang "kasar" tentang etimologi rakyat ( en.wikipedia.org/wiki/Folk_etymology ); itu bagian dari evolusi bahasa. Dan saya tidak setuju bahwa outdent sama jeleknya dengan dedent . Saya bahkan tidak yakin suku kata mana yang menekankan stres dalam dedent ; bagaimanapun juga sangat jelek. Tapi outdent itu bagus dan jelas. Ini pelengkap sempurna untuk indentasi . Dua kata tersebut menciptakan pasangan yang menyenangkan yang saling mendefinisikan dengan kontras yang sangat visual. Saya suka itu.
Maaf, saya baru sadar bahwa saya gagal membaca pertanyaan ini atau jawabannya dengan benar ... Saya berasumsi itu tentang tampilan otomatis dari garis yang dibungkus dalam editor teks. Dalam hal ini, outdent (berarti opsi menampilkan garis lebih jauh ke kiri daripada garis di atasnya) akan sempurna menurut saya. Tetapi pertanyaan ini sebenarnya tentang menghapus indentasi yang sudah ada - seperti apa yang terjadi ketika Anda menekan Shift + Tab. Dalam hal ini, saya setuju dengan reduceIndent(), atau bahkan unindent().
callum
Melakukan penelitian saya sendiri; ya, "in-" sebenarnya adalah awalan, tetapi sebagai negara callum, "outdent" berarti garis yang dimulai kiri dari tepi kiri. IIRC, hal seperti itu disebut indentasi negatif dalam pengaturan huruf, bukan ketinggalan zaman, dan bukan itu yang kita bicarakan di sini.
tammmer
0

Saya tahu saya agak terlambat ke pesta, tetapi hanya memiliki masalah yang sama untuk menemukan yang sebaliknya Indent. Karena di sini ada beberapa jawaban berbeda untuk pertanyaan itu, saya bertanya kepada seorang kolega Inggris (UK) apa yang akan dia pilih: Kiat pertamanya adalah IncreaseIndentdan DecreaseIndent. Tetapi Indentdan Detentjuga akan berhasil.

Markus
sumber