utils 0.0.53 → 0.0.54

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.53
1
+ 0.0.54
data/bin/create_tags ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ paths = %w[ . ] + `bundle list --paths`.lines.map(&:chomp)
4
+ cmd = %w[ ctags --recurse=yes --languages=Ruby,C ] + paths
5
+ $DEBUG and warn "Executing #{cmd * ' '}."
6
+ system *cmd
7
+ megabytes = File.size('tags').to_f / 1024 ** 2 rescue nil
8
+ megabytes and warn 'Created %.3fM of tags.' % megabytes
@@ -0,0 +1,9 @@
1
+ " Language: CoffeeScript
2
+ " Maintainer: Sven Felix Oberquelle <Svelix.Github@gmail.com>
3
+ " URL: http://github.com/kchmck/vim-coffee-script
4
+ " License: WTFPL
5
+
6
+ " Inherit coffee from html so coffeeComment isn't redefined and given higher
7
+ " priority than hamlInterpolation.
8
+ syn cluster hamlCoffeescript contains=@htmlCoffeeScript
9
+ syn region hamlCoffeescriptFilter matchgroup=hamlFilter start="^\z(\s*\):coffeescript\s*$" end="^\%(\z1 \| *$\)\@!" contains=@hamlCoffeeScript,hamlInterpolation keepend
@@ -0,0 +1,11 @@
1
+ " Language: CoffeeScript
2
+ " Maintainer: Mick Koch <kchmck@gmail.com>
3
+ " URL: http://github.com/kchmck/vim-coffee-script
4
+ " License: WTFPL
5
+
6
+ " Syntax highlighting for text/coffeescript script tags
7
+ syn include @htmlCoffeeScript syntax/coffee.vim
8
+ syn region coffeeScript start=+<script [^>]*type *=[^>]*text/coffeescript[^>]*>+
9
+ \ end=+</script>+me=s-1 keepend
10
+ \ contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc
11
+ \ containedin=htmlHead
@@ -0,0 +1,68 @@
1
+ " Language: CoffeeScript
2
+ " Maintainer: Mick Koch <kchmck@gmail.com>
3
+ " URL: http://github.com/kchmck/vim-coffee-script
4
+ " License: WTFPL
5
+
6
+ if exists('current_compiler')
7
+ finish
8
+ endif
9
+
10
+ let current_compiler = 'coffee'
11
+ " Pattern to check if coffee is the compiler
12
+ let s:pat = '^' . current_compiler
13
+
14
+ " Extra options passed to CoffeeMake
15
+ if !exists("coffee_make_options")
16
+ let coffee_make_options = ""
17
+ endif
18
+
19
+ " Get a `makeprg` for the current filename. This is needed to support filenames
20
+ " with spaces and quotes, but also not break generic `make`.
21
+ function! s:GetMakePrg()
22
+ return 'coffee -c ' . g:coffee_make_options . ' $* ' . fnameescape(expand('%'))
23
+ endfunction
24
+
25
+ " Set `makeprg` and return 1 if coffee is still the compiler, else return 0.
26
+ function! s:SetMakePrg()
27
+ if &l:makeprg =~ s:pat
28
+ let &l:makeprg = s:GetMakePrg()
29
+ elseif &g:makeprg =~ s:pat
30
+ let &g:makeprg = s:GetMakePrg()
31
+ else
32
+ return 0
33
+ endif
34
+
35
+ return 1
36
+ endfunction
37
+
38
+ " Set a dummy compiler so we can check whether to set locally or globally.
39
+ CompilerSet makeprg=coffee
40
+ call s:SetMakePrg()
41
+
42
+ CompilerSet errorformat=Error:\ In\ %f\\,\ %m\ on\ line\ %l,
43
+ \Error:\ In\ %f\\,\ Parse\ error\ on\ line\ %l:\ %m,
44
+ \SyntaxError:\ In\ %f\\,\ %m,
45
+ \%-G%.%#
46
+
47
+ " Compile the current file.
48
+ command! -bang -bar -nargs=* CoffeeMake make<bang> <args>
49
+
50
+ " Set `makeprg` on rename since we embed the filename in the setting.
51
+ augroup CoffeeUpdateMakePrg
52
+ autocmd!
53
+
54
+ " Update `makeprg` if coffee is still the compiler, else stop running this
55
+ " function.
56
+ function! s:UpdateMakePrg()
57
+ if !s:SetMakePrg()
58
+ autocmd! CoffeeUpdateMakePrg
59
+ endif
60
+ endfunction
61
+
62
+ " Set autocmd locally if compiler was set locally.
63
+ if &l:makeprg =~ s:pat
64
+ autocmd BufFilePost,BufWritePost <buffer> call s:UpdateMakePrg()
65
+ else
66
+ autocmd BufFilePost,BufWritePost call s:UpdateMakePrg()
67
+ endif
68
+ augroup END
@@ -0,0 +1,116 @@
1
+ *coffee-script.txt* For Vim version 7.3
2
+
3
+ =============================================================================
4
+ Author: Mick Koch <kchmck@gmail.com> *coffee-script-author*
5
+ License: WTFPL (see |coffee-script-license|)
6
+ =============================================================================
7
+
8
+ CONTENTS *coffee-script-contents*
9
+
10
+ |coffee-script-introduction| Introduction and Feature Summary
11
+ |coffee-script-commands| Commands
12
+ |coffee-script-settings| Settings
13
+
14
+ {Vi does not have any of this}
15
+
16
+ =============================================================================
17
+
18
+ INTRODUCTION *coffee-script*
19
+ *coffee-script-introduction*
20
+
21
+ This plugin adds support for CoffeeScript syntax, indenting, and compiling.
22
+ Also included is an eco syntax and support for CoffeeScript in Haml and HTML.
23
+
24
+ COMMANDS *coffee-script-commands*
25
+
26
+ *:CoffeeMake*
27
+ :CoffeeMake[!] {opts} Wrapper around |:make| that also passes options in
28
+ |g:coffee_make_options| to the compiler. Use |:silent|
29
+ to hide compiler output. See |:make| for more
30
+ information about the bang and other helpful commands.
31
+
32
+ *:CoffeeCompile*
33
+ :[range]CoffeeCompile [vertical] [{win-size}]
34
+ Shows how the current file or [range] is compiled
35
+ to JavaScript. [vertical] (or vert) splits the
36
+ compile buffer vertically instead of horizontally, and
37
+ {win-size} sets the initial size of the buffer. It can
38
+ be closed quickly with the "q" key.
39
+
40
+ :CoffeeCompile {watch} [vertical] [{win-size}]
41
+ The watch mode of :CoffeeCompile emulates the "Try
42
+ CoffeeScript" live preview on the CoffeeScript web
43
+ site. After making changes to the source file,
44
+ exiting insert mode will cause the preview buffer to
45
+ update automatically. {watch} should be given as
46
+ "watch" or "unwatch," where the latter will stop the
47
+ automatic updating. [vertical] is recommended, and
48
+ 'scrollbind' is useful.
49
+
50
+ *:CoffeeRun*
51
+ :[range]CoffeeRun Compiles the file or [range] and runs the resulting
52
+ JavaScript, displaying the output.
53
+
54
+ SETTINGS *coffee-script-settings*
55
+
56
+ You can configure plugin behavior using global variables and syntax commands
57
+ in your |vimrc|.
58
+
59
+ Global Settings~
60
+
61
+ *g:coffee_make_options*
62
+ Set default options |CoffeeMake| should pass to the compiler.
63
+ >
64
+ let coffee_make_options = '--bare'
65
+ <
66
+ *g:coffee_compile_vert*
67
+ Split the CoffeeCompile buffer vertically by default.
68
+ >
69
+ let coffee_compile_vert = 1
70
+
71
+ Syntax Highlighting~
72
+ *ft-coffee-script-syntax*
73
+ Trailing whitespace is highlighted as an error by default. This can be
74
+ disabled with:
75
+ >
76
+ hi link coffeeSpaceError NONE
77
+
78
+ Trailing semicolons are also considered an error (for help transitioning from
79
+ JavaScript.) This can be disabled with:
80
+ >
81
+ hi link coffeeSemicolonError NONE
82
+
83
+ Reserved words like {function} and {var} are highlighted where they're not
84
+ allowed in CoffeeScript. This can be disabled with:
85
+ >
86
+ hi link coffeeReservedError NONE
87
+
88
+ COMPILER *compiler-coffee-script*
89
+
90
+ A CoffeeScript compiler is provided as a wrapper around {coffee} and can be
91
+ loaded with;
92
+ >
93
+ compiler coffee
94
+
95
+ This is done automatically when a CoffeeScript file is opened if no other
96
+ compiler is loaded.
97
+
98
+ =============================================================================
99
+
100
+ LICENSE *coffee-script-license*
101
+
102
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
103
+ Version 2, December 2004
104
+
105
+ Copyright (C) 2010 to 2011 Mick Koch <kchmck@gmail.com>
106
+
107
+ Everyone is permitted to copy and distribute verbatim or modified
108
+ copies of this license document, and changing it is allowed as long
109
+ as the name is changed.
110
+
111
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
112
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
113
+
114
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
115
+
116
+ vim:tw=78:ts=8:ft=help:norl:
@@ -0,0 +1,8 @@
1
+ " Language: CoffeeScript
2
+ " Maintainer: Mick Koch <kchmck@gmail.com>
3
+ " URL: http://github.com/kchmck/vim-coffee-script
4
+ " License: WTFPL
5
+
6
+ autocmd BufNewFile,BufRead *.coffee set filetype=coffee
7
+ autocmd BufNewFile,BufRead *Cakefile set filetype=coffee
8
+ autocmd BufNewFile,BufRead *.coffeekup set filetype=coffee
@@ -0,0 +1 @@
1
+ autocmd BufNewFile,BufRead *.eco set filetype=eco
@@ -0,0 +1,221 @@
1
+ " Language: CoffeeScript
2
+ " Maintainer: Mick Koch <kchmck@gmail.com>
3
+ " URL: http://github.com/kchmck/vim-coffee-script
4
+ " License: WTFPL
5
+
6
+ if exists("b:did_ftplugin")
7
+ finish
8
+ endif
9
+
10
+ let b:did_ftplugin = 1
11
+
12
+ setlocal formatoptions-=t formatoptions+=croql
13
+ setlocal comments=:#
14
+ setlocal commentstring=#\ %s
15
+ setlocal omnifunc=javascriptcomplete#CompleteJS
16
+
17
+ " Enable CoffeeMake if it won't overwrite any settings.
18
+ if !len(&l:makeprg)
19
+ compiler coffee
20
+ endif
21
+
22
+ " Reset the global variables used by CoffeeCompile.
23
+ function! s:CoffeeCompileResetVars()
24
+ " Position in the source buffer
25
+ let s:coffee_compile_src_buf = -1
26
+ let s:coffee_compile_src_pos = []
27
+
28
+ " Position in the CoffeeCompile buffer
29
+ let s:coffee_compile_buf = -1
30
+ let s:coffee_compile_win = -1
31
+ let s:coffee_compile_pos = []
32
+
33
+ " If CoffeeCompile is watching a buffer
34
+ let s:coffee_compile_watch = 0
35
+ endfunction
36
+
37
+ " Save the cursor position when moving to and from the CoffeeCompile buffer.
38
+ function! s:CoffeeCompileSavePos()
39
+ let buf = bufnr('%')
40
+ let pos = getpos('.')
41
+
42
+ if buf == s:coffee_compile_buf
43
+ let s:coffee_compile_pos = pos
44
+ else
45
+ let s:coffee_compile_src_buf = buf
46
+ let s:coffee_compile_src_pos = pos
47
+ endif
48
+ endfunction
49
+
50
+ " Restore the cursor to the source buffer.
51
+ function! s:CoffeeCompileRestorePos()
52
+ let win = bufwinnr(s:coffee_compile_src_buf)
53
+
54
+ if win != -1
55
+ exec win 'wincmd w'
56
+ call setpos('.', s:coffee_compile_src_pos)
57
+ endif
58
+ endfunction
59
+
60
+ " Close the CoffeeCompile buffer and clean things up.
61
+ function! s:CoffeeCompileClose()
62
+ silent! autocmd! CoffeeCompileAuPos
63
+ silent! autocmd! CoffeeCompileAuWatch
64
+
65
+ call s:CoffeeCompileRestorePos()
66
+ call s:CoffeeCompileResetVars()
67
+ endfunction
68
+
69
+ " Update the CoffeeCompile buffer given some input lines.
70
+ function! s:CoffeeCompileUpdate(startline, endline)
71
+ let input = join(getline(a:startline, a:endline), "\n")
72
+
73
+ " Coffee doesn't like empty input.
74
+ if !len(input)
75
+ return
76
+ endif
77
+
78
+ " Compile input.
79
+ let output = system('coffee -scb 2>&1', input)
80
+
81
+ " Move to the CoffeeCompile buffer.
82
+ exec s:coffee_compile_win 'wincmd w'
83
+
84
+ " Replace buffer contents with new output and delete the last empty line.
85
+ setlocal modifiable
86
+ exec '% delete _'
87
+ put! =output
88
+ exec '$ delete _'
89
+ setlocal nomodifiable
90
+
91
+ " Highlight as JavaScript if there is no compile error.
92
+ if v:shell_error
93
+ setlocal filetype=
94
+ else
95
+ setlocal filetype=javascript
96
+ endif
97
+
98
+ " Restore the cursor in the compiled output.
99
+ call setpos('.', s:coffee_compile_pos)
100
+ endfunction
101
+
102
+ " Update the CoffeeCompile buffer with the whole source buffer and restore the
103
+ " cursor.
104
+ function! s:CoffeeCompileWatchUpdate()
105
+ call s:CoffeeCompileSavePos()
106
+ call s:CoffeeCompileUpdate(1, '$')
107
+ call s:CoffeeCompileRestorePos()
108
+ endfunction
109
+
110
+ " Peek at compiled CoffeeScript in a scratch buffer. We handle ranges like this
111
+ " to prevent the cursor from being moved (and its position saved) before the
112
+ " function is called.
113
+ function! s:CoffeeCompile(startline, endline, args)
114
+ " Don't compile the CoffeeCompile buffer.
115
+ if bufnr('%') == s:coffee_compile_buf
116
+ return
117
+ endif
118
+
119
+ " Parse arguments.
120
+ let watch = a:args =~ '\<watch\>'
121
+ let unwatch = a:args =~ '\<unwatch\>'
122
+ let size = str2nr(matchstr(a:args, '\<\d\+\>'))
123
+
124
+ " Determine default split direction.
125
+ if exists("g:coffee_compile_vert")
126
+ let vert = 1
127
+ else
128
+ let vert = a:args =~ '\<vert\%[ical]\>'
129
+ endif
130
+
131
+ " Remove any watch listeners.
132
+ silent! autocmd! CoffeeCompileAuWatch
133
+
134
+ " If just unwatching, don't compile.
135
+ if unwatch
136
+ let s:coffee_compile_watch = 0
137
+ return
138
+ endif
139
+
140
+ if watch
141
+ let s:coffee_compile_watch = 1
142
+ endif
143
+
144
+ call s:CoffeeCompileSavePos()
145
+
146
+ " Build the CoffeeCompile buffer if it doesn't exist.
147
+ if s:coffee_compile_buf == -1
148
+ let src_win = bufwinnr(s:coffee_compile_src_buf)
149
+
150
+ " Create the new window and resize it.
151
+ if vert
152
+ let width = size ? size : winwidth(src_win) / 2
153
+
154
+ vertical new
155
+ exec 'vertical resize' width
156
+ else
157
+ " Try to guess the compiled output's height.
158
+ let height = size ? size : min([winheight(src_win) / 2,
159
+ \ a:endline - a:startline + 2])
160
+
161
+ botright new
162
+ exec 'resize' height
163
+ endif
164
+
165
+ " Set up scratch buffer.
166
+ setlocal bufhidden=wipe buftype=nofile
167
+ setlocal nobuflisted nomodifiable noswapfile nowrap
168
+
169
+ autocmd BufWipeout <buffer> call s:CoffeeCompileClose()
170
+ nnoremap <buffer> <silent> q :hide<CR>
171
+
172
+ " Save the cursor position on each buffer switch.
173
+ augroup CoffeeCompileAuPos
174
+ autocmd BufEnter,BufLeave * call s:CoffeeCompileSavePos()
175
+ augroup END
176
+
177
+ let s:coffee_compile_buf = bufnr('%')
178
+ let s:coffee_compile_win = bufwinnr(s:coffee_compile_buf)
179
+ endif
180
+
181
+ " Go back to the source buffer and do the initial compile.
182
+ call s:CoffeeCompileRestorePos()
183
+
184
+ if s:coffee_compile_watch
185
+ call s:CoffeeCompileWatchUpdate()
186
+
187
+ augroup CoffeeCompileAuWatch
188
+ autocmd InsertLeave <buffer> call s:CoffeeCompileWatchUpdate()
189
+ augroup END
190
+ else
191
+ call s:CoffeeCompileUpdate(a:startline, a:endline)
192
+ endif
193
+ endfunction
194
+
195
+ " Complete arguments for the CoffeeCompile command.
196
+ function! s:CoffeeCompileComplete(arg, cmdline, cursor)
197
+ let args = ['unwatch', 'vertical', 'watch']
198
+
199
+ if !len(a:arg)
200
+ return args
201
+ endif
202
+
203
+ let match = '^' . a:arg
204
+
205
+ for arg in args
206
+ if arg =~ match
207
+ return [arg]
208
+ endif
209
+ endfor
210
+ endfunction
211
+
212
+ " Don't let new windows overwrite the CoffeeCompile variables.
213
+ if !exists("s:coffee_compile_buf")
214
+ call s:CoffeeCompileResetVars()
215
+ endif
216
+
217
+ " Peek at compiled CoffeeScript.
218
+ command! -range=% -bar -nargs=* -complete=customlist,s:CoffeeCompileComplete
219
+ \ CoffeeCompile call s:CoffeeCompile(<line1>, <line2>, <q-args>)
220
+ " Run some CoffeeScript.
221
+ command! -range=% -bar CoffeeRun <line1>,<line2>:w !coffee -s
@@ -0,0 +1,338 @@
1
+ " Language: CoffeeScript
2
+ " Maintainer: Mick Koch <kchmck@gmail.com>
3
+ " URL: http://github.com/kchmck/vim-coffee-script
4
+ " License: WTFPL
5
+
6
+ if exists("b:did_indent")
7
+ finish
8
+ endif
9
+
10
+ let b:did_indent = 1
11
+
12
+ setlocal autoindent
13
+ setlocal indentexpr=GetCoffeeIndent(v:lnum)
14
+ " Make sure GetCoffeeIndent is run when these are typed so they can be
15
+ " indented or outdented.
16
+ setlocal indentkeys+=0],0),0.,=else,=when,=catch,=finally
17
+
18
+ " Only define the function once.
19
+ if exists("*GetCoffeeIndent")
20
+ finish
21
+ endif
22
+
23
+ " Keywords to indent after
24
+ let s:INDENT_AFTER_KEYWORD = '^\%(if\|unless\|else\|for\|while\|until\|'
25
+ \ . 'loop\|switch\|when\|try\|catch\|finally\|'
26
+ \ . 'class\)\>'
27
+
28
+ " Operators to indent after
29
+ let s:INDENT_AFTER_OPERATOR = '\%([([{:=]\|[-=]>\)$'
30
+
31
+ " Keywords and operators that continue a line
32
+ let s:CONTINUATION = '\<\%(is\|isnt\|and\|or\)\>$'
33
+ \ . '\|'
34
+ \ . '\%(-\@<!-\|+\@<!+\|<\|[-=]\@<!>\|\*\|/\@<!/\|%\||\|'
35
+ \ . '&\|,\|\.\@<!\.\)$'
36
+
37
+ " Operators that block continuation indenting
38
+ let s:CONTINUATION_BLOCK = '[([{:=]$'
39
+
40
+ " A continuation dot access
41
+ let s:DOT_ACCESS = '^\.'
42
+
43
+ " Keywords to outdent after
44
+ let s:OUTDENT_AFTER = '^\%(return\|break\|continue\|throw\)\>'
45
+
46
+ " A compound assignment like `... = if ...`
47
+ let s:COMPOUND_ASSIGNMENT = '[:=]\s*\%(if\|unless\|for\|while\|until\|'
48
+ \ . 'switch\|try\|class\)\>'
49
+
50
+ " A postfix condition like `return ... if ...`.
51
+ let s:POSTFIX_CONDITION = '\S\s\+\zs\<\%(if\|unless\)\>'
52
+
53
+ " A single-line else statement like `else ...` but not `else if ...
54
+ let s:SINGLE_LINE_ELSE = '^else\s\+\%(\<\%(if\|unless\)\>\)\@!'
55
+
56
+ " Max lines to look back for a match
57
+ let s:MAX_LOOKBACK = 50
58
+
59
+ " Syntax names for strings
60
+ let s:SYNTAX_STRING = 'coffee\%(String\|AssignString\|Embed\|Regex\|Heregex\|'
61
+ \ . 'Heredoc\)'
62
+
63
+ " Syntax names for comments
64
+ let s:SYNTAX_COMMENT = 'coffee\%(Comment\|BlockComment\|HeregexComment\)'
65
+
66
+ " Syntax names for strings and comments
67
+ let s:SYNTAX_STRING_COMMENT = s:SYNTAX_STRING . '\|' . s:SYNTAX_COMMENT
68
+
69
+ " Get the linked syntax name of a character.
70
+ function! s:SyntaxName(linenum, col)
71
+ return synIDattr(synID(a:linenum, a:col, 1), 'name')
72
+ endfunction
73
+
74
+ " Check if a character is in a comment.
75
+ function! s:IsComment(linenum, col)
76
+ return s:SyntaxName(a:linenum, a:col) =~ s:SYNTAX_COMMENT
77
+ endfunction
78
+
79
+ " Check if a character is in a string.
80
+ function! s:IsString(linenum, col)
81
+ return s:SyntaxName(a:linenum, a:col) =~ s:SYNTAX_STRING
82
+ endfunction
83
+
84
+ " Check if a character is in a comment or string.
85
+ function! s:IsCommentOrString(linenum, col)
86
+ return s:SyntaxName(a:linenum, a:col) =~ s:SYNTAX_STRING_COMMENT
87
+ endfunction
88
+
89
+ " Check if a whole line is a comment.
90
+ function! s:IsCommentLine(linenum)
91
+ " Check the first non-whitespace character.
92
+ return s:IsComment(a:linenum, indent(a:linenum) + 1)
93
+ endfunction
94
+
95
+ " Repeatedly search a line for a regex until one is found outside a string or
96
+ " comment.
97
+ function! s:SmartSearch(linenum, regex)
98
+ " Start at the first column.
99
+ let col = 0
100
+
101
+ " Search until there are no more matches, unless a good match is found.
102
+ while 1
103
+ call cursor(a:linenum, col + 1)
104
+ let [_, col] = searchpos(a:regex, 'cn', a:linenum)
105
+
106
+ " No more matches.
107
+ if !col
108
+ break
109
+ endif
110
+
111
+ if !s:IsCommentOrString(a:linenum, col)
112
+ return 1
113
+ endif
114
+ endwhile
115
+
116
+ " No good match found.
117
+ return 0
118
+ endfunction
119
+
120
+ " Skip a match if it's in a comment or string, is a single-line statement that
121
+ " isn't adjacent, or is a postfix condition.
122
+ function! s:ShouldSkip(startlinenum, linenum, col)
123
+ if s:IsCommentOrString(a:linenum, a:col)
124
+ return 1
125
+ endif
126
+
127
+ " Check for a single-line statement that isn't adjacent.
128
+ if s:SmartSearch(a:linenum, '\<then\>') && a:startlinenum - a:linenum > 1
129
+ return 1
130
+ endif
131
+
132
+ if s:SmartSearch(a:linenum, s:POSTFIX_CONDITION) &&
133
+ \ !s:SmartSearch(a:linenum, s:COMPOUND_ASSIGNMENT)
134
+ return 1
135
+ endif
136
+
137
+ return 0
138
+ endfunction
139
+
140
+ " Find the farthest line to look back to, capped to line 1 (zero and negative
141
+ " numbers cause bad things).
142
+ function! s:MaxLookback(startlinenum)
143
+ return max([1, a:startlinenum - s:MAX_LOOKBACK])
144
+ endfunction
145
+
146
+ " Get the skip expression for searchpair().
147
+ function! s:SkipExpr(startlinenum)
148
+ return "s:ShouldSkip(" . a:startlinenum . ", line('.'), col('.'))"
149
+ endfunction
150
+
151
+ " Search for pairs of text.
152
+ function! s:SearchPair(start, end)
153
+ " The cursor must be in the first column for regexes to match.
154
+ call cursor(0, 1)
155
+
156
+ let startlinenum = line('.')
157
+
158
+ " Don't need the W flag since MaxLookback caps the search to line 1.
159
+ return searchpair(a:start, '', a:end, 'bcn',
160
+ \ s:SkipExpr(startlinenum),
161
+ \ s:MaxLookback(startlinenum))
162
+ endfunction
163
+
164
+ " Try to find a previous matching line.
165
+ function! s:GetMatch(curline)
166
+ let firstchar = a:curline[0]
167
+
168
+ if firstchar == '}'
169
+ return s:SearchPair('{', '}')
170
+ elseif firstchar == ')'
171
+ return s:SearchPair('(', ')')
172
+ elseif firstchar == ']'
173
+ return s:SearchPair('\[', '\]')
174
+ elseif a:curline =~ '^else\>'
175
+ return s:SearchPair('\<\%(if\|unless\|when\)\>', '\<else\>')
176
+ elseif a:curline =~ '^catch\>'
177
+ return s:SearchPair('\<try\>', '\<catch\>')
178
+ elseif a:curline =~ '^finally\>'
179
+ return s:SearchPair('\<try\>', '\<finally\>')
180
+ endif
181
+
182
+ return 0
183
+ endfunction
184
+
185
+ " Get the nearest previous line that isn't a comment.
186
+ function! s:GetPrevNormalLine(startlinenum)
187
+ let curlinenum = a:startlinenum
188
+
189
+ while curlinenum > 0
190
+ let curlinenum = prevnonblank(curlinenum - 1)
191
+
192
+ if !s:IsCommentLine(curlinenum)
193
+ return curlinenum
194
+ endif
195
+ endwhile
196
+
197
+ return 0
198
+ endfunction
199
+
200
+ " Try to find a comment in a line.
201
+ function! s:FindComment(linenum)
202
+ let col = 0
203
+
204
+ while 1
205
+ call cursor(a:linenum, col + 1)
206
+ let [_, col] = searchpos('#', 'cn', a:linenum)
207
+
208
+ if !col
209
+ break
210
+ endif
211
+
212
+ if s:IsComment(a:linenum, col)
213
+ return col
214
+ endif
215
+ endwhile
216
+
217
+ return 0
218
+ endfunction
219
+
220
+ " Get a line without comments or surrounding whitespace.
221
+ function! s:GetTrimmedLine(linenum)
222
+ let comment = s:FindComment(a:linenum)
223
+ let line = getline(a:linenum)
224
+
225
+ if comment
226
+ " Subtract 1 to get to the column before the comment and another 1 for
227
+ " zero-based indexing.
228
+ let line = line[:comment - 2]
229
+ endif
230
+
231
+ return substitute(substitute(line, '^\s\+', '', ''),
232
+ \ '\s\+$', '', '')
233
+ endfunction
234
+
235
+ function! s:GetCoffeeIndent(curlinenum)
236
+ let prevlinenum = s:GetPrevNormalLine(a:curlinenum)
237
+
238
+ " Don't do anything if there's no previous line.
239
+ if !prevlinenum
240
+ return -1
241
+ endif
242
+
243
+ let curline = s:GetTrimmedLine(a:curlinenum)
244
+
245
+ " Try to find a previous matching statement. This handles outdenting.
246
+ let matchlinenum = s:GetMatch(curline)
247
+
248
+ if matchlinenum
249
+ return indent(matchlinenum)
250
+ endif
251
+
252
+ " Try to find a matching `when`.
253
+ if curline =~ '^when\>' && !s:SmartSearch(prevlinenum, '\<switch\>')
254
+ let linenum = a:curlinenum
255
+
256
+ while linenum > 0
257
+ let linenum = s:GetPrevNormalLine(linenum)
258
+
259
+ if getline(linenum) =~ '^\s*when\>'
260
+ return indent(linenum)
261
+ endif
262
+ endwhile
263
+
264
+ return -1
265
+ endif
266
+
267
+ let prevline = s:GetTrimmedLine(prevlinenum)
268
+ let previndent = indent(prevlinenum)
269
+
270
+ " Always indent after these operators.
271
+ if prevline =~ s:INDENT_AFTER_OPERATOR
272
+ return previndent + &shiftwidth
273
+ endif
274
+
275
+ " Indent after a continuation if it's the first.
276
+ if prevline =~ s:CONTINUATION
277
+ " If the line ends in a slash, make sure it isn't a regex.
278
+ if prevline =~ '/$'
279
+ " Move to the line so we can get the last column.
280
+ call cursor(prevlinenum)
281
+
282
+ if s:IsString(prevlinenum, col('$') - 1)
283
+ return -1
284
+ endif
285
+ endif
286
+
287
+ let prevprevlinenum = s:GetPrevNormalLine(prevlinenum)
288
+
289
+ " If the continuation is the first in the file, don't run the other checks.
290
+ if !prevprevlinenum
291
+ return previndent + &shiftwidth
292
+ endif
293
+
294
+ let prevprevline = s:GetTrimmedLine(prevprevlinenum)
295
+
296
+ if prevprevline !~ s:CONTINUATION && prevprevline !~ s:CONTINUATION_BLOCK
297
+ return previndent + &shiftwidth
298
+ endif
299
+
300
+ return -1
301
+ endif
302
+
303
+ " Indent after these keywords and compound assignments if they aren't a
304
+ " single-line statement.
305
+ if prevline =~ s:INDENT_AFTER_KEYWORD || prevline =~ s:COMPOUND_ASSIGNMENT
306
+ if !s:SmartSearch(prevlinenum, '\<then\>') && prevline !~ s:SINGLE_LINE_ELSE
307
+ return previndent + &shiftwidth
308
+ endif
309
+
310
+ return -1
311
+ endif
312
+
313
+ " Indent a dot access if it's the first.
314
+ if curline =~ s:DOT_ACCESS && prevline !~ s:DOT_ACCESS
315
+ return previndent + &shiftwidth
316
+ endif
317
+
318
+ " Outdent after these keywords if they don't have a postfix condition or are
319
+ " a single-line statement.
320
+ if prevline =~ s:OUTDENT_AFTER
321
+ if !s:SmartSearch(prevlinenum, s:POSTFIX_CONDITION) ||
322
+ \ s:SmartSearch(prevlinenum, '\<then\>')
323
+ return previndent - &shiftwidth
324
+ endif
325
+ endif
326
+
327
+ " No indenting or outdenting is needed.
328
+ return -1
329
+ endfunction
330
+
331
+ " Wrap s:GetCoffeeIndent to keep the cursor position.
332
+ function! GetCoffeeIndent(curlinenum)
333
+ let oldcursor = getpos('.')
334
+ let indent = s:GetCoffeeIndent(a:curlinenum)
335
+ call setpos('.', oldcursor)
336
+
337
+ return indent
338
+ endfunction
@@ -0,0 +1,217 @@
1
+ " Language: CoffeeScript
2
+ " Maintainer: Mick Koch <kchmck@gmail.com>
3
+ " URL: http://github.com/kchmck/vim-coffee-script
4
+ " License: WTFPL
5
+
6
+ " Bail if our syntax is already loaded.
7
+ if exists('b:current_syntax') && b:current_syntax == 'coffee'
8
+ finish
9
+ endif
10
+
11
+ " Include JavaScript for coffeeEmbed.
12
+ syn include @coffeeJS syntax/javascript.vim
13
+
14
+ " Highlight long strings.
15
+ syn sync minlines=100
16
+
17
+ " CoffeeScript identifiers can have dollar signs.
18
+ setlocal isident+=$
19
+
20
+ " These are `matches` instead of `keywords` because vim's highlighting
21
+ " priority for keywords is higher than matches. This causes keywords to be
22
+ " highlighted inside matches, even if a match says it shouldn't contain them --
23
+ " like with coffeeAssign and coffeeDot.
24
+ syn match coffeeStatement /\<\%(return\|break\|continue\|throw\)\>/ display
25
+ hi def link coffeeStatement Statement
26
+
27
+ syn match coffeeRepeat /\<\%(for\|while\|until\|loop\)\>/ display
28
+ hi def link coffeeRepeat Repeat
29
+
30
+ syn match coffeeConditional /\<\%(if\|else\|unless\|switch\|when\|then\)\>/
31
+ \ display
32
+ hi def link coffeeConditional Conditional
33
+
34
+ syn match coffeeException /\<\%(try\|catch\|finally\)\>/ display
35
+ hi def link coffeeException Exception
36
+
37
+ syn match coffeeKeyword /\<\%(new\|in\|of\|by\|and\|or\|not\|is\|isnt\|class\|extends\|super\|do\)\>/
38
+ \ display
39
+ " The `own` keyword is only a keyword after `for`.
40
+ syn match coffeeKeyword /\<for\s\+own\>/ contained containedin=coffeeRepeat
41
+ \ display
42
+ hi def link coffeeKeyword Keyword
43
+
44
+ syn match coffeeOperator /\<\%(instanceof\|typeof\|delete\)\>/ display
45
+ hi def link coffeeOperator Operator
46
+
47
+ " The first case matches symbol operators only if they have an operand before.
48
+ syn match coffeeExtendedOp /\%(\S\s*\)\@<=[+\-*/%&|\^=!<>?.]\+\|[-=]>\|--\|++\|:/
49
+ \ display
50
+ syn match coffeeExtendedOp /\<\%(and\|or\)=/ display
51
+ hi def link coffeeExtendedOp coffeeOperator
52
+
53
+ " This is separate from `coffeeExtendedOp` to help differentiate commas from
54
+ " dots.
55
+ syn match coffeeSpecialOp /[,;]/ display
56
+ hi def link coffeeSpecialOp SpecialChar
57
+
58
+ syn match coffeeBoolean /\<\%(true\|on\|yes\|false\|off\|no\)\>/ display
59
+ hi def link coffeeBoolean Boolean
60
+
61
+ syn match coffeeGlobal /\<\%(null\|undefined\)\>/ display
62
+ hi def link coffeeGlobal Type
63
+
64
+ " A special variable
65
+ syn match coffeeSpecialVar /\<\%(this\|prototype\|arguments\)\>/ display
66
+ " An @-variable
67
+ syn match coffeeSpecialVar /@\%(\I\i*\)\?/ display
68
+ hi def link coffeeSpecialVar Special
69
+
70
+ " A class-like name that starts with a capital letter
71
+ syn match coffeeObject /\<\u\w*\>/ display
72
+ hi def link coffeeObject Structure
73
+
74
+ " A constant-like name in SCREAMING_CAPS
75
+ syn match coffeeConstant /\<\u[A-Z0-9_]\+\>/ display
76
+ hi def link coffeeConstant Constant
77
+
78
+ " A variable name
79
+ syn cluster coffeeIdentifier contains=coffeeSpecialVar,coffeeObject,
80
+ \ coffeeConstant
81
+
82
+ " A non-interpolated string
83
+ syn cluster coffeeBasicString contains=@Spell,coffeeEscape
84
+ " An interpolated string
85
+ syn cluster coffeeInterpString contains=@coffeeBasicString,coffeeInterp
86
+
87
+ " Regular strings
88
+ syn region coffeeString start=/"/ skip=/\\\\\|\\"/ end=/"/
89
+ \ contains=@coffeeInterpString
90
+ syn region coffeeString start=/'/ skip=/\\\\\|\\'/ end=/'/
91
+ \ contains=@coffeeBasicString
92
+ hi def link coffeeString String
93
+
94
+ " A integer, including a leading plus or minus
95
+ syn match coffeeNumber /\i\@<![-+]\?\d\+\%([eE][+-]\?\d\+\)\?/ display
96
+ " A hex number
97
+ syn match coffeeNumber /\<0[xX]\x\+\>/ display
98
+ syn match coffeeNumber /\<0b[01]\+\>/ display
99
+ hi def link coffeeNumber Number
100
+
101
+ " A floating-point number, including a leading plus or minus
102
+ syn match coffeeFloat /\i\@<![-+]\?\d*\.\@<!\.\d\+\%([eE][+-]\?\d\+\)\?/
103
+ \ display
104
+ hi def link coffeeFloat Float
105
+
106
+ " An error for reserved keywords
107
+ if !exists("coffee_no_reserved_words_error")
108
+ syn match coffeeReservedError /\<\%(case\|default\|function\|var\|void\|with\|const\|let\|enum\|export\|import\|native\|__hasProp\|__extends\|__slice\|__bind\|__indexOf\)\>/
109
+ \ display
110
+ hi def link coffeeReservedError Error
111
+ endif
112
+
113
+ " A normal object assignment
114
+ syn match coffeeObjAssign /@\?\I\i*\s*\ze::\@!/ contains=@coffeeIdentifier display
115
+ hi def link coffeeObjAssign Identifier
116
+
117
+ syn keyword coffeeTodo TODO FIXME XXX contained
118
+ hi def link coffeeTodo Todo
119
+
120
+ syn match coffeeComment /#.*/ contains=@Spell,coffeeTodo
121
+ hi def link coffeeComment Comment
122
+
123
+ syn region coffeeBlockComment start=/####\@!/ end=/###/
124
+ \ contains=@Spell,coffeeTodo
125
+ hi def link coffeeBlockComment coffeeComment
126
+
127
+ " A comment in a heregex
128
+ syn region coffeeHeregexComment start=/#/ end=/\ze\/\/\/\|$/ contained
129
+ \ contains=@Spell,coffeeTodo
130
+ hi def link coffeeHeregexComment coffeeComment
131
+
132
+ " Embedded JavaScript
133
+ syn region coffeeEmbed matchgroup=coffeeEmbedDelim
134
+ \ start=/`/ skip=/\\\\\|\\`/ end=/`/
135
+ \ contains=@coffeeJS
136
+ hi def link coffeeEmbedDelim Delimiter
137
+
138
+ syn region coffeeInterp matchgroup=coffeeInterpDelim start=/#{/ end=/}/ contained
139
+ \ contains=@coffeeAll
140
+ hi def link coffeeInterpDelim PreProc
141
+
142
+ " A string escape sequence
143
+ syn match coffeeEscape /\\\d\d\d\|\\x\x\{2\}\|\\u\x\{4\}\|\\./ contained display
144
+ hi def link coffeeEscape SpecialChar
145
+
146
+ " A regex -- must not follow a parenthesis, number, or identifier, and must not
147
+ " be followed by a number
148
+ syn region coffeeRegex start=/\%(\%()\|\i\@<!\d\)\s*\|\i\)\@<!\/=\@!\s\@!/
149
+ \ skip=/\[[^\]]\{-}\/[^\]]\{-}\]/
150
+ \ end=/\/[gimy]\{,4}\d\@!/
151
+ \ oneline contains=@coffeeBasicString
152
+ hi def link coffeeRegex String
153
+
154
+ " A heregex
155
+ syn region coffeeHeregex start=/\/\/\// end=/\/\/\/[gimy]\{,4}/
156
+ \ contains=@coffeeInterpString,coffeeHeregexComment
157
+ \ fold
158
+ hi def link coffeeHeregex coffeeRegex
159
+
160
+ " Heredoc strings
161
+ syn region coffeeHeredoc start=/"""/ end=/"""/ contains=@coffeeInterpString
162
+ \ fold
163
+ syn region coffeeHeredoc start=/'''/ end=/'''/ contains=@coffeeBasicString
164
+ \ fold
165
+ hi def link coffeeHeredoc String
166
+
167
+ " An error for trailing whitespace, as long as the line isn't just whitespace
168
+ if !exists("coffee_no_trailing_space_error")
169
+ syn match coffeeSpaceError /\S\@<=\s\+$/ display
170
+ hi def link coffeeSpaceError Error
171
+ endif
172
+
173
+ " An error for trailing semicolons, for help transitioning from JavaScript
174
+ if !exists("coffee_no_trailing_semicolon_error")
175
+ syn match coffeeSemicolonError /;$/ display
176
+ hi def link coffeeSemicolonError Error
177
+ endif
178
+
179
+ " Ignore reserved words in dot accesses.
180
+ syn match coffeeDotAccess /\.\@<!\.\s*\I\i*/he=s+1 contains=@coffeeIdentifier
181
+ hi def link coffeeDotAccess coffeeExtendedOp
182
+
183
+ " Ignore reserved words in prototype accesses.
184
+ syn match coffeeProtoAccess /::\s*\I\i*/he=s+2 contains=@coffeeIdentifier
185
+ hi def link coffeeProtoAccess coffeeExtendedOp
186
+
187
+ " This is required for interpolations to work.
188
+ syn region coffeeCurlies matchgroup=coffeeCurly start=/{/ end=/}/
189
+ \ contains=@coffeeAll
190
+ syn region coffeeBrackets matchgroup=coffeeBracket start=/\[/ end=/\]/
191
+ \ contains=@coffeeAll
192
+ syn region coffeeParens matchgroup=coffeeParen start=/(/ end=/)/
193
+ \ contains=@coffeeAll
194
+
195
+ " These are highlighted the same as commas since they tend to go together.
196
+ hi def link coffeeBlock coffeeSpecialOp
197
+ hi def link coffeeBracket coffeeBlock
198
+ hi def link coffeeCurly coffeeBlock
199
+ hi def link coffeeParen coffeeBlock
200
+
201
+ " This is used instead of TOP to keep things coffee-specific for good
202
+ " embedding. `contained` groups aren't included.
203
+ syn cluster coffeeAll contains=coffeeStatement,coffeeRepeat,coffeeConditional,
204
+ \ coffeeException,coffeeKeyword,coffeeOperator,
205
+ \ coffeeExtendedOp,coffeeSpecialOp,coffeeBoolean,
206
+ \ coffeeGlobal,coffeeSpecialVar,coffeeObject,
207
+ \ coffeeConstant,coffeeString,coffeeNumber,
208
+ \ coffeeFloat,coffeeReservedError,coffeeObjAssign,
209
+ \ coffeeComment,coffeeBlockComment,coffeeEmbed,
210
+ \ coffeeRegex,coffeeHeregex,coffeeHeredoc,
211
+ \ coffeeSpaceError,coffeeSemicolonError,
212
+ \ coffeeDotAccess,coffeeProtoAccess,
213
+ \ coffeeCurlies,coffeeBrackets,coffeeParens
214
+
215
+ if !exists('b:current_syntax')
216
+ let b:current_syntax = 'coffee'
217
+ endif
@@ -0,0 +1,62 @@
1
+ " Vim syntax file
2
+ " Language: eco
3
+ " Maintainer: Jay Adkisson
4
+ " Mostly stolen from eruby.vim
5
+
6
+ if !exists("g:eco_default_subtype")
7
+ let g:eco_default_subtype = "html"
8
+ endif
9
+
10
+ if !exists("b:eco_subtype")
11
+ let s:lines = getline(1)."\n".getline(2)."\n".getline(3)."\n".getline(4)."\n".getline(5)."\n".getline("$")
12
+ let b:eco_subtype = matchstr(s:lines,'eco_subtype=\zs\w\+')
13
+ if b:eco_subtype == ''
14
+ let b:eco_subtype = matchstr(substitute(expand("%:t"),'\c\%(\.eco\)\+$','',''),'\.\zs\w\+$')
15
+ endif
16
+ if b:eco_subtype == 'rhtml'
17
+ let b:eco_subtype = 'html'
18
+ elseif b:eco_subtype == 'jst'
19
+ let b:eco_subtype = 'html'
20
+ elseif b:eco_subtype == 'rb'
21
+ let b:eco_subtype = 'ruby'
22
+ elseif b:eco_subtype == 'yml'
23
+ let b:eco_subtype = 'yaml'
24
+ elseif b:eco_subtype == 'js' || b:eco_subtype == 'json'
25
+ let b:eco_subtype = 'javascript'
26
+ elseif b:eco_subtype == 'txt'
27
+ " Conventional; not a real file type
28
+ let b:eco_subtype = 'text'
29
+ elseif b:eco_subtype == ''
30
+ if exists('b:current_syntax') && b:current_syntax != ''
31
+ let b:eco_subtype = b:current_syntax
32
+ else
33
+ let b:eco_subtype = g:eco_default_subtype
34
+ endif
35
+ endif
36
+ endif
37
+
38
+ if exists("b:eco_subtype") && b:eco_subtype != '' && b:eco_subtype != 'eco'
39
+ exec "runtime! syntax/".b:eco_subtype.".vim"
40
+ syn include @coffeeTop syntax/coffee.vim
41
+ endif
42
+
43
+ syn cluster ecoRegions contains=ecoBlock,ecoExpression,ecoComment
44
+
45
+ syn region ecoBlock matchgroup=ecoDelimiter start=/<%/ end=/%>/ contains=@coffeeTop containedin=ALLBUT,@ecoRegions keepend
46
+ syn region ecoExpression matchgroup=ecoDelimiter start=/<%[=\-]/ end=/%>/ contains=@coffeeTop containedin=ALLBUT,@ecoRegions keepend
47
+ syn region ecoComment matchgroup=ecoComment start=/<%#/ end=/%>/ contains=@coffeeTodo,@Spell containedin=ALLBUT,@ecoRegions keepend
48
+
49
+ " eco features not in coffeescript proper
50
+ syn keyword ecoEnd end containedin=@ecoRegions
51
+ syn match ecoIndentColon /\s+\w+:/ containedin=@ecoRegions
52
+
53
+ " Define the default highlighting.
54
+
55
+ hi def link ecoDelimiter Delimiter
56
+ hi def link ecoComment Comment
57
+ hi def link ecoEnd coffeeConditional
58
+ hi def link ecoIndentColon None
59
+
60
+ let b:current_syntax = 'eco'
61
+
62
+ " vim: nowrap sw=2 sts=2 ts=8:
@@ -492,7 +492,7 @@ function! Ccamelunderscore(...)
492
492
  endfunction
493
493
 
494
494
  function! Ccreatetags()
495
- call system("ctags --recurse=yes --languages=Ruby,C . `bundle list --paths`")
495
+ call system("bundle exec create_tags")
496
496
  endfunction
497
497
 
498
498
  comclear
data/lib/utils/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Utils
2
2
  # Utils version
3
- VERSION = '0.0.53'
3
+ VERSION = '0.0.54'
4
4
  VERSION_ARRAY = VERSION.split(/\./).map { |x| x.to_i } # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/utils.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "utils"
5
- s.version = "0.0.53"
5
+ s.version = "0.0.54"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Florian Frank"]
9
- s.date = "2012-08-27"
9
+ s.date = "2012-09-05"
10
10
  s.description = "This ruby gem provides some useful command line utilities"
11
11
  s.email = "flori@ping.de"
12
- s.executables = ["chroot-exec", "chroot-libs", "classify", "discover", "edit", "edit_wait", "enum", "errf", "git-empty", "myex", "number_files", "path", "probe", "same_files", "search", "sedit", "sshscreen", "strip_spaces", "unquarantine_apps", "untest", "utils-install-config", "utils-utilsrc", "vacuum_firefox_sqlite", "xmp"]
12
+ s.executables = ["chroot-exec", "chroot-libs", "classify", "create_tags", "discover", "edit", "edit_wait", "enum", "errf", "git-empty", "myex", "number_files", "path", "probe", "same_files", "search", "sedit", "sshscreen", "strip_spaces", "unquarantine_apps", "untest", "utils-install-config", "utils-utilsrc", "vacuum_firefox_sqlite", "xmp"]
13
13
  s.extra_rdoc_files = ["README.rdoc", "lib/utils/config/config_file.rb", "lib/utils/config.rb", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/version.rb", "lib/utils.rb"]
14
- s.files = [".gitignore", "COPYING", "Gemfile", "README.rdoc", "Rakefile", "TODO", "VERSION", "bin/chroot-exec", "bin/chroot-libs", "bin/classify", "bin/discover", "bin/edit", "bin/edit_wait", "bin/enum", "bin/errf", "bin/git-empty", "bin/myex", "bin/number_files", "bin/path", "bin/probe", "bin/same_files", "bin/search", "bin/sedit", "bin/sshscreen", "bin/strip_spaces", "bin/unquarantine_apps", "bin/untest", "bin/utils-install-config", "bin/utils-utilsrc", "bin/vacuum_firefox_sqlite", "bin/xmp", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/config/gdb/asm", "lib/utils/config/gdb/ruby", "lib/utils/config/gdbinit", "lib/utils/config/irbrc", "lib/utils/config/rdebugrc", "lib/utils/config/rvmrc", "lib/utils/config/screenrc", "lib/utils/config/utilsrc", "lib/utils/config/vim/autoload/Align.vim", "lib/utils/config/vim/autoload/AlignMaps.vim", "lib/utils/config/vim/autoload/rails.vim", "lib/utils/config/vim/autoload/rubycomplete.vim", "lib/utils/config/vim/autoload/sqlcomplete.vim", "lib/utils/config/vim/autoload/vimball.vim", "lib/utils/config/vim/colors/flori.vim", "lib/utils/config/vim/compiler/eruby.vim", "lib/utils/config/vim/compiler/ruby.vim", "lib/utils/config/vim/compiler/rubyunit.vim", "lib/utils/config/vim/ftdetect/ragel.vim", "lib/utils/config/vim/ftdetect/ruby.vim", "lib/utils/config/vim/ftdetect/slim.vim", "lib/utils/config/vim/ftplugin/eruby.vim", "lib/utils/config/vim/ftplugin/ruby.vim", "lib/utils/config/vim/ftplugin/xml.vim", "lib/utils/config/vim/indent/IndentAnything_html.vim", "lib/utils/config/vim/indent/eruby.vim", "lib/utils/config/vim/indent/javascript.vim", "lib/utils/config/vim/indent/ruby.vim", "lib/utils/config/vim/indent/slim.vim", "lib/utils/config/vim/plugin/AlignMapsPlugin.vim", "lib/utils/config/vim/plugin/AlignPlugin.vim", "lib/utils/config/vim/plugin/Decho.vim", "lib/utils/config/vim/plugin/IndentAnything.vim", "lib/utils/config/vim/plugin/bufexplorer.vim", "lib/utils/config/vim/plugin/cecutil.vim", "lib/utils/config/vim/plugin/fugitive.vim", "lib/utils/config/vim/plugin/lusty-explorer.vim", "lib/utils/config/vim/plugin/rails.vim", "lib/utils/config/vim/plugin/rubyextra.vim", "lib/utils/config/vim/plugin/surround.vim", "lib/utils/config/vim/plugin/taglist.vim", "lib/utils/config/vim/plugin/test/IndentAnything/test.js", "lib/utils/config/vim/plugin/vimballPlugin.vim", "lib/utils/config/vim/syntax/Decho.vim", "lib/utils/config/vim/syntax/eruby.vim", "lib/utils/config/vim/syntax/javascript.vim", "lib/utils/config/vim/syntax/ragel.vim", "lib/utils/config/vim/syntax/ruby.vim", "lib/utils/config/vim/syntax/slim.vim", "lib/utils/config/vimrc", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/version.rb", "utils.gemspec"]
14
+ s.files = [".gitignore", "COPYING", "Gemfile", "README.rdoc", "Rakefile", "TODO", "VERSION", "bin/chroot-exec", "bin/chroot-libs", "bin/classify", "bin/create_tags", "bin/discover", "bin/edit", "bin/edit_wait", "bin/enum", "bin/errf", "bin/git-empty", "bin/myex", "bin/number_files", "bin/path", "bin/probe", "bin/same_files", "bin/search", "bin/sedit", "bin/sshscreen", "bin/strip_spaces", "bin/unquarantine_apps", "bin/untest", "bin/utils-install-config", "bin/utils-utilsrc", "bin/vacuum_firefox_sqlite", "bin/xmp", "lib/utils.rb", "lib/utils/config.rb", "lib/utils/config/config_file.rb", "lib/utils/config/gdb/asm", "lib/utils/config/gdb/ruby", "lib/utils/config/gdbinit", "lib/utils/config/irbrc", "lib/utils/config/rdebugrc", "lib/utils/config/rvmrc", "lib/utils/config/screenrc", "lib/utils/config/utilsrc", "lib/utils/config/vim/after/syntax/haml.vim", "lib/utils/config/vim/after/syntax/html.vim", "lib/utils/config/vim/autoload/Align.vim", "lib/utils/config/vim/autoload/AlignMaps.vim", "lib/utils/config/vim/autoload/rails.vim", "lib/utils/config/vim/autoload/rubycomplete.vim", "lib/utils/config/vim/autoload/sqlcomplete.vim", "lib/utils/config/vim/autoload/vimball.vim", "lib/utils/config/vim/colors/flori.vim", "lib/utils/config/vim/compiler/coffee.vim", "lib/utils/config/vim/compiler/eruby.vim", "lib/utils/config/vim/compiler/ruby.vim", "lib/utils/config/vim/compiler/rubyunit.vim", "lib/utils/config/vim/doc/coffee-script.txt", "lib/utils/config/vim/ftdetect/coffee.vim", "lib/utils/config/vim/ftdetect/eco.vim", "lib/utils/config/vim/ftdetect/ragel.vim", "lib/utils/config/vim/ftdetect/ruby.vim", "lib/utils/config/vim/ftdetect/slim.vim", "lib/utils/config/vim/ftplugin/coffee.vim", "lib/utils/config/vim/ftplugin/eruby.vim", "lib/utils/config/vim/ftplugin/ruby.vim", "lib/utils/config/vim/ftplugin/xml.vim", "lib/utils/config/vim/indent/IndentAnything_html.vim", "lib/utils/config/vim/indent/coffee.vim", "lib/utils/config/vim/indent/eruby.vim", "lib/utils/config/vim/indent/javascript.vim", "lib/utils/config/vim/indent/ruby.vim", "lib/utils/config/vim/indent/slim.vim", "lib/utils/config/vim/plugin/AlignMapsPlugin.vim", "lib/utils/config/vim/plugin/AlignPlugin.vim", "lib/utils/config/vim/plugin/Decho.vim", "lib/utils/config/vim/plugin/IndentAnything.vim", "lib/utils/config/vim/plugin/bufexplorer.vim", "lib/utils/config/vim/plugin/cecutil.vim", "lib/utils/config/vim/plugin/fugitive.vim", "lib/utils/config/vim/plugin/lusty-explorer.vim", "lib/utils/config/vim/plugin/rails.vim", "lib/utils/config/vim/plugin/rubyextra.vim", "lib/utils/config/vim/plugin/surround.vim", "lib/utils/config/vim/plugin/taglist.vim", "lib/utils/config/vim/plugin/test/IndentAnything/test.js", "lib/utils/config/vim/plugin/vimballPlugin.vim", "lib/utils/config/vim/syntax/Decho.vim", "lib/utils/config/vim/syntax/coffee.vim", "lib/utils/config/vim/syntax/eco.vim", "lib/utils/config/vim/syntax/eruby.vim", "lib/utils/config/vim/syntax/javascript.vim", "lib/utils/config/vim/syntax/ragel.vim", "lib/utils/config/vim/syntax/ruby.vim", "lib/utils/config/vim/syntax/slim.vim", "lib/utils/config/vimrc", "lib/utils/editor.rb", "lib/utils/file_xt.rb", "lib/utils/finder.rb", "lib/utils/grepper.rb", "lib/utils/irb.rb", "lib/utils/md5.rb", "lib/utils/patterns.rb", "lib/utils/version.rb", "utils.gemspec"]
15
15
  s.homepage = "http://github.com/flori/utils"
16
16
  s.rdoc_options = ["--title", "Utils - Some useful command line utilities", "--main", "README.rdoc"]
17
17
  s.require_paths = ["lib"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.53
4
+ version: 0.0.54
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-27 00:00:00.000000000 Z
12
+ date: 2012-09-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gem_hadar
@@ -97,6 +97,7 @@ executables:
97
97
  - chroot-exec
98
98
  - chroot-libs
99
99
  - classify
100
+ - create_tags
100
101
  - discover
101
102
  - edit
102
103
  - edit_wait
@@ -143,6 +144,7 @@ files:
143
144
  - bin/chroot-exec
144
145
  - bin/chroot-libs
145
146
  - bin/classify
147
+ - bin/create_tags
146
148
  - bin/discover
147
149
  - bin/edit
148
150
  - bin/edit_wait
@@ -175,6 +177,8 @@ files:
175
177
  - lib/utils/config/rvmrc
176
178
  - lib/utils/config/screenrc
177
179
  - lib/utils/config/utilsrc
180
+ - lib/utils/config/vim/after/syntax/haml.vim
181
+ - lib/utils/config/vim/after/syntax/html.vim
178
182
  - lib/utils/config/vim/autoload/Align.vim
179
183
  - lib/utils/config/vim/autoload/AlignMaps.vim
180
184
  - lib/utils/config/vim/autoload/rails.vim
@@ -182,16 +186,22 @@ files:
182
186
  - lib/utils/config/vim/autoload/sqlcomplete.vim
183
187
  - lib/utils/config/vim/autoload/vimball.vim
184
188
  - lib/utils/config/vim/colors/flori.vim
189
+ - lib/utils/config/vim/compiler/coffee.vim
185
190
  - lib/utils/config/vim/compiler/eruby.vim
186
191
  - lib/utils/config/vim/compiler/ruby.vim
187
192
  - lib/utils/config/vim/compiler/rubyunit.vim
193
+ - lib/utils/config/vim/doc/coffee-script.txt
194
+ - lib/utils/config/vim/ftdetect/coffee.vim
195
+ - lib/utils/config/vim/ftdetect/eco.vim
188
196
  - lib/utils/config/vim/ftdetect/ragel.vim
189
197
  - lib/utils/config/vim/ftdetect/ruby.vim
190
198
  - lib/utils/config/vim/ftdetect/slim.vim
199
+ - lib/utils/config/vim/ftplugin/coffee.vim
191
200
  - lib/utils/config/vim/ftplugin/eruby.vim
192
201
  - lib/utils/config/vim/ftplugin/ruby.vim
193
202
  - lib/utils/config/vim/ftplugin/xml.vim
194
203
  - lib/utils/config/vim/indent/IndentAnything_html.vim
204
+ - lib/utils/config/vim/indent/coffee.vim
195
205
  - lib/utils/config/vim/indent/eruby.vim
196
206
  - lib/utils/config/vim/indent/javascript.vim
197
207
  - lib/utils/config/vim/indent/ruby.vim
@@ -211,6 +221,8 @@ files:
211
221
  - lib/utils/config/vim/plugin/test/IndentAnything/test.js
212
222
  - lib/utils/config/vim/plugin/vimballPlugin.vim
213
223
  - lib/utils/config/vim/syntax/Decho.vim
224
+ - lib/utils/config/vim/syntax/coffee.vim
225
+ - lib/utils/config/vim/syntax/eco.vim
214
226
  - lib/utils/config/vim/syntax/eruby.vim
215
227
  - lib/utils/config/vim/syntax/javascript.vim
216
228
  - lib/utils/config/vim/syntax/ragel.vim
@@ -244,7 +256,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
244
256
  version: '0'
245
257
  segments:
246
258
  - 0
247
- hash: 2352834766815454872
259
+ hash: 2048215407046048042
248
260
  required_rubygems_version: !ruby/object:Gem::Requirement
249
261
  none: false
250
262
  requirements: