remi-syntax-on 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/README ADDED
@@ -0,0 +1,27 @@
1
+ == syntax-on
2
+
3
+ Syntax-on is a library for highlighting source by automating vim
4
+
5
+ It also has a command line interface and a paste-bin style website http://syntax-on.org
6
+
7
+ == Gem Usage
8
+
9
+ require 'syntax-on'
10
+
11
+ # example specifying syntax
12
+ puts SyntaxOn.new("class Dog; end", :syntax => :ruby).to_html
13
+
14
+ # example using a modeline
15
+ puts SyntaxOn.new("class Dog; end\n# vim:set ft=ruby:").to_html
16
+
17
+ == Command Line Usage
18
+
19
+ $ syntax-on highlight my-ruby-file.rb
20
+
21
+ $ syntax-on highlight --syntax ruby --code "some code to highlight as ruby"
22
+
23
+ $ syntax-on highlight --code -s ruby < some-ruby-file-from-STDIN
24
+
25
+ $ syntax-on highlight --preview will-preview-in-firefox.rb
26
+
27
+ $ syntax-on help highlight # for more help information
data/bin/syntax-on ADDED
@@ -0,0 +1,4 @@
1
+ #! /usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../lib/syntax-on'
3
+ require 'syntax-on/bin'
4
+ SyntaxOn::Bin.new( ARGV ).run
@@ -0,0 +1,91 @@
1
+ require 'optparse'
2
+ require 'simplecli'
3
+
4
+ class SyntaxOn::Bin
5
+ include SimpleCLI
6
+
7
+ def usage *args
8
+ puts <<doco
9
+
10
+ syntax-on == %{ vim-based syntax highlighing }
11
+
12
+ Usage:
13
+ syntax-on -h/--help [Not Implemented Yet]
14
+ syntax-on -v/--version [Not Implemented Yet]
15
+ syntax-on command [options]
16
+
17
+ Examples:
18
+ syntax-on highlight my-file.rb
19
+
20
+ Further help:
21
+ syntax-on commands # list all available commands
22
+ syntax-on help <COMMAND> # show help for COMMAND
23
+ syntax-on help # show this help message
24
+
25
+ doco
26
+ end
27
+
28
+ def highlight_help
29
+ <<doco
30
+ Usage: #{ script_name } highlight [OPTIONS] FILE
31
+
32
+ Options:
33
+ -p, --preview Preview file in Firefox
34
+ -t, --theme THEME Theme to use (default :remi)
35
+ -s, --syntax SYNTAX Specify syntax to use
36
+ -o, --output FILE Specify name of file to create,
37
+ output is echoed if -o STDOUT
38
+ -c, --code CODE Specify code to use in place of
39
+ a file (also checks STDIN)
40
+
41
+ Arguments:
42
+ FILE Name of the file to highlight
43
+
44
+ Summary:
45
+ Create a syntax highlighted HTML file
46
+ doco
47
+ end
48
+ def highlight *args
49
+ options = { :theme => :remi }
50
+ opts = OptionParser.new do |opts|
51
+ opts.on('-p','--preview'){ options[:preview] = true }
52
+ opts.on('-t','--theme [THEME]'){ |theme| options[:theme] = theme }
53
+ opts.on('-s','--syntax [SYNTAX]'){ |syntax| options[:syntax] = syntax }
54
+ opts.on('-o','--output [FILE]'){ |file| options[:output] = file }
55
+ opts.on('-c','--code [CODE]'){ |code| options[:code] = (code.nil? ? STDIN.readlines.join('') : code) }
56
+ end
57
+ opts.parse! args
58
+ file = args.last
59
+ out = File.expand_path( options[:output] || "#{ file }.html" )
60
+
61
+ if options[:code] or ( file and File.file? file )
62
+ css = SyntaxOn::theme options[:theme]
63
+ html = SyntaxOn.new( options[:code], :syntax => options[:syntax], :file => file ).to_html
64
+ html = <<HTML
65
+ <html>
66
+ <head>
67
+ <style type="text/css">
68
+ <!--#{ css }-->
69
+ </style>
70
+ </head>
71
+ <body>
72
+ <pre>
73
+ #{ html }
74
+ </pre>
75
+ </body>
76
+ </html>
77
+ HTML
78
+ unless options[:output] == 'STDOUT'
79
+ File.open(out, 'w') do |f|
80
+ f << html
81
+ end
82
+ system("firefox #{out} &") if options[:preview]
83
+ else
84
+ puts html
85
+ end
86
+ else
87
+ help :highlight
88
+ end
89
+ end
90
+
91
+ end
data/lib/syntax-on.rb ADDED
@@ -0,0 +1,78 @@
1
+ $:.unshift File.dirname(__FILE__)
2
+
3
+ require 'rubygems'
4
+ require 'fileutils'
5
+
6
+ class Array
7
+ def to_vim_args
8
+ self.map{ |option| %{+"#{ option.gsub('"',"'") }"} }.join ' '
9
+ end
10
+ end
11
+
12
+ class SyntaxOn
13
+
14
+ VIM_BIN = 'vim'
15
+ VIM_OPTIONS = [ "syntax on" ]
16
+ VIM_RENDER = [ "exe 'normal zR'", "runtime\\! syntax/2html.vim", "wq", "q" ]
17
+ TEMP_DIRECTORY = '/tmp/syntax-on'
18
+ TEMP_FILENAME = lambda { Time.now.strftime '%Y-%d-%m_%Hh-%Mm-%Ss' }
19
+
20
+ attr_accessor :code, :syntax
21
+
22
+ def initialize code, options = { :syntax => nil }
23
+ @code = code
24
+ if options[:file] and File.file? options[:file]
25
+ @file = options[:file]
26
+ @code = File.read @file
27
+ end
28
+ @syntax = options[:syntax]
29
+ end
30
+
31
+ def to_html options = { :line_numbers => true }
32
+ setup_temp_dir
33
+ create_temp_file
34
+ setup_vim_options options
35
+ render
36
+ @html = File.read(@html_file).match(/<pre>(.*)<\/pre>/m)[1].strip
37
+ end
38
+
39
+ def self.theme name = :remi
40
+ File.read( File.dirname(__FILE__) + "/../themes/#{ name }.css" )
41
+ end
42
+
43
+ private
44
+
45
+ def setup_temp_dir
46
+ FileUtils.mkdir_p TEMP_DIRECTORY
47
+ FileUtils.cd TEMP_DIRECTORY
48
+ end
49
+
50
+ def create_temp_file
51
+ @filename = File.join TEMP_DIRECTORY, TEMP_FILENAME.call
52
+ @filename << "_#{ File.basename @file }" if @file
53
+ File.open(@filename, 'w'){|f| f << @code }
54
+ end
55
+
56
+ def setup_vim_options options = {}
57
+ @options = VIM_OPTIONS.clone
58
+ @options << "setfiletype #{ @syntax.to_s }" if @syntax
59
+ @options << 'set nonumber' if options[:line_numbers] = false
60
+ end
61
+
62
+ def command_string
63
+ "#{ VIM_BIN } #{ @options.to_vim_args } #{ VIM_RENDER.to_vim_args } #{ @filename } &>/dev/null"
64
+ end
65
+
66
+ def render
67
+ @output = `#{ command_string }`
68
+ @html_file = "#{ @filename }.html"
69
+ end
70
+
71
+ end
72
+
73
+ rc = File.expand_path '~/.syntaxonrc'
74
+ eval File.read(rc) if File.file? rc
75
+
76
+ unless `which #{ SyntaxOn::VIM_BIN }`.strip =~ /^\/(.*)#{ SyntaxOn::VIM_BIN }$/
77
+ puts "SyntaxOn WARNING: VIM_BIN[#{ SyntaxOn::VIM_BIN.inspect }] not found in PATH"
78
+ end
data/themes/blue.css ADDED
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #bebebe; }
2
+ .Statement { color: #ffffff; }
3
+ .PreProc { color: #00ff00; }
4
+ .Special { color: #ff00ff; }
5
+ .Constant { color: #00ffff; }
6
+ .Comment { color: #bebebe; font-weight: bold; }
7
+ .Type { color: #ffa500; font-weight: bold; }
8
+ pre { font-family: monospace; color: #ffff00; background-color: #00008b; }
9
+ body { font-family: monospace; color: #ffff00; background-color: #00008b; }
10
+ .lnr { color: #00ffff; }
11
+ .Folded { color: #000000; background-color: #ffa500; }
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #40ffff; }
2
+ .Statement { color: #ffff60; }
3
+ .PreProc { color: #ff80ff; }
4
+ .Special { color: #ffa500; }
5
+ .Constant { color: #ffa0a0; }
6
+ .Comment { color: #80a0ff; }
7
+ .Type { color: #60ff60; }
8
+ pre { font-family: monospace; color: #c0c0c0; background-color: #000040; }
9
+ body { font-family: monospace; color: #c0c0c0; background-color: #000040; }
10
+ .lnr { color: #90f020; }
11
+ .Folded { color: #808080; background-color: #000040; }
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #008b8b; }
2
+ .Statement { color: #a52a2a; font-weight: bold; }
3
+ .PreProc { color: #a020f0; }
4
+ .Special { color: #6a5acd; }
5
+ .Constant { color: #ff00ff; }
6
+ .Comment { color: #0000ff; }
7
+ .Type { color: #2e8b57; font-weight: bold; }
8
+ pre { font-family: monospace; color: #000000; background-color: #ffffff; }
9
+ body { font-family: monospace; color: #000000; background-color: #ffffff; }
10
+ .lnr { color: #a52a2a; }
11
+ .Folded { color: #00008b; background-color: #d3d3d3; }
data/themes/delek.css ADDED
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #008b8b; }
2
+ .Statement { color: #0000ff; font-weight: bold; }
3
+ .PreProc { color: #cd00cd; }
4
+ .Special { color: #ff1493; }
5
+ .Constant { color: #00cd00; }
6
+ .Comment { color: #ee0000; }
7
+ .Type { color: #0000ff; font-weight: bold; }
8
+ pre { font-family: monospace; color: #000000; background-color: #ffffff; }
9
+ body { font-family: monospace; color: #000000; background-color: #ffffff; }
10
+ .lnr { color: #a52a2a; }
11
+ .Folded { color: #00008b; background-color: #d3d3d3; }
data/themes/desert.css ADDED
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #98fb98; }
2
+ .Statement { color: #f0e68c; font-weight: bold; }
3
+ .PreProc { color: #cd5c5c; }
4
+ .Special { color: #ffdead; }
5
+ .Constant { color: #ffa0a0; }
6
+ .Comment { color: #87ceeb; }
7
+ .Type { color: #bdb76b; font-weight: bold; }
8
+ pre { font-family: monospace; color: #ffffff; background-color: #333333; }
9
+ body { font-family: monospace; color: #ffffff; background-color: #333333; }
10
+ .lnr { color: #ffff00; }
11
+ .Folded { color: #ffd700; background-color: #4d4d4d; }
@@ -0,0 +1,12 @@
1
+ .Identifier { color: #40ffff; }
2
+ .Function { color: #ffffff; }
3
+ .Statement { color: #aa4444; font-weight: bold; }
4
+ .PreProc { color: #ff80ff; }
5
+ .Special { color: #ff0000; }
6
+ .Constant { color: #ff00ff; }
7
+ .Comment { color: #80a0ff; }
8
+ .Type { color: #60ff60; font-weight: bold; }
9
+ pre { font-family: monospace; color: #00ffff; background-color: #000000; }
10
+ body { font-family: monospace; color: #00ffff; background-color: #000000; }
11
+ .lnr { color: #ffff00; }
12
+ .Folded { color: #00ffff; background-color: #a9a9a9; }
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #40ffff; }
2
+ .Statement { color: #ffff60; font-weight: bold; }
3
+ .PreProc { color: #ff80ff; }
4
+ .Special { color: #ffa500; background-color: #0d0d0d; }
5
+ .Constant { color: #ffa0a0; background-color: #0d0d0d; }
6
+ .Comment { color: #80a0ff; }
7
+ .Type { color: #60ff60; font-weight: bold; }
8
+ pre { font-family: monospace; color: #ffffff; background-color: #333333; }
9
+ body { font-family: monospace; color: #ffffff; background-color: #333333; }
10
+ .lnr { color: #ffff00; }
11
+ .Folded { color: #00008b; background-color: #d3d3d3; }
@@ -0,0 +1,18 @@
1
+ #! /bin/bash
2
+ for theme in /usr/share/vim/vim71/colors/*.vim
3
+ do
4
+ echo $theme
5
+ theme="$(basename $theme)"
6
+ theme="${theme/.vim/}"
7
+ echo "generating theme: $theme"
8
+ gvim -f +"exe 'normal GzO'" +"colorscheme $theme" +"run! syntax/2html.vim" +"wq" +"q" example.rb
9
+ mv example.rb.html $theme.html
10
+ done
11
+
12
+ for html in *.html
13
+ do
14
+ theme="${html/.html/}"
15
+ echo "$theme.html" | ruby -e 'puts File.read(STDIN.readlines.first.strip).match(/css">\n<!--\n(.*).-->/m)[1]' > $theme.css
16
+ done
17
+
18
+ rm *.html
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #40ffff; }
2
+ .Statement { color: #ffff60; font-weight: bold; }
3
+ .PreProc { color: #ff80ff; }
4
+ .Special { color: #ffa500; }
5
+ .Constant { color: #ffa0a0; }
6
+ .Comment { color: #80a0ff; }
7
+ .Type { color: #60ff60; font-weight: bold; }
8
+ pre { font-family: monospace; color: #ffffff; background-color: #000000; }
9
+ body { font-family: monospace; color: #ffffff; background-color: #000000; }
10
+ .lnr { color: #ffff00; }
11
+ .Folded { color: #00ffff; background-color: #a9a9a9; }
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #008b8b; }
2
+ .Statement { color: #a52a2a; font-weight: bold; }
3
+ .PreProc { color: #a020f0; }
4
+ .Special { color: #6a5acd; background-color: #f2f2f2; }
5
+ .Constant { color: #ff00ff; background-color: #f2f2f2; }
6
+ .Comment { color: #0000ff; }
7
+ .Type { color: #2e8b57; font-weight: bold; }
8
+ pre { font-family: monospace; color: #000000; background-color: #e5e5e5; }
9
+ body { font-family: monospace; color: #000000; background-color: #e5e5e5; }
10
+ .lnr { color: #a52a2a; }
11
+ .Folded { color: #00008b; background-color: #d3d3d3; }
data/themes/murphy.css ADDED
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #00ffff; }
2
+ .Statement { color: #ffff00; }
3
+ .PreProc { color: #f5deb3; }
4
+ .Special { color: #ff00ff; }
5
+ .Constant { color: #ffffff; }
6
+ .Comment { color: #ffa500; }
7
+ .Type { color: #bebebe; }
8
+ pre { font-family: monospace; color: #90ee90; background-color: #000000; }
9
+ body { font-family: monospace; color: #90ee90; background-color: #000000; }
10
+ .lnr { color: #ffff00; }
11
+ .Folded { color: #00ffff; background-color: #a9a9a9; }
data/themes/pablo.css ADDED
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #00c0c0; }
2
+ .Statement { color: #c0c000; font-weight: bold; }
3
+ .PreProc { color: #00ff00; }
4
+ .Special { color: #0000ff; }
5
+ .Constant { color: #00ffff; }
6
+ .Comment { color: #808080; }
7
+ .Type { color: #00c000; font-weight: bold; }
8
+ pre { font-family: monospace; color: #ffffff; background-color: #000000; }
9
+ body { font-family: monospace; color: #ffffff; background-color: #000000; }
10
+ .lnr { color: #ffff00; }
11
+ .Folded { color: #00ffff; background-color: #a9a9a9; }
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #008b8b; }
2
+ .Statement { color: #a52a2a; font-weight: bold; }
3
+ .PreProc { color: #cd00cd; }
4
+ .Special { color: #6a5acd; }
5
+ .Constant { color: #c00058; }
6
+ .Comment { color: #406090; }
7
+ .Type { color: #2e8b57; font-weight: bold; }
8
+ pre { font-family: monospace; color: #000000; background-color: #ffdab9; }
9
+ body { font-family: monospace; color: #000000; background-color: #ffdab9; }
10
+ .lnr { color: #cd0000; }
11
+ .Folded { color: #000000; background-color: #e3c1a5; }
data/themes/remi.css ADDED
@@ -0,0 +1,13 @@
1
+ pre { margin-left: 1pt; padding: 5pt; }
2
+ pre { color: #e1e1e1; background-color: #030507; }
3
+ .Constant { color: #ca0101; }
4
+ .Identifier { color: #06989a; }
5
+ .PreProc { color: #75507b; }
6
+ .Underlined { color: #75507b; }
7
+ .Title { color: #75507b; }
8
+ .Special { color: #75507b; }
9
+ .Statement { color: #bd9901; }
10
+ .Type { color: #4e9a06; }
11
+ .Comment { color: #3465a4; }
12
+ .lnr { color: #bd9901; }
13
+ a[href] { color: #D52222; }
data/themes/ron.css ADDED
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #00ffff; }
2
+ .Statement { color: #add8e6; }
3
+ .PreProc { color: #eea9b8; }
4
+ .Special { color: #ffff00; }
5
+ .Constant { color: #00ffff; font-weight: bold; }
6
+ .Comment { color: #00ff00; }
7
+ .Type { color: #2e8b57; font-weight: bold; }
8
+ pre { font-family: monospace; color: #00ffff; background-color: #000000; }
9
+ body { font-family: monospace; color: #00ffff; background-color: #000000; }
10
+ .lnr { color: #a9a9a9; }
11
+ .Folded { color: #00ffff; background-color: #4d4d4d; }
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #ffffff; }
2
+ .Statement { color: #f9bb00; }
3
+ .PreProc { color: #f9bb00; }
4
+ .Special { color: #00cc00; }
5
+ .Constant { color: #00cc00; }
6
+ .Comment { color: #428bdd; }
7
+ .Type { color: #ffffff; text-decoration: underline; }
8
+ pre { font-family: monospace; color: #c7d4e2; background-color: #162433; }
9
+ body { font-family: monospace; color: #c7d4e2; background-color: #162433; }
10
+ .lnr { color: #ffc0cb; }
11
+ .Folded { color: #000000; background-color: #ffa500; }
data/themes/shine.css ADDED
@@ -0,0 +1,12 @@
1
+ .Identifier { color: #008b8b; }
2
+ .Statement { color: #a52a2a; font-weight: bold; }
3
+ .Number { color: #ffbbbb; font-weight: bold; }
4
+ .PreProc { color: #a020f0; }
5
+ .Special { color: #ff8c00; background-color: #cccccc; }
6
+ .Constant { color: #a07070; background-color: #cccccc; }
7
+ .Comment { color: #a9a9a9; font-weight: bold; }
8
+ .Type { color: #2e8b57; font-weight: bold; }
9
+ pre { font-family: monospace; color: #000000; background-color: #ffffff; }
10
+ body { font-family: monospace; color: #000000; background-color: #ffffff; }
11
+ .lnr { color: #ffff00; }
12
+ .Folded { color: #00008b; background-color: #d3d3d3; }
data/themes/slate.css ADDED
@@ -0,0 +1,14 @@
1
+ .Identifier { color: #fa8072; }
2
+ .Function { color: #ffdead; }
3
+ .Statement { color: #6495ed; font-weight: bold; }
4
+ .Include { color: #ff0000; }
5
+ .Special { color: #bdb76b; }
6
+ .String { color: #87ceeb; }
7
+ .Comment { color: #666666; }
8
+ .Type { color: #6495ed; font-weight: bold; }
9
+ .Constant { color: #ffa0a0; }
10
+ .Define { color: #ffd700; font-weight: bold; }
11
+ pre { font-family: monospace; color: #ffffff; background-color: #262626; }
12
+ body { font-family: monospace; color: #ffffff; background-color: #262626; }
13
+ .lnr { color: #7f7f7f; }
14
+ .Folded { color: #666666; background-color: #000000; }
data/themes/torte.css ADDED
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #40ffff; }
2
+ .Statement { color: #ffff00; }
3
+ .PreProc { color: #ff80ff; }
4
+ .Special { color: #ffa500; }
5
+ .Constant { color: #ffa0a0; }
6
+ .Comment { color: #80a0ff; }
7
+ .Type { color: #60ff60; }
8
+ pre { font-family: monospace; color: #cccccc; background-color: #000000; }
9
+ body { font-family: monospace; color: #cccccc; background-color: #000000; }
10
+ .lnr { color: #ffff00; }
11
+ .Folded { color: #00ffff; background-color: #a9a9a9; }
@@ -0,0 +1,11 @@
1
+ .Identifier { color: #0000ff; }
2
+ .Statement { color: #a52a2a; }
3
+ .PreProc { color: #a020f0; }
4
+ .Special { color: #ff00ff; }
5
+ .Constant { color: #ff00ff; }
6
+ .Comment { color: #ff0000; }
7
+ .Type { color: #0000ff; }
8
+ pre { font-family: monospace; color: #000000; background-color: #ffffff; }
9
+ body { font-family: monospace; color: #000000; background-color: #ffffff; }
10
+ .lnr { color: #a52a2a; }
11
+ .Folded { color: #00008b; background-color: #d3d3d3; }
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: remi-syntax-on
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.5
5
+ platform: ruby
6
+ authors:
7
+ - remi Taylor
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-05-09 00:00:00 -07:00
13
+ default_executable: syntax-on
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: simplecli
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">"
21
+ - !ruby/object:Gem::Version
22
+ version: 0.0.0
23
+ version:
24
+ description: Syntax-on is a library/cli/website for highlighting source by automating vim
25
+ email: remi@remitaylor.com
26
+ executables:
27
+ - syntax-on
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - README
32
+ files:
33
+ - bin/syntax-on
34
+ - lib/syntax-on.rb
35
+ - lib/syntax-on/bin.rb
36
+ - themes/rubyblue.css
37
+ - themes/peachpuff.css
38
+ - themes/blue.css
39
+ - themes/generate-theme-files
40
+ - themes/darkblue.css
41
+ - themes/slate.css
42
+ - themes/murphy.css
43
+ - themes/elflord.css
44
+ - themes/desert.css
45
+ - themes/koehler.css
46
+ - themes/pablo.css
47
+ - themes/default.css
48
+ - themes/delek.css
49
+ - themes/evening.css
50
+ - themes/morning.css
51
+ - themes/ron.css
52
+ - themes/remi.css
53
+ - themes/zellner.css
54
+ - themes/torte.css
55
+ - themes/shine.css
56
+ - README
57
+ has_rdoc: true
58
+ homepage: http://github.com/remi/syntax-on
59
+ post_install_message:
60
+ rdoc_options:
61
+ - --quiet
62
+ - --title
63
+ - syntax-on - vim-based syntax highlighting
64
+ - --opname
65
+ - index.html
66
+ - --line-numbers
67
+ - --main
68
+ - README
69
+ - --inline-source
70
+ require_paths:
71
+ - lib
72
+ required_ruby_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: "0"
83
+ version:
84
+ requirements: []
85
+
86
+ rubyforge_project:
87
+ rubygems_version: 1.0.1
88
+ signing_key:
89
+ specification_version: 2
90
+ summary: vim-based syntax highlighting
91
+ test_files: []
92
+