sublime-rainmeter

Features

Syntax Highlighting

Syntax highlighting is turned on by default for files with the .ini and .inc
extensions. It works best with the included color schemes, although other
color schemes might work, too. See Selecting Your Color
Scheme for instructions on how to change the color
scheme.

If a certain file type doesn't open with Rainmeter highlighting even though
you want it to, select View > Syntax > Open all with current extension as... >
Rainmeter.

Code Completion

Code completion is activated by default. While typing, it will suggest
completions from a list of options, values, built-in variables and more. When
auto-completing a bang, the required and optional (in braces) parameters are
also added, and you can cycle through them by pressing tab or shift+tab.

Additionally, code snippets for common usages of each meter and measure type,
and all native plugins are included. The names of those snippets start with a
"t" for "template", so if you want to insert a basic template for a string
meter, type tstring and hit enter, if you want to insert a metadata block,
type tmetadata. There is also a snippet with a basic structure of a skin
file called tskin.

You can see all available snippets by looking in the Snippets folder in the
Rainmeter package directory. If you feel that one of those snippets needs to
be changed in order to be more useful, don't hesitate to contact me.

Code Folding

Sublime Text 2 supports folding indented code sections. The command
rainmeter_indent that is included in this package automatically indents all
selected lines (or the whole file, if nothing is selected) so code folding is
possible in a sensible way. Hit ctrl+alt+i to activate it. All options in a
section are indented and can be folded away. Additionally, inserting a comment
line starting with a double semicolon: ;; will indent everything after it so
it can be folded until the next ;; that you indented by the same amount.
This is useful if you want to fold a specific section of code, like all
measures or meters. If you want to add a nice looking header for your foldable
sections, try typing divider and hitting enter.

Color Picker

Ever wanted to quickly adjust the color of a meter but found yourself unable
to imagine what a rgb color will look like in your head? No more! I have
adapted the awesome Color Picker Plugin created by weslly to work with
rainmeter-style hex-color definitions. Place your mouse cursor in a
hexadecimal color definition, or select it and hit ctrl+shift+c. This will
open a color picker dialog and let you choose a color. If your cursor is
currently not in a color definition, the hex code will be inserted at the
cursor position. You can't adjust the alpha value, but it will be preserved
after you chose the new color.

New Skin

The Rainmeter section of the "Tools" menu contains a handy command for
creating a new skin. It will prompt you for a name for the new skin, and then
perform the following operations:

Create a new folder with the name you just entered in your Skins folder

Create the @Resources folder, and the folders Fonts, Images and
Scripts inside it

Create a new ini file with the same name as the folder, open it and insert
a basic skin skeleton

Refresh Rainmeter so it recognizes the new skin

Tip: If you want to create a new skin that isn't located directly in the
skins folder, you can enter the path to the new folder you want to create
(relative to the skins folder). In this case, the path and all subfolders will
be created and the ini file will get the name of the last folder. For example,
if you want to create a new skin called "Twitter" in Enigma/Sidebar/Reader,
enter Enigma/Sidebar/Reader/Twitter as the skin's name. The @Resources
folder and its subdirectories will only be created if there is no @Resources
folder yet.

If you just want to create a new ini file, try the "New Skin File" command. It
will just open a new buffer and insert the skin skeleton. The same skeleton is
also available as a snippet called tskin.

Refresh Skin/Rainmeter

You can refresh the current skin by hitting f7 or ctrl+b. The same command
is also available via the "Tools" menu or the command palette. If the skin is
not currently loaded, it will be activated. If you don't want this, you can
set the "rainmeter_refresh_and_activate" setting to false in your User
settings (see Configuration for more info).

Open Skins Folder

You can open your skins folder by selecting "Tools > Rainmeter > Open Skins
Folder..." or running the "Rainmeter: Open Skins Folder" command from the
command palette.

Open Paths in Rainmeter Files

Ever wanted to open that include file and cursed because you had to navigate
to it in the Widows Explorer before you can open it? Try placing your caret on
the line and select "Open Selected Paths..." from the context menu, or hit
ctrl+alt+o.

This command lets you open paths to text files in Sublime, folder paths in the
Windows Explorer, other files in their default application and URLs in your
browser. It will expand some Rainmeter built-in variables and Windows
environment variables and try a number of cases, one after the other, to open
what you have selected:

If you have selected a portion of text, it will try to open exactly that
portion

If your selection is inside a quoted string, it will try to expand the
selection to the enclosing quotes and open that portion

If your selection is enclosed by spaces, it will try to open the text
between those spaces

If the line is a "key=value" line it will try to open everything after the
"="

If all else fails, it will try to open the whole line (after removing any
leading semicolons)

You can select nothing and only place the caret somewhere into the line, in
which case only 2.-5. are relevant. If you have selected multiple lines, they
are all treated separately (letting you open multiple include files at once).

The following variables are expanded before trying to open anything:

#CURRENTPATH#

#CURRENTFILE#

#CURRENTCONFIG#

#ROOTCONFIGPATH#

#@#

#SKINSPATH#

#PROGRAMPATH#

#PROGRAMDRIVE#

#SETTINGSPATH#

#PLUGINSPATH#

#ADDONSPATH#

Windows environment variables (enclosed in "%")

If you want to include or exclude certain file extensions from being opened
with Sublime instead of the system default, see the default settings file for
instructions.

Installation

With Package Control (recommended)

The easiest way to install is via Package Control. If you don't have it
installed yet, I highly recommend it. Package Control will manage your
packages and update them automatically.

If you have Package Control installed, open the command palette
(ctrl+shift+p) and run the "Package Control: Install Package" command. Type
in "Rainmeter" and hit enter. The package will now be installed and kept up-
to-date automatically.

Configuration

You can configure the behavior of the package by editing the user settings
file (Preferences > Package Settings > Rainmeter > Settings - User). See
"Settings - Default" for all available settings and their description as well
as how a settings file should look. If you want to change one of those
settings, copy it to your user settings file and change the value. It is best
to only copy those settings into your user settings file that you actually
want to change, since they will override the default ones. The settings file
must have an opening curly brace at the top, and a closing one at the bottom.
Also, all settings except the last one must be terminated with a comma or
Sublime will throw error dialogs at you.

Setting Your Rainmeter Path

If your Rainmeter is not installed in C:\Program Files\Rainmeter you
should change the "rainmeter_path" setting to the path where you installed
Rainmeter. You can check if you set it correctly by selecting "Refresh
Rainmeter" from the "Rainmeter" section in the "Tools" menu and seeing if
Rainmeter is actually refreshed.

Setting Your Skins Path

Only set the "rainmeter_skins_path" setting if "Tools > Rainmeter > Open
Skins Folder..." does not correctly open your skins folder. The package will
try to detect your skins folder automatically (including changes to "SkinPath"
in Rainmeter.ini) so it's recommended not to set this setting if everything
is working fine.

Selecting Your Color Scheme

There are several built-in color schemes you can choose from. If you don't
want to use the default color scheme "Monokai (Rainmeter)", you can select a
custom one by setting the "color_scheme" setting in your user settings file.

The following color schemes are currently included in the package:

Lachgummi Joghurt.tmTheme

Monokai (Rainmeter).tmTheme

Nexus (Rainmeter).tmTheme

RainLexer.tmTheme

Rainmeter (Light).tmTheme

Using other color schemes that are not optimized for Rainmeter is possible,
but will probably yield sub-optimal results.

Customizing Your Key Bindings

If you don't like the key bindings the package provides by default you can
define your own. Look at "Preferences > Package Settings > Rainmeter > Key
Bindings - Default" to see how the key bindings are defined. You can add your
own by editing "Preferences > Key Bindings - User".

Additional Information

Issues

The syntax definition tries to capture all common language constructs
properly. It might fail in some cases, where something is highlighted even
though it's not supposed to be. One prominent example is that every number
that has exactly 6 or 8 digits is being highlighted like a hexadecimal color
definition. I chose this explicitly because I think identifying the different
parts in a color definition is more important than some incorrectly colored
numbers. In most other cases, wrong highlighting is due to the inherent
ambiguity in Rainmeter syntax. If you encounter one of those cases, don't
hesitate to contact me, especially if you think you know how to fix it.

Hints for Color Scheme Designers

You can see all the different classes the syntax defines by looking into
Rainmeter.JSON-tmLanguage. Perhaps even easier is copying the rainmeter-
specific part from one of the included color schemes (it's pretty much at the
top, and it's commented). All the classes with a short description what they
mean are included there.