Re[25]: Новости C#12
От: _FRED_ Черногория
Дата: 20.04.23 12:41
Оценка: +1
Здравствуйте, IT, Вы писали:

尿Ǥ푙>>Не знаю, ребята — как по мне, так это дикредитирует светлую идею макросов расширяемых языков! Хотя, для кого то это будет и работой.

IT>Лучше заниматься прикручиванием сбоку всякой хрени, которая следит за стилями? Причём оно это может делать по разному у тебя локально и на билдсерверах. А тут без шансов.
IT>Представь, пришёл, например, в твой какой-нибудь опен-соурс проект умелец и в обход всем .editorconfig нахерачил в коде лидирующих табов (или пробелов по вкусу). Тебе во время ревью нужно будет это обязательно проверять. А так ему сам компайлер этого не позволит.
IT>ЗЫ. Compile-time — это самая надёжная и суровая штука. Её обойти нельзя никакми способами. Не понимаю, почему бы этим не пользоваться в том числе и для принуждения следованию принятым в проекте стилям кодирования.

Оно в шарпе сейчас в компайл-тайм и проверяется. Просто забивать эти правила в языковые конструкции мне лично кажется дикой идеей.
Настройки форматирования, кажется, должны быть где-то совсем отдельно и не влиять на правила языка.

Иначе ну вот представь, что в соседней команде понадобятся ваши же макросы. А вот настройки форматирования там иные. И всё, приплыли, красота!
Help will always be given at Hogwarts to those who ask for it.
Re[16]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.04.23 14:46
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Но не удастся ли в проект подключить новый компилятор си-шарпа через ну-гет?


Нужно будет попробовать.
Если нам не помогут, то мы тоже никого не пощадим.
Re[15]: Новости C#12
От: VladD2 Российская Империя www.nemerle.org
Дата: 20.04.23 15:13
Оценка:
Здравствуйте, IT, Вы писали:

IT>Т.е. ты такое аналайзерами делал много раз и ваще это не вопрос. Ну продемонстрируй.


Лично я этим не занимался. Просто у нас в проектах заюзали и я вижу, что оно есть. Вот проверил лично твой кейс — проверяется:


Даже фикс работает.

Какой из аналайзеров это делает я не знаю, но их список я тебе в скриншоте привел. Думаю — это один из MS-ных. Выдает варнинг, но его не сложно превратить в ошибку добавив его в соответствующе свойство проекта.

Вот доки какие-то по нему:
https://learn.microsoft.com/ru-ru/dotnet/fundamentals/code-analysis/overview?tabs=net-7

Вроде как включается и отключается через .editorconfig
Майки, как всегда, прекрасны! Компилятор зависит от левых файлов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[26]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.04.23 15:17
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Иначе ну вот представь, что в соседней команде понадобятся ваши же макросы. А вот настройки форматирования там иные. И всё, приплыли, красота!


Ты о чём? Об одно макросе всемогутере, который занимается в том числе и настройками форматирования? Или это набор отдельных макросов, которые каждый занимается своим делом? В первом случае выкинь такое нафиг или допили до ума. Во-втором, используй только то, что тебе нужно.
Если нам не помогут, то мы тоже никого не пощадим.
Re[22]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.04.23 15:21
Оценка:
Здравствуйте, _FRED_, Вы писали:

IT>>Сделай настройки, а потом попробуй без набери 'if(' без пробела. Помогло?

_FR>Вот что получилось:

Что делал? Хочу повторить и попробую сломать.
Если нам не помогут, то мы тоже никого не пощадим.
Re[27]: Парсинг бинарных сообщений
От: _FRED_ Черногория
Дата: 20.04.23 15:47
Оценка:
Здравствуйте, IT, Вы писали:

_FR>>Иначе ну вот представь, что в соседней команде понадобятся ваши же макросы. А вот настройки форматирования там иные. И всё, приплыли, красота!


IT>Ты о чём? Об одно макросе всемогутере, который занимается в том числе и настройками форматирования? Или это набор отдельных макросов, которые каждый занимается своим делом? В первом случае выкинь такое нафиг или допили до ума. Во-втором, используй только то, что тебе нужно.


Я так понял, что ты бы хотел определить макрос if таким образом, чтобы он требовал пробел перед открывающей скобкой. Соотвтественно дело не только в if, а во всех подобных конструкциях (for, while, …). Так вот набор этих конструкций таким обраpом не будет переносим в другие проекты, где стиль оформления отличается.
Help will always be given at Hogwarts to those who ask for it.
Re[23]: Новости C#12
От: _FRED_ Черногория
Дата: 20.04.23 16:00
Оценка:
Здравствуйте, IT, Вы писали:

IT>>>Сделай настройки, а потом попробуй без набери 'if(' без пробела. Помогло?

_FR>>Вот что получилось:
IT>Что делал? Хочу повторить и попробую сломать.

Не совсем понял вопрос — просто вводил текст. Возможно, где-то в студии есть настройка форматировать блок кода при вводе `}`.
При желании "сломать" конечно всё можно (например, после того, как студия отформатировала пойти и вручную удалить добавленный пробел).
Но мы же не с этим боремся, а помогаем случайно не пропустить проблему.
Help will always be given at Hogwarts to those who ask for it.
Отредактировано 20.04.2023 16:19 _FRED_ (Добавил ссылку на картинку с настройками, исправил опечатки) . Предыдущая версия .
Re[28]: Парсинг бинарных сообщений
От: IT Россия linq2db.com
Дата: 20.04.23 18:11
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Я так понял, что ты бы хотел определить макрос if таким образом, чтобы он требовал пробел перед открывающей скобкой.


Ни в коем случае.
Если нам не помогут, то мы тоже никого не пощадим.
Re[24]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.04.23 18:12
Оценка:
Здравствуйте, _FRED_, Вы писали:

IT>>Что делал? Хочу повторить и попробую сломать.

_FR>Не совсем понял вопрос — просто вводил текст.

Понятно. Чел тоже просто вводит текст, но у него почему-то пробел не добавляется.
Если нам не помогут, то мы тоже никого не пощадим.
Re[29]: Новости C#12
От: _FRED_ Черногория
Дата: 20.04.23 18:21
Оценка:
Здравствуйте, IT, Вы писали:

_FR>>Я так понял, что ты бы хотел определить макрос if таким образом, чтобы он требовал пробел перед открывающей скобкой.


IT>Ни в коем случае.


ОК, значит я не понял. В Немерле можно просто правило такое задать, которое будет проверять форматирование и выдавать ошибку в случае чего?
Можно пример такого посмотреть?
Help will always be given at Hogwarts to those who ask for it.
Re[25]: Новости C#12
От: _FRED_ Черногория
Дата: 20.04.23 18:22
Оценка:
Здравствуйте, IT, Вы писали:

IT>>>Что делал? Хочу повторить и попробую сломать.

_FR>>Не совсем понял вопрос — просто вводил текст.

IT>Понятно. Чел тоже просто вводит текст, но у него почему-то пробел не добавляется.


Я там картинку добавил с соответствующей настройкой.
Help will always be given at Hogwarts to those who ask for it.
Re[30]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.04.23 18:54
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>ОК, значит я не понял. В Немерле можно просто правило такое задать, которое будет проверять форматирование и выдавать ошибку в случае чего?

_FR>Можно пример такого посмотреть?

Нельзя. Во-первых, мы тут теоретизируем, во-вторых, где я тебе сейчас найду Немерле?
Если нам не помогут, то мы тоже никого не пощадим.
Re[26]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.04.23 18:56
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Я там картинку добавил с соответствующей настройкой.


Не, это сразу в сад. Мне такого счастья не надо. Я уже задолбался реджектить пул-реквесты, в которых 80% изменений — это случайное форматирование чужого кода. Я уж лучше с "if(" поживу.
Если нам не помогут, то мы тоже никого не пощадим.
Отредактировано 20.04.2023 18:58 IT . Предыдущая версия .
Re[16]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.04.23 19:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Вроде как включается и отключается через .editorconfig


Попробуй откомпилировать, компилятор выдаст что-нибудь? А если Severity поставить в Error? В .editorconfig

dotnet_diagnostic.IDE0055.severity = error
Если нам не помогут, то мы тоже никого не пощадим.
Re[16]: Новости C#12
От: IT Россия linq2db.com
Дата: 20.04.23 20:28
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Вроде как включается и отключается через .editorconfig


Можешь не пробовать. В общем, достаточно забить на эти предупреждения и всё будет нормально компилироваться. К тому же IDE0055 — это не только "if(", а вообще любое форматирование, включая, например, лишние пробелы при табличном форматировании

aa   = 1;
bbbb = 2;


В общем, какашка.
Если нам не помогут, то мы тоже никого не пощадим.
Re[17]: Новости C#12
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.04.23 01:20
Оценка: 10 (1) :)
Здравствуйте, IT, Вы писали:

IT>Можешь не пробовать. В общем, достаточно забить на эти предупреждения и всё будет нормально компилироваться. К тому же IDE0055 — это не только "if(", а вообще любое форматирование, включая, например, лишние пробелы при табличном форматировании


Это по идее должно настраиваться. По крайней мере раз оно это сделали, то ты тоже можешь. Они вроде же не в компилятор это вшили. Хотя, фиг его знает.

Что до табличного форматирования... Меня за табличное форматирование очень быстро зачмырили. Причем нашли довольно здравый аргумент (кроме "нэкрасиво") — у МС-ного блэйма едет крыша от вбитых проблелов и он начинает код в котором поправлены только пробелы записывать на того кто правил пробелы. Далее правишь отсупы и получается, что весь блок переменных с пробелами твой и к тебе приходит пол конторы за консультациями.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Новости C#12
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.04.23 01:36
Оценка:
Здравствуйте, IT, Вы писали:

IT>Можешь не пробовать. В общем, достаточно забить на эти предупреждения и всё будет нормально компилироваться.


Не. Можно сделать варнинг эс эрор и будут эрроры. У нас тестеры в своих проектах так запретили у if-ов не ставить фигурные скобки, если стэйтмент один. Идиотское правило, но они его заставляют так применять.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Новости C#12
От: IT Россия linq2db.com
Дата: 21.04.23 03:01
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что до табличного форматирования... Меня за табличное форматирование очень быстро зачмырили. Причем нашли довольно здравый аргумент (кроме "нэкрасиво") — у МС-ного блэйма едет крыша от вбитых проблелов и он начинает код в котором поправлены только пробелы записывать на того кто правил пробелы. Далее правишь отсупы и получается, что весь блок переменных с пробелами твой и к тебе приходит пол конторы за консультациями.


Но это же не значит, что ты не можешь использовать табличное форматирование в своём собственном коде?
Если нам не помогут, то мы тоже никого не пощадим.
Re[18]: Новости C#12
От: IT Россия linq2db.com
Дата: 21.04.23 03:27
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Не. Можно сделать варнинг эс эрор и будут эрроры. У нас тестеры в своих проектах так запретили у if-ов не ставить фигурные скобки, если стэйтмент один. Идиотское правило, но они его заставляют так применять.


Я Severity ставил в error. Ему при компиляции вообще по барабану. В студии рисует ошибку, но компилятору начхать.
Если нам не помогут, то мы тоже никого не пощадим.
Re[27]: Новости C#12
От: _FRED_ Черногория
Дата: 21.04.23 09:51
Оценка:
Здравствуйте, IT, Вы писали:

_FR>>Я там картинку добавил с соответствующей настройкой.


IT>Не, это сразу в сад. Мне такого счастья не надо. Я уже задолбался реджектить пул-реквесты, в которых 80% изменений — это случайное форматирование чужого кода. Я уж лучше с "if(" поживу.


А тут интересно — почему так получается? Если есть .editorconfig со всему нужными для форматирования настройками, как так получается, что кто-то случайно портит форматирование?

Я могу понять, что какой-то код был отформатирован не по правилам и его так вот случайно отформатировали "как надо". Так .editorconfig можно иметь разный в разных местах для разных папок и файлов.
В любом слуйчае исправления форматирования должны идти отдельно и "случайно" попадать в пул реквест не должны (ну должны же люди смотреть, что они коммитят и что получвается в пулреквесте).
Help will always be given at Hogwarts to those who ask for it.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.