vimcolorscheme 0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +28 -0
- data/README.md +293 -0
- data/examples/simple_theme.rb +20 -0
- data/examples/vimscheme1.rb +27 -0
- data/lib/vimcolorscheme.rb +13 -0
- data/lib/vimcolorscheme/base.rb +11 -0
- data/lib/vimcolorscheme/comment_node.rb +15 -0
- data/lib/vimcolorscheme/document.rb +149 -0
- data/lib/vimcolorscheme/hex2term.rb +357 -0
- data/lib/vimcolorscheme/highlight_node.rb +114 -0
- data/lib/vimcolorscheme/raw_node.rb +15 -0
- data/spec/base_spec.rb +92 -0
- data/spec/comment_node_spec.rb +22 -0
- data/spec/hex2term_spec.rb +25 -0
- data/spec/highlight_node_spec.rb +77 -0
- data/spec/raw_node_spec.rb +12 -0
- data/spec/spec_helper.rb +1 -0
- data/vimcolorscheme.gemspec +16 -0
- metadata +64 -0
@@ -0,0 +1,15 @@
|
|
1
|
+
module VimColorScheme
|
2
|
+
class RawNode
|
3
|
+
# The raw node gets initialized with a string. This string will later just
|
4
|
+
# be printed as-is into the vim file.
|
5
|
+
def initialize raw
|
6
|
+
@raw = raw
|
7
|
+
end
|
8
|
+
|
9
|
+
# Just returns the value that was passed into the constructor of this
|
10
|
+
# object.
|
11
|
+
def to_s
|
12
|
+
@raw + "\n"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/spec/base_spec.rb
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
describe VimColorScheme::Base do
|
5
|
+
let :test_scheme do
|
6
|
+
VimColorScheme.new :test_scheme, :dark do
|
7
|
+
comment "This is a comment!"
|
8
|
+
comment do
|
9
|
+
"This is a block comment!"
|
10
|
+
end
|
11
|
+
|
12
|
+
highlight :Normal do
|
13
|
+
ctermfg '231'
|
14
|
+
ctermbg '31'
|
15
|
+
cterm :bold, :underline
|
16
|
+
end
|
17
|
+
|
18
|
+
raw "Some raw input."
|
19
|
+
|
20
|
+
raw do
|
21
|
+
"Some raw block input."
|
22
|
+
end
|
23
|
+
end.to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
let :test_scheme_path do
|
27
|
+
VimColorScheme::ROOTDIR + '/spec/data/test_scheme.vim'
|
28
|
+
end
|
29
|
+
|
30
|
+
let :test_scheme_object do
|
31
|
+
VimColorScheme.new :test_scheme, :dark do
|
32
|
+
highlight :Normal do
|
33
|
+
ctermfg '231'
|
34
|
+
ctermbg '31'
|
35
|
+
cterm :bold, :underline
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Ensure that the test scheme file does not exists for each test.
|
41
|
+
after :each do
|
42
|
+
FileUtils.rm test_scheme_path if File.exists?(test_scheme_path)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should print out the color scheme name" do
|
46
|
+
test_scheme.should include("let g:colors_name = 'test_scheme'")
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should set the background" do
|
50
|
+
test_scheme.should include("set background=dark")
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should clear highlighting at the start" do
|
54
|
+
test_scheme.should include("highlight clear")
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should check if syntax highlighting is on" do
|
58
|
+
test_scheme.should include("if exists('syntax_on')")
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should set bold and underline style values" do
|
62
|
+
test_scheme.should include("cterm=bold,underline")
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'should write to file with the save method' do
|
66
|
+
test_scheme_object.save!(test_scheme_path)
|
67
|
+
|
68
|
+
File.open(test_scheme_path) do |file|
|
69
|
+
file.read.should == test_scheme_object.to_s
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should render comments' do
|
74
|
+
test_scheme.should include('" This is a comment!' + "\n")
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should render block comments' do
|
78
|
+
test_scheme.should include('" This is a block comment!' + "\n")
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'should render comments at the top... at the top' do
|
82
|
+
test_scheme.start_with?('" This is a comment!' + "\n").should be_true
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should render raw' do
|
86
|
+
test_scheme.should include("Some raw input.\n")
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should render raw blocks' do
|
90
|
+
test_scheme.should include("Some raw block input.\n")
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VimColorScheme::CommentNode do
|
4
|
+
let :single_line_comment do
|
5
|
+
comment = VimColorScheme::CommentNode.new "This is a comment!"
|
6
|
+
comment.to_s
|
7
|
+
end
|
8
|
+
|
9
|
+
let :multi_line_comment do
|
10
|
+
comment = VimColorScheme::CommentNode.new "This is.\nA multiline.\nComment."
|
11
|
+
comment.to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should put the comment character on the front of a comment' do
|
15
|
+
single_line_comment.should == '" This is a comment!' + "\n"
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should render multiline comments properly' do
|
19
|
+
multi_line_comment.should == '" This is.' + "\n" + '" A multiline.' +
|
20
|
+
"\n" + '" Comment.' + "\n"
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VimColorScheme::Hex2Term do
|
4
|
+
# Just a method to reduce clutter in this test. Delegates to the Hex2Term
|
5
|
+
# class in the ColorSchemeRb module.
|
6
|
+
def convert value
|
7
|
+
VimColorScheme::Hex2Term.convert value
|
8
|
+
end
|
9
|
+
|
10
|
+
it "correctly convert hex colors to term colors" do
|
11
|
+
convert('123456').should == '23'
|
12
|
+
convert('00af00').should == '34'
|
13
|
+
convert('odadd6').should == '38'
|
14
|
+
|
15
|
+
convert('231').should == '#ffffff'
|
16
|
+
convert(231).should == '#ffffff'
|
17
|
+
convert(23).should == '#005f5f'
|
18
|
+
end
|
19
|
+
|
20
|
+
it "correctly handle hex number with leading hashes" do
|
21
|
+
convert('#123456').should == '23'
|
22
|
+
convert('#00af00').should == '34'
|
23
|
+
convert('#odadd6').should == '38'
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe VimColorScheme::HighlightNode do
|
4
|
+
let :guinode do
|
5
|
+
temp = VimColorScheme::HighlightNode.new :Normal
|
6
|
+
temp.guifg '#00af00'
|
7
|
+
temp.guibg '#00afd7'
|
8
|
+
temp.gui :bold
|
9
|
+
temp.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
let :ctermnode do
|
13
|
+
temp = VimColorScheme::HighlightNode.new :Normal
|
14
|
+
temp.ctermfg '34'
|
15
|
+
temp.ctermbg '35'
|
16
|
+
temp.cterm :italic
|
17
|
+
temp.gui :none
|
18
|
+
temp.to_s
|
19
|
+
end
|
20
|
+
|
21
|
+
let :bothnode do
|
22
|
+
temp = VimColorScheme::HighlightNode.new :Normal
|
23
|
+
temp.ctermfg '34'
|
24
|
+
temp.ctermbg '35'
|
25
|
+
temp.guifg '#00af00'
|
26
|
+
temp.guibg '#00afd7'
|
27
|
+
temp.to_s
|
28
|
+
end
|
29
|
+
|
30
|
+
let :reversenode do
|
31
|
+
temp = VimColorScheme::HighlightNode.new :Normal
|
32
|
+
temp.gui :reverse
|
33
|
+
temp.to_s
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should start with the word highlight' do
|
37
|
+
guinode.start_with?('highlight').should be_true
|
38
|
+
bothnode.start_with?('highlight').should be_true
|
39
|
+
ctermnode.start_with?('highlight').should be_true
|
40
|
+
reversenode.start_with?('highlight').should be_true
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should convert between gui and cterm colors correctly" do
|
44
|
+
guinode.should include('ctermfg=34')
|
45
|
+
guinode.should include('ctermbg=38')
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should convert between cterm and gui colors correctly" do
|
49
|
+
ctermnode.should include('guifg=#00af00')
|
50
|
+
ctermnode.should include('guibg=#00af5f')
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should not convert colors if both are present' do
|
54
|
+
bothnode.should include('ctermfg=34')
|
55
|
+
bothnode.should include('ctermbg=35')
|
56
|
+
bothnode.should include('guifg=#00af00')
|
57
|
+
bothnode.should include('guibg=#00afd7')
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should correctly default nodes to none if no value is given' do
|
61
|
+
bothnode.should include('gui=NONE')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should correctly convert :reverse values to REVERSE' do
|
65
|
+
reversenode.should include('gui=REVERSE')
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'should set gui to bold and correctly mirror that in cterm' do
|
69
|
+
guinode.should include('gui=bold')
|
70
|
+
guinode.should include('cterm=bold')
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should set not mirror gui and cterm if coth are set' do
|
74
|
+
ctermnode.should include('cterm=italic')
|
75
|
+
ctermnode.should include('gui=NONE')
|
76
|
+
end
|
77
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../lib/vimcolorscheme.rb'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = %q{vimcolorscheme}
|
3
|
+
s.version = "0.1"
|
4
|
+
s.date = %q{2012-05-01}
|
5
|
+
s.authors = ["Sam Rose"]
|
6
|
+
s.email = %q{samwho@lbak.co.uk}
|
7
|
+
s.summary = %q{A Ruby DSL for creating Vim color schemes}
|
8
|
+
s.homepage = %q{http://github.com/samwho/vimcolorscheme}
|
9
|
+
s.description = %q{Allows for creating of Vim color schemes using a nifty Ruby DSL}
|
10
|
+
s.required_ruby_version = '>= 1.8.7'
|
11
|
+
s.license = 'MIT'
|
12
|
+
|
13
|
+
# Add all files to the files parameter.
|
14
|
+
s.files = []
|
15
|
+
Dir["**/*.*"].each { |path| s.files.push path }
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vimcolorscheme
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.1'
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Sam Rose
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-05-01 00:00:00.000000000 Z
|
13
|
+
dependencies: []
|
14
|
+
description: Allows for creating of Vim color schemes using a nifty Ruby DSL
|
15
|
+
email: samwho@lbak.co.uk
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- vimcolorscheme-0.1.gem
|
21
|
+
- lib/vimcolorscheme.rb
|
22
|
+
- lib/vimcolorscheme/highlight_node.rb
|
23
|
+
- lib/vimcolorscheme/base.rb
|
24
|
+
- lib/vimcolorscheme/document.rb
|
25
|
+
- lib/vimcolorscheme/comment_node.rb
|
26
|
+
- lib/vimcolorscheme/hex2term.rb
|
27
|
+
- lib/vimcolorscheme/raw_node.rb
|
28
|
+
- README.md
|
29
|
+
- Gemfile.lock
|
30
|
+
- spec/comment_node_spec.rb
|
31
|
+
- spec/raw_node_spec.rb
|
32
|
+
- spec/spec_helper.rb
|
33
|
+
- spec/highlight_node_spec.rb
|
34
|
+
- spec/hex2term_spec.rb
|
35
|
+
- spec/base_spec.rb
|
36
|
+
- vimcolorscheme.gemspec
|
37
|
+
- examples/vimscheme1.rb
|
38
|
+
- examples/simple_theme.rb
|
39
|
+
homepage: http://github.com/samwho/vimcolorscheme
|
40
|
+
licenses:
|
41
|
+
- MIT
|
42
|
+
post_install_message:
|
43
|
+
rdoc_options: []
|
44
|
+
require_paths:
|
45
|
+
- lib
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: 1.8.7
|
52
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ! '>='
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
requirements: []
|
59
|
+
rubyforge_project:
|
60
|
+
rubygems_version: 1.8.23
|
61
|
+
signing_key:
|
62
|
+
specification_version: 3
|
63
|
+
summary: A Ruby DSL for creating Vim color schemes
|
64
|
+
test_files: []
|