starscope 1.1.0 → 1.1.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/CHANGELOG.md +11 -1
- data/Gemfile.lock +1 -1
- data/README.md +3 -3
- data/doc/USER_GUIDE.md +11 -0
- data/lib/starscope/db.rb +1 -1
- data/lib/starscope/langs/ruby.rb +7 -2
- data/lib/starscope/record.rb +6 -4
- data/lib/starscope/version.rb +1 -1
- data/test/fixtures/sample_ruby.rb +1 -0
- data/test/unit/test_db.rb +1 -1
- data/test/unit/test_record.rb +1 -1
- data/test/unit/test_ruby.rb +5 -0
- metadata +32 -13
- checksums.yaml +0 -7
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,17 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
-
v1.1.
|
4
|
+
v1.1.1 (trunk)
|
5
|
+
--------------------
|
6
|
+
|
7
|
+
New Features:
|
8
|
+
* Export of ctags `language` tag (needed for `YouCompleteMe` support).
|
9
|
+
|
10
|
+
Bug Fixes:
|
11
|
+
* In ruby, correctly report calls to functions such as `foo=` as assignments to
|
12
|
+
`foo`.
|
13
|
+
|
14
|
+
v1.1.0 (2014-07-16)
|
5
15
|
--------------------
|
6
16
|
|
7
17
|
Bug Fixes:
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -4,14 +4,14 @@ StarScope
|
|
4
4
|
[](http://badge.fury.io/rb/starscope)
|
5
5
|
[](https://travis-ci.org/eapache/starscope)
|
6
6
|
|
7
|
-
Anyone who has done much programming in C (or C++) on a
|
7
|
+
Anyone who has done much programming in C (or C++) on a Unix-based OS has come
|
8
8
|
across the fantastic [Cscope](http://cscope.sourceforge.net/) tool. Sadly, it
|
9
9
|
only works for C (and sort of works for C++).
|
10
10
|
|
11
11
|
StarScope is a similar tool for [Ruby](https://www.ruby-lang.org/) and
|
12
12
|
[Golang](http://golang.org/), with a design intended to make it easy to add
|
13
|
-
support for other languages within the same framework
|
14
|
-
i.e. \*scope).
|
13
|
+
[support for other languages](doc/LANGUAGE_SUPPORT.md) within the same framework
|
14
|
+
(thus the name StarScope, i.e. \*scope).
|
15
15
|
|
16
16
|
Install it as a gem:
|
17
17
|
```
|
data/doc/USER_GUIDE.md
CHANGED
@@ -1,6 +1,17 @@
|
|
1
1
|
StarScope User Guide
|
2
2
|
====================
|
3
3
|
|
4
|
+
About
|
5
|
+
-----
|
6
|
+
|
7
|
+
Anyone who has done much programming in C (or C++) on a Unix-based OS has come
|
8
|
+
across the fantastic [Cscope](http://cscope.sourceforge.net/) tool. Sadly, it
|
9
|
+
only works for C (and sort of works for C++).
|
10
|
+
|
11
|
+
StarScope is a similar tool for [Ruby](https://www.ruby-lang.org/) and
|
12
|
+
[Golang](http://golang.org/), with a design intended to make it easy to add
|
13
|
+
[support for other languages](doc/LANGUAGE_SUPPORT.md) within the same framework
|
14
|
+
(thus the name StarScope, i.e. \*scope).
|
4
15
|
|
5
16
|
Installation
|
6
17
|
------------
|
data/lib/starscope/db.rb
CHANGED
@@ -193,7 +193,7 @@ class StarScope::DB
|
|
193
193
|
END
|
194
194
|
defs = (@tables[:defs] || {}).sort_by {|x| x[:name][-1].to_s}
|
195
195
|
defs.each do |record|
|
196
|
-
file.puts StarScope::Record.ctag_line(record)
|
196
|
+
file.puts StarScope::Record.ctag_line(record, @meta[:files][record[:file]])
|
197
197
|
end
|
198
198
|
end
|
199
199
|
|
data/lib/starscope/langs/ruby.rb
CHANGED
@@ -55,8 +55,13 @@ module StarScope::Lang
|
|
55
55
|
|
56
56
|
case node.type
|
57
57
|
when :send
|
58
|
-
|
59
|
-
|
58
|
+
name = scoped_name(node)
|
59
|
+
yield :calls, name, :line_no => loc.line, :col => loc.column
|
60
|
+
|
61
|
+
if name.last.to_s =~ /\w+=$/
|
62
|
+
name[-1] = name.last.to_s.chop.to_sym
|
63
|
+
yield :assigns, name, :line_no => loc.line, :col => loc.column
|
64
|
+
elsif node.children[0].nil? and node.children[1] == :require and node.children[2].type == :str
|
60
65
|
yield :requires, node.children[2].children[0].split("/"),
|
61
66
|
:line_no => loc.line, :col => loc.column
|
62
67
|
end
|
data/lib/starscope/record.rb
CHANGED
@@ -28,13 +28,13 @@ class StarScope::Record
|
|
28
28
|
"#{rec[:name].join " "} -- #{rec[:file]}:#{rec[:line_no]} (#{rec[:line].strip})"
|
29
29
|
end
|
30
30
|
|
31
|
-
def self.ctag_line(rec)
|
31
|
+
def self.ctag_line(rec, file)
|
32
32
|
ret = "#{rec[:name][-1]}\t#{rec[:file]}\t/^#{rec[:line]}$/"
|
33
33
|
|
34
|
-
ext = self.ctag_ext_tags(rec)
|
34
|
+
ext = self.ctag_ext_tags(rec, file)
|
35
35
|
if not ext.empty?
|
36
36
|
ret << ";\""
|
37
|
-
ext.each do |k, v|
|
37
|
+
ext.sort.each do |k, v|
|
38
38
|
ret << "\t#{k}:#{v}"
|
39
39
|
end
|
40
40
|
end
|
@@ -42,7 +42,7 @@ class StarScope::Record
|
|
42
42
|
ret
|
43
43
|
end
|
44
44
|
|
45
|
-
def self.ctag_ext_tags(rec)
|
45
|
+
def self.ctag_ext_tags(rec, file)
|
46
46
|
tag = {}
|
47
47
|
|
48
48
|
# these extensions are documented at http://ctags.sourceforge.net/FORMAT
|
@@ -53,6 +53,8 @@ class StarScope::Record
|
|
53
53
|
tag["kind"] = "c"
|
54
54
|
end
|
55
55
|
|
56
|
+
tag["language"] = file[:lang]
|
57
|
+
|
56
58
|
tag
|
57
59
|
end
|
58
60
|
|
data/lib/starscope/version.rb
CHANGED
data/test/unit/test_db.rb
CHANGED
@@ -96,7 +96,7 @@ describe StarScope::DB do
|
|
96
96
|
@db.export_ctags(file)
|
97
97
|
file.rewind
|
98
98
|
lines = file.lines.to_a
|
99
|
-
lines.must_include "NoTableError\t#{FIXTURES}/sample_ruby.rb\t/^ class NoTableError < StandardError; end$/;\"\tkind:c\n"
|
99
|
+
lines.must_include "NoTableError\t#{FIXTURES}/sample_ruby.rb\t/^ class NoTableError < StandardError; end$/;\"\tkind:c\tlanguage:Ruby\n"
|
100
100
|
ensure
|
101
101
|
file.close
|
102
102
|
file.unlink
|
data/test/unit/test_record.rb
CHANGED
@@ -25,7 +25,7 @@ describe StarScope::Record do
|
|
25
25
|
rec = StarScope::Record.build(RUBY_SAMPLE, :a, {:line_no => 1})
|
26
26
|
rec[:line].must_equal "require 'date'"
|
27
27
|
|
28
|
-
rec = StarScope::Record.build(RUBY_SAMPLE, :a, {:line_no =>
|
28
|
+
rec = StarScope::Record.build(RUBY_SAMPLE, :a, {:line_no => 164})
|
29
29
|
rec[:line].must_equal "end"
|
30
30
|
|
31
31
|
rec = StarScope::Record.build(GOLANG_SAMPLE, :a, {:line_no => 67})
|
data/test/unit/test_ruby.rb
CHANGED
@@ -49,7 +49,12 @@ class TestRuby < Minitest::Test
|
|
49
49
|
assigns = @db[:assigns].group_by {|x| x[:name][-1]}
|
50
50
|
assert assigns.keys.include? :pbar
|
51
51
|
assert assigns.keys.include? :PBAR_FORMAT
|
52
|
+
assert assigns.keys.include? :foo
|
52
53
|
assert assigns[:pbar].count == 2
|
53
54
|
assert assigns[:PBAR_FORMAT].count == 1
|
55
|
+
assert assigns[:foo].count == 1
|
56
|
+
|
57
|
+
refute assigns.keys.include? "=".to_sym
|
58
|
+
refute assigns.keys.include? "<".to_sym
|
54
59
|
end
|
55
60
|
end
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: starscope
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Evan Huus
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
12
|
+
date: 2014-07-21 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: oj
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,6 +30,7 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: parser
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ~>
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: ruby-progressbar
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - ~>
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -55,6 +62,7 @@ dependencies:
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: bundler
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ~>
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ~>
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -69,43 +78,49 @@ dependencies:
|
|
69
78
|
- !ruby/object:Gem::Dependency
|
70
79
|
name: rake
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
72
82
|
requirements:
|
73
|
-
- - '>='
|
83
|
+
- - ! '>='
|
74
84
|
- !ruby/object:Gem::Version
|
75
85
|
version: '0'
|
76
86
|
type: :development
|
77
87
|
prerelease: false
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
79
90
|
requirements:
|
80
|
-
- - '>='
|
91
|
+
- - ! '>='
|
81
92
|
- !ruby/object:Gem::Version
|
82
93
|
version: '0'
|
83
94
|
- !ruby/object:Gem::Dependency
|
84
95
|
name: pry
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
86
98
|
requirements:
|
87
|
-
- - '>='
|
99
|
+
- - ! '>='
|
88
100
|
- !ruby/object:Gem::Version
|
89
101
|
version: '0'
|
90
102
|
type: :development
|
91
103
|
prerelease: false
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
93
106
|
requirements:
|
94
|
-
- - '>='
|
107
|
+
- - ! '>='
|
95
108
|
- !ruby/object:Gem::Version
|
96
109
|
version: '0'
|
97
110
|
- !ruby/object:Gem::Dependency
|
98
111
|
name: minitest
|
99
112
|
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
100
114
|
requirements:
|
101
|
-
- - '>='
|
115
|
+
- - ! '>='
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
118
|
type: :development
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
107
122
|
requirements:
|
108
|
-
- - '>='
|
123
|
+
- - ! '>='
|
109
124
|
- !ruby/object:Gem::Version
|
110
125
|
version: '0'
|
111
126
|
description: A tool like the venerable cscope, but for ruby, golang and other languages
|
@@ -151,26 +166,30 @@ files:
|
|
151
166
|
homepage: https://github.com/eapache/starscope
|
152
167
|
licenses:
|
153
168
|
- MIT
|
154
|
-
metadata: {}
|
155
169
|
post_install_message:
|
156
170
|
rdoc_options: []
|
157
171
|
require_paths:
|
158
172
|
- lib
|
159
173
|
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
+
none: false
|
160
175
|
requirements:
|
161
|
-
- - '>='
|
176
|
+
- - ! '>='
|
162
177
|
- !ruby/object:Gem::Version
|
163
178
|
version: 1.8.7
|
164
179
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
+
none: false
|
165
181
|
requirements:
|
166
|
-
- - '>='
|
182
|
+
- - ! '>='
|
167
183
|
- !ruby/object:Gem::Version
|
168
184
|
version: '0'
|
185
|
+
segments:
|
186
|
+
- 0
|
187
|
+
hash: 4529526884689841888
|
169
188
|
requirements: []
|
170
189
|
rubyforge_project:
|
171
|
-
rubygems_version:
|
190
|
+
rubygems_version: 1.8.23
|
172
191
|
signing_key:
|
173
|
-
specification_version:
|
192
|
+
specification_version: 3
|
174
193
|
summary: A code indexer and analyzer
|
175
194
|
test_files:
|
176
195
|
- test/fixtures/db_old.json.gz
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 9f58bc7549fa2f4d8d7da61d2771a1e6f75939e2
|
4
|
-
data.tar.gz: 1452b9af5221dc6bc2147d0149870e564e2344fc
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: d9c15bef6cef5e856d023944439efac3a0caa9c2b55f1b018e50d8f7c4fa6f2ced00b8bb595639958547426db52ae23abb9487611ff883638950dbac9876da48
|
7
|
-
data.tar.gz: 821ec54d44933500bffc87b871410fbd08cdbc3b9c2e9c0f28a9c4dadb289d07fd12215993763e0982b26013d82e1fd589a1cb3eba876bd852e958c495c17df5
|