Версия PascalABC.NET 3.5


#41

Отловить конец условия невозможно - вдруг человек хочет перенести выражение на следующую строку. Но then на следующей строке я бы запретил. Повторюсь еще раз: я делаю автозавершение для начинающих. Опытные программисты могут его отключать и писать, как им хочется. Потом я сделаю сохранение настроек.


#42

Да, я тоже потом начал об этом думать.


#43

Как можно запрещать запись оператора каким-то конкретным образом в языке, где конструкции по определению имеют свободный формат? Можно что-то не любить, не одобрять, высказывать свое “фе” - это понятно. Но запрещать… по-моему, это слишком сильно сказано.


#44

Я не могу этого сделать, поэтому обсуждать нечего ))


#45

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


#46

Да, работает. Спасибо!


#47

В том, что скачалось, по-прежнему нажатие Enter внутри строки не приводит к разбиению строки на две в позиции курсора. А “перенос оператора присваивания в центре строки” - это что имелось в виду?.


#48

по крайней мере начало работать это

var a:=5; <enter> после чего не добавляет лишние ;


#49

Это - да, нормально работает.


#50

А что ненормально?


#51

Я писал выше.


#52

Ясно. Странно. 24го проверю


#53

Вот что не так:


#54

Да, я понял. Уже исправил, но выложить не могу


#55

@Admin а что там с консольными компиляторами? Вы их вроде улучшали…

pabcnetcclear.exe вылетает если запускать без параметров. Вроде там пишет что то про синтаксис параметров, но за те несколько десятков миллисекунд - ничего не разглядеть.
А pabcnetc.exe вылетает если запускать приложением, у которого нет консоли.
Попробовал так же применять параметры командной строки pabcnetc.exe к pabcnetcclear.exe… Ничего хорошего не вышло.

Можете дать обзор того - что сейчас работает? Мне для автоматического тестера OpenCL и OpenGL надо что то чтоб указывать откуда брать .pcu файлы, есть для этого что то стабильно работающее?


#56

А что в вашем понимании “вылетает”? И что значит “запускать консольный компилятор без консоли”?


#57
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}.


#58

Это не вылетает. Это правильное поведение.

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

А тут в каком смысле вылетает?


#59

Но pabcnetc.exe то остаётся запущенным. Закрывать само должно только когда запущенно с аргументами командной строки. А когда запущенно из папки, то есть без аргументов - после вывода списка доступных аргументов надо делать паузу, чтоб можно было их разглядеть.

Я привёл код в предыдущем сообщении.


#60

Исправил. Выложил - проверьте.