Отловить конец условия невозможно - вдруг человек хочет перенести выражение на следующую строку. Но then на следующей строке я бы запретил. Повторюсь еще раз: я делаю автозавершение для начинающих. Опытные программисты могут его отключать и писать, как им хочется. Потом я сделаю сохранение настроек.
Да, я тоже потом начал об этом думать.
Как можно запрещать запись оператора каким-то конкретным образом в языке, где конструкции по определению имеют свободный формат? Можно что-то не любить, не одобрять, высказывать свое “фе” - это понятно. Но запрещать… по-моему, это слишком сильно сказано.
Я не могу этого сделать, поэтому обсуждать нечего ))
Попробуйте скачать новую версию. Там должна быть исправлена ошибка переноса оператора присваивания в центре строки. Отпишитесь по возможности
Да, работает. Спасибо!
В том, что скачалось, по-прежнему нажатие Enter внутри строки не приводит к разбиению строки на две в позиции курсора. А “перенос оператора присваивания в центре строки” - это что имелось в виду?.
по крайней мере начало работать это
var a:=5; <enter>
после чего не добавляет лишние ;
Это - да, нормально работает.
А что ненормально?
Я писал выше.
Ясно. Странно. 24го проверю
Вот что не так:
Да, я понял. Уже исправил, но выложить не могу
@Admin а что там с консольными компиляторами? Вы их вроде улучшали…
pabcnetcclear.exe
вылетает если запускать без параметров. Вроде там пишет что то про синтаксис параметров, но за те несколько десятков миллисекунд - ничего не разглядеть.
А pabcnetc.exe
вылетает если запускать приложением, у которого нет консоли.
Попробовал так же применять параметры командной строки pabcnetc.exe
к pabcnetcclear.exe
… Ничего хорошего не вышло.
Можете дать обзор того - что сейчас работает? Мне для автоматического тестера OpenCL
и OpenGL
надо что то чтоб указывать откуда брать .pcu
файлы, есть для этого что то стабильно работающее?
А что в вашем понимании “вылетает”? И что значит “запускать консольный компилятор без консоли”?
begin
var psi := new System.Diagnostics.ProcessStartInfo(
'C:\Program Files (x86)\PascalABC.NET\pabcnetc.exe'
);
psi.UseShellExecute := false;
psi.RedirectStandardInput := true;
psi.RedirectStandardOutput := true;
psi.RedirectStandardError := true;
var p := System.Diagnostics.Process.Start(psi);
p.WaitForExit;
p.StandardError.ReadToEnd.Println;
end.
Запустите по F9, чтоб консоль не создалась. Так же работает и при {$apptype windows}
.
Это не вылетает. Это правильное поведение.
Любое консольное приложение так работать будет. Запускайте в консольном окне чтобы работало
А тут в каком смысле вылетает?
Но pabcnetc.exe
то остаётся запущенным. Закрывать само должно только когда запущенно с аргументами командной строки. А когда запущенно из папки, то есть без аргументов - после вывода списка доступных аргументов надо делать паузу, чтоб можно было их разглядеть.
Я привёл код в предыдущем сообщении.
Исправил. Выложил - проверьте.