starscope 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -2
- data/Gemfile.lock +5 -1
- data/README.md +5 -7
- data/Rakefile +1 -1
- data/bin/starscope +56 -48
- data/doc/DB_FORMAT.md +4 -4
- data/doc/LANGUAGE_SUPPORT.md +8 -4
- data/doc/USER_GUIDE.md +36 -9
- data/lib/starscope/db.rb +150 -265
- data/lib/starscope/export.rb +256 -0
- data/lib/starscope/langs/coffeescript.rb +2 -1
- data/lib/starscope/langs/go.rb +20 -2
- data/lib/starscope/langs/ruby.rb +60 -71
- data/lib/starscope/matcher.rb +1 -1
- data/lib/starscope/output.rb +9 -7
- data/lib/starscope/version.rb +2 -2
- data/starscope.gemspec +2 -1
- data/test/fixtures/db_added_files.json +8 -0
- data/test/fixtures/db_old_extractor.json +15 -0
- data/test/fixtures/db_out_of_date.json +15 -0
- data/test/fixtures/db_removed_files.json +12 -0
- data/test/fixtures/db_up_to_date.json +15 -0
- data/test/fixtures/sample_ruby.rb +21 -21
- data/test/functional/starscope_test.rb +57 -0
- data/test/test_helper.rb +1 -0
- data/test/unit/db_test.rb +141 -0
- data/test/unit/export_test.rb +34 -0
- data/test/unit/langs/golang_test.rb +98 -0
- data/test/unit/langs/ruby_test.rb +66 -0
- data/test/unit/{test_matcher.rb → matcher_test.rb} +6 -6
- data/test/unit/output_test.rb +29 -0
- metadata +41 -15
- data/lib/starscope/record.rb +0 -98
- data/test/functional/test_starscope.rb +0 -35
- data/test/unit/test_db.rb +0 -136
- data/test/unit/test_golang.rb +0 -80
- data/test/unit/test_record.rb +0 -35
- data/test/unit/test_ruby.rb +0 -60
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63556d4e16d22bf281211c311fa2ca379b7ec631
|
4
|
+
data.tar.gz: c48c940ea99cd383e0aa6f90a19b0cc2f9df6d96
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad88485b560c0b4f56aa48c76b7b42451d1e91e9f72ff65689207db6ffc1b85cc2c84966399965f4cdf08489d9f5f771bcefda1bc2f61dd83be38f59564f3346
|
7
|
+
data.tar.gz: e03b09376ac960ea2316e5436a9963af358862cebaf51bee7565607bd06b4f60c89df4e5bc5e4802345cd3f7d43f282eac321b853327de8c2ca2959b059dfb8a
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,25 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
-
v1.
|
4
|
+
v1.2.0 (trunk)
|
5
|
+
--------------------
|
6
|
+
|
7
|
+
Improvements:
|
8
|
+
* You can now specify `--export` multiple times with different formats in a
|
9
|
+
single run.
|
10
|
+
* Language extractors are now individually versioned. When an extractor is
|
11
|
+
upgraded, files it owns will be automatically re-parsed.
|
12
|
+
* Deduplicated some metadata, shrinking database size. This comes with a
|
13
|
+
related reduction in read/write time and memory usage.
|
14
|
+
|
15
|
+
Bug Fixes:
|
16
|
+
* Proper handling of golang string literal escapes.
|
17
|
+
|
18
|
+
Misc:
|
19
|
+
* Lots of internal refactoring and test suite improvements for better
|
20
|
+
maintainability going forward.
|
21
|
+
|
22
|
+
v1.1.2 (2014-07-29)
|
5
23
|
--------------------
|
6
24
|
|
7
25
|
Bug Fixes:
|
@@ -105,7 +123,7 @@ v0.1.10 (2014-02-24)
|
|
105
123
|
--------------------
|
106
124
|
|
107
125
|
Improvements:
|
108
|
-
* Import new ruby parser version and make necessary changes so that
|
126
|
+
* Import new ruby parser version and make necessary changes so that Starscope
|
109
127
|
now runs on older Ruby versions (1.9.2 and 1.8.7)
|
110
128
|
|
111
129
|
v0.1.9 (2014-02-22)
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
starscope (1.
|
4
|
+
starscope (1.2.0)
|
5
5
|
oj (~> 2.9)
|
6
6
|
parser (~> 2.1)
|
7
7
|
ruby-progressbar (~> 1.5)
|
@@ -11,8 +11,11 @@ GEM
|
|
11
11
|
specs:
|
12
12
|
ast (2.0.0)
|
13
13
|
coderay (1.1.0)
|
14
|
+
metaclass (0.0.4)
|
14
15
|
method_source (0.8.2)
|
15
16
|
minitest (5.4.0)
|
17
|
+
mocha (1.1.0)
|
18
|
+
metaclass (~> 0.0.1)
|
16
19
|
oj (2.9.9)
|
17
20
|
parser (2.1.9)
|
18
21
|
ast (>= 1.1, < 3.0)
|
@@ -31,6 +34,7 @@ PLATFORMS
|
|
31
34
|
DEPENDENCIES
|
32
35
|
bundler (~> 1.5)
|
33
36
|
minitest
|
37
|
+
mocha
|
34
38
|
pry
|
35
39
|
rake
|
36
40
|
starscope!
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
Starscope
|
2
2
|
=========
|
3
3
|
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/starscope.png)](http://badge.fury.io/rb/starscope)
|
@@ -8,10 +8,10 @@ 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
13
|
[support for other languages](doc/LANGUAGE_SUPPORT.md) within the same framework
|
14
|
-
(thus the name
|
14
|
+
(thus the name Starscope, i.e. \*scope).
|
15
15
|
|
16
16
|
Install it as a gem:
|
17
17
|
```
|
@@ -29,14 +29,12 @@ Ask it things directly:
|
|
29
29
|
$ starscope -q calls,new # Lists all callers of new
|
30
30
|
```
|
31
31
|
|
32
|
-
Export it to various formats for
|
32
|
+
Export it to various existing formats for automatic integration with your editor:
|
33
33
|
```
|
34
34
|
$ starscope -e ctags
|
35
35
|
$ starscope -e cscope
|
36
36
|
```
|
37
37
|
|
38
|
-
More flags and options are available, run `starscope --help` for the complete list.
|
39
|
-
|
40
38
|
More Documentation
|
41
39
|
------------------
|
42
40
|
|
@@ -48,5 +46,5 @@ More Documentation
|
|
48
46
|
Other Uses
|
49
47
|
----------
|
50
48
|
|
51
|
-
|
49
|
+
Starscope is a supported backend for
|
52
50
|
[CodeQuery](https://github.com/ruben2020/codequery).
|
data/Rakefile
CHANGED
data/bin/starscope
CHANGED
@@ -8,14 +8,13 @@ require 'readline'
|
|
8
8
|
require 'starscope'
|
9
9
|
|
10
10
|
DEFAULT_DB='.starscope.db'
|
11
|
-
DEFAULT_CTAGS='tags'
|
12
|
-
DEFAULT_CSCOPE='cscope.out'
|
13
11
|
|
14
12
|
options = {:read => true,
|
15
13
|
:write => true,
|
16
14
|
:update => true,
|
17
15
|
:output => :normal,
|
18
|
-
:
|
16
|
+
:export => [],
|
17
|
+
:db => DEFAULT_DB,
|
19
18
|
}
|
20
19
|
|
21
20
|
# Options Parsing
|
@@ -25,7 +24,7 @@ Usage: starscope [options] [PATHS]
|
|
25
24
|
|
26
25
|
The default database is `#{DEFAULT_DB}` if you don't specify one with -f.
|
27
26
|
The default behaviour is to read and update the database.
|
28
|
-
If no database exists and no PATHS are specified,
|
27
|
+
If no database exists and no PATHS are specified, Starscope builds a new
|
29
28
|
database by recursing in the current directory.
|
30
29
|
|
31
30
|
Scoped queries must use `::` as the scope separator, even for languages which
|
@@ -51,7 +50,7 @@ END
|
|
51
50
|
|
52
51
|
opts.separator "\nDatabase Management"
|
53
52
|
opts.on("-e", "--export FORMAT[,PATH]", "Export in FORMAT to PATH, (see EXPORTING)") do |export|
|
54
|
-
options[:export]
|
53
|
+
options[:export] << export
|
55
54
|
end
|
56
55
|
opts.on("-f", "--file FILE", "Use FILE instead of `#{DEFAULT_DB}`") do |path|
|
57
56
|
options[:db] = path
|
@@ -72,7 +71,7 @@ END
|
|
72
71
|
|
73
72
|
opts.separator "\nMisc"
|
74
73
|
opts.on("-v", "--version", "Print the version number") do
|
75
|
-
puts
|
74
|
+
puts Starscope::VERSION
|
76
75
|
exit
|
77
76
|
end
|
78
77
|
opts.on("--verbose", "Print extra status messages") do
|
@@ -93,22 +92,26 @@ END
|
|
93
92
|
opts.separator <<END
|
94
93
|
\nEXPORTING
|
95
94
|
At the moment two export formats are supported: 'ctags' and 'cscope'. If
|
96
|
-
you don't specify a path, the output is written to the file '#{
|
97
|
-
ctags) or '#{
|
95
|
+
you don't specify a path, the output is written to the file '#{Starscope::Export::CTAGS_DEFAULT_PATH}' (for
|
96
|
+
ctags) or '#{Starscope::Export::CSCOPE_DEFAULT_PATH}' (for cscope) in the current directory.
|
98
97
|
END
|
99
98
|
|
100
99
|
end.parse!
|
101
100
|
|
102
101
|
def print_summary(db)
|
103
|
-
|
104
|
-
puts "No tables" if
|
105
|
-
|
106
|
-
printf("%-8s %5d records\n",
|
102
|
+
tables = db.tables
|
103
|
+
puts "No tables" if tables.empty?
|
104
|
+
tables.sort {|a,b| a.to_s <=> b.to_s}.each do |table|
|
105
|
+
printf("%-8s %5d records\n", table, db.records(table).length)
|
107
106
|
end
|
108
107
|
end
|
109
108
|
|
109
|
+
def format_record(db, rec)
|
110
|
+
"#{rec[:name].join " "} -- #{rec[:file]}:#{rec[:line_no]} (#{db.line_for_record(rec).strip})"
|
111
|
+
end
|
112
|
+
|
110
113
|
def run_query(db, table, value)
|
111
|
-
if
|
114
|
+
if !value
|
112
115
|
$stderr.puts "Invalid input - no query found."
|
113
116
|
return false
|
114
117
|
end
|
@@ -117,55 +120,60 @@ def run_query(db, table, value)
|
|
117
120
|
puts "No results found."
|
118
121
|
else
|
119
122
|
results.sort_by {|x| x[:name].join(' ')}.each do |rec|
|
120
|
-
puts
|
123
|
+
puts format_record(db, rec)
|
121
124
|
end
|
122
125
|
end
|
123
126
|
return true
|
124
|
-
rescue
|
127
|
+
rescue Starscope::DB::NoTableError
|
125
128
|
$stderr.puts "Table '#{table}' doesn't exist."
|
126
129
|
return false
|
127
130
|
end
|
128
131
|
|
132
|
+
def dump_table(db, table)
|
133
|
+
records = db.records(table).sort {|a,b|
|
134
|
+
a[:name][-1].to_s.downcase <=> b[:name][-1].to_s.downcase
|
135
|
+
}
|
136
|
+
|
137
|
+
puts "== Table: #{table} =="
|
138
|
+
puts "No records" if records.empty?
|
139
|
+
|
140
|
+
records.each do |record|
|
141
|
+
puts format_record(db, record)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
129
145
|
def dump(db, table)
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
db.
|
146
|
+
|
147
|
+
case table
|
148
|
+
when nil
|
149
|
+
db.tables.each {|t| dump_table(db, t)}
|
150
|
+
when "_meta"
|
151
|
+
puts db.metadata
|
152
|
+
when /^_/
|
153
|
+
puts db.metadata(table[1..-1].to_sym)
|
134
154
|
else
|
135
|
-
|
155
|
+
dump_table(db, table.to_sym)
|
136
156
|
end
|
157
|
+
|
137
158
|
return true
|
138
|
-
rescue
|
159
|
+
rescue Starscope::DB::NoTableError
|
139
160
|
$stderr.puts "Table '#{table}' doesn't exist."
|
140
161
|
return false
|
141
162
|
end
|
142
163
|
|
143
|
-
def export(db, param
|
164
|
+
def export(db, param)
|
144
165
|
format, path = param.split(',', 2)
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
when 'cscope'; path ||= DEFAULT_CSCOPE
|
149
|
-
else
|
150
|
-
$stderr.puts "Unrecognized export format \"#{format}\""
|
151
|
-
return
|
152
|
-
end
|
153
|
-
|
154
|
-
print "Exporting to '#{path}' in format '#{format}'... " unless output == :quiet
|
155
|
-
File.open(path, 'w') do |file|
|
156
|
-
case format
|
157
|
-
when 'ctags'; db.export_ctags(file)
|
158
|
-
when 'cscope'; db.export_cscope(file)
|
159
|
-
end
|
160
|
-
end
|
161
|
-
puts "done" unless output == :quiet
|
166
|
+
db.export(format.to_sym, path)
|
167
|
+
rescue Starscope::Export::UnknownExportFormatError
|
168
|
+
$stderr.puts "Unrecognized export format \"#{format}\""
|
162
169
|
end
|
163
170
|
|
164
|
-
|
171
|
+
output = Starscope::Output.new(options[:output])
|
172
|
+
db = Starscope::DB.new(output)
|
165
173
|
|
166
174
|
db_exists = File.exists?(options[:db])
|
167
175
|
|
168
|
-
if options[:read]
|
176
|
+
if options[:read] && db_exists
|
169
177
|
new_data = db.load(options[:db])
|
170
178
|
else
|
171
179
|
# no need to run an update if we didn't read any old data
|
@@ -177,11 +185,11 @@ if options[:exclude]
|
|
177
185
|
new_data = true
|
178
186
|
end
|
179
187
|
|
180
|
-
if
|
188
|
+
if !ARGV.empty?
|
181
189
|
# paths specified, add them
|
182
190
|
db.add_paths(ARGV)
|
183
191
|
new_data = true
|
184
|
-
elsif
|
192
|
+
elsif !(options[:read] && db_exists)
|
185
193
|
# no paths were specified and the database was not read or did not exist;
|
186
194
|
# default to building a new DB in the current directory
|
187
195
|
db.add_paths(['.'])
|
@@ -191,9 +199,9 @@ end
|
|
191
199
|
updated = db.update() if options[:update]
|
192
200
|
new_data ||= updated
|
193
201
|
|
194
|
-
db.save(options[:db]) if options[:write]
|
202
|
+
db.save(options[:db]) if options[:write] && (new_data || !db_exists)
|
195
203
|
|
196
|
-
|
204
|
+
options[:export].each { |target| export(db, target) }
|
197
205
|
|
198
206
|
if options[:query]
|
199
207
|
table, query = options[:query].split(',', 2)
|
@@ -237,7 +245,7 @@ if options[:linemode]
|
|
237
245
|
dump(db, param)
|
238
246
|
when "export"
|
239
247
|
if param
|
240
|
-
export(db, param
|
248
|
+
export(db, param)
|
241
249
|
else
|
242
250
|
puts "!export requires an argument"
|
243
251
|
end
|
@@ -245,11 +253,11 @@ if options[:linemode]
|
|
245
253
|
print_summary(db)
|
246
254
|
when "update"
|
247
255
|
changed = db.update
|
248
|
-
db.save(options[:db]) if options[:write]
|
256
|
+
db.save(options[:db]) if options[:write] && changed
|
249
257
|
when "help"
|
250
258
|
puts linemode_help
|
251
259
|
when "version"
|
252
|
-
puts
|
260
|
+
puts Starscope::VERSION
|
253
261
|
when "quit"
|
254
262
|
exit
|
255
263
|
else
|
data/doc/DB_FORMAT.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Database Format
|
2
2
|
===============
|
3
3
|
|
4
|
-
The
|
4
|
+
The Starscope database format has gone through a couple of iterations over the
|
5
5
|
last year, but the current one is pretty nice and I don't see it changing again
|
6
6
|
in the near future. We magically read old formats and convert them, so we only
|
7
7
|
document the current version here.
|
@@ -17,8 +17,8 @@ compression, the file has three lines:
|
|
17
17
|
Version Number
|
18
18
|
--------------
|
19
19
|
|
20
|
-
This is just the
|
21
|
-
will be
|
20
|
+
This is just the ASCII character '5'. If the format changes significantly, it
|
21
|
+
will be incremented, but that is unlikely.
|
22
22
|
|
23
23
|
Metadata
|
24
24
|
--------
|
@@ -28,7 +28,7 @@ This is a [JSON](https://en.wikipedia.org/wiki/Json) object. Keys include:
|
|
28
28
|
* `:excludes` - the paths and patterns to exclude from scanning
|
29
29
|
* `:files` - the files previously scanned (including things like last-modified
|
30
30
|
time)
|
31
|
-
* `:version` - The
|
31
|
+
* `:version` - The Starscope version which wrote the database (not the same as
|
32
32
|
the database format version).
|
33
33
|
|
34
34
|
Databases
|
data/doc/LANGUAGE_SUPPORT.md
CHANGED
@@ -20,8 +20,9 @@ For this doc, we're going to pretend to add support for a language called
|
|
20
20
|
drop the following template in:
|
21
21
|
|
22
22
|
```ruby
|
23
|
-
module
|
23
|
+
module Starscope::Lang
|
24
24
|
module Mylanguage
|
25
|
+
VERSION = 1
|
25
26
|
|
26
27
|
def self.match_file(name)
|
27
28
|
name.end_with?(".mylang")
|
@@ -30,13 +31,16 @@ module StarScope::Lang
|
|
30
31
|
def self.extract(file)
|
31
32
|
# TODO
|
32
33
|
end
|
33
|
-
|
34
34
|
end
|
35
35
|
end
|
36
36
|
```
|
37
37
|
|
38
38
|
This code is pretty simple: we define a module called
|
39
|
-
`
|
39
|
+
`Starscope::Lang::Mylanguage` and give it one constant and two public module
|
40
|
+
methods:
|
41
|
+
* `VERSION` is a constant integer defining the current version of the
|
42
|
+
extractor. It should be incremented when the extractor has changed enough
|
43
|
+
that any existing files should be re-parsed with the new version.
|
40
44
|
* `match_file` takes the name of the file and returns a boolean if that file is
|
41
45
|
written in MyLanguage or not. This can be as simple as checking the file
|
42
46
|
extension (which the sample code does) or looking for a shell #! line, or
|
@@ -74,7 +78,7 @@ you want. Some existing ones that you may want to use include:
|
|
74
78
|
* `col` for the column in the line where the name occurs
|
75
79
|
* `type` for the type of definition (`:func`, `:class`, etc)
|
76
80
|
|
77
|
-
And that's it! Parse your files, yield your records, and the
|
81
|
+
And that's it! Parse your files, yield your records, and the Starscope engine
|
78
82
|
takes care of everything else for you. If you've added support for a language
|
79
83
|
that you think others might find useful, please contribute it (with tests!) via
|
80
84
|
pull request.
|
data/doc/USER_GUIDE.md
CHANGED
@@ -1,6 +1,17 @@
|
|
1
|
-
|
1
|
+
Starscope User Guide
|
2
2
|
====================
|
3
3
|
|
4
|
+
* [About](#about)
|
5
|
+
* [Installation](#installation)
|
6
|
+
* [Quick Start](#quick-start)
|
7
|
+
* [Editor and Workflow Integration](#editor-and-workflow-integration)
|
8
|
+
* [Database Options](#database-options)
|
9
|
+
* [Paths](#paths)
|
10
|
+
* [Queries](#queries)
|
11
|
+
* [Exporting](#exporting)
|
12
|
+
* [Line-Mode](#line-mode)
|
13
|
+
* [Miscellaneous](#miscellaneous)
|
14
|
+
|
4
15
|
About
|
5
16
|
-----
|
6
17
|
|
@@ -8,15 +19,15 @@ Anyone who has done much programming in C (or C++) on a Unix-based OS has come
|
|
8
19
|
across the fantastic [Cscope](http://cscope.sourceforge.net/) tool. Sadly, it
|
9
20
|
only works for C (and sort of works for C++).
|
10
21
|
|
11
|
-
|
22
|
+
Starscope is a similar tool for [Ruby](https://www.ruby-lang.org/) and
|
12
23
|
[Golang](http://golang.org/), with a design intended to make it easy to add
|
13
|
-
[support for other languages](
|
14
|
-
(thus the name
|
24
|
+
[support for other languages](LANGUAGE_SUPPORT.md) within the same framework
|
25
|
+
(thus the name Starscope, i.e. \*scope).
|
15
26
|
|
16
27
|
Installation
|
17
28
|
------------
|
18
29
|
|
19
|
-
|
30
|
+
Starscope is a ruby gem available at https://rubygems.org/gems/starscope.
|
20
31
|
Install it with:
|
21
32
|
```
|
22
33
|
$ gem install starscope
|
@@ -38,12 +49,28 @@ Ask it things directly:
|
|
38
49
|
$ starscope -q calls,new # Lists all callers of new
|
39
50
|
```
|
40
51
|
|
41
|
-
Export it to various formats for
|
52
|
+
Export it to various existing formats for automatic integration with your editor:
|
42
53
|
```
|
43
54
|
$ starscope -e ctags
|
44
55
|
$ starscope -e cscope
|
45
56
|
```
|
46
57
|
|
58
|
+
Editor and Workflow Integration
|
59
|
+
-------------------------------
|
60
|
+
|
61
|
+
While I don't know of any editors that interface natively with Starscope
|
62
|
+
(if you find one, let me know!) there is a much simpler solution. Almost
|
63
|
+
all modern editors know how to read Cscope and Ctags files, and Starscope
|
64
|
+
can export to both of those file formats. Simply export to the appropriate
|
65
|
+
file (see the section on [Exporting](#exporting) below), then use your
|
66
|
+
editor's existing integration and it should just work.
|
67
|
+
|
68
|
+
Many people also like to have this kind of tool automatically run when
|
69
|
+
certain events happen, such as a `git commit`. Tim Pope has an excellent
|
70
|
+
article on [how to do this with Ctags](http://tbaggery.com/2011/08/08/effortless-ctags-with-git.html)
|
71
|
+
and with Starscope it is even simpler. Just place the line
|
72
|
+
`starscope --quiet -e cscope &` into the hooks documented by Tim.
|
73
|
+
|
47
74
|
Database Options
|
48
75
|
----------------
|
49
76
|
|
@@ -60,9 +87,9 @@ flag.
|
|
60
87
|
Paths
|
61
88
|
-----
|
62
89
|
|
63
|
-
|
90
|
+
Starscope has powerful options with sane defaults for managing which paths get
|
64
91
|
scanned for files and which do not. By default when creating a new database,
|
65
|
-
|
92
|
+
Starscope will scan all files recursively in the current directory. To scan
|
66
93
|
specific paths or files instead, pass them as arguments (so `starscope myfolder`
|
67
94
|
would only scan files in `myfolder/`).
|
68
95
|
|
@@ -100,7 +127,7 @@ scope separator).
|
|
100
127
|
Exporting
|
101
128
|
---------
|
102
129
|
|
103
|
-
|
130
|
+
Starscope can export its database into two other formats for use with
|
104
131
|
third-party tools:
|
105
132
|
* cscope format (default path: `cscope.out`)
|
106
133
|
* ctags format (default path: `tags`)
|