Замечания и предложения


#708

В настройках компилятора, по непонятным для меня причинам, постоянно ставится галочка на “генерировать отладочную информацию”, хотя я её уже замучался там отключать.


#709

Можно, пожалуйста, горячую клавишу для закомментирования нескольких строчек? К примеру, по аналогии с отступами (TAB и Shift+TAB) - / и Shift+/. И так же как с отступами - чтоб работало только если выделить несколько строчек.


#710

Вот, кстати, да. Очень удобно. Только ещё и такую ГК для раскомментирования нескольких строчек.


#711

ГК? Не знаю что это значит, но я упомянул сочетание клавишь для раскомментирования - Shift+/, по аналогии с Shift+TAB.


#712

Это я так неудачно сократил “горячая клавиша”…


#713

Так это, Ctrl+/ работает же, только он блок из строк комментирует как каждую отдельную строку //. А вы наверное про блочное комментирование (**)?


#714

А, действительно комментирует, не знал.
Нет я именно про //.
Но как раскомментировать после этого?


#715

Та же комбинация Ctrl+/


#716

Вот же ж… Как это мимо меня прошло? Век живи…


#717

operator+= работает для процедур которые =nil:

begin
  var p:procedure := nil;
  p += ()->begin writeln('test') end;
  p();//выводит "test"
end.

Но не для списков:

begin
  var l1 := new List<byte>;
  l1 += byte(1);
  writeln(l1);//Выводит "[1]"
  
  var l2: List<byte> := nil;
  l2 += byte(2);//ошибка
  writeln(l2);
end.

Это можно по простому исправить, заменив в PABCSystem

function operator+=<T>(a: List<T>; x: T): List<T>; extensionmethod;
begin
  a.Add(x);
  Result := a;
end;

на

function operator+=<T>(var a: List<T>; x: T): List<T>; extensionmethod;
begin
  if a = nil then a := new List<T>;
  a.Add(x);
  Result := a;
end;

Я проверил, работает.

Как насчёт сделать это?


#718

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

А списки - обычные ссылочные типы - там обязательно должно кидаться исключение если ссылка не инициализирована.

Вы в своём коде вправе конечно желать что хотите


#719

А как Вы смотрите на то, что добавить расширенную форму записи для event c add и remove (как в C#)?


#720

Майн Готт… попытки сделать из Паскаля C# по прежнему оставляют нескольких беспокойных… э … участников форума.


#721

Все и так к этому идёт. :wink:


#722

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

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

А с этим я не согласен. PascalABC.Net это смесь старого паскаля и C#, с лучшим из обоих языков. Как бы не пошла разработка, он всё ещё останется на половину старым паскалем, то есть никогда не станет копией C# с особым синтаксисом.

Но и это не повод отвергать фичи из C# только потому что они в C#, это уже своеобразный расизм.


#723

Я уже сколько раз писал причину: это не расизм, а уже просто какое-то открытое негодование по поводу того, что старые вещи ждут доработок, а вы все новые идеи, наверно 3-4 человекам из нескольких тысяч нужные, продолжаете генерировать.


#724

Это совершенно не обоснованно, вы смотрите лишь по себе. И соотношение на форуме, сейчас - точно не доказывает вашу правоту)).

Кроме того, “генерировать” тут точно не подходит. Надежды на то что удобства IDE будут улучшать были оставлены, раз разработчики сказали что дорабатывать её не будут, и нормально обосновали.

А фичами из других языков, особенно тех что .Net - нужно индивидуальный осмотр от разработчика. Их не так часто находят, чтоб тратить значимое время на осмотр.

И даже если разработчики решили что фича нужна и не слишком сложная - это ещё не значит что из за неё не будут исправляться баги. К примеру, #843 пока не занимались, значит исправление багов было важнее, и в итоге, на фичу не было потрачено времени.


#725

Соотношение такое, что вас тут как раз 3-4 человека, пытающихся протащить то одну, то другую примбамбаску из C++ или C#. Если бы тут присутствовали все пользователи PascalABC.NET - школьники, студенты, учителя - они бы рассказали про белые тапочки, в которых они видали эти прибамбасики.


#726

Это спекуляция.


#727

Нет, спекуляция - это пытаться навести статистику так, как это Вы делаете. Вот когда у ларька пивного толчется перед открытием контингент, так там 100% тех, кто пива хочет, но нельзя на этом основании считать, что ВСЯ РОССИЯ ХОЧЕТ ПИВА! Сейчас на форуме вас несколько толчется, кому охота что-то просовывать, которое простым смертным и в страшном сне не приснится.И что?