Юникод в LuaFAR

Здесь обсуждается всё, что касается макросов.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Юникод в LuaFAR

Post by NightRoman »

Из другой области вопрос есть. Встроенные строки в Луа юникодные?

Примечание модератора: http://lua-users.org/wiki/LuaUnicode
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

NightRoman wrote:Из другой области вопрос есть. Встроенные строки в Луа юникодные?
Строки в Lua не имеют атрибута кодовой страницы или юникодности. Это просто последовательность байтов, каждый из которых может быть и нулевым. То-есть Lua-строки могут содержать как текст в любой кодировке, так и бинарные данные.

Что же касается LuaFAR'а (а теперь и макросов), то нужно иметь в виду, что кодировка - UTF-8.
LuaFAR, используя встроенную библиотеку Selene Unicode, поддерживает операции с текстом в UTF-8.
 ! Message from: John Doe
Начиная с LuaMacro 699 (в составе Far 3 build 5440) библитека была заменена на https://github.com/starwing/luautf8.

Связанные темы: Ошибки из-за ужесточения проверки UTF-8 в строках
Более подробно можно прочитать в мануалах Lua и LuaFAR.
Last edited by John Doe on Sat 16 Jan, 2021 15:08, edited 1 time in total.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

Да, и теперь в макросах можно делать обработку текста регулярными выражениями, причём двух типов (Lua и фаровские).
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by Aidar »

Shmuel wrote:...LuaFAR, используя встроенную библиотеку Selene Unicode, поддерживает операции с текстом в UTF-8...
Уточнение: Для этого вызовы стандартных функций обработки строк должны быть оформлены так:

Code: Select all

-- s - строка
s:len()
s:gsub(' ', '-')
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Skirda »

Aidar wrote:Уточнение: Для этого вызовы стандартных функций обработки строк должны быть оформлены так:

Code: Select all

-- s - строка
s:len()
s:gsub(' ', '-')
Означает ли это, что для строки, содержащей "нелатиницу" в макросах len(s) != s:len()?
We are the Borg. You will be assimilated.
So Say We All!
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by Aidar »

Skirda wrote:Означает ли это, что для строки, содержащей "нелатиницу" в макросах len(s) != s:len()?
Т.к. len - макро-функция, скорее всего, она реализована через функцию unicode.utf8.len.
Я имел в виду, что
string.len(s) != s:len()
unicode.utf8.len(s) == s:len()
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

Aidar, ты отвечаешь так, как будто спрашивающие уже имеют опыт на Lua.
Ответ простой: s:len() даст тот же результат, что и макрофункция mf.len(s).
User avatar
SUSim
Posts: 1633
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 25 times

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by SUSim »

NightRoman, кстати, макрос на lua отлично справился запуском внешней проги без доступа к комстроке да и вообще без доступа к области shell.

из модального редактора я запустил копирование файла (бакап типа сделал) - lua команда os.execute.
SimSU ··· ·· -- ··· ··-
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by Shmuel »

SUSim wrote:из модального редактора я запустил копирование файла (бакап типа сделал) - lua команда os.execute.
У os.execute могут быть проблемы с юникодными именами (не пробовал, но подозреваю).
Для копирования лучше использовать win.CopyFile.
User avatar
SUSim
Posts: 1633
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 25 times

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by SUSim »

тогда win.ShellExecute лучше os.execute?
почему то в Lua_5_1_Man.chm не нашел описание win библиотеки, дайте плиз ссылку на русском.

простой самоучитель LUA http://zserge.wordpress.com/2012/02/23/lua-за-60-минут/
SimSU ··· ·· -- ··· ··-
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by Shmuel »

SUSim wrote:тогда win.ShellExecute лучше os.execute?
почему то в Lua_5_1_Man.chm не нашел описание win библиотеки, дайте плиз ссылку на русском.
win.ShellExecute - не лучше и не хуже, но он юникодный.
Но для копирования файлов используйте win.CopyFile
Ссылка на мануал библиотеки LuaFAR (не на русском): https://github.com/shmuz/Spring/downloads
User avatar
SUSim
Posts: 1633
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 25 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

string. в lua тоже не юникодные?
и шаблоны это как-то не регэкспы? хотя в фармакросах и такого не было :)



всё таки, раздел про обсуждение самого языка lua нужен!
SimSU ··· ·· -- ··· ··-
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

SUSim wrote:string. в lua тоже не юникодные?
и шаблоны это как-то не регэкспы? хотя в фармакросах и такого не было :)
Эти вопросы уже задавались: http://forum.farmanager.com/viewtopic.p ... 381#p98381
User avatar
SUSim
Posts: 1633
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 25 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

Shmuel wrote:Эти вопросы уже задавались: http://forum.farmanager.com/viewtopic.p ... 381#p98381
со вторым вопросом (про регэкспы) понятно!

а вот с первым не совсем... я спрашивал не про строки а про библиотеку string.
SimSU ··· ·· -- ··· ··-
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by Aidar »

SUSim wrote:... я спрашивал не про строки а про библиотеку string.
В LuaFAR string оставлена как есть в lua, для utf8 используется unicode.utf8.
Post Reply

Return to “Обсуждение макросов”