# Levels
**SublimeText** plugin for scope context coloring.
Inspired by [Douglas Crockford idea](https://plus.google.com/u/0/113127438179392830442/posts/XjR4WmSDFAV)
By Sasha Mazurov (alexander.mazurov@gmail.com)
* [Web version](http://mazurov.github.io/eslevels-demo/)
## Supported languages
* **JavaScript:** Uses my [eslevels][eslevels] and V8 Python binding — [PyV8](https://github.com/emmetio/pyv8-binaries)
## How to install
**WARNING:** this plugin may not work at all in some OSes since it written in JavaScript and uses PyV8 and Google V8 binaries to run.
* Use [Package Control](http://wbond.net/sublime_packages/package_control): ```Preferences -> Package Control -> Install Package - > Levels```
or
* Clone or download git repo into your packages folder (In SublimeText ```Preferences->Browse Packages...``` menu item to open this folder):
- Clone: ```git clone https://github.com/mazurov/sublime-levels.git Levels```
- Download: https://github.com/mazurov/sublime-levels/archive/master.zip and extract sublime-levels-master to the packages folder.
**WARNING:** When plugin is installed, it will automatically download required PyV8 binary so you have to wait a bit (see Loading PyV8 binary message on status bar). If you experience issues with automatic PyV8 loader, try to install it manually.
## Available commands
* Enable scope context coloring: __Levels: Update__ ```Ctrl+Shift+L```
* Restore original coloring: __Levels: Off__ ```Ctrl+Shift+O```
* The code is automatically colored after a save action.
*
## Options
* The **live** coloring mode is switched off by default (the current plugin version works slow for large scripts). You can enable it in settings by ```"live": true```.
* Javascript coloring support two modes: ```"mini"``` - highlight only "important" language constructions and ```"full"``` - highlight whole scopes.
You can set this options by changing ```javascript_mode``` value in settings.
![Mini mode](https://raw.github.com/mazurov/sublime-levels/master/examples/mini.png)
## Theme customization
By default the plugin use a modified version of the default theme ```Solarized (Light)```. If you want to use your favorite theme, you need to add new scope coloring rules like in plugin's ```Levels-light.hidden-tmTheme```:
```xml
name
Level0
scope
level0
settings
foreground
#FDF6E3
...
name
Level9
scope
level9
settings
foreground
#cf9369
```
, and update ```color_scheme``` value in plugin settings (applied only for
scope coloring mode) or in default user settings.
## Known issues.
### Eslevels library
If you would like to be sure that your coloring problem is in [eslevels][eslevels] and not in
this plugin you can check your code on [this page](http://mazurov.github.io/eslevels-demo).
If you have the same problems there then it means that the problem is in Eslevels library (or in your code)
## Credits
* Thanks to [Sergey Chikuyonok](https://github.com/sergeche) for the nice
idea of using PyV8.
[eslevels]: https://github.com/mazurov/eslevels