Skip to content

Commit

Permalink
* Support for IfConditions and IfMatchActions
Browse files Browse the repository at this point in the history
* Support for Measure=String
* Support for :EncodeURL and :EscapeRegExp Section Variables
* Better Highlighting for Section Variables
  • Loading branch information
merlinthered committed Jan 17, 2014
1 parent b13df55 commit 191babc
Show file tree
Hide file tree
Showing 4 changed files with 158 additions and 9 deletions.
43 changes: 40 additions & 3 deletions Rainmeter.JSON-tmLanguage
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// [PackageDev] target_format: plist, ext: tmLanguage
{
"name": "Rainmeter",
"scopeName": "source.rainmeter",
Expand Down Expand Up @@ -122,7 +123,7 @@
{
"name": "variable.other.dynamic.section_variable.rainmeter",
"comment": "Section variables",
"match": "(?i)\\[[^\\[\\]\\s\\\\/!#\"%\\$]*?(:(W|H|X|Y|(Min|Max)Value(:/[-+]?[0-9]*\\.?[0-9]+(e[-+]?[0-9]+)?(,\\s*[0-9]+)?)?|(/[-+]?[0-9]*\\.?[0-9]+(e[-+]?[0-9]+)?(,\\s*[0-9]+)?)|(%(,\\s*[0-9]+)?)|([0-9]+))?)\\]",
"match": "(?i)\\[[^\\[\\]\\s\\\\/!#\"%\\$]*?(:((((W|H|X|Y|(Min|Max)Value)|(/[-+]?[0-9]*\\.?[0-9]+(e[-+]?[0-9]+)?(,\\s*[0-9]+)?)|(%)|([0-9]+))(,\\s*((W|H|X|Y|(Min|Max)Value)|(/[-+]?[0-9]*\\.?[0-9]+(e[-+]?[0-9]+)?(,\\s*[0-9]+)?)|(%)|([0-9]+)))*?)|(EscapeRegExp|EncodeURL))?)\\]",
"captures": {
"1": {"name": "constant.language.section_variable.spec.rainmeter"}
}
Expand Down Expand Up @@ -239,9 +240,45 @@
"4": {"name": "invalid.rainmeter"}
}
},
{
"name": "meta.option.IfConditionMode.rainmeter",
"match": "(?i)^\\s*(IfConditionMode)\\s*(=)\\s*((0|1)|\"(0|1)\")\\s*$",
"captures": {
"1": {"name": "storage.type.option.predefined.rainmeter"},
"2": {"name": "keyword.operator.option.equal.rainmeter"},
"3": {"name": "support.constant.option_values.rainmeter"}
}
},
{
"name": "meta.option.IfConditionMode.invalid.rainmeter",
"match": "(?i)^\\s*(IfConditionMode)\\s*(=)\\s*(?!(.*#.*#.*$|.*\\[.*\\].*$))(.*)\\s*$",
"captures": {
"1": {"name": "storage.type.option.predefined.rainmeter"},
"2": {"name": "keyword.operator.option.equal.rainmeter"},
"4": {"name": "invalid.rainmeter"}
}
},
{
"name": "meta.option.IfMatchMode.rainmeter",
"match": "(?i)^\\s*(IfMatchMode)\\s*(=)\\s*((0|1)|\"(0|1)\")\\s*$",
"captures": {
"1": {"name": "storage.type.option.predefined.rainmeter"},
"2": {"name": "keyword.operator.option.equal.rainmeter"},
"3": {"name": "support.constant.option_values.rainmeter"}
}
},
{
"name": "meta.option.IfMatchMode.invalid.rainmeter",
"match": "(?i)^\\s*(IfMatchMode)\\s*(=)\\s*(?!(.*#.*#.*$|.*\\[.*\\].*$))(.*)\\s*$",
"captures": {
"1": {"name": "storage.type.option.predefined.rainmeter"},
"2": {"name": "keyword.operator.option.equal.rainmeter"},
"4": {"name": "invalid.rainmeter"}
}
},
{
"name": "meta.option.measure.rainmeter",
"match": "(?i)^\\s*(measure)\\s*(=)\\s*((Script|Cpu|Memory|PhysicalMemory|SwapMemory|Uptime|Net(In|Out|Total)|FreeDiskSpace|Plugin|Registry|Time|Calc)|\"(Script|Cpu|Memory|PhysicalMemory|SwapMemory|Uptime|Net(In|Out|Total)|FreeDiskSpace|Plugin|Registry|Time|Calc)\")\\s*$",
"match": "(?i)^\\s*(measure)\\s*(=)\\s*((Script|Cpu|Memory|PhysicalMemory|SwapMemory|Uptime|Net(In|Out|Total)|FreeDiskSpace|Plugin|Registry|Time|Calc|String)|\"(Script|Cpu|Memory|PhysicalMemory|SwapMemory|Uptime|Net(In|Out|Total)|FreeDiskSpace|Plugin|Registry|Time|Calc|String)\")\\s*$",
"captures": {
"1": {"name": "storage.type.option.predefined.rainmeter"},
"2": {"name": "keyword.operator.option.equal.rainmeter"},
Expand Down Expand Up @@ -494,7 +531,7 @@
{
"name": "meta.option.predefined.rainmeter",
"comment": "Predefined options for meters and measures",
"match": "(?i)^\\s*(Background|BackgroundMode|BackgroundMargins|AccurateText|ImageCrop|Greyscale|Image(Name|Tint|Flip|Rotate|Alpha|Crop)|UseExifOrientation|SolidColor(2)?|GradientAngle|beveltype|Blur|BlurRegion([2-9]{1,1}|[0-9]{2,})?|Update|TransitionUpdate|DynamicWindowSize|DragMargins|OnRefreshAction|OnCloseAction|On(Un)?FocusAction|OnChangeAction|OnUpdateAction|OnWakeAction|Author|AppVersion|LocalFont([2-9]{1,1}|[0-9]{2,})?|DynamicVariables|Name|Information|Version|License|Group|Measure|InvertMeasure|Disabled|UpdateDivider|(Max|Min)Value|AverageSize|If(Above|Equal|Below)(Value|Action)|Substitute|Formula|UpdateRandom|UniqueRandom|(Low|High)Bound|Processor|Drive|Total|Label|Type|IgnoreRemovable|DiskQuota|Net(In|Out|Total)Speed|Traffic(Action|Value)|Interface|Cumulative|Plugin|Reg(HKey|Key|Value)|ScriptFile|Format|TimeZone|TimeStamp|DaylightSavingTime|AddDaysToHours|Meter|X|Y|W|H|MeterStyle|MeasureName([2-9]{1,1}|[0-9]{2,})?|Hidden|AntiAlias|ToolTip(Text|Title|Icon|Type|Width|Hidden)|TransformationMatrix|Padding|Paused|Bar(Color|Image|Border)|(Primary|Secondary|Both)?ColorMatrix[12345]|BarOrientation|Flip|Bitmap(Image|Frames|TransitionFrames|ZeroFrame|Extend|Digits|Align|Separation)|Button(Image|Command)|SecondaryMeasureName|(Primary|Both|Secondary)(Color|Image(Crop|Tint|Flip|Rotate|Alpha)?|Greyscale)|(Primary|Both|Secondary)?ImagePath|Graph(Start|Orientation)|PreserveAspectRatio|ScaleMargins|Tile|Line(Count|Width|Length|Start)|LineColor([2-9]{1,1}|[0-9]{2,})?|Scale([2-9]{1,1}|[0-9]{2,})?|HorizontalLine(s|Color)|Offset(X|Y)|(Start|Rotation)Angle|ValueRemainder|Control(Length|Start|Angle)|(Length|Start)Shift|Solid|Font(Color|Size|EffectColor|Face)|String(Align|Style|Effect|Case|)|(Pre|Post)Fix|Autoscale|Percentual|NumOfDecimals|Text|ClipString(W|H)?|Angle|(Left|Right|Middle|(X(1|2)))Mouse(Down|Up|DoubleClick)Action|Mouse(Over|Leave)Action|MouseScroll(Down|Up|Left|Right)Action|MouseActionCursor(Name)?|CPUInclude|CPUExclude|TopProcess|CoreTemp(Type|Index)|Folder|InfoType|RegExpFilter|Include(SubFolders|(Hidden|System)Files)|Command[0-9]*|DefaultValue|Password|FocusDismiss|DefaultArtwork|Player(Name|Type|Path)|TrackChangeAction|DisableLeadingZero|PerfMon(Object|Counter|Instance|Difference)|DestAddress|UpdateRate|Timeout(Value)?|PowerState|ProcessName|PathName|Separator|Subfolders|FileFilter|RecycleType|ResCountType|SpeedFan(Type|Number|Scale)|SysInfo(Type|Data)|VD(Manager|MeasureType|DesktopCount|On((De)?Activate|Change)|Desktop|Width|Height|RefreshOnUpdate)|Desktop(Name|Wallpaper)|Screenshot|Url|RegExp(Substitute)?|FinishAction|StringIndex(2)?|DecodeCharacterReference|Debug|Debug2File|Download(File)?|ErrorString|ForceReload|ProxyServer|CodePage|WiFiInfoType|WiFiIntfID|WiFiListStyle|Window(Name|Class|Message)|Context(Title|Action)([2-9]{1,1}|[0-9]{2,})?|Recursive|Count|Show(DotDot|Folder|File|Hidden|System)|(Hide)?Extensions|Sort(Date)?Type|SortAscending|WildcardSearch|Index|IgnoreCount|DateType|Icon(Path|Size))\\s*(?'equals'=)",
"match": "(?i)^\\s*(Background|BackgroundMode|BackgroundMargins|AccurateText|ImageCrop|Greyscale|Image(Name|Tint|Flip|Rotate|Alpha|Crop)|UseExifOrientation|SolidColor(2)?|GradientAngle|beveltype|Blur|BlurRegion([2-9]{1,1}|[0-9]{2,})?|Update|TransitionUpdate|DynamicWindowSize|DragMargins|OnRefreshAction|OnCloseAction|On(Un)?FocusAction|OnChangeAction|OnUpdateAction|OnWakeAction|Author|AppVersion|LocalFont([2-9]{1,1}|[0-9]{2,})?|DynamicVariables|Name|Information|Version|License|Group|Measure|InvertMeasure|Disabled|UpdateDivider|(Max|Min)Value|AverageSize|If(Above|Equal|Below)(Value|Action)|IfCondition([2-9]{1,1}|[0-9]{2,})?|If(True|False)Action([2-9]{1,1}|[0-9]{2,})?|IfMatch([2-9]{1,1}|[0-9]{2,})?|If(Not)?MatchAction([2-9]{1,1}|[0-9]{2,})?|Substitute|Formula|UpdateRandom|UniqueRandom|(Low|High)Bound|Processor|Drive|Total|Label|Type|IgnoreRemovable|DiskQuota|Net(In|Out|Total)Speed|Traffic(Action|Value)|Interface|Cumulative|Plugin|Reg(HKey|Key|Value)|ScriptFile|Format|TimeZone|TimeStamp|DaylightSavingTime|AddDaysToHours|Meter|X|Y|W|H|MeterStyle|MeasureName([2-9]{1,1}|[0-9]{2,})?|Hidden|AntiAlias|ToolTip(Text|Title|Icon|Type|Width|Hidden)|TransformationMatrix|Padding|Paused|Bar(Color|Image|Border)|(Primary|Secondary|Both)?ColorMatrix[12345]|BarOrientation|Flip|Bitmap(Image|Frames|TransitionFrames|ZeroFrame|Extend|Digits|Align|Separation)|Button(Image|Command)|SecondaryMeasureName|(Primary|Both|Secondary)(Color|Image(Crop|Tint|Flip|Rotate|Alpha)?|Greyscale)|(Primary|Both|Secondary)?ImagePath|Graph(Start|Orientation)|PreserveAspectRatio|ScaleMargins|Tile|Line(Count|Width|Length|Start)|LineColor([2-9]{1,1}|[0-9]{2,})?|Scale([2-9]{1,1}|[0-9]{2,})?|HorizontalLine(s|Color)|Offset(X|Y)|(Start|Rotation)Angle|ValueRemainder|Control(Length|Start|Angle)|(Length|Start)Shift|Solid|Font(Color|Size|EffectColor|Face)|String(Align|Style|Effect|Case|)?|(Pre|Post)Fix|Autoscale|Percentual|NumOfDecimals|Text|ClipString(W|H)?|Angle|(Left|Right|Middle|(X(1|2)))Mouse(Down|Up|DoubleClick)Action|Mouse(Over|Leave)Action|MouseScroll(Down|Up|Left|Right)Action|MouseActionCursor(Name)?|CPUInclude|CPUExclude|TopProcess|CoreTemp(Type|Index)|Folder|InfoType|RegExpFilter|Include(SubFolders|(Hidden|System)Files)|Command[0-9]*|DefaultValue|Password|FocusDismiss|DefaultArtwork|Player(Name|Type|Path)|TrackChangeAction|DisableLeadingZero|PerfMon(Object|Counter|Instance|Difference)|DestAddress|UpdateRate|Timeout(Value)?|PowerState|ProcessName|PathName|Separator|Subfolders|FileFilter|RecycleType|ResCountType|SpeedFan(Type|Number|Scale)|SysInfo(Type|Data)|VD(Manager|MeasureType|DesktopCount|On((De)?Activate|Change)|Desktop|Width|Height|RefreshOnUpdate)|Desktop(Name|Wallpaper)|Screenshot|Url|RegExp(Substitute)?|FinishAction|StringIndex(2)?|DecodeCharacterReference|Debug|Debug2File|Download(File)?|ErrorString|ForceReload|ProxyServer|CodePage|WiFiInfoType|WiFiIntfID|WiFiListStyle|Window(Name|Class|Message)|Context(Title|Action)([2-9]{1,1}|[0-9]{2,})?|Recursive|Count|Show(DotDot|Folder|File|Hidden|System)|(Hide)?Extensions|Sort(Date)?Type|SortAscending|WildcardSearch|Index|IgnoreCount|DateType|Icon(Path|Size))\\s*(?'equals'=)",
"captures": {
"1": {"name": "storage.type.option.predefined.rainmeter"},
"equals": {
Expand Down
16 changes: 16 additions & 0 deletions Rainmeter.sublime-completions
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,9 @@
"Drive",
"DynamicVariables",
"DynamicWindowSize",
"EncodeURL",
"ErrorString",
"EscapeRegExp",
"Extensions",
"FileFilter",
"FinishAction",
Expand Down Expand Up @@ -174,8 +176,22 @@
"IfAboveValue",
"IfBelowAction",
"IfBelowValue",
"IfCondition",
"IfCondition2",
"IfConditionMode",
"IfEqualAction",
"IfEqualValue",
"IfFalseAction",
"IfFalseAction2",
"IfMatch",
"IfMatch2",
"IfMatchAction",
"IfMatchAction2",
"IfMatchMode",
"IfNotMatchAction",
"IfNotMatchAction2",
"IfTrueAction",
"IfTrueAction2",
"IgnoreCount",
"IgnoreRemovable",
"ImageAlpha",
Expand Down
Loading

0 comments on commit 191babc

Please sign in to comment.