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

Мне кажется, это разные вещи. Форматирование само по себе, изменение имен - само по себе

Ме тоже так кажется, но плагин - это уж как его подключить. Если птичкой в настройках - это одно, а если инсталлировал и без деинсталляции не отключить - совсем иное. Вот если “с птичками” - то “Больше плагинов - хороших и разных!” ))

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

1 лайк

Блоки repeat-until не подсвечиваются так же как подсвечиваются begin-end, case-end, скобочки, и т.п. Это так задумано или нет? Делать issue?

Хорошо бы еще чтобы Вы глянули здесь

где это можно прописать

Если бы я ещё что то в этом понимал)) Ну, в чём проблема прописать там же где begin-end и case-end?

Проблема найти, где это всё прописывается. Если бы я тоже это понимал…

@ibond а вы как, понимаете что то в этом?

При нажатии Shift+Space на пустом месте:

Это так задумано?

да

1 лайк

Именно чтоб только пространства имён показывало?

begin
  var l := Lst(0);
  l += 1;//работает
  l -= 1;//ошибка
end.

Мне кажется слегка нелогичным, что прибавлять элементы к списку можно, а отнимать нельзя…
Можете объяснить почему так? Или это просто не продумано?

О добавлении элемента в список я слышал. Его можно добавлять в конец списка (дописывать), либо вставлять в нужное место. На то он и список. Существует также удаление из списка, для чего нужный элемент или отыскивается, или указывается его место. А вот про вычитание элемента из списка не слышал ни разу. Вы хотите сказать, что это синоним удаления последнего элемента в списке по аналогии с дописыванием?

Нет, я имел в виду обычное Remove, то есть отыскивание и удаление.

Тогда это плохо. Добавление - это “в хвост” и тут += понятно. А вот -= для произвольного места (а вдруг такой элемент не один?) - не знаю, лично мне интуитивно это как-то… “неприятно” ))) Хотя, возможно, у разработчиков будет иное мнение.

А мне почему то кажется нелогичным эта операция l += 1;//работает,

ведь так это не расписать l := l + 1;//не работает

Потому что это не то же самое. l := l + 1 подразумевает изменение ссылки на список. А l += 1 это именно добавление элемента.

Да, если вместо 1 будет Lst(1) то будет работать, как вы и пишете, но непривычно по сравнению с простыми типами у которых это работает и так, и так.

uses ns;

begin end.
namespace ns;

end.

Этот код компилируется.
@ibond, так задумано?

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

@Admin Как насчёт добавить такую функцию к стандартным генераторам последовательностей?

function SeqInf<T>(gen: ()->T): sequence of T;
begin
  while true do
    yield gen;
end;

function SeqInf<T>(gen: integer->T): sequence of T;
begin
  var i := 0;
  while true do
  begin
    yield gen(i);
    i += 1;
  end;
end;

Не редко на куберфоруме в решениях задач замечал что с такой функцией будет удобнее.

А только что ещё и тут был случай.

  • Я сделал костыль в виде SeqGen для 1 элемента и вызывал .Cycle.
  • А @RAlex предпочёл передавать какое то большое число в SeqGen. Но и это костыль.

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