Skip to content

Commit f1315b3

Browse files
committed
Cover more inline c++ functions
1 parent 690a97e commit f1315b3

File tree

6 files changed

+53
-14
lines changed

6 files changed

+53
-14
lines changed

dist/library/modules/gui.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
---@class dfhack.gui
55
---@field addCombatReport function
66
---@field addCombatReportAuto function
7+
---@field getCurFocus function
8+
---@field getWidgetChildren function
79
dfhack.gui = {}
810

911
---@param type df.announcement_type

dist/library/modules/internal.lua

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,35 @@
1212
---@field getAddressSizeInHeap function
1313
---@field getRootAddressOfHeapObject function
1414
---@field msizeAddress function
15+
---@field getPE function
16+
---@field getMD5 function
17+
---@field getAddress function
18+
---@field setAddress function
19+
---@field getVTable function
20+
---@field adjustOffset function
21+
---@field getMemRanges function
22+
---@field patchMemory function
23+
---@field patchBytes function
24+
---@field memmove function
25+
---@field memcmp function
26+
---@field memscan function
27+
---@field diffscan function
28+
---@field cxxDemangle function
29+
---@field getDir function
30+
---@field runCommand function
31+
---@field getModifiers function
32+
---@field addScriptPath function
33+
---@field removeScriptPath function
34+
---@field getScriptPaths function
35+
---@field findScript function
36+
---@field listPlugins function
37+
---@field listCommands function
38+
---@field getCommandHelp function
39+
---@field getCommandDescription function
40+
---@field threadid function
41+
---@field md5File function
42+
---@field getSuppressDuplicateKeyboardEvents function
43+
---@field setSuppressDuplicateKeyboardEvents function
44+
---@field getPerfCounters function
1545
dfhack.internal = {}
1646

dist/library/modules/maps.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
---@field getTileAssignment function
88
---@field setTileAssignment function
99
---@field resetTileAssignment function
10+
---@field getTileFlags function
11+
---@field getTileBiomeRgn function
12+
---@field getBiomeType function
1013
dfhack.maps = {}
1114

1215
---@param x number

dist/library/modules/screen.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
---@meta
33

44
---@class dfhack.screen
5+
---@field _doSimulateInput function
56
dfhack.screen = {}
67

78
---@return df.coord2d

dist/library/modules/units.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
---@meta
33

44
---@class dfhack.units
5+
---@field getStressCutoffs function
56
dfhack.units = {}
67

78
---@param unit df.unit

lib/cpp.rb

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -62,29 +62,31 @@ def parse_cpp_modules(entry_point)
6262
end
6363

6464
# Functions that manipulate lua_state (usually?)
65-
unless is_module
66-
function_declaration&.scan(/^\s*{\s*([^,]+),\s*([^}]+)\s*}/) do |name, signature|
67-
next if name =~ /NULL/
65+
function_declaration&.scan(/^\s+\{([^}]+)}/) do
66+
name, signature = Regexp.last_match(1).gsub(/['" ]/, '').strip.split(',')
6867

69-
function_name = name.gsub(/"/, '').strip
70-
signature_name = signature.gsub(/"/, '').strip
68+
next if name =~ /NULL/
7169

72-
module_file[/^(?:static\s)?(?:DFHACK_EXPORT\s)?(\S+).*?#{namespace}#{signature_name.gsub(
73-
/#{module_name}_/, ''
74-
)}\s?\(([^)]+)?\)/]
75-
next if Regexp.last_match
70+
function_name = name.gsub(/"/, '').strip
71+
signature_name = signature.gsub(/"/, '').strip
72+
73+
module_file[/^(?:static\s)?(?:DFHACK_EXPORT\s)?(\S+).*?#{namespace}#{signature_name.gsub(
74+
/#{module_name}_/, ''
75+
)}\s?\(([^)]+)?\)/]
76+
next if Regexp.last_match
7677

77-
file[/^(?:static\s)?(?:DFHACK_EXPORT\s)?(\S+).*?#{signature_name}\s?\(([^)]+)?\)/] unless is_module
78-
next unless Regexp.last_match
78+
file[/^(?:static\s)?(?:DFHACK_EXPORT\s)?(\S+).*?#{signature_name}\s?\(([^)]+)?\)/]
79+
next unless Regexp.last_match
7980

80-
output << "---@field #{function_name} function\n"
81-
end
81+
output << "---@field #{function_name} function\n"
8282
end
8383

8484
output << "#{prefix}#{module_name} = {}\n\n"
8585

8686
# Guessing here a little bit.
87-
function_declaration&.scan(/^\s*{\s*([^,]+),\s*([^}]+)\s*}/) do |name, signature|
87+
function_declaration&.scan(/^\s+\{([^}]+)}/) do
88+
name, signature = Regexp.last_match(1).gsub(/['" ]/, '').strip.split(',')
89+
8890
next if name =~ /NULL/
8991

9092
function_name = name.gsub(/"/, '').strip

0 commit comments

Comments
 (0)