CoffeeTags 0.0.2.0 → 0.0.2.2

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/README.md CHANGED
@@ -1,20 +1,23 @@
1
1
  # CoffeeTags
2
2
 
3
- A simple tool for generating CoffeeScript tags (Ctags compatible ).
4
-
5
- Showing only functions (right) or with variables included (left)
3
+ A simple tool for generating CoffeeScript tags (Ctags compatible).
6
4
 
7
5
 
8
- <div class="thumbnail">
6
+ ### Example + Screenshot
7
+ Showing only functions (right) or with variables included (left)
9
8
 
10
9
  <a href="http://skitch.com/plugawy/gyfnb/1-coffeetags-1-vim-unicorn.local-tmux"><img src="http://img.skitch.com/20111012-8cjesum8ru8usqusra4yppj5cc.preview.png" alt="1. CoffeeTags:1:vim - "unicorn.local" (tmux)" /></a><br /><span>Uploaded with <a href="http://skitch.com">Skitch</a>!</span>
11
10
 
12
- </div>
11
+ ## Huh?
13
12
 
14
- Designed for use with Vim + [TagBar plugin](https://github.com/majutsushi/tagbar) but also works without it. Simply configure your Vim for use with a regular tags file and generate them with the following command:
13
+ CoffeeTags was created for use with Vim and [TagBar plugin](https://github.com/majutsushi/tagbar), however it
14
+ accepts most common ctags arguments, therefore the following:
15
15
 
16
16
  `coffeetags -R -f TAGS`
17
17
 
18
+
19
+ will generate standard TAGS file which later can be used with Vim (standard `:tag` command works as expected)
20
+
18
21
  # Requirements
19
22
 
20
23
  * ruby (either 1.8.7 or 1.9.2)
@@ -22,29 +25,62 @@ Designed for use with Vim + [TagBar plugin](https://github.com/majutsushi/tagbar
22
25
 
23
26
  ### optional
24
27
 
25
- * [TagBar plugin](https://github.com/majutsushi/tagbar)
28
+ * [TagBar](https://github.com/majutsushi/tagbar)
26
29
 
27
30
  # Halp!
28
31
 
29
- `coffeetags --help`
30
-
31
- -R - process current directory recursively and look for all *.coffee files
32
- --f <file> - save tags to <file>, if <file> == '-' tags get print out to STDOUT (jscatgs style)
33
- --version - coffeetags version
34
- --vim-conf - print out tagbar config for vim
35
- --include-vars - include objects/variables in generated tags
36
- combine --vim-conf and --include-vars to create a config which adds '--include-vars' option
32
+ Just use `coffeetags --help`
37
33
 
38
34
  # Installation
39
35
 
40
- * get the `coffeetags` tool
36
+ * get `coffeetags`
41
37
 
42
38
  `gem install CoffeeTags`
43
39
 
44
40
 
45
41
  * add TagBar config to your .vimrc
46
42
 
47
- `coffeetags --vim-conf >> ~/.vimrc` (or `coffeetags --vim-conf --include-vars >> ~/.vimrc`)
43
+ `coffeetags --vim-conf >> ~/.vimrc`
44
+
45
+
46
+ ## Config types
47
+
48
+ CoffeeTags can work in 2 modes:
49
+
50
+ - tags only for functions (default)
51
+ - tags for functions and objects containing them
52
+
53
+ Second mode is activated by adding `--include-vars` to command line arguments
54
+
55
+ # CoffeeTags + TagBar + Vim
56
+
57
+ ## Config in vimrc
58
+
59
+ You can add the config to your .vimrc (making sure that the old one is removed)
60
+ by:
61
+
62
+ coffeetags --vim-conf >> ~/.vimrc
63
+
64
+ or (for 2nd mode)
65
+
66
+ coffeetags --include-vars --vim-conf >> ~/.vimrc
67
+
68
+
69
+ ## Config as a filetype plugin
70
+
71
+ You can generate a special filetype plugin and tagbar will use that
72
+ automatically.
73
+
74
+ This option is preferable if you want to keep your vimrc short.
75
+
76
+ coffeetags --vim-conf > ~/vim/ftplugin/coffee/tagbar-coffee.vim
77
+ coffeetags [--include-vars] --vim-conf > ~/vim/ftplugin/coffee/tagbar-coffee.vim
78
+
79
+ or if you're using pathogen
80
+
81
+ coffeetags [--include-vars] --vim-conf > ~/vim/bundle/coffeetags/ftplugin/coffee/tagbar-coffee.vim
82
+ coffeetags --vim-conf > ~/vim/bundle/coffeetags/ftplugin/coffee/tagbar-coffee.vim
83
+
48
84
 
49
85
  * open your coffeescript file and open TagBar.
50
86
 
@@ -53,3 +89,8 @@ Done!
53
89
  # TODO
54
90
 
55
91
  - squash all bugs
92
+
93
+
94
+ # License
95
+
96
+ MIT
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Coffeetags
3
- VERSION = "0.0.2.0"
3
+ VERSION = "0.0.2.2"
4
4
  end
data/lib/CoffeeTags.rb CHANGED
@@ -3,6 +3,7 @@ require "CoffeeTags/version"
3
3
  require "CoffeeTags/parser"
4
4
  require "CoffeeTags/formatter"
5
5
  require 'optparse'
6
+ require 'erb'
6
7
 
7
8
  class Object
8
9
  def blank?
@@ -21,41 +22,33 @@ module Coffeetags
21
22
 
22
23
  class Utils
23
24
  def self.tagbar_conf include_vars
24
- <<-CONF
25
- " Add this type definition to your vimrc
26
- " coffeetags --vim-conf >> <PATH TO YOUR VIMRC>
27
- " if you want your tags to include vars/objects do:
28
- " coffeetags --vim-conf --include-vars
29
- let g:tagbar_type_coffee = {
30
- \\ 'kinds' : [
31
- \\ 'f:functions',
32
- \\ 'o:object'
33
- \\ ],
34
- \\ 'kind2scope' : {
35
- \\ 'f' : 'object',
36
- \\ 'o' : 'object'
37
- \\},
38
- \\ 'sro' : ".",
39
- \\ 'ctagsbin' : 'coffeetags',
40
- \\ 'ctagsargs' : '#{include_vars ? "--include-vars" : "" } ',
41
- \\}
42
- CONF
25
+ include_vars_opt = include_vars ? "--include-vars" : ''
26
+
27
+ tmpl_file = File.read(File.expand_path("../../vim/tagbar-coffee.vim.erb", __FILE__))
28
+ tmpl = ERB.new(tmpl_file)
29
+
30
+ tmpl.result(binding)
43
31
  end
44
32
 
45
33
  def self.option_parser args
46
34
  args << '-h' if args.empty?
47
35
  options = {}
48
36
  optparse = OptionParser.new do |opts|
49
-
50
37
  opts.banner = (<<-BAN
38
+ ---------------------------------------------------------------------
51
39
  #{NAME} #{Coffeetags::VERSION}
40
+ ---------------------------------------------------------------------
52
41
  by #{AUTHOR} ( #{URL} )
53
42
  Usage:
54
43
  coffeetags [OPTIONS] <list of files>
44
+
45
+ CoffeeTags + TagBar + Vim ---> https://gist.github.com/1935512
46
+ ---------------------------------------------------------------------
55
47
  BAN
56
48
  ).gsub(/^\s*/,'')
57
49
 
58
- opts.on('-i', '--include-vars', "Include variables in generated tags") do |o|
50
+
51
+ opts.on('--include-vars', "Include variables in generated tags") do |o|
59
52
  options[:include_vars] = true
60
53
  end
61
54
 
@@ -68,10 +61,14 @@ module Coffeetags
68
61
  options[:recur] = true
69
62
  end
70
63
 
64
+ opts.on('--vim-conf', 'Generate TagBar config (more info https://gist.github.com/1935512 )') do
65
+ puts tagbar_conf options[:include_vars]
66
+ exit
67
+ end
68
+
71
69
  opts.on('-v', '--version', 'Current version') do
72
70
  puts Coffeetags::VERSION
73
71
  exit
74
-
75
72
  end
76
73
 
77
74
  opts.on('-h','--help','HALP') do
@@ -3,7 +3,7 @@
3
3
  !_TAG_PROGRAM_AUTHOR Łukasz Korecki /lukasz@coffeesounds.com/
4
4
  !_TAG_PROGRAM_NAME CoffeeTags //
5
5
  !_TAG_PROGRAM_URL https://github.com/lukaszkorecki/CoffeeTags /GitHub repository/
6
- !_TAG_PROGRAM_VERSION 0.0.1.8 //
6
+ !_TAG_PROGRAM_VERSION 0.0.2.2 //
7
7
  bump spec/fixtures/test.coffee /bump/;" f lineno:1 object:window type:function
8
8
  ho spec/fixtures/test.coffee /ho/;" f lineno:5 object:Wat type:function
9
9
  bump spec/fixtures/test.coffee /bump/;" f lineno:10 object:Wat.ho.@lolWat type:function
@@ -3,7 +3,7 @@
3
3
  !_TAG_PROGRAM_AUTHOR Łukasz Korecki /lukasz@coffeesounds.com/
4
4
  !_TAG_PROGRAM_NAME CoffeeTags //
5
5
  !_TAG_PROGRAM_URL https://github.com/lukaszkorecki/CoffeeTags /GitHub repository/
6
- !_TAG_PROGRAM_VERSION 0.0.1.8 //
6
+ !_TAG_PROGRAM_VERSION 0.0.2.2 //
7
7
  bump spec/fixtures/test.coffee /bump/;" f lineno:1 object:window type:function
8
8
  ho spec/fixtures/test.coffee /ho/;" f lineno:5 object:Wat type:function
9
9
  bump spec/fixtures/test.coffee /bump/;" f lineno:10 object:Wat.ho.@lolWat type:function
@@ -0,0 +1,40 @@
1
+ # How to use CoffeeTags with [TagBar ](https://github.com/majutsushi/tagbar)
2
+
3
+ ## Config types
4
+
5
+ CoffeeTags can work in 2 modes:
6
+
7
+ - tags only for functions (default)
8
+ - tags for functions and objects containing them
9
+
10
+ Second mode is activated by adding --include-vars to command line arguments
11
+
12
+ # CoffeeTags + TagBar + Vim
13
+
14
+ ## Config in vimrc
15
+
16
+ You can add the config to your .vimrc (making sure that the old one is removed)
17
+ by:
18
+
19
+ coffeetags --vim-conf >> ~/.vimrc
20
+
21
+ or (for 2nd mode)
22
+
23
+ coffeetags --include-vars --vim-conf >> ~/.vimrc
24
+
25
+
26
+ ## Config as a filetype plugin
27
+
28
+ You can generate a special filetype plugin and tagbar will use that
29
+ automatically.
30
+
31
+ This option is preferable if you want to keep your vimrc short.
32
+
33
+ coffeetags --vim-conf > ~/vim/ftplugin/coffee/tagbar-coffee.vim
34
+ coffeetags [--include-vars] --vim-conf > ~/vim/ftplugin/coffee/tagbar-coffee.vim
35
+
36
+ or if you're using pathogen
37
+
38
+ coffeetags [--include-vars] --vim-conf > ~/vim/bundle/coffeetags/ftplugin/coffee/tagbar-coffee.vim
39
+ coffeetags --vim-conf > ~/vim/bundle/coffeetags/ftplugin/coffee/tagbar-coffee.vim
40
+
@@ -0,0 +1,15 @@
1
+ if executable('coffeetags')
2
+ let g:tagbar_type_coffee = {
3
+ \ 'ctagsbin' : 'coffeetags',
4
+ \ 'ctagsargs' : '<%= include_vars_opt %>',
5
+ \ 'kinds' : [
6
+ \ 'f:functions',
7
+ \ 'o:object',
8
+ \ ],
9
+ \ 'sro' : ".",
10
+ \ 'kind2scope' : {
11
+ \ 'f' : 'object',
12
+ \ 'o' : 'object',
13
+ \ }
14
+ \ }
15
+ endif
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: CoffeeTags
3
3
  version: !ruby/object:Gem::Version
4
- hash: 71
4
+ hash: 67
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
9
  - 2
10
- - 0
11
- version: 0.0.2.0
10
+ - 2
11
+ version: 0.0.2.2
12
12
  platform: ruby
13
13
  authors:
14
14
  - "\xC5\x81ukasz Korecki"
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2012-02-28 00:00:00 +00:00
19
+ date: 2012-03-06 00:00:00 +00:00
20
20
  default_executable:
21
21
  dependencies: []
22
22
 
@@ -57,7 +57,9 @@ files:
57
57
  - spec/formatter_spec.rb
58
58
  - spec/parser_spec.rb
59
59
  - spec/spec_helper.rb
60
+ - tagbar-info.markdown
60
61
  - test.rb
62
+ - vim/tagbar-coffee.vim.erb
61
63
  has_rdoc: true
62
64
  homepage: http://github.com/lukaszkorecki/CoffeeTags
63
65
  licenses: []