1- local PATH = (... ):gsub (' %.init$' , ' ' )
1+ -- import is getting "live replaced" for intellisense via the lua LS plugin so the editor incorrectly detects it as unused-local
2+ -- but without lua LS it is a real function that manages the relative require
3+ --- @diagnostic disable-next-line : unused-local
4+ local import = require (" common.lib.import" )
5+
6+ --[[
7+ tag each with
8+ ---@source relative path
9+ that way "Go to source" on an import of ui elsewhere will lead to the respective source instead of this file
10+ the "./" is assumed given for relative paths but it's still a path so adding the file extension is necessary
11+ when addressing files in subdirectories of ui use forward slashes as the path separator
12+ https://luals.github.io/wiki/annotations/#source
13+
14+ Intellisense for constructors that have their constructor annotated usually works fine if you type
15+ ui.UiElement({})
16+ and then navigate back into the {} and hit Ctrl+Space for suggestions
17+
18+ "Go to source" on functions will work after annotating either
19+ ---@operator call (argType ): classname
20+ or
21+ ---@overload fun ( options : argType ): classname
22+ on the class itself as luaLS only then correctly infers the return from the constructor
23+ ]]
24+
225
326local ui = {
4- --- @see BoolSelector
5- --- @type fun ( options : BoolSelectorOptions ): BoolSelector
6- BoolSelector = require (PATH .. " .BoolSelector" ),
7- --- @see Button
8- --- @type fun ( options : ButtonOptions ): Button
9- Button = require (PATH .. " .Button" ),
10- ButtonGroup = require (PATH .. " .ButtonGroup" ),
11- Carousel = require (PATH .. " .Carousel" ),
12- --- @see ChangeInputButton
13- --- @type fun ( options : ChangeInputButtonOptions ): ChangeInputButton
14- ChangeInputButton = require (PATH .. " .ChangeInputButton" ),
15- Focusable = require (PATH .. " .Focusable" ),
16- FocusDirector = require (PATH .. " .FocusDirector" ),
17- Grid = require (PATH .. " .Grid" ),
18- GridCursor = require (PATH .. " .GridCursor" ),
19- --- @see ImageButton
20- --- @type fun ( options : ImageButtonOptions ): ImageButton
21- ImageButton = require (PATH .. " .ImageButton" ),
22- ImageContainer = require (PATH .. " .ImageContainer" ),
23- InputField = require (PATH .. " .InputField" ),
24- KeyBindingMenuItem = require (PATH .. " .KeyBindingMenuItem" ),
25- --- @see Label
26- --- @type fun ( options : LabelOptions ): Label
27- Label = require (PATH .. " .Label" ),
28- Leaderboard = require (PATH .. " .Leaderboard" ),
29- --- @see LevelSlider
30- --- @type fun ( options : SliderOptions ): LevelSlider
31- LevelSlider = require (PATH .. " .LevelSlider" ),
32- Menu = require (PATH .. " .Menu" ),
33- MenuItem = require (PATH .. " .MenuItem" ),
34- MultiPlayerSelectionWrapper = require (PATH .. " .MultiPlayerSelectionWrapper" ),
35- PagedUniGrid = require (PATH .. " .PagedUniGrid" ),
36- PanelCarousel = require (PATH .. " .PanelCarousel" ),
37- --- @see PixelFontLabel
38- --- @type fun ( options : PixelFontLabelOptions ): PixelFontLabel
39- PixelFontLabel = require (PATH .. " .PixelFontLabel" ),
40- --- @see ScrollContainer
41- --- @type fun ( options : ScrollContainerOptions ): ScrollContainer
42- ScrollContainer = require (PATH .. " .ScrollContainer" ),
43- ScrollText = require (PATH .. " .ScrollText" ),
44- --- @see Slider
45- --- @type fun ( options : SliderOptions ): Slider
46- Slider = require (PATH .. " .Slider" ),
47- SliderMenuItem = require (PATH .. " .SliderMenuItem" ),
27+ --- @source BoolSelector.lua
28+ BoolSelector = import (" ./BoolSelector" ),
29+ --- @source Button.lua
30+ Button = import (" ./Button" ),
31+ --- @source ButtonGroup.lua
32+ ButtonGroup = import (" ./ButtonGroup" ),
33+ --- @source Carousel.lua
34+ Carousel = import (" ./Carousel" ),
35+ --- @source ChangeInputButton.lua
36+ ChangeInputButton = import (" ./ChangeInputButton" ),
37+ --- @source Focusable.lua
38+ Focusable = import (" ./Focusable" ),
39+ --- @source FocusDirector.lua
40+ FocusDirector = import (" ./FocusDirector" ),
41+ --- @source Grid.lua
42+ Grid = import (" ./Grid" ),
43+ --- @source GridCursor.lua
44+ GridCursor = import (" ./GridCursor" ),
45+ --- @source ImageButton.lua
46+ ImageButton = import (" ./ImageButton" ),
47+ --- @source ImageContainer.lua
48+ ImageContainer = import (" ./ImageContainer" ),
49+ --- @source InputField.lua
50+ InputField = import (" ./InputField" ),
51+ --- @source KeyBindingMenuItem.lua
52+ KeyBindingMenuItem = import (" ./KeyBindingMenuItem" ),
53+ --- @source Label.lua
54+ Label = import (" ./Label" ),
55+ --- @source Leaderboard.lua
56+ Leaderboard = import (" ./Leaderboard" ),
57+ --- @source LevelSlider.lua
58+ LevelSlider = import (" ./LevelSlider" ),
59+ --- @source Menu.lua
60+ Menu = import (" ./Menu" ),
61+ --- @source MenuItem.lua
62+ MenuItem = import (" ./MenuItem" ),
63+ --- @source MultiPlayerSelectionWrapper.lua
64+ MultiPlayerSelectionWrapper = import (" ./MultiPlayerSelectionWrapper" ),
65+ --- @source PagedUniGrid.lua
66+ PagedUniGrid = import (" ./PagedUniGrid" ),
67+ --- @source PanelCarousel.lua
68+ PanelCarousel = import (" ./PanelCarousel" ),
69+ --- @source PixelFontLabel.lua
70+ PixelFontLabel = import (" ./PixelFontLabel" ),
71+ --- @source ScrollContainer.lua
72+ ScrollContainer = import (" ./ScrollContainer" ),
73+ --- @source ScrollText.lua
74+ ScrollText = import (" ./ScrollText" ),
75+ --- @source Slider.lua
76+ Slider = import (" ./Slider" ),
77+ --- @source SliderMenuItem.lua
78+ SliderMenuItem = import (" ./SliderMenuItem" ),
4879 --- @source StackElement.lua
49- StackElement = require (PATH .. " .StackElement" ),
50- StackPanel = require (PATH .. " .StackPanel" ),
51- StageCarousel = require (PATH .. " .StageCarousel" ),
52- Stepper = require (PATH .. " .Stepper" ),
53- --- @see TextButton
54- --- @type fun ( options : TextButtonOptions ): TextButton
55- TextButton = require (PATH .. " .TextButton" ),
56- --- @see UiElement
57- --- @type fun ( options : UiElementOptions ): UiElement
58- UiElement = require (PATH .. " .UIElement" ),
59- ValueLabel = require (PATH .. " .ValueLabel" ),
80+ StackElement = import (" ./StackElement" ),
81+ --- @source StackPanel.lua
82+ StackPanel = import (" ./StackPanel" ),
83+ --- @source StageCarousel.lua
84+ StageCarousel = import (" ./StageCarousel" ),
85+ --- @source Stepper.lua
86+ Stepper = import (" ./Stepper" ),
87+ --- @source TextButton.lua
88+ TextButton = import (" ./TextButton" ),
89+ --- @source UiElement.lua
90+ UiElement = import (" ./UIElement" ),
91+ --- @source ValueLabel.lua
92+ ValueLabel = import (" ./ValueLabel" ),
6093}
6194
6295return ui
0 commit comments