Well, after a few tests, as much as I'm a fan of reading file contents using WebParser, it turns out that Lua is much faster, let alone it doesn't hang on very frequent file reading like when scrolling...
<SkinFolder>\@Resources\Script.lua:
Code: Select all
function Update()
local filename, content = SELF:GetOption('LoadFile'), ''
local fileitem, message = io.open(filename, 'r')
if fileitem then content = fileitem:read('*a'); fileitem:close() else print(message) end
return content
end
Code: Select all
[Variables]
Updates=1000
JumpInt=5
FileDir=#@#
FileExt=txt
FileMax=430
FileIdx=1
BodyPos=0
Margins=5
Padding=5
TxtSize=8
[Rainmeter]
Update=#Updates#
AccurateText=1
DynamicWindowSize=1
---Measures---
[FilePath]
Measure=Plugin
Plugin=FileView
Path=#FileDir#
ShowDotDot=0
ShowFolder=0
Extensions=#FileExt#
SortType=Name
UpdateDivider=-1
FinishAction=[!EnableMeasure FileText][!UpdateMeasure FileName][!UpdateMeasure FileText][!UpdateMeterGroup FileData][!Redraw][!Delay (#Updates#*#JumpInt#)][!EnableMeasure FileJump][!UpdateMeasure FileJump]
DynamicVariables=1
[FileName]
Measure=Plugin
Plugin=FileView
Path=[FilePath]
Type=FileName
Index=#FileIdx#
IgnoreCount=1
UpdateDivider=-1
DynamicVariables=1
[FileText]
Disabled=1
Measure=Script
ScriptFile=#@#Script.lua
LoadFile=[FilePath][FileName]
UpdateDivider=-1
DynamicVariables=1
[FileJump]
Disabled=1
Measure=Calc
UpdateDivider=#JumpInt#
OnUpdateAction=[!SetVariable FileIdx (Clamp(#FileIdx#+1,1,#FileMax#))][!SetVariable BodyPos 0][!UpdateMeasure FileName][!UpdateMeasure FileText][!UpdateMeterGroup FileData][!Redraw]
DynamicVariables=1
---Styles---
[Texts]
FontColor=224,224,224,255
FontEffectColor=0,0,0,255
StringEffect=Shadow
SolidColor=0,0,0,160
FontSize=#TxtSize#
FontFace=Segoe UI
StringStyle=Bold
StringAlign=Left
Padding=#Padding#,#Padding#,#Padding#,#Padding#
ClipString=2
AntiAlias=1
---Meters---
[Background]
Meter=Image
W=400
H=300
SolidColor=0,128,0,128
UpdateDivider=-1
[FileInfo]
Group=FileData
Meter=String
MeterStyle=Texts
X=(#Margins#)
Y=(#Margins#)
W=([Background:W]-#Margins#*2-#Padding#*2)
H=(#TxtSize#+12)
MeasureName=FilePath
MeasureName2=FileName
Text=%1%2
UpdateDivider=-1
MouseScrollUpAction=[!SetVariable FileIdx (Clamp(#FileIdx#-1,1,#FileMax#))][!SetVariable BodyPos 0][!UpdateMeasure FileName][!UpdateMeasure FileText][!UpdateMeterGroup FileData][!Redraw]
MouseScrollDownAction=[!SetVariable FileIdx (Clamp(#FileIdx#+1,1,#FileMax#))][!SetVariable BodyPos 0][!UpdateMeasure FileName][!UpdateMeasure FileText][!UpdateMeterGroup FileData][!Redraw]
DynamicVariables=1
[FileMask]
Meter=Image
X=(#Margins#)
Y=(#Margins#)R
W=([Background:W]-#Margins#*2)
H=([Background:H]-[FileInfo:H]-#Margins#*3)
SolidColor=0,0,0,255
UpdateDivider=-1
[FileBody]
Group=FileData
Container=FileMask
Meter=String
MeterStyle=Texts
Y=(#BodyPos#)
W=([FileMask:W]-#Padding#*2)
MeasureName=FileText
Text=%1
UpdateDivider=-1
MouseScrollUpAction=[!SetVariable BodyPos (Clamp(#BodyPos#+14,[FileMask:H]<[FileBody:H]?[FileMask:H]-[FileBody:H]:0,0))][!UpdateMeter FileBody][!Redraw]
MouseScrollDownAction=[!SetVariable BodyPos (Clamp(#BodyPos#-14,[FileMask:H]<[FileBody:H]?[FileMask:H]-[FileBody:H]:0,0))][!UpdateMeter FileBody][!Redraw]
DynamicVariables=1