Здравствуйте, IT, Вы писали:
尿Ǥ푙>>Не знаю, ребята — как по мне, так это дикредитирует светлую идею макросов расширяемых языков! Хотя, для кого то это будет и работой. IT>Лучше заниматься прикручиванием сбоку всякой хрени, которая следит за стилями? Причём оно это может делать по разному у тебя локально и на билдсерверах. А тут без шансов. IT>Представь, пришёл, например, в твой какой-нибудь опен-соурс проект умелец и в обход всем .editorconfig нахерачил в коде лидирующих табов (или пробелов по вкусу). Тебе во время ревью нужно будет это обязательно проверять. А так ему сам компайлер этого не позволит. IT>ЗЫ. Compile-time — это самая надёжная и суровая штука. Её обойти нельзя никакми способами. Не понимаю, почему бы этим не пользоваться в том числе и для принуждения следованию принятым в проекте стилям кодирования.
Оно в шарпе сейчас в компайл-тайм и проверяется. Просто забивать эти правила в языковые конструкции мне лично кажется дикой идеей.
Настройки форматирования, кажется, должны быть где-то совсем отдельно и не влиять на правила языка.
Иначе ну вот представь, что в соседней команде понадобятся ваши же макросы. А вот настройки форматирования там иные. И всё, приплыли, красота!
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, IT, Вы писали:
IT>Т.е. ты такое аналайзерами делал много раз и ваще это не вопрос. Ну продемонстрируй.
Лично я этим не занимался. Просто у нас в проектах заюзали и я вижу, что оно есть. Вот проверил лично твой кейс — проверяется:
Даже фикс работает.
Какой из аналайзеров это делает я не знаю, но их список я тебе в скриншоте привел. Думаю — это один из MS-ных. Выдает варнинг, но его не сложно превратить в ошибку добавив его в соответствующе свойство проекта.
Здравствуйте, _FRED_, Вы писали:
_FR>Иначе ну вот представь, что в соседней команде понадобятся ваши же макросы. А вот настройки форматирования там иные. И всё, приплыли, красота!
Ты о чём? Об одно макросе всемогутере, который занимается в том числе и настройками форматирования? Или это набор отдельных макросов, которые каждый занимается своим делом? В первом случае выкинь такое нафиг или допили до ума. Во-втором, используй только то, что тебе нужно.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
_FR>>Иначе ну вот представь, что в соседней команде понадобятся ваши же макросы. А вот настройки форматирования там иные. И всё, приплыли, красота!
IT>Ты о чём? Об одно макросе всемогутере, который занимается в том числе и настройками форматирования? Или это набор отдельных макросов, которые каждый занимается своим делом? В первом случае выкинь такое нафиг или допили до ума. Во-втором, используй только то, что тебе нужно.
Я так понял, что ты бы хотел определить макрос if таким образом, чтобы он требовал пробел перед открывающей скобкой. Соотвтественно дело не только в if, а во всех подобных конструкциях (for, while, …). Так вот набор этих конструкций таким обраpом не будет переносим в другие проекты, где стиль оформления отличается.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, IT, Вы писали:
IT>>>Сделай настройки, а потом попробуй без набери 'if(' без пробела. Помогло? _FR>>Вот что получилось: IT>Что делал? Хочу повторить и попробую сломать.
Не совсем понял вопрос — просто вводил текст. Возможно, где-то в студии есть настройка форматировать блок кода при вводе `}`.
При желании "сломать" конечно всё можно (например, после того, как студия отформатировала пойти и вручную удалить добавленный пробел).
Но мы же не с этим боремся, а помогаем случайно не пропустить проблему.
Help will always be given at Hogwarts to those who ask for it.
Отредактировано 20.04.2023 16:19
_FRED_
(Добавил ссылку на картинку с настройками, исправил опечатки)
.
Предыдущая версия
.
Здравствуйте, _FRED_, Вы писали:
_FR>Я так понял, что ты бы хотел определить макрос if таким образом, чтобы он требовал пробел перед открывающей скобкой.
Ни в коем случае.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
_FR>>Я так понял, что ты бы хотел определить макрос if таким образом, чтобы он требовал пробел перед открывающей скобкой.
IT>Ни в коем случае.
ОК, значит я не понял. В Немерле можно просто правило такое задать, которое будет проверять форматирование и выдавать ошибку в случае чего?
Можно пример такого посмотреть?
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, IT, Вы писали:
IT>>>Что делал? Хочу повторить и попробую сломать. _FR>>Не совсем понял вопрос — просто вводил текст.
IT>Понятно. Чел тоже просто вводит текст, но у него почему-то пробел не добавляется.
Я там картинку добавил с соответствующей настройкой.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, _FRED_, Вы писали:
_FR>ОК, значит я не понял. В Немерле можно просто правило такое задать, которое будет проверять форматирование и выдавать ошибку в случае чего? _FR>Можно пример такого посмотреть?
Нельзя. Во-первых, мы тут теоретизируем, во-вторых, где я тебе сейчас найду Немерле?
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, _FRED_, Вы писали:
_FR>Я там картинку добавил с соответствующей настройкой.
Не, это сразу в сад. Мне такого счастья не надо. Я уже задолбался реджектить пул-реквесты, в которых 80% изменений — это случайное форматирование чужого кода. Я уж лучше с "if(" поживу.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, VladD2, Вы писали:
VD>Вроде как включается и отключается через .editorconfig
Можешь не пробовать. В общем, достаточно забить на эти предупреждения и всё будет нормально компилироваться. К тому же IDE0055 — это не только "if(", а вообще любое форматирование, включая, например, лишние пробелы при табличном форматировании
aa = 1;
bbbb = 2;
В общем, какашка.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
IT>Можешь не пробовать. В общем, достаточно забить на эти предупреждения и всё будет нормально компилироваться. К тому же IDE0055 — это не только "if(", а вообще любое форматирование, включая, например, лишние пробелы при табличном форматировании
Это по идее должно настраиваться. По крайней мере раз оно это сделали, то ты тоже можешь. Они вроде же не в компилятор это вшили. Хотя, фиг его знает.
Что до табличного форматирования... Меня за табличное форматирование очень быстро зачмырили. Причем нашли довольно здравый аргумент (кроме "нэкрасиво") — у МС-ного блэйма едет крыша от вбитых проблелов и он начинает код в котором поправлены только пробелы записывать на того кто правил пробелы. Далее правишь отсупы и получается, что весь блок переменных с пробелами твой и к тебе приходит пол конторы за консультациями.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, IT, Вы писали:
IT>Можешь не пробовать. В общем, достаточно забить на эти предупреждения и всё будет нормально компилироваться.
Не. Можно сделать варнинг эс эрор и будут эрроры. У нас тестеры в своих проектах так запретили у if-ов не ставить фигурные скобки, если стэйтмент один. Идиотское правило, но они его заставляют так применять.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Что до табличного форматирования... Меня за табличное форматирование очень быстро зачмырили. Причем нашли довольно здравый аргумент (кроме "нэкрасиво") — у МС-ного блэйма едет крыша от вбитых проблелов и он начинает код в котором поправлены только пробелы записывать на того кто правил пробелы. Далее правишь отсупы и получается, что весь блок переменных с пробелами твой и к тебе приходит пол конторы за консультациями.
Но это же не значит, что ты не можешь использовать табличное форматирование в своём собственном коде?
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, VladD2, Вы писали:
VD>Не. Можно сделать варнинг эс эрор и будут эрроры. У нас тестеры в своих проектах так запретили у if-ов не ставить фигурные скобки, если стэйтмент один. Идиотское правило, но они его заставляют так применять.
Я Severity ставил в error. Ему при компиляции вообще по барабану. В студии рисует ошибку, но компилятору начхать.
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
_FR>>Я там картинку добавил с соответствующей настройкой.
IT>Не, это сразу в сад. Мне такого счастья не надо. Я уже задолбался реджектить пул-реквесты, в которых 80% изменений — это случайное форматирование чужого кода. Я уж лучше с "if(" поживу.
А тут интересно — почему так получается? Если есть .editorconfig со всему нужными для форматирования настройками, как так получается, что кто-то случайно портит форматирование?
Я могу понять, что какой-то код был отформатирован не по правилам и его так вот случайно отформатировали "как надо". Так .editorconfig можно иметь разный в разных местах для разных папок и файлов.
В любом слуйчае исправления форматирования должны идти отдельно и "случайно" попадать в пул реквест не должны (ну должны же люди смотреть, что они коммитят и что получвается в пулреквесте).
Help will always be given at Hogwarts to those who ask for it.