Протилежний термін відступу [закрито]


11

Ми кажемо, що вводимо відступ коду. Я пишу строкову програму, яка може додавати / видаляти вкладки до коду відступу.

Зразок:

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

Що потрібно назвати методом?


3
Це дещо поза темою, але: можливо, ви могли б уникнути явного виклику indent / dedent, якщо замінили виклики Add ("<ul>") та Ident () на BeginElement ("ul"), які б включали логіку відступу. (а також метод EndElement, звичайно)
Девід,

@David: +1, але, звичайно, ви хочете взяти до уваги вкладені елементи :)
Demian Brecht

11
Про що outdent?
Кевін

@Kevin: Чудова альтернатива, але чому б ви не додали це як відповідь?
jgauffin

@David: Він використовується в рамках і не піддається дії користувача (клас є загальнодоступним, але користувач може використовувати його для власних цілей). Крім того, він може бути використаний для більш ніж просто розмітки, тому BeginElementтощо не підходить.
jgauffin

Відповіді:


24

Зовнішній вигляд - це навпаки, всі це знають. Чому б не використовувати Indent()і Outdent()?


Це я завжди принаймні називав це.
Callum Rogers

Тут же я завжди чув, що це називається застарілим.
Брайан Ноблеуч

17

Для протилежного indent, я б використав unindent. З Вікісловника:

неспішний

Етимологія
un- + відступ; Виник у 1980-х, коли комп’ютери змусили банально переміщати текст на сторінці.
Дієслово
unindent (від третьої особи однини простим теперішнім unindents , теперішнім дієприкметником unindenting , простим минулим та минулим дієприкметником unindents )
1. Зняти відступ; щоб перемістити блок тексту ближче до лівого поля.
Мені довелося відкрутити перший рядок кожного абзацу, щоб мій нарис помістився на одну сторону паперу.

Відповідно до Інтернет-словника етимології , відступ походить від:

на початку 15в., розріз / ендентен "робити насічки; надати (щось) зубчастий або зубчастий вигляд", "також зробити законний відступ" від О.Фр. endenter " нарізати чи вм'ятину, дати зубчастою кромкою," від ML indentare "забезпечити зубами," from in- "into, in, on, on" (див. в (2)) + L. den (gen . dentis ) "зуб" (див. зуб). Пов'язані: відступ; відступ . Поліграфічний сенс вперше засвідчується 1670-х. Іменник спочатку записується 1590-х, від дієслова. Раніше іменник почуття «письмова угода» (кінець 15 ст.) Описується в Середзем'я словник англійської мови як «переписувачів скорочення. З endenture

Тож відступ - це як помістити "висічку" у вихідний код. Щоб видалити цю виїмку, ви скасовуєте відступ: unindent.


16
Indent
Dedent

Щоб створити резервну копію цього, допомагає швидкий google: unindent має 290 000 звернень, а dedent - 1 920 000 звернень, що дає приблизну ознаку того, що останній використовується більш широко. Хоча це слід використовувати як аргумент дуже обережно.

Dedentтакож є стандартною термінологією, яка використовується в документах python .


2
Насправді "дедент" має лише 321 000 звернень, коли ви розміщуєте його в лапках, і багато хто з цих хітів не мають нічого спільного з відступом, а це скоріше імена чи інші речі (можливо, терміни стоматолога?). "unindent" має 267 000 звернень.
Сокіл

2
Dedent - це не власне англійське слово. Хороший API зрозумілий і легко зрозумілий кожному, хто читає джерело (наскільки я люблю Python, це познайомило мене з химерністю, яку я зовсім не люблю). Поруч один з одним це має сенс, але не може бути інакше (або для того, хто не дуже добре володіє англійською мовою).
Дем'ян Брехт

1
@Demian Звичайно, це англійське слово, ми його використовуємо. Як ми могли використовувати його, якщо його не було? Англійська мова не є жорстко регламентованою рецептурною мовою.
Конрад Рудольф

6
Що ж, "outdent" має майже 14 мільйонів переглядів.
Майк Шеррілл 'Відкликання котів'

2
@Demian Brecht: Це просто неологізм. Як програміст, ви щодня занурюєтесь у них. Звикнути.
Джон Перді

12

Ви не маєте на увазі відступ ?

Інтенд означає щось зовсім інше.

Інакше, може Unindent?

Зі сторони:

  • Використання вкладок для відступу коду погано (imho) - пробіли більш портативні.
  • У мене не було б цього API піддаватися клієнту. builderПовинна бути досить розумний , щоб знати , що і що ні відступ.

4
Допис Джеффа Етвуда не говорить про те, чому погано користуватися вкладками. Це просто викидає образу користувачам табуляції наприкінці.
Пітер Тейлор

16
"пробіли більш портативні": що, до біса, це повинно означати?!?!? ... також я не погоджуюся, що вкладки погані, насправді я особисто вважаю їх хорошими . Він чистіший, простіший для розбору та дає можливість користувачеві вибирати, наскільки просторові вони повинні бути представлені у зображенні. Я не бачу жодного негативного недоліків у них, на відміну від просторів, які не мають згаданих раніше переваг.
dagnelies

3
@arnaud: слід читати на вкладках та пробілах. це багато в чому релігійна дискусія, але, на мій досвід, простори завжди переважали ( особливо якщо ви працюєте над проектом ОС або у вас є кілька розробників, які використовують різні редактори). дійсно, в кінці дня важливим є послідовність.
Дем'ян Брехт

2
Найкраще - мати редактор, який автоматично кладе пробіли, коли ви натискаєте Tab.
Хосе Фаети

2
@Konrad: Назвіть одного редактора, який не підтримує вкладки?
Callum Rogers

5

Про що SetIndentLevel(int level).

Видалити відступ - це просто встановити рівень у 0. Афаїк немає терміна для протилежної цієї операції.


+1 - Це кращий підхід, ніж два виклики функцій для збільшення та зменшення рівня відступу.
mcottle

6
Не впевнений, що це краще, ніж 2 методи. Використання методів setIndentLevel означає, що ви несете відповідальність пам’ятати, як пройшло глибоке відступ у разі вкладених елементів у документі. Це означатиме збереження лічильника. Ні, безумовно, це має бути відповідальність будівельника, а не ваша.
Девід

1
@David: Ви можете легко створити два способи обгортки, щоб відстежувати це. У деяких випадках це може бути краще чи простіше у використанні, а в інших випадках - ні. З іншим інтерфейсом вам доведеться викликати метод збільшення / зменшення кілька разів або в циклі. Тому я, мабуть, хотів би всіх трьох версій: Встановити / Збільшити / Зменшити
Falcon

1
@David setIndentLevel(1 + getIndentLevel())- найкращий з обох світів.
Ізката

5

Слово "відступ" насправді не означає "вставити пробіл" - це означає "відрегулювати пробіл таким чином, щоб речі вирівнялися". Таким чином, відступ може означати як додавання, так і видалення вкладок; так само, як немає протилежної "прогулянці", концептуально кажучи, немає протилежності "відступу". Ви можете видалити відступи, скасувати відступ або змінити рівень відступу, кожна з яких - це операції, які якимось чином повертають або змінюють ефекти відступу, різними способами, але жодна з них не є "протилежною відступу". Популярні "дедент" і "невіруючий" помиляються так само, як "розгойдуватися" або "перемагати". (До речі, це може спричинити гарне запитання для english.se)

У вашому випадку я б пішов IncreaseIndentationLevelі з DecreaseIndentationLevel.


1
english.se не дуже любить обговорювати умови програмування.
jgauffin

Це більше термін набору, ніж термін програмування, але добре.
tdammers

"Відступ", а не "відступ".
Майк Шеррілл 'Відкликання котів'

1
Погоджено, "Збільшити відступ" та "Зменшити відступ" - це правильні терміни, строго кажучи. Я б очікував, що це мова, якою користуються та розуміють програмісти. Ви використовуєте "негативне прискорення", коли говорити про зупинку автомобіля, чи не так?
StevenV

4

Я бачив слово "застарілий", наприклад, на шаблоні Вікіпедії : Сторінка застаріла

За видання відповіді на сторінці розмов, коли відступ стає занадто глибоким. Відступ на сторінках розмов робиться за допомогою двокрапкового символу (:) для створення вкладок; Цей шаблон створює панель з'єднувачів та початковий текст для позначення перерізу на основі кількості товстих кольорів, використаних у попередньому відступі ...



2

FWIW Google Документи та MS Word використовують "Збільшення відступу" та "Зменшення відступу". Я забуваю, який редактор (можливо, це був TinyMCE, працював з цим останнім часом), але я знаю, що одного разу бачив "Відступ" і "Вихід"


1

Визначення відступу:

Початок (рядок тексту) або позиція (блок тексту, таблиця тощо) далі від поля, ніж основна частина тексту

Тут насправді немає протилежного, скоріше ви відступаєте основний текст далі, ніж зазначений рядок.

Я думаю, що кращим терміном буде RemoveIndent () або ReduceIndent ()

Сказавши це, пошук в Google за терміном "протилежний відступу" виявляє такий термін: Outdent . http://www.urbandictionary.com/define.php?term=indent Це також може бути підходящим.


Аутдент такий же потворний, як і відданий. Дійсно "in-" in "indent" - це не префікс, а його заміна як би - це зловживання англійською граматикою.
tdammers

@tdammers - в певному сенсі це так. Ви вводите абзац всередину, тож навпаки було б вписати його назовні - Outdent. Особисто я віддаю перевагу Remove / ReduceIndent (), хоча для назви функції ...
Gavin Coates

1
@tdammers: Мабуть, "в -" в відступі є префіксом ("в, в, на, на" - etymonline.com/index.php?term=indent ). Це не важливо - я не бачу нічого «образливого» щодо народної етимології ( en.wikipedia.org/wiki/Folk_etymology ); це частина мовної еволюції. І я НЕ згоден , що Outdent як негарно , як dedent . Я навіть не впевнений , який склад до стресу в dedent ; це вкрай некрасиво. Але outdent приємно і очевидно. Це ідеальне доповнення до відступу . Два слова створюють приємну пару, яка визначає одне одного з дуже візуальним контрастом. Мені це подобається.

Вибачте, я щойно зрозумів, що не зміг прочитати це питання або його відповіді належним чином ... Я припускав, що мова йде про автоматичне відображення загорнутих рядків у текстовому редакторі. У такому випадку, на мою думку, ідеальним було б outdent ( маючи на увазі варіант відображення рядка ліворуч, ніж рядок над ним). Але це питання насправді полягає у видаленні відступу, який уже існує - як, що відбувається, коли ви натискаєте Shift + Tab. У такому випадку я згоден reduceIndent()чи навіть unindent().
callum

Робив власне дослідження; так, "in-" - це насправді префікс, але, як зазначає callum, "outdent" означатиме лінію, яка починається зліва від лівого краю. IIRC, така річ називається негативним відступом при наборі тексту, а не перешкодою, і це не те, про що ми тут говоримо.
tdammers

0

Я знаю, що я трохи спізнююся на вечірку, але у мене була та сама проблема, як знайти протилежне Indent. Оскільки тут є кілька різних відповідей на це питання, я запитав англійського колегу (Великобританія), що він обере: його першою порадою було IncreaseIndentі DecreaseIndent. Але Indentі Detentтеж би спрацювало.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.