Closed EvilBeaver closed 8 years ago
Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):
Зарегистрировал отдельную задачу #163
Original comment by Sergey Batanov (Bitbucket: dmpas, GitHub: dmpas):
В поставке не нужен, согласен. Но вот именно что движок отлаживать - крайне нужная штука. Я б туда хотя бы горячие клавиши бы допилил и запоминалку предыдущего файла/текста, чтобы не открывать каждый раз. А под шумок заодно можно и этот источник подправить.
Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):
Я-то вообще подумывал его выпилить совсем. Он только для отладки движка и используется. В дистрибутиве он, пожалуй и не нужен.
Original comment by Sergey Batanov (Bitbucket: dmpas, GitHub: dmpas):
Чисто подсознательно, если я делаю Файл-Открыть, то в источнике ожидаю увидеть именно этот файл :) Вообще, я согласен с @viskvortsov , TestApp не мешало бы чуть-чуть подработать. В отладке он удобнее, когда надо в самом движке ковыряться.
Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):
@viskvortsov, какое поведение, все-таки, на ваш взгляд, должно быть у свойства ТекущийСценарий().Источник при работе внутри TestApp?
Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):
Дело в том, что это свойство не случайно названо "Источник". Если бы это всегда был путь к файлу, то оно так бы и называлось "Файл", "Путь" или как-то так. Движок может выполнять код, который не обязательно взялся из файла.
В TestApp как раз такой случай - код берется не из файла, а вбивается в окно. Я не придумал ничего лучше, как просто писать
В WIKI написано:
Путь к файлу сценария, если выполняется сценарий из файла. Для всех прочих сценариев возвращаемое значение определяется хост-приложением.
Пожалуй, это действительно, звучит непонятно. "Источник определяется хост-приложением". Для консольного oscript.exe это будет путь к файлу, т.к. он выполняет код из файлов. Для TestApp.exe это будет string, т.к. там не всегда может быть файл. Я попробую перефразировать это предложение на вики, возможно станет проще.
Ну и еще один момент: все-таки TestApp - не задумывался, как редактор для приложений сложнее чем "Hello World". Основное ее назначение - это изучение байт-кода, генерируемого компилятором (кнопка Compile). Даже текстовый редактор в TestApp - очень примитивный и не предназначен для набора большого количества кода. Если нужно писать какую-то реальную задачу, то нужно сразу брать Notepad++ и тестировать OneScript в штатном "консольном" режиме, как написано вот в этой статье http://infostart.ru/public/327581/
Цикл "написал-запустил-посмотрел" в Notepad++ намного быстрее, чем в TestApp. И работает уже как задумано, "ТекущийСценарий().Источник" возвращает путь файлу.
Original comment by Vladimir Skvortsov (Bitbucket: viskvortsov, GitHub: viskvortsov):
Источник в TestApp мне потребовался в целях отладки.
Так как я не знаю до конца механизмов работа oscript, то проводил исследование согласно wiki проекта.
Мне было необходимо получить путь до скрипта, чтоб вычислить в какой папке он находится.
Поэтому, когда он выдал мне
Мне кажется, что следует указать такую особенность поведения здесь: https://bitbucket.org/EvilBeaver/1script/wiki/stdlib/ИнформацияОСценарии и можно этим ограничиться, если выводить в testapp это проблематично.
Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):
Дело в том, что TestApp выполняет именно строку, написанную в окне. Код в окне не привязан к файлу, и источник данного сценария действительно string. Так что здесь ошибки нет.
А для чего вам потребовался "Источник" в окне TestApp? Какую задачу вы решаете? Мы можем выработать более правильное поведение.
Originally reported by: Vladimir Skvortsov (Bitbucket: viskvortsov, GitHub: viskvortsov)
День добрый.
Собственно, в теме все обозначено. В консоле все выводится верно.