autocolors 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.attic/colors.rb +308 -0
- data/.attic/colorscheme.rb +52 -0
- data/.attic/labtest.rb +39 -0
- data/.attic/sw2.erb +39 -0
- data/.attic/swatch.erb +39 -0
- data/.attic/swatch3.erb +14 -0
- data/.attic/test_swatch.rb +15 -0
- data/.attic/test_swatch2.rb +13 -0
- data/.yardopts +8 -0
- data/Gemfile +19 -0
- data/Gemfile.lock +40 -0
- data/LICENSE.txt +20 -0
- data/README.md +19 -0
- data/Rakefile +59 -0
- data/VERSION +1 -0
- data/analysis/textmate/textmate-in-the-wild.txt +586 -0
- data/analysis/vim/analyze-commonly-colored.sh +2 -0
- data/analysis/vim/analyze-mappings.rb +69 -0
- data/analysis/vim/common-mappings.list +1885 -0
- data/analysis/vim/commonly-colored.list +3160 -0
- data/analysis/vim/gather.sh +13 -0
- data/analysis/vim/statements.list +53490 -0
- data/autocolors.gemspec +101 -0
- data/format-samples/1/Sweyla866607.css +50 -0
- data/format-samples/1/Sweyla866607.tmTheme +255 -0
- data/format-samples/1/Sweyla866607.txt +40 -0
- data/format-samples/1/sweyla866607.el +27 -0
- data/format-samples/1/sweyla866607.vim +64 -0
- data/lib/VERSION +1 -0
- data/lib/autocolors/colors.rb +159 -0
- data/lib/autocolors/colorschemes.rb +121 -0
- data/lib/autocolors/mapping.udon +64 -0
- data/lib/autocolors/templates/colorscheme.vim +64 -0
- data/lib/autocolors.rb +6 -0
- data/notes +309 -0
- data/test/helper.rb +19 -0
- data/test/swatch.erb +19 -0
- data/test/test_autocolors.rb +7 -0
- metadata +190 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
def up(c,last)
|
4
|
+
return nil if (c.nil? || c.length == 0)
|
5
|
+
return last if c.upcase == c.downcase
|
6
|
+
return c.upcase == c
|
7
|
+
end
|
8
|
+
|
9
|
+
FULLWORDS = ['preproc', 'nontext', 'specialkey', 'errormsg', 'moremsg',
|
10
|
+
'warningmsg', 'modemsg', 'matchparen','spellbad', 'spellrare', 'spellcap',
|
11
|
+
'spelllocal', 'specialchar', 'precondit', 'specialcomment', 'storageclass',
|
12
|
+
'typedef', 'colorcolumn'].join('|')
|
13
|
+
|
14
|
+
def wordparts(word)
|
15
|
+
word = word.strip.gsub(/#{FULLWORDS}/ium){|m| m.capitalize}
|
16
|
+
res = []; acc = []; upc = nil
|
17
|
+
word = word.split //um
|
18
|
+
begin
|
19
|
+
letter = word.shift
|
20
|
+
cupc = up(letter, upc)
|
21
|
+
if cupc != upc
|
22
|
+
if cupc # lowercase to uppercase
|
23
|
+
res << acc.join('').downcase unless acc.size == 0
|
24
|
+
acc = [letter]
|
25
|
+
else # uppercase to lowercase
|
26
|
+
mine = acc.pop
|
27
|
+
res << acc.join('').downcase unless acc.size == 0
|
28
|
+
acc = [mine, letter]
|
29
|
+
end
|
30
|
+
else acc << letter end
|
31
|
+
upc = cupc
|
32
|
+
end while word.size > 0
|
33
|
+
res << acc.join('').downcase unless acc.size == 0
|
34
|
+
res = res.join('_')
|
35
|
+
return res.split(/_+/).reject{|s|(s.nil? || s.length==0)}.compact
|
36
|
+
end
|
37
|
+
|
38
|
+
mappings = {}
|
39
|
+
IO.readlines('./statements.list').each do |stmt|
|
40
|
+
orig = stmt
|
41
|
+
next unless stmt.start_with? 'map'
|
42
|
+
stmt = stmt.split(' ')
|
43
|
+
next unless stmt.size == 3
|
44
|
+
_, from, to = stmt
|
45
|
+
from = wordparts(from)
|
46
|
+
to = wordparts(to)
|
47
|
+
from[0] = '(lang)' if from.size > 1
|
48
|
+
|
49
|
+
fr = []
|
50
|
+
begin
|
51
|
+
fr << from.pop
|
52
|
+
fr << from.pop if from.last == '(lang)'
|
53
|
+
source = fr.reverse.join('/')
|
54
|
+
dest = to.join('/')
|
55
|
+
source = "#{from.size}/#{source}" if from.size > 0
|
56
|
+
mappings[dest] ||= {}
|
57
|
+
mappings[dest][source] ||= 0
|
58
|
+
mappings[dest][source] += 1
|
59
|
+
end while from.size > 0
|
60
|
+
end
|
61
|
+
|
62
|
+
mappings = mappings.map do |dest, sources|
|
63
|
+
sources = sources.to_a.reject{|src,num| num < 3 }
|
64
|
+
sources = sources.to_a
|
65
|
+
mag = sources.inject(0){|a,sn| a + sn[1]}
|
66
|
+
[dest, mag, sources.sort_by{|s,n| - n}]
|
67
|
+
end
|
68
|
+
require 'pp'
|
69
|
+
pp mappings.sort_by{|d,mag,srs| - mag }.reject{|d,mag,srs| (mag < 2 || srs.size == 0)}
|