Skip to content

Commit 13a905c

Browse files
author
YesDrX
committed
change macro to add procs to use 'let' variable definition to mimic legacy deprecated constants for enums
1 parent 16ccd1e commit 13a905c

File tree

1 file changed

+75
-118
lines changed

1 file changed

+75
-118
lines changed

webui/bindings_prefix.nim

Lines changed: 75 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -172,12 +172,12 @@ macro renameEnumFields(enumdef : untyped): untyped =
172172
## will be renamed to WebuiBrowser.wbNoBrowser. Note that "wb" is a short name for "WebuiBrowser", and
173173
## it's used to prefix the original enum field to avoid potential naming collisions.
174174
##
175-
## There is also a generated function to mimic the legacy NoBrowser constant
176-
## proc NoBrowser*(): WebuiBrowserHelper {.inline, deprecated.} = WebuiBrowserHelper.wbNoBrowser
175+
## There is also a generated `let` variable definition to mimic the legacy constant
176+
## `let NoBrowser* = WebuiBrowserHelper.wbNoBrowser`
177177
##
178178
## ==================================================
179179
## [WebUI] Renaming Enum Definition:
180-
## # Original Enum Def:
180+
## ## Original Enum Def:
181181
## ==================================================
182182
## WebuiBrowser* {..} = enum ## -- Enums ---------------------------
183183
## NoBrowser = 0, ## 0. No web browser
@@ -195,91 +195,55 @@ macro renameEnumFields(enumdef : untyped): untyped =
195195
## ChromiumBased, ## 12. Any Chromium based browser
196196
## Webview ## 13. WebView (Non-web-browser)
197197
## ==================================================
198-
## # Renamed Enum Def:
198+
## ## Renamed Enum Def:
199199
## WebuiBrowser* = enum
200200
## wbNoBrowser = 0, wbAnyBrowser = 1, wbChrome, wbFirefox, wbEdge, wbSafari,
201201
## wbChromium, wbOpera, wbBrave, wbVivaldi, wbEpic, wbYandex, wbChromiumBased,
202202
## wbWebview
203203
## ==================================================
204-
## # Generated procs to mimic legacy constants:
205-
## proc NoBrowser*(): WebuiBrowserHelper {.inline, deprecated.} =
206-
## WebuiBrowserHelper.wbNoBrowser
207-
208-
## proc AnyBrowser*(): WebuiBrowserHelper {.inline, deprecated.} =
209-
## WebuiBrowserHelper.wbAnyBrowser
210-
211-
## proc Chrome*(): WebuiBrowserHelper {.inline, deprecated.} =
212-
## WebuiBrowserHelper.wbChrome
213-
214-
## proc Firefox*(): WebuiBrowserHelper {.inline, deprecated.} =
215-
## WebuiBrowserHelper.wbFirefox
216-
217-
## proc Edge*(): WebuiBrowserHelper {.inline, deprecated.} =
218-
## WebuiBrowserHelper.wbEdge
219-
220-
## proc Safari*(): WebuiBrowserHelper {.inline, deprecated.} =
221-
## WebuiBrowserHelper.wbSafari
222-
223-
## proc Chromium*(): WebuiBrowserHelper {.inline, deprecated.} =
224-
## WebuiBrowserHelper.wbChromium
225-
226-
## proc Opera*(): WebuiBrowserHelper {.inline, deprecated.} =
227-
## WebuiBrowserHelper.wbOpera
228-
229-
## proc Brave*(): WebuiBrowserHelper {.inline, deprecated.} =
230-
## WebuiBrowserHelper.wbBrave
231-
232-
## proc Vivaldi*(): WebuiBrowserHelper {.inline, deprecated.} =
233-
## WebuiBrowserHelper.wbVivaldi
234-
235-
## proc Epic*(): WebuiBrowserHelper {.inline, deprecated.} =
236-
## WebuiBrowserHelper.wbEpic
237-
238-
## proc Yandex*(): WebuiBrowserHelper {.inline, deprecated.} =
239-
## WebuiBrowserHelper.wbYandex
240-
241-
## proc ChromiumBased*(): WebuiBrowserHelper {.inline, deprecated.} =
242-
## WebuiBrowserHelper.wbChromiumBased
243-
244-
## proc Webview*(): WebuiBrowserHelper {.inline, deprecated.} =
245-
## WebuiBrowserHelper.wbWebview
246-
204+
## ## Generated procs to mimic legacy constants:
205+
## let NoBrowser* = WebuiBrowserHelper.wbNoBrowser
206+
## let AnyBrowser* = WebuiBrowserHelper.wbAnyBrowser
207+
## let Chrome* = WebuiBrowserHelper.wbChrome
208+
## let Firefox* = WebuiBrowserHelper.wbFirefox
209+
## let Edge* = WebuiBrowserHelper.wbEdge
210+
## let Safari* = WebuiBrowserHelper.wbSafari
211+
## let Chromium* = WebuiBrowserHelper.wbChromium
212+
## let Opera* = WebuiBrowserHelper.wbOpera
213+
## let Brave* = WebuiBrowserHelper.wbBrave
214+
## let Vivaldi* = WebuiBrowserHelper.wbVivaldi
215+
## let Epic* = WebuiBrowserHelper.wbEpic
216+
## let Yandex* = WebuiBrowserHelper.wbYandex
217+
## let ChromiumBased* = WebuiBrowserHelper.wbChromiumBased
218+
## let Webview* = WebuiBrowserHelper.wbWebview
247219
## **************************************************
248220

249221

250222
## ==================================================
251223
## [WebUI] Renaming Enum Definition:
252-
## # Original Enum Def:
224+
## ## Original Enum Def:
253225
## ==================================================
254226
## WebuiRuntime* {..} = enum
255227
## None = 0, ## 0. Prevent WebUI from using any runtime for .js and .ts files
256228
## Deno, ## 1. Use Deno runtime for .js and .ts files
257229
## NodeJS, ## 2. Use Nodejs runtime for .js files
258230
## Bun ## 3. Use Bun runtime for .js and .ts files
259231
## ==================================================
260-
## # Renamed Enum Def:
232+
## ## Renamed Enum Def:
261233
## WebuiRuntime* = enum
262234
## wrNone = 0, wrDeno, wrNodeJS, wrBun
263235
## ==================================================
264-
## # Generated procs to mimic legacy constants:
265-
## proc None*(): WebuiRuntimeHelper {.inline, deprecated.} =
266-
## WebuiRuntimeHelper.wrNone
267-
268-
## proc Deno*(): WebuiRuntimeHelper {.inline, deprecated.} =
269-
## WebuiRuntimeHelper.wrDeno
270-
271-
## proc NodeJS*(): WebuiRuntimeHelper {.inline, deprecated.} =
272-
## WebuiRuntimeHelper.wrNodeJS
273-
274-
## proc Bun*(): WebuiRuntimeHelper {.inline, deprecated.} =
275-
## WebuiRuntimeHelper.wrBun
276-
236+
## ## Generated procs to mimic legacy constants:
237+
## let None* = WebuiRuntimeHelper.wrNone
238+
## let Deno* = WebuiRuntimeHelper.wrDeno
239+
## let NodeJS* = WebuiRuntimeHelper.wrNodeJS
240+
## let Bun* = WebuiRuntimeHelper.wrBun
277241
## **************************************************
278242

279243

280244
## ==================================================
281245
## [WebUI] Renaming Enum Definition:
282-
## # Original Enum Def:
246+
## ## Original Enum Def:
283247
## ==================================================
284248
## WebuiEvent* {..} = enum
285249
## WEBUI_EVENTS_DISCONNECTED = 0, ## 0. Window disconnection event
@@ -288,32 +252,22 @@ macro renameEnumFields(enumdef : untyped): untyped =
288252
## WEBUI_EVENTS_NAVIGATION, ## 3. Window navigation event
289253
## WEBUI_EVENTS_CALLBACK ## 4. Function call event
290254
## ==================================================
291-
## # Renamed Enum Def:
255+
## ## Renamed Enum Def:
292256
## WebuiEvent* = enum
293257
## weDisconnected = 0, weConnected, weMouseClick, weNavigation, weCallback
294258
## ==================================================
295-
## # Generated procs to mimic legacy constants:
296-
## proc EventsDisconnected*(): WebuiEventHelper {.inline, deprecated.} =
297-
## WebuiEventHelper.weDisconnected
298-
299-
## proc EventsConnected*(): WebuiEventHelper {.inline, deprecated.} =
300-
## WebuiEventHelper.weConnected
301-
302-
## proc EventsMouseClick*(): WebuiEventHelper {.inline, deprecated.} =
303-
## WebuiEventHelper.weMouseClick
304-
305-
## proc EventsNavigation*(): WebuiEventHelper {.inline, deprecated.} =
306-
## WebuiEventHelper.weNavigation
307-
308-
## proc EventsCallback*(): WebuiEventHelper {.inline, deprecated.} =
309-
## WebuiEventHelper.weCallback
310-
259+
## ## Generated procs to mimic legacy constants:
260+
## let EventsDisconnected* = WebuiEventHelper.weDisconnected
261+
## let EventsConnected* = WebuiEventHelper.weConnected
262+
## let EventsMouseClick* = WebuiEventHelper.weMouseClick
263+
## let EventsNavigation* = WebuiEventHelper.weNavigation
264+
## let EventsCallback* = WebuiEventHelper.weCallback
311265
## **************************************************
312266

313267

314268
## ==================================================
315269
## [WebUI] Renaming Enum Definition:
316-
## # Original Enum Def:
270+
## ## Original Enum Def:
317271
## ==================================================
318272
## WebuiConfig* {..} = enum
319273
## show_wait_connection = 0, ## Control if WebUI should block and process the UI events
@@ -344,30 +298,18 @@ macro renameEnumFields(enumdef : untyped): untyped =
344298
## ## backend sets a response using `webui_return_x()`.
345299
## asynchronous_response
346300
## ==================================================
347-
## # Renamed Enum Def:
301+
## ## Renamed Enum Def:
348302
## WebuiConfig* = enum
349303
## wcWaitConnection = 0, wcEventBlocking, wcMonitor, wcClient, wcCookies,
350304
## wcResponse
351305
## ==================================================
352-
## # Generated procs to mimic legacy constants:
353-
## proc ShowWaitConnection*(): WebuiConfigHelper {.inline, deprecated.} =
354-
## WebuiConfigHelper.wcWaitConnection
355-
356-
## proc UiEventBlocking*(): WebuiConfigHelper {.inline, deprecated.} =
357-
## WebuiConfigHelper.wcEventBlocking
358-
359-
## proc FolderMonitor*(): WebuiConfigHelper {.inline, deprecated.} =
360-
## WebuiConfigHelper.wcMonitor
361-
362-
## proc MultiClient*(): WebuiConfigHelper {.inline, deprecated.} =
363-
## WebuiConfigHelper.wcClient
364-
365-
## proc UseCookies*(): WebuiConfigHelper {.inline, deprecated.} =
366-
## WebuiConfigHelper.wcCookies
367-
368-
## proc AsynchronousResponse*(): WebuiConfigHelper {.inline, deprecated.} =
369-
## WebuiConfigHelper.wcResponse
370-
306+
## ## Generated procs to mimic legacy constants:
307+
## let ShowWaitConnection* = WebuiConfigHelper.wcWaitConnection
308+
## let UiEventBlocking* = WebuiConfigHelper.wcEventBlocking
309+
## let FolderMonitor* = WebuiConfigHelper.wcMonitor
310+
## let MultiClient* = WebuiConfigHelper.wcClient
311+
## let UseCookies* = WebuiConfigHelper.wcCookies
312+
## let AsynchronousResponse* = WebuiConfigHelper.wcResponse
371313
## **************************************************
372314

373315

@@ -436,30 +378,45 @@ macro renameEnumFields(enumdef : untyped): untyped =
436378
constName = enumFieldNode.strVal.getLegacyConstantName()
437379
enumFieldName = enumFieldNode.strVal.renameEnumFieldName(enumTypeShortName)
438380

381+
# statements.add(
382+
# nnkProcDef.newTree(
383+
# nnkPostfix.newTree(
384+
# newIdentNode("*"),
385+
# newIdentNode(constName)
386+
# ),
387+
# newEmptyNode(),
388+
# newEmptyNode(),
389+
# nnkFormalParams.newTree(
390+
# newIdentNode(enumTypeName & "Helper")
391+
# ),
392+
# nnkPragma.newTree(
393+
# newIdentNode("inline"),
394+
# newIdentNode("deprecated")
395+
# ),
396+
# newEmptyNode(),
397+
# nnkStmtList.newTree(
398+
# nnkDotExpr.newTree(
399+
# newIdentNode(enumTypeName & "Helper"),
400+
# newIdentNode(enumFieldName)
401+
# )
402+
# )
403+
# )
404+
# )
439405
statements.add(
440-
nnkProcDef.newTree(
441-
nnkPostfix.newTree(
442-
newIdentNode("*"),
443-
newIdentNode(constName)
444-
),
445-
newEmptyNode(),
446-
newEmptyNode(),
447-
nnkFormalParams.newTree(
448-
newIdentNode(enumTypeName & "Helper")
449-
),
450-
nnkPragma.newTree(
451-
newIdentNode("inline"),
452-
newIdentNode("deprecated")
453-
),
454-
newEmptyNode(),
455-
nnkStmtList.newTree(
406+
nnkLetSection.newTree(
407+
nnkIdentDefs.newTree(
408+
nnkPostfix.newTree(
409+
newIdentNode("*"),
410+
newIdentNode(constName)
411+
),
412+
newEmptyNode(),
456413
nnkDotExpr.newTree(
457414
newIdentNode(enumTypeName & "Helper"),
458415
newIdentNode(enumFieldName)
459416
)
460-
)
461417
)
462418
)
419+
)
463420

464421
echo statements[^1].repr
465422

0 commit comments

Comments
 (0)