Просмотр исходного кода

Fix BufferInfo Lua binding for std::filesystem::path

Fixed compilation error by converting filepath to string in Lua:
- Added sol::property for filepath field
- Converts std::optional<std::filesystem::path> to sol::optional<std::string>
- BufferInfo now properly exposed to Lua

Build now succeeds without errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Bernardo Magri 1 месяц назад
Родитель
Сommit
03fa2d17ef
2 измененных файлов с 35 добавлено и 436 удалено
  1. 20 436
      lumacs_debug.log
  2. 15 0
      src/lua_api.cpp

+ 20 - 436
lumacs_debug.log

@@ -1,5 +1,7 @@
 init.lua loading result: success
-Loaded 27 key bindings:
+Loaded 44 key bindings:
+  - C-/
+  - C-@
   - C-a
   - C-b
   - C-e
@@ -13,456 +15,38 @@ Loaded 27 key bindings:
   - C-s
   - C-t
   - C-u
+  - C-v
   - C-w
   - C-x 0
   - C-x 2
   - C-x 3
+  - C-x C-b
+  - C-x C-x
+  - C-x b
+  - C-x h
+  - C-x k
   - C-x o
+  - C-x u
   - C-y
   - C-z
   - Escape
   - M-0
   - M-2
   - M-3
+  - M-<
+  - M->
   - M-ArrowDown
   - M-ArrowUp
+  - M-b
+  - M-f
+  - M-g g
+  - M-v
+  - M-w
   - M-x
+  - M-y
 Checking specific bindings:
   C-x 2: found
   C-x 3: found
   C-x 0: found
-ncurses editor initialized: 135x42
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(0,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (0,0) to (1,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(1,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (1,0) to (2,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(2,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (2,0) to (3,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(3,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (3,0) to (4,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(4,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (4,0) to (5,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(5,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (5,0) to (6,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(6,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (6,0) to (7,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(7,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (7,0) to (8,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(8,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (8,0) to (9,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(9,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (9,0) to (10,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(10,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (10,0) to (11,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(11,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (11,0) to (12,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(12,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (12,0) to (13,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(13,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (13,0) to (14,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(14,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (14,0) to (15,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(15,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (15,0) to (16,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(16,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (16,0) to (17,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(17,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (17,0) to (18,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(18,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (18,0) to (19,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(19,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (19,0) to (20,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(20,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (20,0) to (21,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(21,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (21,0) to (22,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(22,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (22,0) to (23,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(23,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (23,0) to (24,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(24,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (24,0) to (25,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(25,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (25,0) to (26,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(26,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (26,0) to (27,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(27,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (27,0) to (28,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(28,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (28,0) to (29,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(29,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (29,0) to (30,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(30,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (30,0) to (31,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(31,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (31,0) to (32,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(32,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (32,0) to (33,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(33,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (33,0) to (34,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(34,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (34,0) to (35,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(35,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (35,0) to (36,0)
-Render window at 0,0 size 135x40 viewport=0-40 cursor=(36,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (36,0) to (37,0)
-Render window at 0,0 size 135x40 viewport=1-41 cursor=(37,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (37,0) to (38,0)
-Render window at 0,0 size 135x40 viewport=2-42 cursor=(38,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (38,0) to (39,0)
-Render window at 0,0 size 135x40 viewport=3-43 cursor=(39,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (39,0) to (40,0)
-Render window at 0,0 size 135x40 viewport=4-44 cursor=(40,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (40,0) to (41,0)
-Render window at 0,0 size 135x40 viewport=5-45 cursor=(41,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (41,0) to (42,0)
-Render window at 0,0 size 135x40 viewport=6-46 cursor=(42,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (42,0) to (43,0)
-Render window at 0,0 size 135x40 viewport=7-47 cursor=(43,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (43,0) to (44,0)
-Render window at 0,0 size 135x40 viewport=8-48 cursor=(44,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (44,0) to (45,0)
-Render window at 0,0 size 135x40 viewport=9-49 cursor=(45,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (45,0) to (46,0)
-Render window at 0,0 size 135x40 viewport=10-50 cursor=(46,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 258 (0x102)
-Resolved key: 'ArrowDown'
-============================
-Trying Lua binding for: ArrowDown
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-ArrowDown: cursor moved from (46,0) to (47,0)
-Render window at 0,0 size 135x40 viewport=11-51 cursor=(47,0) active=1
-=== NCURSES INPUT DEBUG ===
-Raw key code: 58 (0x3a)
-Resolved key: ':'
-============================
-Trying Lua binding for: :
-Has Lua binding: no
-No Lua binding executed, trying C++ fallbacks
-Render window at 0,0 size 135x40 viewport=11-51 cursor=(47,0) active=1
-Render window at 0,0 size 135x40 viewport=11-51 cursor=(47,0) active=1
-Render window at 0,0 size 135x40 viewport=11-51 cursor=(47,0) active=1
+ncurses editor initialized: 80x24
+Render window at 0,0 size 80x22 viewport=0-22 cursor=(0,0) active=1

+ 15 - 0
src/lua_api.cpp

@@ -200,6 +200,21 @@ void LuaApi::register_types() {
         "attr", &StyledRange::attr
     );
 
+    // BufferInfo type
+    lua_.new_usertype<EditorCore::BufferInfo>("BufferInfo",
+        sol::no_constructor,
+        "name", &EditorCore::BufferInfo::name,
+        "size", &EditorCore::BufferInfo::size,
+        "modified", &EditorCore::BufferInfo::modified,
+        "mode", &EditorCore::BufferInfo::mode,
+        "filepath", sol::property([](const EditorCore::BufferInfo& info) -> sol::optional<std::string> {
+            if (info.filepath.has_value()) {
+                return info.filepath->string();
+            }
+            return sol::nullopt;
+        })
+    );
+
     // Buffer type
     lua_.new_usertype<Buffer>("Buffer",
         sol::no_constructor,