SublimeHighlight
================
*Sublime Text 3 users:* a `python3` branch is also available. Just `git checkout python3`
from the root of your package installation to use in in ST3. If you upgrade from a previous
ST2 installation or encounter problems with the package, please proceed as detailed below:
- Remove the package, if installed, using Package Control.
- Add a repository: `https://github.com/n1k0/SublimeHighlight/tree/python3`
- Install `SublimeHighlight` with Package Control. It should pull the correct branch from Github.
- Restart Sublime Text 3
This [SublimeText2](http://www.sublimetext.com/2) package allows to highlight &
export currently edited code to HTML or RTF using [Pygments](http://pygments.org/).
Several commands are added to SublimeText2 when installed:
- **SublimeHighlight: convert to HTML**: will convert current code to
highlighted HTML in a new SublimeText tab.
- **SublimeHighlight: convert to RTF**: will convert current code to
highlighted RTF in a new SublimeText tab.
- **SublimeHighlight: view as HTML**: will convert current code to highlighted
HTML and open it in your default browser.
- **SublimeHighlight: view as RTF**: will convert current code to an RTF
document and open the generated file with your default program.
- **SublimeHighlight: copy to clipboard as HTML**: will convert current code to
highlighted HTML and store it into the system clipboard.
- **SublimeHighlight: copy to clipboard as RTF**: will convert current code to
raw highlighted RTF and store it into the system clipboard.
This latter command, *Copy to clipboard as RTF*, allows to copy and paste highlighted
code from Sublime Tex 2 to other softwares like Powerpoint, Keynotes, Word, etc.
![capture](http://f.cl.ly/items/0p0w3w3y2V3P2v1H0q1a/SublimeHighlight.png)
Settings
--------
You can find a dedicated user settings file in the `Preferences > Package
Settings > SublimeHighlight` menu where you can customize Pygments settings:
Sample `Settings - User` file:
{
"theme": "monokai",
"linenos": "inline",
"noclasses": true,
"fontface": "Menlo"
}
Check out the available options below.
### Themes
You can choose the Pygments theme to use by setting the `theme` option:
{
"theme": "vim"
}
Available themes are:
- `autumn`
- `borland`
- `bw`
- `colorful`
- `default`
- `emacs`
- `friendly`
- `fruity`
- `manni`
- `monokai`
- `murphy`
- `native`
- `pastie`
- `perldoc`
- `rrt`
- `tango`
- `trac`
- `vim`
- `vs`
Here's a screenshot of what some example code looks like with different themes:
![Themes Screenshot](https://raw.github.com/n1k0/SublimeHighlight/master/themes.png)
**Note:** You can add your own pygments files by copying the `_theme_.py` to `Packages/Highlight/pygments/styles`, and adding your theme to the `STYLES_MAP` in `SublimeHighlight/pygments/styles/__init__.py`. Eg.:
# Maps style names to 'submodule::classname'.
STYLE_MAP = {
'default': 'default::DefaultStyle',
'mytheme': 'mytheme::MyThemeStyle',
}
### Line numbering
You can add line numbering by setting the `linenos` option:
{
"linenos": "inline"
}
Accepted values for the `linenos` option are `table`, `inline` or `false` — the latter being the default.
### Inline styling
You can set the rendered HTML code to use inline styles instead of CSS classes:
{
"noclasses": true
}
### Lexer options
SublimeHighlight supports [Pygments lexer options](http://pygments.org/docs/lexers/). To set an option for a given lexer, eg. `PHP`:
{
"lexer_options": {
"PHP": {
"startinline": true
}
}
}
### Font face
You can set font face used in RTF output by using the fontface setting.
{
"fontface": "Menlo"
}
Setting up shortcuts
--------------------
This is a sample key binding for copying RTF highlighted code contents to your clipboard by pressing ctrl + alt + c:
```json
[
{ "keys": ["ctrl+alt+c"],
"command": "sublime_highlight",
"args": { "target": "clipboard",
"output_type": "rtf"
}},
]
```
You can combine the `target` and `output_type` argument values to achieve the stuff you want. Possible values are:
`target`:
- `sublime`: new Sublime Text 2 tab
- `external`: new external file
- `clipboard`: system clipboard
`output_type`:
- `rtf`: RTF format
- `html`: HTML format
Why this package?
-----------------
Mostly for toying around with [SublimeText2 plugin API](http://www.sublimetext.com/docs/2/api_reference.html)
(which is great), but also to ease the process of copying/pasting richly
formatted code over softwares like Powerpoint, Word, Keynote and shits like
that.
License
-------
This software is released under the terms of the [MIT license](http://en.wikipedia.org/wiki/MIT_License).