Почему IDE не поддерживают динамическое форматирование?

Другой вариант без зависимостей со старым добрым циклом for:

D = {}
for i, e in enumerate(L1):
  D[e] = L2[i%len(L2)]

D #=> {'A': '1', 'B': '2', 'C': '3', 'D': '1', 'E': '2'}

Или просто:

{ e: L2[i%len(L2)] for i, e in enumerate(L1) }
#=> {'A': '1', 'B': '2', 'C': '3', 'D': '1', 'E': '2'}
10
задан Whatsit 22 May 2009 в 18:41
поделиться

9 ответов

Потому что большинству людей нравится видеть, как код будет зафиксирован. Если все инструменты, которые вы используете для просмотра кода (программы сравнения, grep, веб-программы просмотра исходных репозиториев и т. Д.), Не понимают, как динамически форматировать код таким же образом, вы будете сбиты с толку разными форматами, когда посмотрите на это в вашей IDE по сравнению с другими инструментами.

Я согласен, было бы неплохо, если бы у нас было больше инструментов структурного программирования, а не инструментов с фиксированной шириной текста, но для этого потребовалось бы обновить все в вашей цепочке инструментов, чтобы действительно сделать его работоспособным.

9
ответ дан 3 December 2019 в 19:35
поделиться

Я думаю, что Eclipse позволяет вам форматировать код, как вам нравится.

РЕДАКТИРОВАТЬ: Да, форматы Java Code Formatter основаны на правилах, которые вы установили в проекте.

9
ответ дан 3 December 2019 в 19:35
поделиться

Я подумал, что это тоже будет хорошей идеей, но как функция программного обеспечения управления версиями, а не IDE.

Код можно сохранить как список токенов, а затем реконструируется при копировании на машину проявки. Это отвечает на вопрос Алемба, поскольку пробелы никогда не сохраняются. Однако могут потребоваться более сложные правила форматирования, чтобы справиться со всеми случаями.

Это также отвечает на опасения Мартина Харриса - код на вашем компьютере не будет содержать никаких специальных символов, только пробелы между токенами.

2
ответ дан 3 December 2019 в 19:35
поделиться

Я думаю, что файлы, которые хранятся на вашем реальном компьютере, в большинстве случаев должны быть в общем текстовом формате, бесполезно иметь возможность открывать любой файл исходного кода, который я работа в блокноте или другом удобном текстовом редакторе. Из-за этого я бы не хотел, чтобы мои локальные копии содержали какие-либо специальные символы, которые IDE интерпретирует как «Это отступ, пожалуйста, используйте табуляцию или пробел здесь, как вы считаете нужным». Я считаю, что лучше всего использовать такое форматирование в системе управления версиями: вы проверяете файл, отформатированный, как вам нравится, я проверяю его, отформатированный, как мне нравится.

Некоторое время назад я спросил об этом. вопрос об инструментах управления версиями, не понимающих код, и ответ ascalonx, указывающий мне на систему управления версиями в базе данных . Это' Жаль, что эта идея не кажется более привлекательной, поскольку она решила бы как наши проблемы, так и гораздо больше . Я разработчик .NET, поэтому в данный момент мне это очень не нравится, но, очевидно, Eclipse и IntelliJ в мире Java приближаются к этому идеалу (я не знаю, насколько близко, поскольку я ' никогда не использовал)

1
ответ дан 3 December 2019 в 19:35
поделиться

Я уверен, что существуют программы и сценарии, которые форматируют код указанным вами способом.

Хотя некоторые среды IDE поддерживают такое переформатирование кода (Eclipse, Intellij для Java, Wing для Python, VS2007? Для .net), даже если они этого не делают, нужно просто запускать эти сценарии в исходном коде.

0
ответ дан 3 December 2019 в 19:35
поделиться

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

Если код написан:

if(value!=null)

и программа динамического форматирования показывает:

if (value != null)

, и я изменяю его на:

if ((value != null) && (value.Length > 0))

, а затем другой разработчик динамически форматирует его в:

if ( (value != null) && (value.Length > 0) )

и изменяет другую строку в коде и сохраняет ее. . Сохраняется ли указанное выше форматирование? Как вы согласовываете различные предпочтения форматирования двух разработчиков, потому что его новые дополнения будут в другом формате.

Вам придется хранить в общем формате, но даже в этом случае длина строк будет другой, и разработчики нарушат в разных позициях для переноса 80 или 100 символов, и это становится довольно беспорядочным.

0
ответ дан 3 December 2019 в 19:35
поделиться

Плагиат трудно обнаружить :)

0
ответ дан 3 December 2019 в 19:35
поделиться

Потому что большинство людей не заботится о том, как выглядит код, если он согласован.

-1
ответ дан 3 December 2019 в 19:35
поделиться

Я думаю, что пора, когда IDE начнут хранить свой код как XML, а затем использовать определяемую пользователем таблицу стилей XSL для форматирования кода при презентации.

-1
ответ дан 3 December 2019 в 19:35
поделиться