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


#21

Комбинация 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 и т.д., поскольку и там фигурные скобочки предлагается точно так же писать


#22

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


#23

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


#24

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


#25

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

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


#26

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


#27

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

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

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


#28

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


#29

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

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

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

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


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

#31

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


#32

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

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


#33

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

class

end;

?


#34

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


#35

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

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

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

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

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

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

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


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

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

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

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

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


#36

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


#37

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


#38

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


#39

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


#40

:man_facepalming::man_facepalming::man_facepalming:

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