LINUX.ORG.RU

Вышел релиз GNU indent 2.2.12

 , ,


2

5

Через более чем 8,5 лет после релиза GNU indent 2.2.11 состоялся релиз GNU indent 2.2.12. GNU indent - утилита для форматирования исходного кода на C и C++

В новой версии удалена поддержка VMS и Watcom'а, а также произведены следующие изменения в опциях:

  • Новые опции:
    • -pal / --pointer-align-left и -par / --pointer-align-right
    • -fnc / --fix-nested-comment
    • -gts / --gettext-strings
    • -slc / --single-line-conditionals
    • -as / --align-with-spaces
    • -ut / --use-tabs
    • -nut / --no-tabs
    • -sar / --spaces-around-initializers
    • -ntac / --dont-tab-align-comments
  • предустановка -linux теперь включает опцию -nbs.
  • предустановка -kr теперь включает опцию -par.
  • indent теперь распознаёт ключевые слова C99 и C11, а также typeof.

>>> Скачать

★★★★★

Проверено: anonymous_incognito ()
Последнее исправление: cetjs2 (всего исправлений: 3)
Ответ на: комментарий от vodz

Иначе - появления не были бы столь эффектны. Тем более - старая версия никуда не девается.

pon4ik ★★★★★
()
Ответ на: комментарий от hobbit

man indent

Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.

anonymous
()
Ответ на: комментарий от anonymous

Когда родится ИИ не будет никакого написания кода. Это будет ненужным, не так ли?

Вероятно
Я даже боюсь об этом думать

kto_tama ★★★★★
()
Ответ на: комментарий от Deleted

Признавайтесь, кто лично использует именно indent?

Ну я использую. А что?

anonymous
()
Ответ на: комментарий от kto_tama

Я даже боюсь об этом думать

А все боятся оказаться ненужными. Зато не все готовы адекватно воспринимать реальность. Если появится реальный ИИ (а не тот примитивизм с нейронками на питончике для распознавания каптчи), то программирование станет ненужным.

anonymous
()

clang-format + clang-tidy заруливает всё. Например, можно дораставлять непоставленные скобки у сложных if'ов.

EXL ★★★★★
()
Ответ на: комментарий от EXL

На самом деле, конечно, код должен храниться в XML-файлах, это же очевидно. И это делает ненужной необходимость разных форматтеров для разных языков.

Deleted
()
Последнее исправление: myLogin (всего исправлений: 1)
Ответ на: комментарий от hobbit

Пляски туземцев старше тебя. Иди пляши вокруг костра или нимужик.

anonymous
()
Ответ на: комментарий от Deleted

Признавайтесь, кто лично использует именно indent?

Я пытался выравнивать сишный код со жуткой и наркоманской разметкой (справа):

https://exlmoto.ru/wp-content/Images/AAAA/Clang_tidy_clang_formatter_astyle.png

И с некоторым количеством ну ооочень упоротых макросов, вроде:

http://esxi.z-lab.me:666/~exl_lab/screens/omfg_c_style.png

До исправления выглядело вообще так:

https://github.com/EXL/AdamantArmorAffectionAdventure/narrator.c

Так вот, indent, uncrustify и astyle не только сразу же полностью обосрались на этой задаче, но и сломали всю хрупкую логику этого произведения искусства! Да-да, после прохождения uncrustify и indent появились сегфолты.

С этой непосильной работой справился лишь clang-format, да и то в связке с clang-tidy, который нужно было предварительно прогнать по коду в несколько проходов, чтобы захватить все ifdef'ы и выправить скобки.

Так что все эти indent, uncrustify, astyle и прочие форматтеры без вменяемого и полноценного C/C++ парсера, как в инструментах Clang/LLVM, я бы не стал натравливать на wild-проекты.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 4)
Ответ на: комментарий от EXL

Подобный код неплохо форматирует rm

anonymous
()
Ответ на: комментарий от EXL

clang-format сильно экономит время на нажатиях клавиш пробела и таба. Можно начать набирать код как попало, потом нажать кнопку и все станет отлично. Лучше, чем париться на счёт «правильно» расставленных скобочек и пробелов. Ещё он действительно хорошо работает с шаблонами. И может адекватно отформатировать только кусок кода (например, если большая часть файла исторически отформатирована криво).

anonymous
()
Ответ на: комментарий от anonymous

Вот! Можно сидеть и форматировать код руками сам, а можно автоматически за пол секунды и пройти пить пиво к девочкам.

anonymous
()
Ответ на: комментарий от anonymous

Да, отличный инструмент. Все, кто использует другие форматтеры обязательно должны попробовать clang'овские тулзы.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Вангую баг на первом скриншоте. Сравнения идут два раза с mobhitx и раз с mobhitz, а mobhity нет. Возможно, подразумевается, что x==y, но тогда названия переменных неудачные.

unC0Rr ★★★★★
()
Ответ на: комментарий от unC0Rr

Может быть баг, а может быть и фича. В дебри я не вникал. Оно вполне неплохо работает, а большего мне и не надо. Если каждый проект вдумчиво рефакторить, то времени жить совсем не останется :)

EXL ★★★★★
()

а для руби есть что нибудь подобное?

etwrq ★★★★★
()

По лоровской традиции скажем - не нужно! Компилятор и так сожрёт а плюсонисты поймут что там написано, им не привыкать.

Napilnik ★★★★★
()
Ответ на: комментарий от EXL

интересно, я tidy еще не успел особо потыкать (в отличие от format, коим доволен). Он как нынче, много ошибок ловит?

arcanis ★★★★
()
Ответ на: комментарий от vodz

означает, что автор наплевал на шаренные соглашения о форматировании

Как это вообще? Есть трактовка K&R от Линуса, есть нечто похожее от NASA, есть Google C++ Style Guide, который лично я предпочитаю. Нет никаких четких соглашений с которыми было бы согласно подавляющее большинство, что выбрать?

WitcherGeralt ★★
()
Ответ на: комментарий от anonymous

Нет. ИИ будет таким же ленивым как и мы. Чтобы что-то посчитать, нужно будет подумать, ему будет проще написать программу, которая будет делать это за него.

P.S. И да, ИИ будет юзать что-то наподобие высокоуровневых яп, ибо DRY и разные архитектуры вычислительных юнитов всё равно никуда не денутся.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)

scripts/checkpatch.pl

остальное от лукавого

Deleted
()
Ответ на: комментарий от anonymous

конечно же нет, не станет. Программисты, т.е. люди, способные формально объяснять машинам их задачи, будут нужны. На низком уровне понадобится отладка алгоритмов ИИ. На высоком - постановка задачи, что бы на пожелание «не болела голова» никто голову не отрубал.

Deleted
()
Ответ на: комментарий от ananas

а какая проблема «установить» шланг? скачал в opt и запустил, делов то (если в репах нужной версии нет). Странная претензия...

Deleted
()

GNU indent - утилита для форматирования исходного кода на C и C++

C++

Единственное что в описании этой утилиты сказано про C++ это

While an attempt was made to get indent working for C++, it will not do a good job on any C++ source except the very simplest.

Так что 4.2, автора и коммиттера в баны.

d_a ★★★★★
()

А юзать разумеется нужно clang-format, правда даже он иногда фейлит (например когда описание класса очень плотно обмазано #ifdef), поскольку от clang там только лексер.

d_a ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Нет. ИИ будет таким же ленивым как и мы. Чтобы что-то посчитать, нужно будет подумать, ему будет проще написать программу, которая будет делать это за него.

Какой наивный. ИИ будет заниматься саморазвитием, просто по определению. Никаких программ он писать не будет. Ему будет проще считать всё самому и становиться всё умнее и умнее.

P.S. И да, ИИ будет юзать что-то наподобие высокоуровневых яп, ибо DRY и разные архитектуры вычислительных юнитов всё равно никуда не денутся.

Никаких языков для ИИ не будет. Разве только быть может для того, чтобы чем-то занять человека, чтобы он не скучал.

anonymous
()
Ответ на: комментарий от Deleted

Программисты, т.е. люди, способные формально объяснять машинам их задачи, будут нужны. На низком уровне понадобится отладка алгоритмов ИИ.

Какая отладка ИИ? Ты dbg будешь юзать или msvc? Лол. ИИ в отладке не нуждается. И программистах - тоже.

anonymous
()
Ответ на: комментарий от ananas

Это уж какой код ты напишешь... Ему все равно что форматировать.

anonymous
()
Ответ на: комментарий от Softwayer

Чтобы он строчки не склеивал, надо в конце строки // ставить (пустой комментарий). Он тогда ещё и аккуратно эти комментарии выровняет. Вообще есть несколько способов точечно подкорректировать форматирование.

anonymous
()
Ответ на: комментарий от anonymous

Ему будет проще считать всё самому и становиться всё умнее и умнее

Это шашечки или ехать. Думать самому — большой оверхед, чтобы развиваться, нужны ресурсы на производство железа, а написать софт быстрее и дешевле. Думаю, что ИИ будет практичным.

Никаких языков для ИИ не будет

Как тогда переносить софт между архитектурами, а DRY? Твоя аргументация на нуле, ну, собственно, её просто нет.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Думать самому — большой оверхед

Это для тебя оверхед. ИИ над тобой посмеётся, в лучшем случае. Оценит твои суждения про «оверхед», так сказать. Лол.

чтобы развиваться, нужны ресурсы на производство железа, а написать софт быстрее и дешевле. Думаю, что ИИ будет практичным.

У него будут ресурсы, не переживай.

Как тогда переносить софт между архитектурами, а DRY?

Какой софт? Какие архитектуры? Какой DRY? Я про ИИ говорю и про ненужность программистов в перспективе.

Твоя аргументация на нуле, ну, собственно, её просто нет.

Ага, зато твоя аргументация блещет на высоте. Лол.

anonymous
()
Ответ на: комментарий от anonymous

Это для тебя оверхед

Законы физики никак не поменяются от появления ИИ, как сейчас просто посчитать 2*2 калькулятором сильно дешевле, чем считать то же самое на нееросетках, так всё и останется.

Какой софт? Какие архитектуры? Какой DRY?

Такой же как и сейчас.

зато твоя аргументация блещет на высоте

Если у тебя не хватает ума её понять, то это не обязательно проблема аргументации.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

как сейчас просто посчитать 2*2 калькулятором сильно дешевле

Посчитать 2*2 сильно дешевле и быстрее в уме, чем на калькуляторе.

чем считать то же самое на нееросетках, так всё и останется.

Ещё раз. Та примитивная лапша, которая сейчас гордо величается как «машобучение» не имеет отношения к ИИ, о котором идёт речь.

Если у тебя не хватает ума её понять, то это не обязательно проблема аргументации.

Да это у тебя его не хватает.

anonymous
()
Ответ на: комментарий от anonymous

Посчитать 2*2 сильно дешевле и быстрее в уме, чем на калькуляторе

Если заменить это на десятизначные числа и добавь неероинтерфейс к калькулятору, то всё ещё дешевле в уме?

не имеет отношения к ИИ

Сама фигня нет, а базовые принципы, используемые в нееросетках, будут применяться и в настоящем ИИ.

Да это у тебя его не хватает

Ога. Аргументации нет у тебя, а ума не хватает у меня. Это классика.

WitcherGeralt ★★
()
Ответ на: комментарий от d_a

ЮА юзать разумеется нужно clang-format, правда даже он иногда фейлит (например когда описание класса очень плотно обмазано #ifdef), поскольку от clang там только лексер.

А сколько весит виртуальная машина под названием LLVM? 60-80 Мегабайт?

Спасибо, не нужно.

anonymous
()
Ответ на: комментарий от anonymous

Пришло время проапгрейдить твой двухсотпятидесяти мегабайтный винчестер.

d_a ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Если заменить это на десятизначные числа и добавь неероинтерфейс к калькулятору, то всё ещё дешевле в уме?

Для ИИ будет дешевле. Его рационализм не будет столь примитивным, как у тебя. Например, он просчитает выгоду для себя (иначе это будет не ИИ, а дерьмо) и поймёт, что однажды обучиться работать с «десятичными числами», слово орешки щёлкать, гораздо дешевле в итоге, чем заниматься фигнёй с калькуляторами. Вот такой вот рационализм.

Сама фигня нет, а базовые принципы, используемые в нееросетках, будут применяться и в настоящем ИИ.

Это будет нечто принципиально другое. Нееросетки сгодятся для самых ранних фаз бутстрапа.

Ога. Аргументации нет у тебя, а ума не хватает у меня. Это классика.

Это у тебя нет аргументации. Одни фантазии и домыслы.

anonymous
()
Ответ на: комментарий от WitcherGeralt

Как это вообще?

Сообщество проекта. Любого. Если вы пишите только сами, то сами к себе претензии на стиль и предъявляйте.

vodz ★★★★★
()
Ответ на: комментарий от anonymous

обучиться работать с «десятичными числами»

Вот он и обучится это делать, только без оверхеда, приделав к себе вычислительный юнит, который предварительно надо запрограммировать.

Одни фантазии и домыслы

А у тебя, видимо факты? Наполеон из соседней палаты рассказал как там оно будет?

WitcherGeralt ★★
()
Ответ на: комментарий от vodz

Звучит просто, но на деле не работает. Вот есть у тебя проект, он юзает три библиотеки, скорее всего, править придётся все, везде разный стиль. Какой стиль выбрать для проекта?

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 3)
Ответ на: комментарий от WitcherGeralt

Вот есть у тебя проект, он юзает три библиотеки, скорее всего, править придётся все,

Библиотеки либо вашего проекта, либо внешние. Если внешние, то не править, а отправлять патчи мантейнеру библиотеки в его стиле. Если библиотеки заброшены, то делайте свой форк.

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ну у меня на этой неделе clang-format предложил удлинить вызов функции (вместо переноса) и превысить лимит в 80 символов. Пришлось руками править, ибо ревью такое не пройдёт.

DELIRIUM ☆☆☆☆☆
()
Последнее исправление: DELIRIUM (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.