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

Сделано

2 лайка

Вот только теперь a.High есть, а a.Low нет. И получается забавный цикл

for var i:=Low(a) to a.High do ...

С другой стороны, поскольку a.High не работает со статическими массивами, а у динамических нижняя граница всегда равна нулю (о чем напоминает и подсказ по Low() в Intellisence), смысла в Low(a) вообще никакого нет, разве что для какой-то там “совместимости”. А вот то, что описав (ну вот так забожалось по условию задания) массив с границами [-5…9] надо за собой эти -5 и 9 таскать, вместо приятной записи a.Low и a.High (чего бы не сделать пару таких свойств?) - это немного печалит, поскольку как бы нарушает единый подход к проходу по массиву в цикле. А с другой стороны - ну нет и нет - пережить можно…

Еще печалит, что прошло много времени, но мое сообщение в другой ветке о том, что вот такая программа “неверна” уже на стадии компиляции, осталось без какой-либо реакции.

// PascalABC.NET 3.1, сборка 1255 от 20.06.2016
begin
  Writeln('информатика'[3:9])
end.

В то же время, достаточно взять литерал в скобки - и все хорошо. Но ведь это неправильно…

// PascalABC.NET 3.1, сборка 1255 от 20.06.2016
begin
  Writeln(('информатика')[3:9])
end.

Да, некорректно исправил - теперь a.Low и a.High работают для всех одномерных массивов - перезалил

Про ‘информатика’[3:9] - пока не можем исправить - там проблемы с грамматикой, пока обуздать не получается

1 лайк

“Жить стало интереснее, жить стало веселей”. С динамическими массивами заработало. А со статическими - по-прежнему, увы… или я неверно понял про “для ВСЕХ одномерных массивов”?

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

1 лайк

А зачем им метод, нельзя сделать, как свойства?

Свойства - это тоже методы. Вообщем, не будем делать a.Low для статических массиовов. Причина - это нельзя сделать на уровне библиотеки, это надо влазить в компилятор.

Тогда надо об этом сообщить Intellisence. А то сейчас получается, что методы High и Low видны в списке и для статических массивов.

Да, мы увидели. Не только они

Главное, шашкой не размахивать. А то могут исчезнуть и те, что и не должны, быть может, по задумке работать для статических массивов, но работают )))

Я тут слабо юмор понимаю к сожалению.

А это не юмор, это просьбе/предложение. Прочитал Ваше “Не только они” и забеспокоился, поскольку статические массивы разработчики явно недолюбливают, стараясь оставить их в “виртовских” рамках. Поэтому и предложил, что если вдруг что-то “нестандартное” для статических массивов работает, не убирать его из Intellisence.

Давно прошу, но скажу ещё раз: пожалуйста, сделайте так, чтобы при выделении нескольких pas-файлов и нажатии Enter, они все открывались в окне среды, а не только один.

Аналогично: чтобы можно было перетаскивать мышью сразу несколько файлов на окно среды и они открывались все, а не один.

Запишите это пожалуйста в Issue. Issue появились недавно

Да уже давно: я же даже делал. Просто не знаю, когда сюда писать, а когда в Ишью. Сделаю завтра.

Сюда для обсуждения, а в Issue - когда надо сделать. В крайнем случае там пообсуждаем и закроем. Интерфейсные штуки конечно - сильно уже вне нашего поля - разбираться в этом - та еще боль

Issues не затеряются. Поэтому лучше сразу на githube постить.

Здравствуйте. Добавьте пожалуйста возможность свернуть весь код одной кнопкой. После автоформатирования кода все спойлеры разворачиваются.

Intellisence не понимает, что такое Iterate. С одной стороны правильно, что Intellisence не возбуждается при вводе очередной цифры в числе, ибо вполне допустимо писать 123.Iterate(…), но когда Iterate( уже набрано, было бы полезно дать подсветку и формат параметров.

Iterate нам страшно не нравится именно потому что он применим к любому типу T. А это значит, что если его не запрещать в интеллисенсе, то он будет выпадать по точке для любых типов.

К сожалению, текущая версия Intellisense не заточена под разную обработку по точке и по скобке