Мне кажется, это разные вещи. Форматирование само по себе, изменение имен - само по себе
Ме тоже так кажется, но плагин - это уж как его подключить. Если птичкой в настройках - это одно, а если инсталлировал и без деинсталляции не отключить - совсем иное. Вот если “с птичками” - то “Больше плагинов - хороших и разных!” ))
Я не хотел бы такой плагин в инсталлят. Как внешний плагин - да - скачиваешь с сайта, копируешь в папку и появляется кнопочка на панели инструментов и в контекстном меню.
Блоки repeat-until
не подсвечиваются так же как подсвечиваются begin-end
, case-end
, скобочки, и т.п. Это так задумано или нет? Делать issue?
Хорошо бы еще чтобы Вы глянули здесь где это можно прописать
Если бы я ещё что то в этом понимал)) Ну, в чём проблема прописать там же где begin-end
и case-end
?
Проблема найти, где это всё прописывается. Если бы я тоже это понимал…
да
Именно чтоб только пространства имён показывало?
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
. Но и это костыль.
Мне кажется это было бы хорошее дополнение к тем функциям-генераторам последовательностей что есть сейчас.