starscope 0.1.10 → 1.0.0
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/.travis.yml +1 -2
- data/CHANGELOG.md +27 -2
- data/Gemfile.lock +8 -8
- data/README.md +5 -8
- data/bin/starscope +98 -62
- data/lib/starscope/db.rb +176 -143
- data/lib/starscope/langs/coffeescript.rb +12 -0
- data/lib/starscope/langs/go.rb +25 -21
- data/lib/starscope/langs/lua.rb +12 -0
- data/lib/starscope/langs/ruby.rb +16 -24
- data/lib/starscope/matcher.rb +44 -0
- data/lib/starscope/output.rb +41 -0
- data/lib/starscope/record.rb +88 -0
- data/lib/starscope/version.rb +1 -1
- data/starscope.gemspec +1 -1
- data/test/files/sample_golang.go +19 -0
- data/test/lib/test_db.rb +80 -16
- data/test/lib/test_golang.rb +16 -13
- data/test/lib/test_matcher.rb +34 -0
- data/test/lib/test_record.rb +20 -0
- data/test/lib/test_ruby.rb +12 -12
- data/test/lib/test_starscope.rb +33 -0
- metadata +16 -8
- data/lib/starscope/datum.rb +0 -91
- data/test/lib/test_version.rb +0 -9
data/test/lib/test_db.rb
CHANGED
@@ -1,9 +1,26 @@
|
|
1
1
|
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
require 'tempfile'
|
2
3
|
|
3
4
|
describe StarScope::DB do
|
4
5
|
|
6
|
+
def validate(db)
|
7
|
+
files = db.instance_eval('@meta[:files]')
|
8
|
+
files.keys.must_include GOLANG_SAMPLE
|
9
|
+
files.keys.must_include RUBY_SAMPLE
|
10
|
+
files[GOLANG_SAMPLE][:last_updated].must_equal File.mtime(GOLANG_SAMPLE).to_i
|
11
|
+
files[RUBY_SAMPLE][:last_updated].must_equal File.mtime(RUBY_SAMPLE).to_i
|
12
|
+
|
13
|
+
tbls = db.instance_eval('@tables')
|
14
|
+
defs = tbls[:defs].map {|x| x[:name][-1]}
|
15
|
+
assert defs.include? :DB
|
16
|
+
assert defs.include? :NoTableError
|
17
|
+
assert defs.include? :load
|
18
|
+
assert defs.include? :update
|
19
|
+
assert defs.include? :files_from_path
|
20
|
+
end
|
21
|
+
|
5
22
|
before do
|
6
|
-
@db = StarScope::DB.new(false)
|
23
|
+
@db = StarScope::DB.new(false, false)
|
7
24
|
end
|
8
25
|
|
9
26
|
it "must raise on invalid tables" do
|
@@ -11,34 +28,81 @@ describe StarScope::DB do
|
|
11
28
|
end
|
12
29
|
|
13
30
|
it "must correctly add paths" do
|
14
|
-
paths = [GOLANG_SAMPLE, 'test/files']
|
31
|
+
paths = [GOLANG_SAMPLE, 'test/files/**/*']
|
15
32
|
@db.add_paths(paths)
|
16
|
-
@db.instance_eval('@paths').must_equal paths
|
17
|
-
@db
|
18
|
-
@db.instance_eval('@files').keys.must_include RUBY_SAMPLE
|
33
|
+
@db.instance_eval('@meta[:paths]').must_equal paths
|
34
|
+
validate(@db)
|
19
35
|
end
|
20
36
|
|
21
37
|
it "must correctly pick up new files in old paths" do
|
22
|
-
@db.instance_eval('@paths = ["test/files"]')
|
38
|
+
@db.instance_eval('@meta[:paths] = ["test/files/**/*"]')
|
23
39
|
@db.update
|
24
|
-
|
25
|
-
files.must_include GOLANG_SAMPLE
|
26
|
-
files.must_include RUBY_SAMPLE
|
40
|
+
validate(@db)
|
27
41
|
end
|
28
42
|
|
29
43
|
it "must correctly remove old files in existing paths" do
|
30
|
-
@db.instance_eval('@paths = ["test/files"]')
|
31
|
-
@db.instance_eval('@files = {"test/files/foo"=>
|
32
|
-
@db.instance_eval('@files').keys.must_include 'test/files/foo'
|
44
|
+
@db.instance_eval('@meta[:paths] = ["test/files"]')
|
45
|
+
@db.instance_eval('@meta[:files] = {"test/files/foo" => {:last_update=>1}}')
|
46
|
+
@db.instance_eval('@meta[:files]').keys.must_include 'test/files/foo'
|
33
47
|
@db.update
|
34
|
-
@db.instance_eval('@files').keys.wont_include 'test/files/foo'
|
48
|
+
@db.instance_eval('@meta[:files]').keys.wont_include 'test/files/foo'
|
35
49
|
end
|
36
50
|
|
37
51
|
it "must correctly load an old DB file" do
|
38
52
|
@db.load('test/files/db_old.json.gz')
|
39
|
-
@db.instance_eval('@paths').must_equal ['test/files']
|
40
|
-
@db
|
41
|
-
|
53
|
+
@db.instance_eval('@meta[:paths]').must_equal ['test/files/**/*']
|
54
|
+
validate(@db)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "must correctly round-trip a database" do
|
58
|
+
file = Tempfile.new('starscope_test')
|
59
|
+
begin
|
60
|
+
@db.add_paths(['test/files'])
|
61
|
+
@db.save(file.path)
|
62
|
+
tmp = StarScope::DB.new(false, false)
|
63
|
+
tmp.load(file.path)
|
64
|
+
validate(tmp)
|
65
|
+
ensure
|
66
|
+
file.close
|
67
|
+
file.unlink
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
it "must correctly export to ctags" do
|
72
|
+
file = Tempfile.new('starscope_test')
|
73
|
+
begin
|
74
|
+
@db.add_paths(['test/files'])
|
75
|
+
@db.export_ctags(file)
|
76
|
+
file.rewind
|
77
|
+
lines = file.lines.to_a
|
78
|
+
lines.must_include "NoTableError\ttest/files/sample_ruby.rb\t/^ class NoTableError < StandardError; end$/;\"\tkind:c\n"
|
79
|
+
ensure
|
80
|
+
file.close
|
81
|
+
file.unlink
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
it "must correctly export to cscope" do
|
86
|
+
file = Tempfile.new('starscope_test')
|
87
|
+
begin
|
88
|
+
@db.add_paths(['test/files'])
|
89
|
+
@db.export_cscope(file)
|
90
|
+
file.rewind
|
91
|
+
lines = file.lines.to_a
|
92
|
+
lines.must_include "\t@test/files/sample_golang.go\n"
|
93
|
+
lines.must_include "\tgSunday\n"
|
94
|
+
lines.must_include "\t`add_file\n"
|
95
|
+
ensure
|
96
|
+
file.close
|
97
|
+
file.unlink
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
it "must correctly run queries" do
|
102
|
+
@db.add_paths(['test/files'])
|
103
|
+
@db.query(:calls, "abc").must_equal []
|
104
|
+
@db.query(:defs, "xyz").must_equal []
|
105
|
+
@db.query(:calls, "add_file").length.must_equal 3
|
42
106
|
end
|
43
107
|
|
44
108
|
end
|
data/test/lib/test_golang.rb
CHANGED
@@ -3,11 +3,9 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
class TestGolang < Minitest::Test
|
4
4
|
def setup
|
5
5
|
@db = {}
|
6
|
-
StarScope::Lang::Go.extract(GOLANG_SAMPLE) do |tbl,
|
7
|
-
|
8
|
-
@db[tbl]
|
9
|
-
@db[tbl][key] ||= []
|
10
|
-
@db[tbl][key] << args
|
6
|
+
StarScope::Lang::Go.extract(GOLANG_SAMPLE) do |tbl, name, args|
|
7
|
+
@db[tbl] ||= []
|
8
|
+
@db[tbl] << StarScope::Record.build(GOLANG_SAMPLE, name, args)
|
11
9
|
end
|
12
10
|
end
|
13
11
|
|
@@ -19,7 +17,7 @@ class TestGolang < Minitest::Test
|
|
19
17
|
|
20
18
|
def test_defs
|
21
19
|
assert @db.keys.include? :defs
|
22
|
-
defs = @db[:defs].
|
20
|
+
defs = @db[:defs].map {|x| x[:name][-1]}
|
23
21
|
assert defs.include? :a
|
24
22
|
assert defs.include? :b
|
25
23
|
assert defs.include? :c
|
@@ -29,31 +27,36 @@ class TestGolang < Minitest::Test
|
|
29
27
|
assert defs.include? :v2
|
30
28
|
assert defs.include? :Sunday
|
31
29
|
assert defs.include? :Monday
|
30
|
+
assert defs.include? :single_var
|
31
|
+
assert defs.include? :single_const
|
32
|
+
|
33
|
+
refute defs.include? :"0x00"
|
34
|
+
refute defs.include? :"0x01"
|
35
|
+
refute defs.include? :"0x02"
|
36
|
+
refute defs.include? :"0x03"
|
32
37
|
end
|
33
38
|
|
34
|
-
def
|
39
|
+
def test_ends
|
35
40
|
assert @db.keys.include? :end
|
36
|
-
|
37
|
-
assert ends.keys.count == 1
|
38
|
-
assert ends.values.first.count == 5
|
41
|
+
assert @db[:end].count == 6
|
39
42
|
end
|
40
43
|
|
41
44
|
def test_function_calls
|
42
45
|
assert @db.keys.include? :calls
|
43
|
-
calls = @db[:calls]
|
46
|
+
calls = @db[:calls].group_by {|x| x[:name][-1]}
|
44
47
|
assert calls.keys.include? :a
|
45
48
|
assert calls.keys.include? :b
|
46
49
|
assert calls.keys.include? :c
|
47
50
|
assert calls.keys.include? :ttt
|
48
51
|
assert calls[:a].count == 3
|
49
52
|
assert calls[:b].count == 4
|
50
|
-
assert calls[:c].count ==
|
53
|
+
assert calls[:c].count == 4
|
51
54
|
assert calls[:ttt].count == 2
|
52
55
|
end
|
53
56
|
|
54
57
|
def test_variable_assigns
|
55
58
|
assert @db.keys.include? :assigns
|
56
|
-
assigns = @db[:assigns]
|
59
|
+
assigns = @db[:assigns].group_by {|x| x[:name][-1]}
|
57
60
|
assert assigns.keys.include? :x
|
58
61
|
assert assigns.keys.include? :y
|
59
62
|
assert assigns.keys.include? :z
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
describe StarScope::Matcher do
|
4
|
+
|
5
|
+
SAMPLE_RECORDS = [
|
6
|
+
{:name => [:"[abc"]},
|
7
|
+
{:name => [:"not a match"]},
|
8
|
+
{:name => [:a, :b, :c, :d]},
|
9
|
+
]
|
10
|
+
|
11
|
+
it "must handle empty input" do
|
12
|
+
matcher = StarScope::Matcher.new("foo", [])
|
13
|
+
matcher.query.must_be_empty
|
14
|
+
end
|
15
|
+
|
16
|
+
it "must handle scoped queries" do
|
17
|
+
matcher = StarScope::Matcher.new("a::b::", SAMPLE_RECORDS)
|
18
|
+
matcher.query.must_equal [SAMPLE_RECORDS[2]]
|
19
|
+
end
|
20
|
+
|
21
|
+
it "must handle regex queries" do
|
22
|
+
matcher = StarScope::Matcher.new("a[bc]{2}", SAMPLE_RECORDS)
|
23
|
+
matcher.query.must_equal [SAMPLE_RECORDS[0]]
|
24
|
+
|
25
|
+
matcher = StarScope::Matcher.new("a.*d", SAMPLE_RECORDS)
|
26
|
+
matcher.query.must_equal [SAMPLE_RECORDS[2]]
|
27
|
+
end
|
28
|
+
|
29
|
+
it "must handle malformed regexes" do
|
30
|
+
matcher = StarScope::Matcher.new("[abc", SAMPLE_RECORDS)
|
31
|
+
matcher.query.must_equal [SAMPLE_RECORDS[0]]
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
describe StarScope::Record do
|
4
|
+
|
5
|
+
it "must symbolize compound name" do
|
6
|
+
rec = StarScope::Record.build(:foo, ["a", :b], {})
|
7
|
+
rec[:name].must_equal [:a, :b]
|
8
|
+
end
|
9
|
+
|
10
|
+
it "must symbolize and array-wrap simple name" do
|
11
|
+
rec = StarScope::Record.build(:foo, "a", {})
|
12
|
+
rec[:name].must_equal [:a]
|
13
|
+
end
|
14
|
+
|
15
|
+
it "must read correct line from file" do
|
16
|
+
rec = StarScope::Record.build(GOLANG_SAMPLE, :a, {:line_no => 1})
|
17
|
+
rec[:line].must_equal "package main"
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/test/lib/test_ruby.rb
CHANGED
@@ -3,11 +3,9 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
class TestRuby < Minitest::Test
|
4
4
|
def setup
|
5
5
|
@db = {}
|
6
|
-
StarScope::Lang::Ruby.extract(RUBY_SAMPLE) do |tbl,
|
7
|
-
|
8
|
-
@db[tbl]
|
9
|
-
@db[tbl][key] ||= []
|
10
|
-
@db[tbl][key] << args
|
6
|
+
StarScope::Lang::Ruby.extract(RUBY_SAMPLE) do |tbl, name, args|
|
7
|
+
@db[tbl] ||= []
|
8
|
+
@db[tbl] << StarScope::Record.build(RUBY_SAMPLE, name, args)
|
11
9
|
end
|
12
10
|
end
|
13
11
|
|
@@ -20,7 +18,7 @@ class TestRuby < Minitest::Test
|
|
20
18
|
|
21
19
|
def test_function_defs
|
22
20
|
assert @db.keys.include? :defs
|
23
|
-
defs = @db[:defs].
|
21
|
+
defs = @db[:defs].map {|x| x[:name][-1]}
|
24
22
|
assert defs.include? :DB
|
25
23
|
assert defs.include? :NoTableError
|
26
24
|
assert defs.include? :load
|
@@ -28,16 +26,18 @@ class TestRuby < Minitest::Test
|
|
28
26
|
assert defs.include? :files_from_path
|
29
27
|
end
|
30
28
|
|
31
|
-
def
|
29
|
+
def test_constant_defs
|
30
|
+
assert @db[:defs].map {|x| x[:name][-1]}.include? :PBAR_FORMAT
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_ends
|
32
34
|
assert @db.keys.include? :end
|
33
|
-
|
34
|
-
assert ends.keys.count == 1
|
35
|
-
assert ends.values.first.count == 13
|
35
|
+
assert @db[:end].count == 13
|
36
36
|
end
|
37
37
|
|
38
38
|
def test_function_calls
|
39
39
|
assert @db.keys.include? :calls
|
40
|
-
calls = @db[:calls]
|
40
|
+
calls = @db[:calls].group_by {|x| x[:name][-1]}
|
41
41
|
assert calls.keys.include? :add_file
|
42
42
|
assert calls.keys.include? :each
|
43
43
|
assert calls[:add_file].count == 3
|
@@ -46,7 +46,7 @@ class TestRuby < Minitest::Test
|
|
46
46
|
|
47
47
|
def test_variable_assigns
|
48
48
|
assert @db.keys.include? :assigns
|
49
|
-
assigns = @db[:assigns]
|
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
52
|
assert assigns[:pbar].count == 2
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require File.expand_path('../../test_helper', __FILE__)
|
2
|
+
|
3
|
+
class TestStarScope < Minitest::Test
|
4
|
+
|
5
|
+
EXEC = 'bundle exec bin/starscope --no-read --no-write --no-progress ./test/files/'
|
6
|
+
|
7
|
+
def test_help
|
8
|
+
`#{EXEC} -h`.each_line do |line|
|
9
|
+
assert line.length <= 80
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_version
|
14
|
+
assert `#{EXEC} -v`.chomp == StarScope::VERSION
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_summary
|
18
|
+
lines = `#{EXEC} -s`.lines
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_dump
|
22
|
+
lines = `#{EXEC} -d requires`.lines.to_a
|
23
|
+
assert lines[1].split.first == 'date'
|
24
|
+
assert lines[2].split.first == 'zlib'
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_query
|
28
|
+
`#{EXEC} -q calls,add_file`.each_line do |line|
|
29
|
+
assert line.split[0..2] == ["StarScope", "DB", "add_file"]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: starscope
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
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: 2014-
|
12
|
+
date: 2014-04-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: oj
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '2.
|
21
|
+
version: '2.7'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '2.
|
29
|
+
version: '2.7'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: parser
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,10 +140,14 @@ files:
|
|
140
140
|
- Rakefile
|
141
141
|
- bin/starscope
|
142
142
|
- lib/starscope.rb
|
143
|
-
- lib/starscope/datum.rb
|
144
143
|
- lib/starscope/db.rb
|
144
|
+
- lib/starscope/langs/coffeescript.rb
|
145
145
|
- lib/starscope/langs/go.rb
|
146
|
+
- lib/starscope/langs/lua.rb
|
146
147
|
- lib/starscope/langs/ruby.rb
|
148
|
+
- lib/starscope/matcher.rb
|
149
|
+
- lib/starscope/output.rb
|
150
|
+
- lib/starscope/record.rb
|
147
151
|
- lib/starscope/version.rb
|
148
152
|
- starscope.gemspec
|
149
153
|
- test/files/db_old.json.gz
|
@@ -152,8 +156,10 @@ files:
|
|
152
156
|
- test/files/sample_ruby.rb
|
153
157
|
- test/lib/test_db.rb
|
154
158
|
- test/lib/test_golang.rb
|
159
|
+
- test/lib/test_matcher.rb
|
160
|
+
- test/lib/test_record.rb
|
155
161
|
- test/lib/test_ruby.rb
|
156
|
-
- test/lib/
|
162
|
+
- test/lib/test_starscope.rb
|
157
163
|
- test/test_helper.rb
|
158
164
|
homepage: https://github.com/eapache/starscope
|
159
165
|
licenses:
|
@@ -176,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
182
|
version: '0'
|
177
183
|
segments:
|
178
184
|
- 0
|
179
|
-
hash:
|
185
|
+
hash: 4554607803448639637
|
180
186
|
requirements: []
|
181
187
|
rubyforge_project:
|
182
188
|
rubygems_version: 1.8.23
|
@@ -190,6 +196,8 @@ test_files:
|
|
190
196
|
- test/files/sample_ruby.rb
|
191
197
|
- test/lib/test_db.rb
|
192
198
|
- test/lib/test_golang.rb
|
199
|
+
- test/lib/test_matcher.rb
|
200
|
+
- test/lib/test_record.rb
|
193
201
|
- test/lib/test_ruby.rb
|
194
|
-
- test/lib/
|
202
|
+
- test/lib/test_starscope.rb
|
195
203
|
- test/test_helper.rb
|
data/lib/starscope/datum.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
class StarScope::Datum
|
2
|
-
|
3
|
-
def self.build(file, key, args)
|
4
|
-
args[:file] = file
|
5
|
-
args[:key] = key
|
6
|
-
|
7
|
-
if args[:line_no]
|
8
|
-
args[:line] = File.readlines(file)[args[:line_no]-1].chomp
|
9
|
-
end
|
10
|
-
|
11
|
-
if args[:scope]
|
12
|
-
if args[:scope].empty?
|
13
|
-
args.delete(:scope)
|
14
|
-
else
|
15
|
-
args[:scope] = args[:scope].map {|x| x.to_sym}
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
args
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.score_match(dat, fqn)
|
23
|
-
return 0 if not dat[:scope]
|
24
|
-
|
25
|
-
score = 0
|
26
|
-
|
27
|
-
i = -1
|
28
|
-
fqn[0...-1].reverse.each do |test|
|
29
|
-
if test.to_sym == dat[:scope][i]
|
30
|
-
score += 5
|
31
|
-
elsif Regexp.new(test, Regexp::IGNORECASE).match(dat[:scope][i])
|
32
|
-
score += 2
|
33
|
-
end
|
34
|
-
i -= 1
|
35
|
-
end
|
36
|
-
|
37
|
-
score - dat[:scope].count - i + 1
|
38
|
-
end
|
39
|
-
|
40
|
-
def self.location(dat)
|
41
|
-
"#{dat[:file]}:#{dat[:line_no]}"
|
42
|
-
end
|
43
|
-
|
44
|
-
def self.to_s(dat)
|
45
|
-
str = ""
|
46
|
-
str << "#{dat[:scope].join " "} " if dat[:scope]
|
47
|
-
str << "#{dat[:key]} -- #{location dat}"
|
48
|
-
str << " (#{dat[:line].strip})"
|
49
|
-
end
|
50
|
-
|
51
|
-
def self.ctag_line(dat)
|
52
|
-
"#{dat[:key]}\t#{dat[:file]}\t/^#{dat[:line]}$/;"
|
53
|
-
end
|
54
|
-
|
55
|
-
def self.cscope_mark(tbl, dat)
|
56
|
-
case tbl
|
57
|
-
when :end
|
58
|
-
case dat[:type]
|
59
|
-
when :func
|
60
|
-
ret = "}"
|
61
|
-
else
|
62
|
-
return ""
|
63
|
-
end
|
64
|
-
when :file
|
65
|
-
ret = "@"
|
66
|
-
when :defs
|
67
|
-
case dat[:type]
|
68
|
-
when :func
|
69
|
-
ret = "$"
|
70
|
-
when :class, :module
|
71
|
-
ret = "c"
|
72
|
-
when :type
|
73
|
-
ret = "t"
|
74
|
-
else
|
75
|
-
ret = "g"
|
76
|
-
end
|
77
|
-
when :calls
|
78
|
-
ret = "`"
|
79
|
-
when :requires
|
80
|
-
ret = "~\""
|
81
|
-
when :imports
|
82
|
-
ret = "~<"
|
83
|
-
when :assigns
|
84
|
-
ret = "="
|
85
|
-
else
|
86
|
-
return ""
|
87
|
-
end
|
88
|
-
|
89
|
-
return "\t" + ret
|
90
|
-
end
|
91
|
-
end
|