Чистка в снипетах

Комбинация Shift+пробел - это минное поле…

"be" дает отличный блок "begin - end"
"f" порождает шаблон "for var i:=1 to 10 do"
"fo" породит шаблон " foreach var x in a do"

Есть и другие “пасхальные яйца”

Но если набрать “type abc = cl”, получим сюрпризец:

type abc = type  = class
           end;

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

А также, видимо, инкцизиция от С++, Java и т.д., поскольку и там фигурные скобочки предлагается точно так же писать

И еще и Write с маленькой буквы!

1 лайк

А это фантазия “от Котова”. Его авторское прочтение.

Да я его всю жизнь с маленькой буквы пишу

И что? Пишите дальше, имеете полное право.

“Тварь ли я дрожащая, или право имею?”

Мы тоже писали до некоторого момента. Но потом перешли на стиль C# - называть стандартные функции с большой буквы. Я даже Sin сейчас с большой буквы пишу

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

И потом, чего думать, если Intellisence сам вставит “с большой”?

И еще по поводу форматирования:

В общем, идея “вдвигать” операторные скобки на один уровень с их содержимым мне нравится. Автор приводит логические доводы в защиту такого форматирования и они мне более симпатичны, чем ссылка на “так сложилось в Delphi”. Конечно, пока я что-то делаю как бы в одной упряжке с разработчиками, я буду безусловно придерживаться их мнения. Но за пределами этого, наверно правильным будет все же иметь и свое собственное мнение, выработанное тем или иным путем.

Я читал и анализировал Мак-Коннелла. У него много хороших вещей и разумные доводы. Но именно эта идея - нам абсолютно не нравится, не поддержана никем из разработчиков ни на C#, ни на C++, ни на Delphi.

Так что странно приводить аргументацию, что Мак-Коннелл знает лучше, как форматировать тексты программ на Delphi и Паскале, которые все профессиональные разработчики форматируют по-другому.

В то же время форматирование - это религия, и я разумеется допускаю за другими право форматировать так как они хотят.

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

"Не все ли равно, что у тебя сто тысяч врагов,
 раз тебя любят два - три хороших человека?"
                        из письма Ж.Санд Г.Флоберу

А что вы предлагаете?

Я предлагаю в любом случае не писать снова “type =”. Ведь набиралось слово class. А так можно в одной программе столько type налепить… Приведенные ранее варианты дополняли введенное, а этот делает префиксы.

Собственно это было в порядке “что бы еще такое предложить?”. Лично мне проблем нет набирать впрямую все ключевые слова, но для новичков это не всегда так.

То есть вы предлагаете по class генерировать

class

end;

?

Да. В любом варианте это лучше многократной необходимости удалять type =

2 лайка

Мда, быстро всё произошло пока я спал…

Вы хотя бы раз видели отступы внутри регионов? И форматирование их не ставит. Регионы это не блоки, а разделители блока на сворачиваемые области.

Так же как с repeat-until - перейти в тело региона легко скипнув его название, 1 нажатием стрелкивниз. Вот только от неименованных регионов пользы то… У региона должно быть название потому что иначе когда он свёрнут - не понятно что у него внутри.

Как и сказал @Kotov - обычно в 1 блоке type объявляется несколько типов (и не только классов). А type на строчке с объявлением класса - выглядит ужасно некрасиво.

Кроме того, если добавлять type - получаются довольно неудобные отступы. Обычно после написания класса и нажатия Enter, после его end; - на строчке есть отступ в 2 пробела, то есть чтоб добавлять класс снипетом - надо будет ещё убирать эти отступы.

Ctrl+Space, ext, Enter, его как вообще можно руками целиком набрать?))

И так же со всеми ключевыми словами работает. Правда, в отличии от других имён - Ctrl+Space надо нажать до начала набирания ключевого слова. В середине он не работает.


Теперь к тому, что было исправлено:

Нет ну = и место под имя (и курсор на него) всё же надо…

В остальном - выше в этом сообщении я уже изложил в подробностях почему type надо убрать.

if: Вы же сказали что согласны с отступом после него? Почему тогда теперь убрали?

И зачем та строчка в tryo? Добавить её легко (1 нажатием Enter), если она кому то нужна. И я ещё ни разу не видел 1-строчный обработчик, который бы писался на отдельной строчке.

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

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

В середине просто не показывает ключевые слова:

Неприятно, что сломался, но практического смысла в этой ситуации нет. Он просто ничего не делает в любом случае. Small bug.

:man_facepalming::man_facepalming::man_facepalming:

Это был простейший пример для получения ошибки. Если бы оно было сломано только в случае if true then ;, я бы написал отдельно. А так было сломано всё. Даже begin end..