Разработчики так и не смогли сделать асинхронную проверку обновлений. А без этого - вся IDE зависает пока проверяются обновления.
Кроме того, обновления лучше проверять при закрытии IDE.
Что есть - то и есть. Я предлагаю всего лишь ввести опциональную возможность автоматически после загрузки среды вызывать пункт меню. Ничего особого делать для этого не нужно.
Только IDE тогда будет всегда зависать при отсутствии подключения к интернету.
Если это опционально, пользователь сам решит, нужна ему такая возможность или нет. Есть пользователи, имеющие стабильный интернет, раздаваемый по сети 24/7. Например, я ))
А если вам отключат интернет вы даже в настройки зайти из-за зависания не сможете ))
Придётся .ini-файл редактировать
Если отключат - подожду. ибо что делать-то в РАВС без интернет?
А сейчас что - удобно? Вон человек вопрос написал, я зашел, проверил, считал что версия последняя, смотрел совсем недавно. Кто знал, что вышло обновление? Практически при каждом входе надо запускать проверку руками. Иногда забываешь, поскольку никакой закономерности в частоте появления обновлений нет и информации о том, что обновление было, нет также.
И откатить обновление назад нельзя, если в нем что-то возникло, надо сидеть и ждать исправлений (конечно, если важно именно то, что сломалось). Это потому, что нет предыдущей версии нигде.
Нет, хуже всего когда инет слабый. Когда инета нет - через пару секунд выдаёт ошибку сети. А если он слабый или нестабильный, или ещё хуже, если сайт паскаля снова лежит (для чего не нужно отсутствие инета) - то пока оно ещё одумается, пройдёт сек 15.
@Admin, В http://pascalabc.net/chto-novogo всё ещё 3.4.2 написано. Хотя и скачивается последняя версия
@Admin, можно поподробней о модуле BBCMicroBit
? Что это и зачем? (посмотреть исходный код у меня сейчас нет возможности)
Это для школьников. Платы типа Arduino
Почему в последних версия паскаль стал компилировать exe файлы в папку C:\PABCWork.NET\Output вместо той, в которой лежит исходник. Это до жути неудобно стало. Или как это отключить.
Отключите это в настройках. Подавляющему большинству удобна настройка, сделанная сейчас по умолчанию.
Привык юзать в коде функцию: ExtractFilePath(GetEXEFileName) и с новыми версиями начали сыпаться ошибки в коде.
Конкретнее выражайтесь, это ничего не говорит.
И - та функция всё равно дубль, оригиналы всех для работы с путями к файлам - в классе System.IO.Path.
Наверное вы её неправильно использовали
Вот к примеру небольшой код, использующий стороннюю библиотеку для распаковки архива. Исходник лежит в папке с игрой Skyrim.
{$reference 'SharpCompress.dll'}
uses SharpCompress, SharpCompress.Archives;
begin
try
var archive: SharpCompress.Archives.IArchive := SharpCompress.Archives.ArchiveFactory.Open(ExtractFilePath(GetEXEFileName) + 'Skyrim\Updates\Enhanced_Blood_Textures_LITE.rar', nil);
var EO := new SharpCompress.Common.ExtractionOptions;
EO.ExtractFullPath := true;
EO.Overwrite := true;
foreach var entry in archive.Entries do
if not entry.IsDirectory then entry.WriteToDirectory(ExtractFilePath(GetEXEFileName) + 'Mod Organizer\mods\', EO);
except
on System.DivideByZeroException do
writeln('Деление на 0');
on e: System.IndexOutOfRangeException do
writeln(e.Message);
on System.FormatException do
writeln('Неверный формат ввода');
else writeln('Какое-то другое исключение');
end;
end.
Если в настройках не отрубить функцию “Выходные файлы генерировать в директорию такую-то”, то программа будет сыпать ошибку:
Ошибка времени выполнения: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку “SharpCompress, Version=0.23.0.0, Culture=neutral, PublicKeyToken=afb0a02973931d96” либо одну из их зависимостей. Не удается найти указанный файл. Стек: в 1.Program.$Main() в 1.Program.Main()
По моему уже был разговор про это здесь. Но разработчики то ли не прочитали, то ли проигнорили… В общем сделал issue, теперь точно заметят:
Не помню, предлагалось уже или нет…
function ToDigits(self: integer): sequence of integer; extensionmethod;
begin
if self<0 then
if self=integer.MinValue then
begin
yield 2;
self := 147483648;
end else
self := -self;
var d := 1;
var m := self div 10;
while d<=m do d *= 10;
while d <> 0 do
begin
yield System.Math.DivRem(self,d,self);
d := d div 10;
end;
end;
begin
(12345).ToDigits.Println;
(10000).ToDigits.Println;
integer.MaxValue.ToDigits.Println;
(-12345).ToDigits.Println;
integer.MinValue.ToDigits.Println;
end.
(ну и по аналогии с int64
и может BigInteger
)
Подтолкнуло написать это: http://www.cyberforum.ru/pascalabc-net/thread2551911.html#post14087426
Предложение однозначно хорошее, на мой взгляд, поэтому:
Хорошо бы было (с моей точки зрения), если бы в PascalABC.NET:
- поддерживались списки
ToDo
- интеграция с
Git
и возможность работать сGitHub
- средства рефакторинга кода
Я не настаиваю и вряд ли стал бы по следующей причине - PascalABC.NET не гонится за такими гигантами, как Visual Studio
/Rider
(хотя, некоторые вещи бывает просят перетянуть из них и сюда), также ориентирован на начинающих.
Если бы (возможно, в будущем) данный проект решил бы развиваться по пути профессиональных IDE
, то я бы предложил бы эти два нововведения (хотя, очень вероятно, что заниматься ими начали сами разработчики и без моего напоминания). В то же время, тогда бы встал вполне понятный вопрос: Зачем это всё нужно в IDE, если ниша данного языка - начинающие?
. Да, конечно, иметь дополнительный функционал, который может пригодится - хорошо, но ведь, нишу “производственную” уже заняли другие IDE, такие как Visual Studio
и Rider
и насколько будет он (функционал) использоваться в PascalABC.NET - неизвестно (для ответа на данный вопрос надо чётко знать потребности пользователей), в то время как - это трата времени (вполне возможно впустую) разработчиков, которое они бы могли потратить на увеличение стабильности работы IDE (улучшение Intellisence
, например).