From b9092215b7da4450410c1a11e424c2da71c7aba6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 4 Mar 2025 00:54:22 +0000 Subject: [PATCH] Update config, LuaLS definitions, bundle and changelog --- config.lua | 605 +++++++++++++++++++++++---------------------- release/basalt.lua | 105 ++++++-- src/LuaLS.lua | 8 - 3 files changed, 394 insertions(+), 324 deletions(-) diff --git a/config.lua b/config.lua index 1616497..9576bb7 100644 --- a/config.lua +++ b/config.lua @@ -1,370 +1,385 @@ return { - ["metadata"] = { - ["generated"] = "Mon Mar 3 22:44:55 2025", - ["version"] = "2.0", - }, ["categories"] = { + ["core"] = { + ["files"] = { + ["propertySystem"] = { + ["path"] = "propertySystem.lua", + ["default"] = true, + ["size"] = 15225, + ["requires"] = { + }, + ["description"] = "", + }, + ["main"] = { + ["path"] = "main.lua", + ["default"] = true, + ["size"] = 8158, + ["requires"] = { + }, + ["description"] = "", + }, + ["init"] = { + ["path"] = "init.lua", + ["default"] = true, + ["size"] = 519, + ["requires"] = { + }, + ["description"] = "", + }, + ["render"] = { + ["path"] = "render.lua", + ["default"] = true, + ["size"] = 10935, + ["requires"] = { + }, + ["description"] = "", + }, + ["log"] = { + ["path"] = "log.lua", + ["default"] = true, + ["size"] = 3142, + ["requires"] = { + }, + ["description"] = "", + }, + ["elementManager"] = { + ["path"] = "elementManager.lua", + ["default"] = true, + ["size"] = 6297, + ["requires"] = { + }, + ["description"] = "", + }, + ["errorManager"] = { + ["path"] = "errorManager.lua", + ["default"] = true, + ["size"] = 3789, + ["requires"] = { + }, + ["description"] = "", + }, + }, + ["description"] = "Core Files", + }, ["elements"] = { ["files"] = { - ["Program"] = { - ["path"] = "elements/Program.lua", - ["description"] = "", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 6295, + ["BaseElement"] = { + ["path"] = "elements/BaseElement.lua", ["default"] = true, - }, - ["Dropdown"] = { - ["path"] = "elements/Dropdown.lua", - ["description"] = "A dropdown menu that shows a list of selectable items", + ["size"] = 8911, ["requires"] = { - [1] = "List", }, - ["size"] = 5896, - ["default"] = false, - }, - ["Container"] = { - ["path"] = "elements/Container.lua", - ["description"] = "The container class. It is a visual element that can contain other elements. It is the base class for all containers", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 23180, - ["default"] = true, - }, - ["Menu"] = { - ["path"] = "elements/Menu.lua", - ["description"] = "A horizontal menu bar with selectable items.", - ["requires"] = { - [1] = "List", - }, - ["size"] = 4657, - ["default"] = true, + ["description"] = "The base class for all UI elements in Basalt.", }, ["ProgressBar"] = { ["path"] = "elements/ProgressBar.lua", - ["description"] = "", + ["default"] = true, + ["size"] = 2272, ["requires"] = { [1] = "VisualElement", }, - ["size"] = 2272, - ["default"] = true, - }, - ["BaseFrame"] = { - ["path"] = "elements/BaseFrame.lua", - ["description"] = "This is the base frame class. It is the root element of all elements and the only element without a parent.", - ["requires"] = { - [1] = "Container", - }, - ["size"] = 5868, - ["default"] = true, + ["description"] = "", }, ["Tree"] = { ["path"] = "elements/Tree.lua", - ["description"] = "", - ["requires"] = { - [1] = "VisualElement", - }, + ["default"] = true, ["size"] = 7885, - ["default"] = true, - }, - ["Scrollbar"] = { - ["path"] = "elements/Scrollbar.lua", + ["requires"] = { + [1] = "VisualElement", + }, ["description"] = "", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 9164, - ["default"] = true, - }, - ["Button"] = { - ["path"] = "elements/Button.lua", - ["description"] = "", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 1632, - ["default"] = true, - }, - ["Checkbox"] = { - ["path"] = "elements/Checkbox.lua", - ["description"] = "", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 2872, - ["default"] = true, - }, - ["Table"] = { - ["path"] = "elements/Table.lua", - ["description"] = "", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 7586, - ["default"] = true, - }, - ["BigFont"] = { - ["path"] = "elements/BigFont.lua", - ["description"] = "", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 20332, - ["default"] = false, - }, - ["List"] = { - ["path"] = "elements/List.lua", - ["description"] = "A scrollable list of selectable items", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 8643, - ["default"] = true, - }, - ["Input"] = { - ["path"] = "elements/Input.lua", - ["description"] = "A text input field with various features", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 7997, - ["default"] = true, - }, - ["Label"] = { - ["path"] = "elements/Label.lua", - ["description"] = "A simple text display element that automatically resizes its width based on the text content.", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 3069, - ["default"] = true, - }, - ["Image"] = { - ["path"] = "elements/Image.lua", - ["description"] = "An element that displays an image in bimg format", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 13312, - ["default"] = false, - }, - ["Slider"] = { - ["path"] = "elements/Slider.lua", - ["description"] = "", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 4676, - ["default"] = true, - }, - ["Frame"] = { - ["path"] = "elements/Frame.lua", - ["description"] = "A frame element that serves as a grouping container for other elements.", - ["requires"] = { - [1] = "Container", - }, - ["size"] = 4435, - ["default"] = true, - }, - ["Flexbox"] = { - ["path"] = "elements/Flexbox.lua", - ["description"] = "A flexbox container that arranges its children in a flexible layout.", - ["requires"] = { - [1] = "Container", - }, - ["size"] = 11530, - ["default"] = true, - }, - ["TextBox"] = { - ["path"] = "elements/TextBox.lua", - ["description"] = "A multi-line text editor component with cursor support and text manipulation features", - ["requires"] = { - [1] = "VisualElement", - }, - ["size"] = 10904, - ["default"] = false, }, ["VisualElement"] = { ["path"] = "elements/VisualElement.lua", - ["description"] = "The Visual Element class which is the base class for all visual UI elements", + ["default"] = true, + ["size"] = 17105, ["requires"] = { [1] = "BaseElement", }, - ["size"] = 17105, - ["default"] = true, + ["description"] = "The Visual Element class which is the base class for all visual UI elements", }, - ["BaseElement"] = { - ["path"] = "elements/BaseElement.lua", - ["description"] = "The base class for all UI elements in Basalt.", - ["requires"] = { - }, - ["size"] = 8911, + ["Input"] = { + ["path"] = "elements/Input.lua", ["default"] = true, - }, - ["Graph"] = { - ["path"] = "elements/Graph.lua", - ["description"] = "---@configDefault false", + ["size"] = 7997, ["requires"] = { [1] = "VisualElement", }, - ["size"] = 2014, + ["description"] = "A text input field with various features", + }, + ["Frame"] = { + ["path"] = "elements/Frame.lua", + ["default"] = true, + ["size"] = 4435, + ["requires"] = { + [1] = "Container", + }, + ["description"] = "A frame element that serves as a grouping container for other elements.", + }, + ["BaseFrame"] = { + ["path"] = "elements/BaseFrame.lua", + ["default"] = true, + ["size"] = 5868, + ["requires"] = { + [1] = "Container", + }, + ["description"] = "This is the base frame class. It is the root element of all elements and the only element without a parent.", + }, + ["Image"] = { + ["path"] = "elements/Image.lua", ["default"] = false, + ["size"] = 13312, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "An element that displays an image in bimg format", + }, + ["Dropdown"] = { + ["path"] = "elements/Dropdown.lua", + ["default"] = false, + ["size"] = 5896, + ["requires"] = { + [1] = "List", + }, + ["description"] = "A dropdown menu that shows a list of selectable items", + }, + ["Flexbox"] = { + ["path"] = "elements/Flexbox.lua", + ["default"] = true, + ["size"] = 11530, + ["requires"] = { + [1] = "Container", + }, + ["description"] = "A flexbox container that arranges its children in a flexible layout.", + }, + ["Table"] = { + ["path"] = "elements/Table.lua", + ["default"] = true, + ["size"] = 7586, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Program"] = { + ["path"] = "elements/Program.lua", + ["default"] = true, + ["size"] = 6295, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["TextBox"] = { + ["path"] = "elements/TextBox.lua", + ["default"] = false, + ["size"] = 10904, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "A multi-line text editor component with cursor support and text manipulation features", + }, + ["LineChart"] = { + ["path"] = "elements/LineChart.lua", + ["default"] = false, + ["size"] = 2707, + ["requires"] = { + }, + ["description"] = "", + }, + ["Menu"] = { + ["path"] = "elements/Menu.lua", + ["default"] = true, + ["size"] = 4657, + ["requires"] = { + [1] = "List", + }, + ["description"] = "A horizontal menu bar with selectable items.", + }, + ["BarChart"] = { + ["path"] = "elements/BarChart.lua", + ["default"] = false, + ["size"] = 2634, + ["requires"] = { + }, + ["description"] = "", + }, + ["Slider"] = { + ["path"] = "elements/Slider.lua", + ["default"] = true, + ["size"] = 4676, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Checkbox"] = { + ["path"] = "elements/Checkbox.lua", + ["default"] = true, + ["size"] = 2872, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Label"] = { + ["path"] = "elements/Label.lua", + ["default"] = true, + ["size"] = 3069, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "A simple text display element that automatically resizes its width based on the text content.", + }, + ["Graph"] = { + ["path"] = "elements/Graph.lua", + ["default"] = false, + ["size"] = 5940, + ["requires"] = { + }, + ["description"] = "A point based graph element", + }, + ["BigFont"] = { + ["path"] = "elements/BigFont.lua", + ["default"] = false, + ["size"] = 20332, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Button"] = { + ["path"] = "elements/Button.lua", + ["default"] = true, + ["size"] = 1632, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", + }, + ["Container"] = { + ["path"] = "elements/Container.lua", + ["default"] = true, + ["size"] = 23180, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "The container class. It is a visual element that can contain other elements. It is the base class for all containers", + }, + ["List"] = { + ["path"] = "elements/List.lua", + ["default"] = true, + ["size"] = 8643, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "A scrollable list of selectable items", + }, + ["Scrollbar"] = { + ["path"] = "elements/Scrollbar.lua", + ["default"] = true, + ["size"] = 9164, + ["requires"] = { + [1] = "VisualElement", + }, + ["description"] = "", }, }, ["description"] = "UI Elements", }, ["libraries"] = { ["files"] = { - ["expect"] = { - ["path"] = "libraries/expect.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 846, - ["default"] = true, - }, ["colorHex"] = { ["path"] = "libraries/colorHex.lua", - ["description"] = "", + ["default"] = true, + ["size"] = 132, ["requires"] = { }, - ["size"] = 132, + ["description"] = "", + }, + ["expect"] = { + ["path"] = "libraries/expect.lua", ["default"] = true, + ["size"] = 846, + ["requires"] = { + }, + ["description"] = "", }, ["utils"] = { ["path"] = "libraries/utils.lua", - ["description"] = "", + ["default"] = true, + ["size"] = 2661, ["requires"] = { }, - ["size"] = 2661, - ["default"] = true, + ["description"] = "", }, }, ["description"] = "Libraries", }, ["plugins"] = { ["files"] = { - ["state"] = { - ["path"] = "plugins/state.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 5867, - ["default"] = true, - }, - ["reactive"] = { - ["path"] = "plugins/reactive.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 6962, - ["default"] = true, - }, - ["animation"] = { - ["path"] = "plugins/animation.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 14116, - ["default"] = true, - }, ["benchmark"] = { ["path"] = "plugins/benchmark.lua", - ["description"] = "", - ["requires"] = { - }, + ["default"] = true, ["size"] = 12515, - ["default"] = true, - }, - ["xml"] = { - ["path"] = "plugins/xml.lua", - ["description"] = "", ["requires"] = { }, - ["size"] = 17568, - ["default"] = true, + ["description"] = "", }, ["theme"] = { ["path"] = "plugins/theme.lua", - ["description"] = "", + ["default"] = true, + ["size"] = 5885, ["requires"] = { }, - ["size"] = 5885, + ["description"] = "", + }, + ["state"] = { + ["path"] = "plugins/state.lua", ["default"] = true, + ["size"] = 5867, + ["requires"] = { + }, + ["description"] = "", + }, + ["reactive"] = { + ["path"] = "plugins/reactive.lua", + ["default"] = true, + ["size"] = 6962, + ["requires"] = { + }, + ["description"] = "", + }, + ["animation"] = { + ["path"] = "plugins/animation.lua", + ["default"] = true, + ["size"] = 14116, + ["requires"] = { + }, + ["description"] = "", }, ["debug"] = { ["path"] = "plugins/debug.lua", - ["description"] = "", + ["default"] = true, + ["size"] = 6175, ["requires"] = { }, - ["size"] = 6175, + ["description"] = "", + }, + ["xml"] = { + ["path"] = "plugins/xml.lua", ["default"] = true, + ["size"] = 17568, + ["requires"] = { + }, + ["description"] = "", }, }, ["description"] = "Plugins", }, - ["core"] = { - ["files"] = { - ["render"] = { - ["path"] = "render.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 10935, - ["default"] = true, - }, - ["propertySystem"] = { - ["path"] = "propertySystem.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 15225, - ["default"] = true, - }, - ["errorManager"] = { - ["path"] = "errorManager.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 3789, - ["default"] = true, - }, - ["init"] = { - ["path"] = "init.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 519, - ["default"] = true, - }, - ["elementManager"] = { - ["path"] = "elementManager.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 6297, - ["default"] = true, - }, - ["main"] = { - ["path"] = "main.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 8158, - ["default"] = true, - }, - ["log"] = { - ["path"] = "log.lua", - ["description"] = "", - ["requires"] = { - }, - ["size"] = 3142, - ["default"] = true, - }, - }, - ["description"] = "Core Files", - }, + }, + ["metadata"] = { + ["generated"] = "Tue Mar 4 00:54:15 2025", + ["version"] = "2.0", }, } \ No newline at end of file diff --git a/release/basalt.lua b/release/basalt.lua index 4908ad3..ef888b2 100644 --- a/release/basalt.lua +++ b/release/basalt.lua @@ -7,6 +7,7 @@ local baseRequire = require require = function(path) if(project[path..".lua"])then if(loadedProject[path]==nil)then loadedProject[path] = project[path..".lua"]() end return loadedProject[path] end return baseRequire(path) end minified_elementDirectory["BigFont"] = {} minified_elementDirectory["TextBox"] = {} +minified_elementDirectory["LineChart"] = {} minified_elementDirectory["Container"] = {} minified_elementDirectory["Image"] = {} minified_elementDirectory["Flexbox"] = {} @@ -27,6 +28,7 @@ minified_elementDirectory["Slider"] = {} minified_elementDirectory["ProgressBar"] = {} minified_elementDirectory["List"] = {} minified_elementDirectory["Dropdown"] = {} +minified_elementDirectory["BarChart"] = {} minified_elementDirectory["Menu"] = {} minified_pluginDirectory["xml"] = {} minified_pluginDirectory["state"] = {} @@ -440,6 +442,28 @@ if self.get("focused")then local bd=self.get("cursorX")-ac;local cd= self.get("cursorY")-bc;if bd>=1 and bd<=cc and cd>=1 and cd<=dc then self:setCursor(bd,cd,true,self.get("cursorColor")or self.get("foreground"))end end end;return _b end +project["elements/LineChart.lua"] = function(...) local ba=require("elementManager") +local ca=ba.getElement("VisualElement")local da=ba.getElement("Graph") +local _b=require("libraries/colorHex")local ab=setmetatable({},da)ab.__index=ab;function ab.new() +local cb=setmetatable({},ab):__init()return cb end;function ab:init(cb,db)da.init(self,cb,db) +self.set("type","LineChart")return self end +local function bb(cb,db,_c,ac,bc,cc,dc,_d)local ad=ac-db;local bd=bc-_c +local cd=math.max(math.abs(ad),math.abs(bd)) +for i=0,cd do local dd=cd==0 and 0 or i/cd +local __a=math.floor(db+ad*dd)local a_a=math.floor(_c+bd*dd) +if + +__a>=1 and __a<=cb.get("width")and a_a>=1 and a_a<=cb.get("height")then cb:blit(__a,a_a,cc,_b[dc],_b[_d])end end end +function ab:render()ca.render(self)local cb=self.get("width") +local db=self.get("height")local _c=self.get("minValue")local ac=self.get("maxValue") +local bc=self.get("series") +for cc,dc in pairs(bc)do +if(dc.visible)then local _d,ad;local bd=#dc.data +local cd=(cb-1)/math.max((bd-1),1) +for dd,__a in ipairs(dc.data)do local a_a=math.floor(( (dd-1)*cd)+1)local b_a= +(__a-_c)/ (ac-_c) +local c_a=math.floor(db- (b_a* (db-1)))c_a=math.max(1,math.min(c_a,db))if _d then +bb(self,_d,ad,a_a,c_a,dc.symbol,dc.bgColor,dc.fgColor)end;_d,ad=a_a,c_a end end end end;return ab end project["elements/Container.lua"] = function(...) local ca=require("elementManager") local da=ca.getElement("VisualElement")local _b=require("libraries/expect") local ab=require("libraries/utils").split;local bb=setmetatable({},da)bb.__index=bb @@ -1214,27 +1238,47 @@ nil;self._values=nil;self.basalt=nil;self.parent=nil self.__index=nil;setmetatable(self,nil)end function aa:updateRender()if(self.parent)then self.parent:updateRender()else self._renderUpdate=true end end;return aa end -project["elements/Graph.lua"] = function(...) local d=require("elementManager") -local _a=d.getElement("elements/VisualElement")local aa=setmetatable({},_a)aa.__index=aa -aa.defineProperty(aa,"data",{default={},type="table",canTriggerRender=true}) -aa.defineProperty(aa,"minValue",{default=0,type="number",canTriggerRender=true}) -aa.defineProperty(aa,"maxValue",{default=100,type="number",canTriggerRender=true}) -aa.defineProperty(aa,"graphColor",{default=colors.yellow,type="color",canTriggerRender=true}) -aa.defineProperty(aa,"graphSymbol",{default="\127",type="string",canTriggerRender=true}) -function aa.new()local ba=setmetatable({},aa):__init()return ba end;function aa:init(ba,ca)_a.init(self,ba,ca)self.set("type","Graph") -return self end -function aa:setPoint(ba,ca) -local da=self.get("data")da[ba]=ca;self:updateRender()end;function aa:addPoint(ba)local ca=self.get("data")table.insert(ca,ba)while#ca> -self.get("width")do table.remove(ca,1)end -self:updateRender()end -function aa:render() -_a.render(self)local ba=self.get("data")local ca=self.get("width") -local da=self.get("height")local _b=self.get("minValue")local ab=self.get("maxValue") -local bb=self.get("graphSymbol")local cb=self.get("graphColor") -for x=1,ca do -if ba[x]then -local db=(ba[x]-_b)/ (ab-_b)local _c=math.floor(da- (db* (da-1))) -_c=math.max(1,math.min(_c,da))self:textFg(x,_c,bb,cb)end end end;return aa end +project["elements/Graph.lua"] = function(...) local _a=require("elementManager") +local aa=_a.getElement("VisualElement")local ba=require("libraries/colorHex") +local ca=setmetatable({},aa)ca.__index=ca +ca.defineProperty(ca,"minValue",{default=0,type="number",canTriggerRender=true}) +ca.defineProperty(ca,"maxValue",{default=100,type="number",canTriggerRender=true}) +ca.defineProperty(ca,"series",{default={},type="table",canTriggerRender=true}) +function ca.new()local da=setmetatable({},ca):__init()return da end +function ca:init(da,_b)aa.init(self,da,_b)self.set("type","Graph") +self.set("width",20)self.set("height",10)return self end +function ca:addSeries(da,_b,ab,bb,cb)local db=self.get("series") +table.insert(db,{name=da,symbol=_b or" ",bgColor=ab or colors.white,fgColor= +bb or colors.black,pointCount=cb or self.get("width"),data={},visible=true})self:updateRender()return self end +function ca:removeSeries(da)local _b=self.get("series")for ab,bb in ipairs(_b)do if bb.name==da then +table.remove(_b,ab)break end end +self:updateRender()return self end +function ca:getSeries(da)local _b=self.get("series")for ab,bb in ipairs(_b)do +if bb.name==da then return bb end end;return nil end +function ca:changeSeriesVisibility(da,_b)local ab=self.get("series")for bb,cb in ipairs(ab)do if cb.name==da then +cb.visible=_b;break end end +self:updateRender()return self end +function ca:addPoint(da,_b)local ab=self.get("series") +for bb,cb in ipairs(ab)do if cb.name==da then +table.insert(cb.data,_b) +while#cb.data>cb.pointCount do table.remove(cb.data,1)end;break end end;self:updateRender()return self end +function ca:focusSeries(da)local _b=self.get("series") +for ab,bb in ipairs(_b)do if bb.name==da then +table.remove(_b,ab)table.insert(_b,bb)break end end;self:updateRender()return self end +function ca:setSeriesPointCount(da,_b)local ab=self.get("series") +for bb,cb in ipairs(ab)do if cb.name==da then +cb.pointCount=_b;while#cb.data>_b do table.remove(cb.data,1)end +break end end;self:updateRender()return self end +function ca:render()aa.render(self)local da=self.get("width") +local _b=self.get("height")local ab=self.get("minValue")local bb=self.get("maxValue") +local cb=self.get("series") +for db,_c in pairs(cb)do +if(_c.visible)then local ac=#_c.data +local bc=(da-1)/math.max((ac-1),1) +for cc,dc in ipairs(_c.data)do local _d=math.floor(( (cc-1)*bc)+1)local ad= +(dc-ab)/ (bb-ab) +local bd=math.floor(_b- (ad* (_b-1)))bd=math.max(1,math.min(bd,_b)) +self:blit(_d,bd,_c.symbol,ba[_c.bgColor],ba[_c.fgColor])end end end end;return ca end project["elements/Frame.lua"] = function(...) local _a=require("elementManager") local aa=_a.getElement("VisualElement")local ba=_a.getElement("Container")local ca=setmetatable({},ba) ca.__index=ca @@ -1551,6 +1595,25 @@ local cc=bc and local dc= bc and(_c.selectedForeground or self.get("selectedForeground"))or(_c.foreground or self.get("foreground"))self:textBg(1,i+1,string.rep(" ",cb),cc)self:textFg(1, i+1,ac,dc)end end end end end;return ca end +project["elements/BarChart.lua"] = function(...) local aa=require("elementManager") +local ba=aa.getElement("VisualElement")local ca=aa.getElement("Graph") +local da=require("libraries/colorHex")local _b=setmetatable({},ca)_b.__index=_b;function _b.new() +local ab=setmetatable({},_b):__init()return ab end;function _b:init(ab,bb)ca.init(self,ab,bb) +self.set("type","BarChart")return self end +function _b:render() +ba.render(self)local ab=self.get("width")local bb=self.get("height") +local cb=self.get("minValue")local db=self.get("maxValue")local _c=self.get("series")local ac=0 +local bc={} +for ad,bd in pairs(_c)do if(bd.visible)then +if#bd.data>0 then ac=ac+1;table.insert(bc,bd)end end end;local cc=ac;local dc=1 +local _d=math.min(bc[1]and bc[1].pointCount or 0,math.floor((ab+dc)/ ( +cc+dc))) +for groupIndex=1,_d do local ad=( (groupIndex-1)* (cc+dc))+1 +for bd,cd in ipairs(bc)do +local dd=cd.data[groupIndex] +if dd then local __a=ad+ (bd-1)local a_a=(dd-cb)/ (db-cb) +local b_a=math.floor(bb- (a_a* (bb-1)))b_a=math.max(1,math.min(b_a,bb))for barY=b_a,bb do +self:blit(__a,barY,cd.symbol,da[cd.fgColor],da[cd.bgColor])end end end end end;return _b end project["elements/Menu.lua"] = function(...) local _a=require("elements/VisualElement") local aa=require("elements/List")local ba=require("libraries/colorHex") local ca=setmetatable({},aa)ca.__index=ca diff --git a/src/LuaLS.lua b/src/LuaLS.lua index 4c9e9c3..34d99da 100644 --- a/src/LuaLS.lua +++ b/src/LuaLS.lua @@ -415,14 +415,6 @@ function Container:addFrame() return self end ---- Adds a new Graph to the container ----@generic Element: Container ----@param self Element ----@return Graph -function Container:addGraph() - return self -end - --- Adds a new Image to the container ---@generic Element: Container ---@param self Element