View Issue Details

IDProjectCategoryView StatusLast Update
0003549Wishes.PluginsLuaMacro / Macro Browserpublic2020-02-17 13:39
Reporterkasru Assigned To 
PriorityhighSeverityfeatureReproducibilityalways
Status closedResolutionno change required 
Product Version3.0 
Summary0003549: [LuaFAR][LuaFileSystem] Need File System Library for the Lua Programming Language
DescriptionДля разработки плагинов на lua не хватает работы в файловой системой.
Прошу включить в дистрибутив FAR библиотеку LuaFileSystem
http://keplerproject.github.io/luafilesystem/
Tagslfs, LuaFAR, LuaFileSystem, SetFileTime

Activities

shmuel

2017-11-06 21:32

developer   bugnote:0015792

1. Ничто не мешает разработчику плагина использовать LuaFileSystem отдельно и поставлять её вместе с плагином.
2. Приведите пример функции из LuaFileSystem, которой вам не хватает, возможно я смогу подсказать замену из числа существующих в LuaFAR функций.

JohnDoe

2017-11-07 07:09

updater   bugnote:0015795

Библиотека lfs неюникодная, а значит использовать её в фаре (как минимум) неудобно.

А вот тут вроде бы всё как нам надо, utf8: https://github.com/sonoro1234/luafilesystem/tree/unicode
(не тестировал)

kasru

2017-11-07 12:00

reporter   bugnote:0015797

Не хватает чтение и установки времени создания и модификации файла.

shmuel

2017-11-07 12:10

developer   bugnote:0015798

Чтение есть (ищите tPluginPanelItem) в мануале LuaFAR, а вот установки на самом деле нет.

kasru

2017-11-07 12:15

reporter   bugnote:0015799

Не хватает чтение и установки времени создания и модификации файла на реальной файловой системе, не на панели.

shmuel

2017-11-07 12:18

developer   bugnote:0015800

К реальной файловой системе есть доступ из нескольких функций: far.RecursiveSearch, far.GetDirList, win.GetFileInfo - если ничего не забыл.

kasru

2017-11-07 12:23

reporter   bugnote:0015801

так планируется делать такие ф-ции для LUA?
попутный вопрос: как из LUA узнать директорию где лежит LUA-плагин? что бы положить туда модуль lfs и подлючить по require.

shmuel

2017-11-07 12:29

developer   bugnote:0015802

1. Какие функции? Для модификации времён файлов - пока никто не просил. Хотя с помощью ffi это можно сделать прямо в вашем плагине. Планов не было до сих пор, дальше видно будет.

2. far.PluginStartupInfo.

kasru

2017-11-07 12:54

reporter   bugnote:0015803

а модуль ffi уже входит в поставку FAR ? или его тоже надо с собой копировать?

shmuel

2017-11-07 12:58

developer   bugnote:0015804

Модуль ffi входит в LuaJIT 2.1, который поставляется с Фаром (%FARHOME%\lua51.dll).

kasru

2017-11-09 22:43

reporter   bugnote:0015811

В Far не хватает ф-ции win.SetFileTime
Как написать запрос на добавление такой ф-ции LuaFAR ?

shmuel

2017-11-10 04:47

developer   bugnote:0015812

Это можно сделать и в рамках данного запроса. Только имейте в виду, что (в отличие от багрепортов) запросы-пожелания исполняются не срочным образом. Это значит, что такой запрос может быть исполнен через день, а может быть и через год.

kasru

2017-11-10 06:30

reporter   bugnote:0015813

Спасибо. Будем ждать.

kasru

2017-11-12 20:24

reporter  

lfsfar.lua (2,259 bytes)

kasru

2017-11-12 20:24

reporter   bugnote:0015835

Подскажите, или посоветуйте кто может подсказать. (На каком ресурсе можно задать вопрос)

Написал модуль на lua, который устанавливает время файлу в помощью WinAPI функции SetFileInformationByHandle(). На тестах в IDE ZeroBrane Studio этот модуль работает. а в FAR нет. возвращает ошибку. Не пойму почему.

Пример запуска:
local lfs = require("lfsfar")
local filemain = "C:\\testdate.txt"
local file = io.open(filemain, "wb")
local myt = {}
myt.CreationTime = 13149894797000 -- 14.09.2017 23:33:17
myt.LastAccessTime = myt.CreationTime
myt.LastWriteTime = myt.CreationTime
myt.ChangeTime = myt.CreationTime
local bret = lfs.FarSetFileTime(file, myt)
print(bret)
io.close(file)

shmuel

2017-11-12 21:07

developer   bugnote:0015836

> На каком ресурсе можно задать вопрос

В любом случае не здесь. Это же багтрекер.
Есть форум на farmanager.com, есть разделы по макросам, куча тем по Lua, в том числе и по FFI.

shmuel

2017-11-13 06:16

developer   bugnote:0015837

Форум на русском языке: https://forum.farmanager.com/
Сначала надо зарегистрироваться.

Вам может подойти раздел "Board index < Macros & Scripts < Нужна помощь":
https://forum.farmanager.com/viewforum.php?f=57

shmuel

2020-02-15 07:45

developer   bugnote:0016739

@kasru, функции получения и установки времён файлов добавлены сегодня. Их имена: win.GetFileTimes и win.SetFileTimes. Они появятся в Фаре, начиная с завтрашней ночной сборки.

Issue History

Date Modified Username Field Change
2017-11-06 21:23 kasru New Issue
2017-11-06 21:23 kasru Tag Attached: LuaFileSystem
2017-11-06 21:24 kasru Tag Attached: lfs
2017-11-06 21:32 shmuel Note Added: 0015792
2017-11-07 07:09 JohnDoe Note Added: 0015795
2017-11-07 07:16 JohnDoe Project Wishes => Wishes.Plugins
2017-11-07 07:16 JohnDoe Category Plugins API => General
2017-11-07 07:17 JohnDoe Category General => LuaMacro / Macro Browser
2017-11-07 12:00 kasru Note Added: 0015797
2017-11-07 12:10 shmuel Note Added: 0015798
2017-11-07 12:13 kasru Tag Attached: LuaFAR
2017-11-07 12:15 kasru Note Added: 0015799
2017-11-07 12:18 shmuel Note Added: 0015800
2017-11-07 12:23 kasru Note Added: 0015801
2017-11-07 12:29 shmuel Note Added: 0015802
2017-11-07 12:54 kasru Note Added: 0015803
2017-11-07 12:58 shmuel Note Added: 0015804
2017-11-09 22:43 kasru Note Added: 0015811
2017-11-09 22:43 kasru Tag Attached: SetFileTime
2017-11-10 04:47 shmuel Note Added: 0015812
2017-11-10 06:30 kasru Note Added: 0015813
2017-11-12 20:24 kasru File Added: lfsfar.lua
2017-11-12 20:24 kasru Note Added: 0015835
2017-11-12 21:07 shmuel Note Added: 0015836
2017-11-13 06:16 shmuel Note Added: 0015837
2020-02-15 07:45 shmuel Note Added: 0016739
2020-02-17 13:39 shmuel Status new => closed
2020-02-17 13:39 shmuel Resolution open => no change required