Skip to content

Commit 39f58d6

Browse files
authored
Fix c++ module parsing and refactor (#8)
* Refactor modules * Fix errors in modules
1 parent 2a454a3 commit 39f58d6

File tree

15 files changed

+1022
-989
lines changed

15 files changed

+1022
-989
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ Reportedly working but no instructions yet.
6666
- DFHack's C++ functions that are exposed to Lue are **not included** (#4)
6767
- Initally opening DFHack can take a long time to load, especially on weaker hardware (#5)
6868
- LuaLS has a known problem with type-hinting inside of files that write to the `_ENV` global, if you are in a file writing to `_ENV` comment out those lines.
69+
- Types defined in C++ headers (like `NoblePosition`) are unsupported
6970

7071
## Credits
7172

dist/library/modules/buildings.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dfhack.buildings = {}
99
---@return df.building
1010
function dfhack.buildings.findAtTile(pos) end
1111

12-
---@param pvec df.DFVector<building_civzonest>
12+
---@param pvec { [integer]: df.building_civzonest }
1313
---@param pos df.coord
1414
---@return boolean
1515
function dfhack.buildings.findCivzonesAt(pvec, pos) end
@@ -74,12 +74,12 @@ function dfhack.buildings.hasSupport(pos, size) end
7474
function dfhack.buildings.constructAbstract(bld) end
7575

7676
---@param bld df.building
77-
---@param items df.DFVector<item>
77+
---@param items { [integer]: df.item }
7878
---@return boolean
7979
function dfhack.buildings.constructWithItems(bld, items) end
8080

8181
---@param bld df.building
82-
---@param items df.DFVector<job_item>
82+
---@param items { [integer]: df.job_item }
8383
---@return boolean
8484
function dfhack.buildings.constructWithFilters(bld, items) end
8585

dist/library/modules/burrows.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
---@field setAssignedBlockTile function
77
dfhack.burrows = {}
88

9-
---@param pvec df.DFVector<map_block>
9+
---@param pvec { [integer]: df.map_block }
1010
---@param burrow df.burrow
1111
---@return nil
1212
function dfhack.burrows.listBlocks(pvec, burrow) end

dist/library/modules/filesystem.lua

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,16 @@
55
dfhack.filesystem = {}
66

77
---@param dir string
8-
---@param files df.DFVector<std::string>
8+
---@param files { [integer]: string }
99
---@return integer
1010
function dfhack.filesystem.listdir(dir, files) end
1111

1212
---@param dir string
13-
---@param std::map<std::string df.
14-
---@param files df.bool>
15-
---@param / df.int depth / = 10
16-
---@param / df.bool include_prefix / = true
13+
---@param files { [string]: boolean }
14+
---@param depth integer
15+
---@param include_prefix boolean|nil
1716
---@return integer
18-
function dfhack.filesystem.listdir_recursive(dir, std::map<std::string, files, /, /) end
17+
function dfhack.filesystem.listdir_recursive(dir, files, depth, include_prefix) end
1918

2019
---@return string
2120
function dfhack.filesystem.getcwd() end

dist/library/modules/gui.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function dfhack.gui.showAutoAnnouncement(type, pos, message, color, bright, unit
5050
---@return boolean
5151
function dfhack.gui.autoDFAnnouncement(info, message) end
5252

53-
---@return df.Gui::DwarfmodeDims
53+
---@return unknown
5454
function dfhack.gui.getDwarfmodeViewDims() end
5555

5656
---@param x number
@@ -73,7 +73,7 @@ function dfhack.gui.revealInDwarfmodeMap(x, y, z, center, highlight) end
7373
function dfhack.gui.getMousePos(allow_out_of_bounds) end
7474

7575
---@param top df.viewscreen
76-
---@return df.DFVector<std::string>
76+
---@return { [integer]: string }
7777
function dfhack.gui.getFocusStrings(top) end
7878

7979
---@param container df.widget_container

dist/library/modules/items.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ function dfhack.items.getPosition(item) end
2222
function dfhack.items.getOuterContainerRef(spec_ref, item, init_ref) end
2323

2424
---@param item df.item
25-
---@param items df.DFVector<item>
25+
---@param items { [integer]: df.item }
2626
---@return nil
2727
function dfhack.items.getContainedItems(item, items) end
2828

29-
---@param mc df.MapExtras::MapCache
29+
---@param mc unknown
3030
---@param item df.item
3131
---@param building df.building_actual
3232
---@param use_mode df.building_item_role_type

dist/library/modules/job.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
---@field is_item_equal function
77
dfhack.job = {}
88

9-
---@param pvec df.DFVector<job>
9+
---@param pvec { [integer]: df.job }
1010
---@param id_var integer
1111
---@return boolean
1212
function dfhack.job.listNewlyCreated(pvec, id_var) end

dist/library/modules/screen.lua

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,30 @@ function dfhack.screen.getMousePixels() end
1313
---@return df.coord2d
1414
function dfhack.screen.getWindowSize() end
1515

16-
---@param pen df.Pen
16+
---@param pen unknown
1717
---@param x integer
1818
---@param y integer
1919
---@param map boolean|nil
20-
---@param df::graphic_viewportst::texpos_field df.int32_t
20+
---@param df::graphic_viewportst::texpos_field number
2121
---@return boolean
2222
function dfhack.screen.paintTile(pen, x, y, map, df::graphic_viewportst::texpos_field) end
2323

2424
---@param x integer
2525
---@param y integer
2626
---@param map boolean|nil
27-
---@param df::graphic_viewportst::texpos_field df.int32_t
28-
---@return df.Pen
27+
---@param df::graphic_viewportst::texpos_field number
28+
---@return unknown
2929
function dfhack.screen.readTile(x, y, map, df::graphic_viewportst::texpos_field) end
3030

31-
---@param pen df.Pen
31+
---@param pen unknown
3232
---@param x integer
3333
---@param y integer
3434
---@param text string
3535
---@param map boolean|nil
3636
---@return boolean
3737
function dfhack.screen.paintString(pen, x, y, text, map) end
3838

39-
---@param pen df.Pen
39+
---@param pen unknown
4040
---@param x1 integer
4141
---@param y1 integer
4242
---@param x2 integer
@@ -57,7 +57,7 @@ function dfhack.screen.findGraphicsTile(pagename, x, y, ptile, pgs) end
5757
---@return integer
5858
function dfhack.screen.keyToChar(key) end
5959

60-
---@param code df.char
60+
---@param code unknown
6161
---@return df.interface_key
6262
function dfhack.screen.charToKey(code) end
6363

dist/library/modules/units.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ function dfhack.units.getPosition(unit) end
1414
---@return nil
1515
function dfhack.units.getOuterContainerRef(spec_ref, unit, init_ref) end
1616

17-
---@param pvec df.DFVector<NoblePosition>
17+
---@param pvec { [integer]: unknown }
1818
---@param unit df.unit
1919
---@return boolean
2020
function dfhack.units.getNoblePositions(pvec, unit) end
2121

22-
---@param units df.DFVector<unit>
22+
---@param units { [integer]: df.unit }
2323
---@param x1 number
2424
---@param y1 number
2525
---@param z1 number
@@ -29,13 +29,13 @@ function dfhack.units.getNoblePositions(pvec, unit) end
2929
---@return boolean
3030
function dfhack.units.getUnitsInBox(units, x1, y1, z1, x2, y2, z2) end
3131

32-
---@param citizens df.vector<unit >
32+
---@param citizens { [integer]: df.unit }
3333
---@param exclude_residents boolean|nil
3434
---@param include_insane boolean|nil
3535
---@return boolean
3636
function dfhack.units.getCitizens(citizens, exclude_residents, include_insane) end
3737

38-
---@param units df.vector<unit >
38+
---@param units { [integer]: df.unit }
3939
---@param noble string
4040
---@return boolean
4141
function dfhack.units.getUnitsByNobleRole(units, noble) end

lib/lua_ls.rb renamed to lib/annotation.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
module DFHackLuaDefinitions
44
# LuaLS annotation generator functions.
5-
class LuaLS
5+
module Annotation
66
TYPES = %w[nil any boolean string number integer function table thread userdata lightuserdata].freeze
77

88
# Keywords reserved by Lua that should not exist as identifiers.

0 commit comments

Comments
 (0)