Girintinin tersi [kapalı]


11

Kodu girintilediğimizi söylüyoruz. Kod girintisine sekmeler ekleyebilir / kaldırabilirsiniz bir dize oluşturucu yazıyorum.

Örneklem:

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

Yönteme ne isim vermeliyim?


3
Biraz konu dışı ama: belki de girinti mantığı içerecek bir BeginElement ("ul") tarafından Add ("<ul>") ve Ident () çağrılarını değiştirdiyseniz, açıkça girintiyi / girintiyi çağırmaktan kaçınabilirsiniz. (ve ayrıca elbette bir EndElement yöntemi)
David

@David: +1, ancak tabii ki satır içi yuvalanmış öğeleri hesaba katmak istersiniz :)
Demian Brecht

11
Ne olmuş outdent?
Kevin

@Kevin: Harika bir alternatif, ama neden cevap olarak eklemiyorsun?
jgauffin

@David: Bir çerçeve içinde kullanılır ve kullanıcıya maruz kalmaz (sınıf herkese açıktır, böylece kullanıcı bunu kendi amaçları için kullanabilir). Ayrıca sadece işaretlemeden daha fazlası için kullanılabilir, bu yüzden BeginElementvb uygun değildir.
jgauffin

Yanıtlar:


24

Dışarıda bunun tam tersi, herkes bunu biliyor. Neden kullanmaz Indent()ve Outdent()?


En azından ben hep böyle dedim.
Callum Rogers

Aynı şekilde, her zaman outdent denildiğini duydum.
Brian Knoblauch

17

Bunun tam tersi için indentkullanırım unindent. Vikisözlük'ten:

unindent

Etimoloji
un- + girinti; 1980'lerde bilgisayarların herkesin bir sayfada metni hareket ettirmesini önemsiz hale getirdiği kökenlidir.
Fiil
girintisiz ( üçüncü şahıs tekil basit şimdiki unindentler , mevcut katılımcı girintisiz , basit geçmiş ve geçmiş katılımcı girintisiz )
1. Girintiyi kaldırmak için; bir metin bloğunu sol kenar boşluğuna yaklaştırmak için.
Ben zorunda GİRİNTİSİZ yazıma kağıdın bir yüzüne oturabileceği şekilde her paragrafın ilk satırını.

Göre Çevrimiçi Etimoloji Sözlüğü , girinti geliyor:

15c başlarında, O.Fr.'den "çentikler yapmak; dişli (tırtıklı) veya dişli bir görünüm vermek için" aynı zamanda "yasal bir mazeret oluşturmak için" girin. endenter "çentik veya çentik, tırtıklı bir kenar vermek," ML indentare "diş ile donatmak için," in- "içine, içeri, on, üzerine" (bkz. in- (2)) + L. dens (gen . dentisin ) "diş" () diş bkz. İlgili: Girintili; girinti . Baskı anlayışı ilk olarak 1670'lerde kanıtlanmıştır. İsim ilk olarak fiilden 1590'larda kaydedilir. Daha önce "yazılı bir anlaşma" (15c sonu) isim duygusu Orta İngilizce Sözlük'te " kınama kısaltması" olarak tanımlanmıştır .

Yani girinti, kaynak koduna bir "çentik" koymak gibidir. Bu çentiği kaldırmak için girintiyi geri al: unindent.


16
Indent
Dedent

Bunu desteklemek için hızlı bir google yardımcı olur: unindent 290.000 isabet alırken, adanmışın 1.920.000 isabeti vardır, bu da ikincisinin daha yaygın olarak kullanıldığına dair kaba bir işaret verir. Her ne kadar bu çok dikkatli bir şekilde argüman olarak kullanılmalıdır.

Dedentaynı zamanda python belgelerinde kullanılan standart terminolojidir .


2
Aslında "adanmış" sadece tırnak içine koyduğunuzda sadece 321.000 isabet vardır ve bu isabetlerin çoğunun girinti ile bir ilgisi yoktur, ancak daha çok isimler veya başka şeyler vardır (diş hekimi terimleri belki?). "unindent", 267.000 sonuç var.
Falcon

2
Dedent gerçek bir İngilizce kelime değildir. İyi bir API açık ve kaynak okuyan herkes tarafından kolayca anlaşılabilir (Python'u sevdiğim kadar, bu beni hiç sevmediğim bir tuhaflığa soktu). Yan yana, bu mantıklıdır, ancak aksi halde olmayabilir (veya İngilizce'de oldukça akıcı olmayan birine).
Demian Brecht

1
@Demian Tabii ki İngilizce bir kelime, onu kullanıyoruz. Eğer olmasaydı nasıl kullanabiliriz? İngilizce sıkı kurallara tabi kuralcı bir dil değildir.
Konrad Rudolph

6
Peki, "outdent" in neredeyse 14 milyon isabeti var.
Mike Sherrill 'Cat Recall'

2
Demian Brecht: Bu sadece bir neologizm. Bir programcı olarak, onlara günlük olarak dalmışsınızdır. Alışmak.
Jon Purdy

12

Girintiyi kastetmiyor musun ?

Niyet tamamen farklı bir şey demektir.

Yoksa, belki Unindent?

Yan notta:

  • Kodu girintilemek için sekmeleri kullanmak kötü (imho) - boşluklar daha taşınabilir.
  • Bu API istemciye maruz kalmaz. builderNe ve hangi girinti değil bilmek akıllı yeterli olmalı.

4
Jeff Atwood'un gönderisi sekmelerin kullanılmasının neden kötü olduğunu söylemiyor. Sonunda sekme kullanıcılarına hakaret ediyor.
Peter Taylor

16
"mekanlar daha portatiftir": bunun anlamı ne olmalı?!?!? ... ayrıca, sekmelerin kötü olduğunu kabul etmiyorum, aslında, kişisel olarak onları iyi buluyorum . Daha temiz, ayrıştırılması daha kolaydır ve kullanıcının görünümde ne kadar boşluk gösterileceğini seçmesini sağlar. Daha önce belirtilen avantajlara sahip olmayan alanların aksine, olumsuz bir olumsuzluk görmüyorum.
dagnelies

3
@arnaud: sekmelerle boşluklar arasındaki yazıları okumalısınız. bu büyük ölçüde dini bir tartışma, ancak deneyimlerime göre, alanlar her zaman hakim oldu ( özellikle bir işletim sistemi projesi üzerinde çalışıyorsanız veya farklı editörler kullanan birden fazla geliştiriciniz varsa). gerçekten, günün sonunda önemli olan tutarlılıktır.
Demian Brecht

2
En iyisi, Sekme tuşuna bastığınızda otomatik olarak X boşlukları yerleştiren bir düzenleyiciye sahip olmaktır.
Jose Faeti

2
@Konrad: Sekmeleri desteklemeyen bir düzenleyiciye ad verilsin mi?
Callum Rogers

5

Ne olmuş SetIndentLevel(int level).

Bir girintiyi kaldırmak yalnızca düzeyi 0 olarak ayarlamaktır. Afaik, bu işlemin tersi için bir terim yoktur.


+1 - Bu, girinti seviyesini artırmak ve azaltmak için iki işlev çağrısından daha iyi bir yaklaşımdır.
mcottle

6
2 yöntemden daha iyi olduğundan emin değilim. SetIndentLevel yöntemlerinin kullanılması, belgedeki iç içe öğeler durumunda girintinin ne kadar derin gittiğini hatırlamak sizin sorumluluğunuzdadır. Bu bir sayaç tutmak anlamına gelir. Hayır, kesinlikle sizin değil, inşaatçının sorumluluğu olmalı.
David

1
@David: İzlemek için kolayca iki sarma yöntemi oluşturabilirsiniz. Bazı durumlarda kullanımı daha iyi veya daha kolay olabilirken diğer durumlarda kullanımı daha kolay olabilir. Başka bir arayüzle, bir arttırma / azaltma yöntemini birden çok kez veya döngü halinde çağırmanız gerekir. Bu yüzden muhtemelen her üç sürümü de isterim: Set / Artış / Azaltma
Falcon

1
@David setIndentLevel(1 + getIndentLevel())- her iki dünyanın en iyisi.
Izkata

5

"Girinti" sözcüğü aslında "boşluk ekle" anlamına gelmez - "boşlukları ayarlamak için" boşluk ayarla "anlamına gelir. Bu nedenle, girinti, hem sekme eklemek hem de çıkarmak anlamına gelebilir; tıpkı "yürüyüşün" zıttı olmadığı gibi, kavramsal olarak "girinti" nin zıttı da yoktur. Girintiyi kaldırabilir, girintiyi geri alabilir veya girintili düzeyini değiştirebilirsiniz; bunların her biri girintinin etkilerini bir şekilde farklı şekillerde geri döndüren veya değiştiren işlemlerdir, ancak hiçbiri girintinin "tersidir". Popüler "alıkoyma" ve "isteksiz", "yaya kaldırımı" ya da "savunma" ile aynı şekilde yanlıştır. (BTW, bu ingilizce için iyi bir soru olabilir. Se)

Senin durumunda, ben gelirdim IncreaseIndentationLevelve DecreaseIndentationLevel.


1
english.se programlama terimlerini tartışmaktan pek hoşlanmıyor.
jgauffin

Bu, bir programlama teriminden daha çok dizgi veren bir terimdir, ancak Tamam.
tdammers

"Girinti", "girinti" değil.
Mike Sherrill 'Cat Recall'

1
Anlaşılan, "Girintiyi Artır" ve "Girintiyi Azalt" ifadeleri kesinlikle ifade edilir. Bunun programcıların kullanacağı ve anlayacağı bir dil olmasını beklerdim. Arabanızı durma noktasına geldiğinde "negatif hızlanma" kullanıyorsunuz, değil mi?
StevenV

4

"Outdent" kelimesini gördüm, örneğin Wikipedia'da Template: Outdent sayfası

Girinti çok derinleştiğinde bir konuşma sayfasındaki bir cevabı geciktirmek için. Konuşma sayfalarında girintileme, sekme oluşturmak için iki nokta üst üste karakteri (:) kullanılarak yapılır; bu şablon, önceki girintide kullanılan iki nokta üst üste sayısını temel alarak bir çıkıntıyı belirtmek için bir bağlayıcı çubuk ve ilk metin üretir ...



2

FWIW Google Dokümanlar ve MS Word, "Girintiyi Artır" ve "Girintiyi Azalt" işlevlerini kullanır. Hangi editörü unuttum (belki TinyMCE idi, son zamanlarda bununla çalışıyordu) ama bir keresinde "Girinti" ve "Çıkıntı" gördüğümü biliyorum


1

Girinti Tanımı:

Kenar boşluğundan metnin ana bölümünden daha fazla başlangıç ​​(metin satırı) veya konum (metin bloğu, tablo vb.)

Bunun tam tersi değil, ana metni belirtilen satırdan daha fazla girintiliyorsunuz.

Daha iyi bir terimin RemoveIndent () veya ReduceIndent () olacağını düşünüyorum

Bunu söyledikten sonra, "girintinin tersi" terimi için bir google araması şu terimi ortaya çıkarır: Outdent . http://www.urbandictionary.com/define.php?term=indent Bu da uygun olabilir.


Outdent tıpkı bir çirkin. “Girinti” içindeki “in-” bir önek değildir, aslında, İngilizce dilbilgisinin kötüye kullanılması gibidir.
tdammers

@tdammers - bir anlamda. Paragrafı içe doğru kıvırıyorsunuz, tersi dışa doğru kıvırmak olacaktır - Outdent. Şahsen ben bir işlev adı için olsa Kaldır / ReduceIndent () tercih ...
Gavin Coates

1
@tdammers: Görünüşe içinde "in-" girintisi olan bir önek ( "içine üzerine, içinde, üzerine" - etymonline.com/index.php?term=indent ). Önemli değil - halk etimolojisi hakkında "küfürlü" bir şey görmüyorum ( en.wikipedia.org/wiki/Folk_etymology ); dil gelişiminin bir parçası. Ve buna katılmıyorum çıkıntıla çirkin gibidir dedent . Hangisinin stres altında strese girebileceğinden bile emin değilim ; her iki şekilde de çok çirkin. Ama outdent güzel ve açık. Girinti için mükemmel bir tamamlayıcıdır . İki kelime birbirini çok görsel bir kontrastla tanımlayan hoş bir çift oluşturur. Bunu sevdim.

Maalesef, bu soruyu veya cevaplarını düzgün bir şekilde okuyamadığımı fark ettim ... Bunun, bir metin düzenleyicide sarılı çizgilerin otomatik olarak görüntülenmesi ile ilgili olduğunu varsayıyordum. Bu durumda, outdent ( üstündeki çizgiden daha solda bir çizgi görüntüleme seçeneği anlamına gelir ) bence mükemmel olurdu. Ancak bu soru aslında mevcut olan bir girintiyi kaldırmakla ilgilidir - Shift + Sekme tuşlarına bastığınızda ne olduğu gibi. Bu durumda katılıyorum reduceIndent(), hatta unindent().
callum

Kendi araştırmamı yaptım; evet, "in-" aslında bir önektir, ancak kallum belirttiği gibi, "çıkıntı" sol kenarın solundan başlayan bir çizgi anlamına gelir. IIRC, böyle bir şeye dizgi oluşturmada olumsuz bir girinti denir, bir çıkıntı değil ve yine de burada bahsettiğimiz şey değil.
tdammers

0

Partiye biraz geç kaldığımı biliyorum, ama tam tersini bulmakta da aynı problemi yaşadım Indent. Burada bu sorunun birkaç farklı cevabı olduğu için, bir İngiliz meslektaşına (İngiltere) ne seçeceğini sordum: İlk ipucu IncreaseIndentve DecreaseIndent. Ama Indentve Detentde bu işi görür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.