Здравствуйте. Хотелось бы узнать, можно ли в SciTE вывести содержимое одномерного массива в формате одно значение за другим "в линию", а не каждое значение на новой строке? Если можно, то как?
Добрый день! Возможно кто-то уже сталкивался с подобно проблемой, и знает как исправить, подскажите?
Вот суть: Пользуюсь SciTE с незапамятных времен, и все меня в нем устраивало, кроме одного с переводом скриптов для использования в среде lua 5.4, стало неудобно пользоваться внутренним интерпретатором SciTE, так как SciTE использует lua 5.1. Оказалось простым усовершенствованием не обойтись, скачал SciTE RU-Board 3.55.102 в надежде что данная версия поддерживает lua 5.4, На деле оказалось lua 5.1. Почитал вот тут https://forum.script-coding.com/viewtopic.php?id=680. "Вообще, команды меню Tools "Компилировать (Ctrl+F7)", "Собрать (F7)" и "Выполнить (F5)" определяются параметрами command.compile, command.build и command.go в файлах .properties для соответствующих языков. Т.е. можно задать абсолютно любую командную строку, которая выполнится при нажатии на эти клавиши, ..." Решение данной проблемы можно свести к добавлению в SciTE внешний интерпретатор языка Lua 5.4. "Работа в русской сборке SciTE с внешним интерпретатором языка Lua, таким, как Lua для Windows". Добавил код в файл lua.properties, использовал инструкцию из данной заметки: "Команду сборки по F7 можно откорректировать следующим образом:"
"Таким образом, подсветка языка Lua будет и у .lua, и у .wlua. Файлы .lua будут запускаться по F5 встроенным способом, а по F7 — внешним интерпретатором". На деле, после нажатия F7 и выполнение команды print(_VERSION), получаю вывод: "Lua 5.1" Понятно что не находит путь, где лежит lua 5.4, а как исправить не понимаю, подскажите, наверняка будет полезно не только мне.
у меня сразу не проходит, вот ответ "Lua: error checking global scope for command" Сбросил в директории SciTE.exe файлы Lua 5.4 так работает, "Выполнить (F5)" = Lua 5.1 и "Собрать (F7)" = Lua 5.4, правда во втором варианте не работает кодировка (идут кракозябры)
VPM написал: Скорее всего на прямую и нельзя, один и тот же код, выводит:
использую лишь компилировать и выполнить(Lua 5.3. ) это исполнение теста(получение данных с биржи):
Код
>D:/lua53/lua53.exe -e "io.stdout:setvbuf 'no'" "Moex.lua"
engines
id;name;title
1;stock;Фондовый рынок и рынок депозитов
2;state;Рынок ГЦБ (размещение)
3;currency;Валютный рынок
4;futures;Срочный рынок
5;commodity;Товарный рынок
6;interventions;Товарные интервенции
7;offboard;ОТС-система
9;agro;Агро
1012;otc;ОТС с ЦК
1282;quotes;Квоты
markets
id;trade_engine_id;trade_engine_name;trade_engine_title;market_name;market_title;market_id;marketplace;is_otc;has_history_files;has_history_trades_files;has_trades;has_history;has_candles;has_orderbook;has_tradingsession;has_extra_yields;has_delay
5;1;stock;Фондовый рынок и рынок депозитов;index;Индексы фондового рынка;5;INDICES;0;1;0;1;1;1;0;1;0;0
1;1;stock;Фондовый рынок и рынок депозитов;shares;Рынок акций;1;MXSE;0;1;1;1;1;1;1;1;0;1
2;1;stock;Фондовый рынок и рынок депозитов;bonds;Рынок облигаций;2;MXSE;0;1;1;1;1;1;1;1;1;1
Немного не в тему, но все же я не очень понимаю зачем использовать встроенную команду компиляции. Это не считая самого редактора SciTE как такового. Он, по сути, простой блокнот. Я скрипты компилирую через терминал, с использованием специально написанного (на том же Lua) скрипта компиляции. У меня проект - это много файлов, каждый раз разные зависимости. Руками это компилировать?
А что касается среды разработки, то она нужна для контроля качества кода, обязательной поддержкой Git, переходам между модулями, определениями методов, проверки на ошибки кода. А если пишешь на чистом Lua, то чтобы была и отладка. В этом плане ZeroBrane Studio, как редактор Lua, лучше. И это не считая Vim, Emac, VSCode, IntelliJ IDEA, lite, А если редактор - это просто подсветка синтаксиса, то для Windows гораздо проще использовать Notepad++
В SciTE, ну по крайней мере до версии указанной выше, в качестве внутреннего интерпретатора, используется Lua 5.1, и ее нельзя просто заменить на версию Lua 5.4. В статье выше был предложен вариант использования внешнего интерпретатора в моем случае это Lua 5.4, для этого был скачен бинарные файлы для виндовс и сброшены в директорию где стоит SciTE. SciTE позволяет это дело автоматизировать, все манипуляции с вести к простому нажатию кнопочек (меню Tools "Компилировать", "Собрать" и "Выполнить"). Нажатие "Выполнить" запускает скрипт во внутреннем интерпретатор, т.е. используется Lua 5.1 Нажатие "Компилировать" запускает компилятор внешнего интерпретатора, т.е. используется Lua 5.4 Нажатие "Собрать" должен запустить скрипт во внешнем интерпретаторе, т.е. используя Lua 5.4 Это просто удобно, написал скрипт и простыми нажатиями делаешь проверки в разных средах. Сложности Возникают при вызове среды Lua 5.4 (3 задача), Сейчас код исполняется но куда то поддержка кодировки во внутреннем есть во внешнем нет.
Код
# Команда меню - Выполнить (F5)
# Скрипт запускается с помошью внутреннего интерпретатора Lua и вывод направляется в встроенную консоль
command.go.*.lua;*.macro=dofile $(FilePath)
command.go.subsystem.*.lua;*.macro=3
# Команда меню - Собрать (F7)
# Скрипт выполняется внешним интерпретатором
command.build.*.lua=lua -e "io.stdout:setvbuf 'no'" "$(FilePath)" $(1) $(2) $(3) $(4)
command.build.*.wlua="$(FilePath)" $(1) $(2) $(3) $(4)
command.build.subsystem.*.wlua=2
nikolz, Тут видимо дело в версиях, в Lua 5.3 есть поддержка Lua 5.1, а Lua 5.4 уже нет такой поддержки, да и изменения есть серьезные, которые не поддерживаются в ранних версиях. Nikolay, Так ведь просто удобно, нажал кнопочку и привет. Потом просто привычка, быстрая проверка кода, не отходя от "кассы".
Зачем руками собрали проект, нажали кнопку, Все. Не могу судить среды разработчиков, пробовал только VSCode, Notepad++. Первый сложный, второй не удобный, а тут блокнот со своей средой разработки супер!
VPM написал: Так ведь просто удобно, нажал кнопочку и привет. Потом просто привычка, быстрая проверка кода, не отходя от "кассы".
Это, возможно, удобно если проект - это один файл. А если проект - это несколько каталогов с десятками файлов, при этом каждый проект использует разные, то уже все не так удобно. Хотя если command.build позволяет запустить свой скрипт сборки, то возможно. Хотя я все одно не вижу преимуществ перед ZeroBrane Studio. VSCode настолько прост, что даже не очень понятно, что может быть сложным.
[QUOTE]VPM написал: В SciTE, ну по крайней мере до версии указанной выше, в качестве внутреннего интерпретатора, используется Lua 5.1, и ее нельзя просто заменить на версию Lua 5.4. В статье выше был предложен вариант использования внешнего интерпретатора в моем случае это Lua 5.4, для этого был скачен
Код
[/CODE] [URL=/user/62/]nikolz[/URL], Тут видимо дело в версиях, в Lua 5.3 есть поддержка Lua 5.1, а Lua 5.4 уже нет такой поддержки, да и изменения есть серьезные, которые не поддерживаются в ранних версиях.
[URL=/user/3132/]Nikolay[/URL], Так ведь просто удобно, нажал кнопочку и привет. Потом просто привычка, быстрая проверка кода, не отходя от "кассы". [QUOTE]
[/QUOTE]
[/QUOTE]
вот запускаю скрипт в lua5.4 Он работает и в lua 5.3 и и lua5.1[CODE]>D:/lua54/lua54.exe -e "io.stdout:setvbuf 'no'" "test2020.lua"
>Exit code: 0
VPM написал: Nikolay, Воспользуюсь случаем, слетела русификация после обновления VSCode, не подскажете где копать?
Я никогда не использовал русскую локаль в любой среде разработки. Это на самом деле очень неудобно. Но есть стандартная инструкция https://code.visualstudio.com/docs/getstarted/locales Надо просто установить необходимый Language Pack.
Nikolay написал: Я скрипты компилирую через терминал, с использованием специально написанного (на том же Lua) скрипта компиляции. У меня проект - это много файлов, каждый раз разные зависимости. Руками это компилировать?
А результатом становится один luac файл и все require внутри него ведут каким-то образом внутрь него же, или дерево luac файлов и все require находят модули в сгенерированном дереве, или ещё как?
funduk написал: А результатом становится один luac файл и все require внутри него ведут каким-то образом внутрь него же, или дерево luac файлов и все require находят модули в сгенерированном дереве, или ещё как?
Я формирую дерево файлов - этакий комплект поставки. Мне так удобней. Но можно использовать скрипт, формирующий один большой итоговый файл. Правда тогда и подход к написанию должен быть учитывающий это, т.к. локальное объявление функций и переменных окружения может создать проблемы.
VPM написал: nikolz, А код scite полностью покажите.
так я его не писал. Есть на официальном сайте. Работаю в основном на этой : SciTE Version 1.75 Apr 25 2009 11:30:59 by Neil Hodgson. December 1998-November 2007. http://www.scintilla.org Lua scripting language by TeCGraf, PUC-Rio http://www.lua.org -------------------- но есть эта: SciTE Version 3.7.5 Jan 16 2023 18:01:44 by Neil Hodgson. December 1998-May 2017. http://www.scintilla.org Lua scripting language by TeCGraf, PUC-Rio http://www.lua.org
VPM написал: nikolz, А код scite полностью покажите.
Имеется в виду строки, где вызываются разные версии Lua, в моем варианте это command.go.*.lua;*.macro=dofile $(FilePath) command.go.subsystem.*.lua;*.macro=3
VPM написал: nikolz, Я не совсем корректно выразился
Цитата
VPM написал: nikolz , А код scite полностью покажите.
Имеется в виду строки, где вызываются разные версии Lua, в моем варианте это command.go.*.lua;*.macro=dofile $(FilePath) command.go.subsystem.*.lua;*.macro=3
файл lua.properties фрагмент из него запишите в конец файла:
VPM написал: nikolz, Спасибо, только не понятно где переключаете, и где и как подключается путь к исполняемому файлу луа разных версий?
версия луа определяется моими dll. У меня сейчас dll собраны под 5.3, то работаю с 5.3 Поэтому для lua версии переключаю редко и руками, переставляя #. ----------------------- Для других языков, а также Luajit переключаю расширением. Можно и версии луа переключать расширением.