utils 0.74.0 → 0.75.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86f1322a16463dd1af9021e0d2a9dc63dfc3704bdf3a8c71874c8f526b8aac0c
4
- data.tar.gz: 8b645c35b3b852f14ad94aee06820b2c15da09306315e4061251e00f318d476c
3
+ metadata.gz: 6f4bbd1ff8f20adf6d2f9876330c263ddf9108bd2d46ceb68e45211c5b8fbea7
4
+ data.tar.gz: cad94f08ffcd2b55eed18ab9ce7e0f9b44a6efe6162a0655b1e70da24bd1327e
5
5
  SHA512:
6
- metadata.gz: bd65623f8475906b5519177ee5ab518fc51111b0565c7fb8c3a904d92e0ffd1a4ed1e2fb3927fb82bfdd3cb94039645a5d40f383aabdb79805270cef364d7897
7
- data.tar.gz: 7c1d0fc7b244523bf63900b5a2d5c3b2e427a7d224e3bdd10697f772d728a333f5d5a17c4a86bf5a2806e57af0b25a71b732d084dada16e8fa6c96f8b3670dec
6
+ metadata.gz: 3e8abfc5598071b791206ead4d6dd2efe1cdf344e880521ffe020f0a360cb36f1801a64f879c9d29687096afae2c19dd4d9291a050c1b59b66c9616238e3594b
7
+ data.tar.gz: 730dfcd09cceadd29734c36f7f02c2937c7053e9d74ff5df302dae3e522fabc5cd674eede9d90311fe86aa43cfd18dde5a8dfa957d002fc1c8f9125f23290dd1
data/.utilsrc CHANGED
@@ -1,12 +1,12 @@
1
1
  # vim: set ft=ruby:
2
2
 
3
3
  search do
4
- prune_dirs /\A(\.svn|\.git|\.terraform|CVS|tmp|coverage|corpus|pkg|\.yardoc)\z/
4
+ prune_dirs /\A(\.svn|\.git|\.terraform|CVS|tmp|coverage|corpus|pkg|\.yardoc|doc)\z/
5
5
  skip_files /(\A\.|\.sw[pon]\z|\.(log|fnm|jpg|jpeg|png|pdf|svg)\z|\Atags\z|~\z)/i
6
6
  end
7
7
 
8
8
  discover do
9
- prune_dirs /\A(\.svn|\.git|\.terraform|\.yardoc|CVS|tmp|coverage|corpus|pkg|\.yardoc)\z/
9
+ prune_dirs /\A(\.svn|\.git|\.terraform|\.yardoc|CVS|tmp|coverage|corpus|pkg|\.yardoc|doc)\z/
10
10
  skip_files /(\A\.|\.sw[pon]\z|\.log\z|~\z)/
11
11
  index_expire_after 3_600
12
12
  end
@@ -31,3 +31,7 @@ end
31
31
  classify do
32
32
  shift_path_by_default 1
33
33
  end
34
+
35
+ code_indexer do
36
+ verbose true
37
+ end
data/Rakefile CHANGED
@@ -14,7 +14,8 @@ GemHadar do
14
14
  map(&File.method(:basename))
15
15
  test_dir 'tests'
16
16
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', '.AppleDouble',
17
- 'tags', '.bundle', '.DS_Store', '.byebug_history', '.yardoc', 'doc'
17
+ 'tags', '.bundle', '.DS_Store', '.byebug_history', '.yardoc', 'doc',
18
+ 'cscope.out', '.starscope.db'
18
19
  package_ignore '.gitignore', 'VERSION'
19
20
  readme 'README.md'
20
21
  licenses << 'GPL-2.0'
@@ -31,6 +32,7 @@ GemHadar do
31
32
  dependency 'ollama-ruby', '~> 1.6'
32
33
  dependency 'kramdown-ansi', '~> 0.1'
33
34
  dependency 'figlet', '~> 1.0'
35
+ dependency 'starscope'
34
36
  dependency 'context_spook', '~> 0.2'
35
37
  dependency 'simplecov'
36
38
  dependency 'debug'
data/bin/code_comment CHANGED
@@ -111,16 +111,18 @@ def build_method_prompt(construct_type, construct, context)
111
111
 
112
112
  Format requirements:
113
113
 
114
- 1. focus on providing a description of the %{construct_type}'s purpose
114
+ 1. Focus on providing a description of the %{construct_type}'s purpose
115
115
  without including any code snippets.
116
- 2. **always** output just the line comments starting each with a single #
117
- character.
118
- 3. **never** output any executable ruby code like class or module
116
+ 2. **Always** output just the line comments starting each with a single #
117
+ character.
118
+ 3. **Never** output blank lines between comment lines that belong to the
119
+ same logical section
120
+ 4. **Never** output any executable ruby code like class or module
119
121
  definitions, or method definitions or other code outside of such
120
122
  comments.
121
- 4. you should omit the @raise if you are not sure.
122
- 5. never use `, `ruby, ```, ```ruby in your response.
123
- 6. never add any other remarks or explanation to your response.
123
+ 5. You should omit the @raise if you are not sure.
124
+ 6. **Never** use `, `ruby, ```, ```ruby in your response.
125
+ 7. **Never** add any other remarks or explanation to your response.
124
126
  EOT
125
127
  $config_dir.read('method-prompt.txt', default: default_prompt) % {
126
128
  construct_type:, construct:, context:,
@@ -150,16 +152,18 @@ def build_class_module_prompt(construct_type, construct, context)
150
152
 
151
153
  Format requirements:
152
154
 
153
- 1. focus on providing a description of the %{construct_type}'s purpose
155
+ 1. Focus on providing a description of the %{construct_type}'s purpose
154
156
  without including any code snippets.
155
- 2. **always** output just the line comments starting each with a single #
156
- character.
157
- 3. **never** output any executable ruby code like class or module
157
+ 2. **Always** output just the line comments starting each with a single #
158
+ character.
159
+ 3. **Never** output blank lines between comment lines that belong to the
160
+ same logical section
161
+ 4. **Never** output any executable ruby code like class or module
158
162
  definitions, or method definitions or other code outside of such
159
163
  comments.
160
- 4. you should omit the @raise if you are not sure.
161
- 5. never use `, `ruby, ```, ```ruby in your response.
162
- 6. never add any other remarks or explanation to your response.
164
+ 5. You should omit the @raise if you are not sure.
165
+ 6. **Never** use `, `ruby, ```, ```ruby in your response.
166
+ 7. **Never** add any other remarks or explanation to your response.
163
167
  EOT
164
168
  $config_dir.read('class-module-prompt.txt', default: default_prompt) % {
165
169
  construct_type:, construct:, context:,
data/bin/code_indexer ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'utils'
4
+ config = Utils::ConfigFile.new
5
+ config.configure_from_paths
6
+
7
+ config.code_indexer.formats.each do |format, output|
8
+ paths = config.code_indexer.paths.grep_v(/Resolving dependencies/)
9
+ puts "Indexing code for #{format}…"
10
+ cmd = [ 'starscope', '-e', format, '-f', output, '--no-read' ]
11
+ config.code_indexer.verbose and cmd << '--verbose'
12
+ cmd.push(*paths)
13
+ system(*cmd)
14
+ puts "Done."
15
+ end
data/bin/serve CHANGED
@@ -6,7 +6,7 @@ require 'tins/go'
6
6
  include Tins::GO
7
7
  require 'webrick'
8
8
 
9
- $opts = go 'p:h'
9
+ $opts = go 'b:p:h', defaults: { ?b => '127.0.0.1', ?p => 8888 }
10
10
 
11
11
  if $opts[?h]
12
12
  puts <<~USAGE
@@ -15,12 +15,14 @@ if $opts[?h]
15
15
  Usage: #{File.basename($0)} [OPTIONS] [DIR]
16
16
 
17
17
  Options:
18
- -p PORT Specify port number (default: 8888)
19
- -h Show this help message
18
+ -b ADDRESS Address to bind to (default: "127.0.0.1")
19
+ -p PORT Specify port number (default: 8888)
20
+ -h Show this help message
20
21
 
21
22
  Examples:
22
- #{File.basename($0)} # Serve current directory on port 8888
23
- #{File.basename($0)} -p 3000 # Serve on port 3000
23
+ #{File.basename($0)} # Serve current directory on 127.0.0.1:8888
24
+ #{File.basename($0)} -b 0.0.0.0 # Serve on 0.0.0.0:3000
25
+ #{File.basename($0)} -p 3000 # Serve on 127.0.0.1:3000
24
26
  #{File.basename($0)} /path/to/dir # Serve specific directory
25
27
 
26
28
  Note: If no directory is specified, serves the current working directory.
@@ -28,11 +30,13 @@ if $opts[?h]
28
30
  exit
29
31
  end
30
32
 
31
- port = ($opts[?p] || 8888).to_i
33
+ address = $opts[?b]
34
+ port = $opts[?p].to_i
32
35
  s = WEBrick::HTTPServer.new(
36
+ BindAddress: address,
33
37
  Port: port,
34
38
  DocumentRoot: ARGV.shift || Dir.pwd
35
39
  )
36
40
  trap('INT') { s.shutdown }
37
- puts "You have been served: http://localhost:#{port}/"
41
+ puts "You have been served: http://#{address}:#{port}/"
38
42
  s.start
@@ -405,54 +405,53 @@ class Utils::ConfigFile
405
405
  @discover ||= Discover.new
406
406
  end
407
407
 
408
- # A configuration class for file system scope operations.
409
- #
410
- # This class manages the configuration settings for defining which files and
411
- # directories should be included or excluded during file system traversals
412
- # and searches. It inherits from FileFinder and provides pattern matching
413
- # capabilities for pruning directories and skipping specific files based on
414
- # configured regular expressions.
415
- class Scope < FileFinder
416
- # The prune_dirs method configures the pattern for identifying directories
417
- # to be pruned during file system operations.
418
- #
419
- # This method sets up a regular expression pattern that matches directory
420
- # names which should be excluded from processing. The default pattern
421
- # excludes version control directories (.svn, .git, CVS) and temporary
422
- # directories (tmp).
423
- #
424
- # @param first [ Regexp ] the regular expression pattern for matching directories to prune
425
- config :prune_dirs, /\A(\.svn|\.git|CVS|tmp)\z/
408
+ # A configuration class for code indexing operations.
409
+ #
410
+ # This class manages the configuration settings for generating code indexes
411
+ # like ctags and cscope. It provides functionality to define which paths
412
+ # should be indexed and what file formats should be generated for each
413
+ # indexing tool.
414
+ #
415
+ # @example
416
+ # indexer = Utils::ConfigFile.new.code_indexer do |config|
417
+ # config.paths = %w[ lib spec ]
418
+ # config.formats = { 'ctags' => 'tags', 'cscope' => 'cscope.out' }
419
+ # end
420
+ #
421
+ # The paths config configures the directories to be included in the index
422
+ # generation process.
423
+ #
424
+ # The formats config configures the output file formats for different indexing
425
+ # tools and the output filenames.
426
+ class CodeIndexer < BlockConfig
427
+ config :verbose, false
426
428
 
427
- # The skip_files configuration method sets up a regular expression pattern
428
- # for filtering out files based on their names.
429
- #
430
- # This method configures a pattern that matches filenames which should be
431
- # skipped during file processing operations.
432
- # It uses a regular expression to identify files that start with a dot, end
433
- # with common temporary file extensions, or match other patterns typically
434
- # associated with backup, swap, log, or temporary files.
435
- #
436
- # @param pattern [ Regexp ] the regular expression pattern used to identify files to skip
437
- config :skip_files, /(\A\.|\.sw[pon]\z|\.log\z|~\z)/
429
+ config :paths, %w[ bin lib spec tests ]
430
+
431
+ config :formats, {
432
+ 'ctags' => 'tags',
433
+ 'cscope' => 'cscope.out',
434
+ }
438
435
  end
439
436
 
440
- # The scope method initializes and returns a Scope object.
437
+ # The code_indexer method manages and returns a CodeIndexer configuration
438
+ # instance.
441
439
  #
442
- # This method creates a new Scope instance either from the provided block or
443
- # with default initialization if no block is given.
444
- # The scope object is stored as an instance variable and reused on subsequent
445
- # calls.
440
+ # This method provides access to a CodeIndexer object that handles configuration
441
+ # for generating code indexes such as ctags and cscope files. It ensures that only
442
+ # one CodeIndexer instance is created per object by storing it in an instance variable.
443
+ # When a block is provided, it initializes the CodeIndexer with custom settings;
444
+ # otherwise, it returns a default CodeIndexer instance.
446
445
  #
447
- # @param block [ Proc ] optional block to pass to the Scope constructor
446
+ # @param block [ Proc ] optional block to configure the CodeIndexer object
448
447
  #
449
- # @return [ Utils::Scope ] a Scope object configured with the provided block
450
- # or default settings
451
- def scope(&block)
448
+ # @return [ Utils::ConfigFile::CodeIndexer ] a CodeIndexer configuration instance
449
+ # configured either by the block or with default settings
450
+ def code_indexer(&block)
452
451
  if block
453
- @scope = Scope.new(&block)
452
+ @code_indexer = CodeIndexer.new(&block)
454
453
  end
455
- @scope ||= Scope.new
454
+ @code_indexer ||= CodeIndexer.new
456
455
  end
457
456
 
458
457
  # A configuration class for whitespace handling operations.
data/lib/utils/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Utils
2
2
  # Utils version
3
- VERSION = '0.74.0'
3
+ VERSION = '0.75.0'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/utils.gemspec CHANGED
@@ -1,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: utils 0.74.0 ruby lib
2
+ # stub: utils 0.75.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "utils".freeze
6
- s.version = "0.74.0".freeze
6
+ s.version = "0.75.0".freeze
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
@@ -11,9 +11,9 @@ Gem::Specification.new do |s|
11
11
  s.date = "1980-01-02"
12
12
  s.description = "This ruby gem provides some useful command line utilities".freeze
13
13
  s.email = "flori@ping.de".freeze
14
- s.executables = ["ascii7".freeze, "blameline".freeze, "changes".freeze, "classify".freeze, "code_comment".freeze, "commit_message".freeze, "create_cstags".freeze, "create_tags".freeze, "discover".freeze, "edit".freeze, "edit_wait".freeze, "enum".freeze, "git-empty".freeze, "git-versions".freeze, "json_check".freeze, "long_lines".freeze, "myex".freeze, "on_change".freeze, "path".freeze, "print_method".freeze, "probe".freeze, "rainbow".freeze, "rd2md".freeze, "search".freeze, "sedit".freeze, "serve".freeze, "ssh-tunnel".freeze, "strip_spaces".freeze, "sync_dir".freeze, "untest".freeze, "utils-utilsrc".freeze, "vcf2alias".freeze, "yaml_check".freeze]
14
+ s.executables = ["ascii7".freeze, "blameline".freeze, "changes".freeze, "classify".freeze, "code_comment".freeze, "code_indexer".freeze, "commit_message".freeze, "discover".freeze, "edit".freeze, "edit_wait".freeze, "enum".freeze, "git-empty".freeze, "git-versions".freeze, "json_check".freeze, "long_lines".freeze, "myex".freeze, "on_change".freeze, "path".freeze, "print_method".freeze, "probe".freeze, "rainbow".freeze, "rd2md".freeze, "search".freeze, "sedit".freeze, "serve".freeze, "ssh-tunnel".freeze, "strip_spaces".freeze, "sync_dir".freeze, "untest".freeze, "utils-utilsrc".freeze, "vcf2alias".freeze, "yaml_check".freeze]
15
15
  s.extra_rdoc_files = ["README.md".freeze, "lib/utils.rb".freeze, "lib/utils/config_dir.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe_server.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze]
16
- s.files = [".github/dependabot.yml".freeze, ".github/workflows/codeql-analysis.yml".freeze, ".utilsrc".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/changes".freeze, "bin/classify".freeze, "bin/code_comment".freeze, "bin/commit_message".freeze, "bin/create_cstags".freeze, "bin/create_tags".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/print_method".freeze, "bin/probe".freeze, "bin/rainbow".freeze, "bin/rd2md".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/sync_dir".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vcf2alias".freeze, "bin/yaml_check".freeze, "lib/utils.rb".freeze, "lib/utils/config_dir.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe_server.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "tests/test_helper.rb".freeze, "tests/utils_test.rb".freeze, "utils.gemspec".freeze]
16
+ s.files = [".github/dependabot.yml".freeze, ".github/workflows/codeql-analysis.yml".freeze, ".utilsrc".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "bin/ascii7".freeze, "bin/blameline".freeze, "bin/changes".freeze, "bin/classify".freeze, "bin/code_comment".freeze, "bin/code_indexer".freeze, "bin/commit_message".freeze, "bin/discover".freeze, "bin/edit".freeze, "bin/edit_wait".freeze, "bin/enum".freeze, "bin/git-empty".freeze, "bin/git-versions".freeze, "bin/json_check".freeze, "bin/long_lines".freeze, "bin/myex".freeze, "bin/on_change".freeze, "bin/path".freeze, "bin/print_method".freeze, "bin/probe".freeze, "bin/rainbow".freeze, "bin/rd2md".freeze, "bin/search".freeze, "bin/sedit".freeze, "bin/serve".freeze, "bin/ssh-tunnel".freeze, "bin/strip_spaces".freeze, "bin/sync_dir".freeze, "bin/untest".freeze, "bin/utils-utilsrc".freeze, "bin/vcf2alias".freeze, "bin/yaml_check".freeze, "lib/utils.rb".freeze, "lib/utils/config_dir.rb".freeze, "lib/utils/config_file.rb".freeze, "lib/utils/editor.rb".freeze, "lib/utils/finder.rb".freeze, "lib/utils/grepper.rb".freeze, "lib/utils/irb.rb".freeze, "lib/utils/line_blamer.rb".freeze, "lib/utils/line_formatter.rb".freeze, "lib/utils/md5.rb".freeze, "lib/utils/patterns.rb".freeze, "lib/utils/probe_server.rb".freeze, "lib/utils/ssh_tunnel_specification.rb".freeze, "lib/utils/version.rb".freeze, "lib/utils/xt/source_location_extension.rb".freeze, "tests/test_helper.rb".freeze, "tests/utils_test.rb".freeze, "utils.gemspec".freeze]
17
17
  s.homepage = "http://github.com/flori/utils".freeze
18
18
  s.licenses = ["GPL-2.0".freeze]
19
19
  s.rdoc_options = ["--title".freeze, "Utils - Some useful command line utilities".freeze, "--main".freeze, "README.md".freeze]
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.specification_version = 4
25
25
 
26
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 2.1".freeze])
26
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 2.2".freeze])
27
27
  s.add_development_dependency(%q<test-unit>.freeze, [">= 0".freeze])
28
28
  s.add_runtime_dependency(%q<unix_socks>.freeze, [">= 0".freeze])
29
29
  s.add_runtime_dependency(%q<webrick>.freeze, [">= 0".freeze])
@@ -37,6 +37,7 @@ Gem::Specification.new do |s|
37
37
  s.add_runtime_dependency(%q<ollama-ruby>.freeze, ["~> 1.6".freeze])
38
38
  s.add_runtime_dependency(%q<kramdown-ansi>.freeze, ["~> 0.1".freeze])
39
39
  s.add_runtime_dependency(%q<figlet>.freeze, ["~> 1.0".freeze])
40
+ s.add_runtime_dependency(%q<starscope>.freeze, [">= 0".freeze])
40
41
  s.add_runtime_dependency(%q<context_spook>.freeze, ["~> 0.2".freeze])
41
42
  s.add_runtime_dependency(%q<simplecov>.freeze, [">= 0".freeze])
42
43
  s.add_runtime_dependency(%q<debug>.freeze, [">= 0".freeze])
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.74.0
4
+ version: 0.75.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '2.1'
18
+ version: '2.2'
19
19
  type: :development
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '2.1'
25
+ version: '2.2'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: test-unit
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -205,6 +205,20 @@ dependencies:
205
205
  - - "~>"
206
206
  - !ruby/object:Gem::Version
207
207
  version: '1.0'
208
+ - !ruby/object:Gem::Dependency
209
+ name: starscope
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ type: :runtime
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
208
222
  - !ruby/object:Gem::Dependency
209
223
  name: context_spook
210
224
  requirement: !ruby/object:Gem::Requirement
@@ -255,9 +269,8 @@ executables:
255
269
  - changes
256
270
  - classify
257
271
  - code_comment
272
+ - code_indexer
258
273
  - commit_message
259
- - create_cstags
260
- - create_tags
261
274
  - discover
262
275
  - edit
263
276
  - edit_wait
@@ -314,9 +327,8 @@ files:
314
327
  - bin/changes
315
328
  - bin/classify
316
329
  - bin/code_comment
330
+ - bin/code_indexer
317
331
  - bin/commit_message
318
- - bin/create_cstags
319
- - bin/create_tags
320
332
  - bin/discover
321
333
  - bin/edit
322
334
  - bin/edit_wait
data/bin/create_cstags DELETED
@@ -1,48 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # Create cscope database for project files
4
- #
5
- # Usage:
6
- # create_cstags # Generate cscope.out database in current directory
7
- #
8
- # This script generates a cscope database (cscope.out) by collecting all
9
- # project files and building an index for efficient cross-reference searching.
10
- # It uses bundle paths and project roots to determine which files to include.
11
- #
12
- # Requires:
13
- # - cscope command-line tool
14
- #
15
- # The script will:
16
- # 1. Collect all files from project roots (including bundle paths)
17
- # 2. Generate cscope.out database with cross-references
18
- # 3. Show progress using infobar visualization
19
- # 4. Report the size of the created database
20
-
21
- require 'utils'
22
- require 'infobar'
23
-
24
- config = Utils::ConfigFile.new
25
- config.configure_from_paths
26
-
27
- roots = %w[ . ] + `bundle list --paths`.lines.map(&:chomp)
28
-
29
- IO.popen('cscope 2>/dev/null -R -b -i - -f cscope.out', 'w') do |scope|
30
- finder = Utils::Finder.new(
31
- pattern: '',
32
- roots: roots,
33
- config: config,
34
- )
35
- finder.search.paths.with_infobar(label: 'Collecting files') do |path|
36
- scope.puts path
37
- +infobar
38
- end
39
-
40
- infobar.newline
41
- Infobar.busy(label: 'Creating cstags', frames: :braille7) do
42
- scope.close
43
- end
44
- end
45
-
46
- if megabytes = File.size('cscope.out').to_f / 1024 ** 2 rescue nil
47
- infobar.puts 'Created %.3fM of cstags.' % megabytes
48
- end
data/bin/create_tags DELETED
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # Creates ctags index for Ruby project including bundled gems
4
- #
5
- # This script generates a tags file that enables code navigation in editors
6
- # like Vim. It automatically includes:
7
- # - Current directory (.)
8
- # - All gem paths from bundle list
9
- # - Excludes pkg directory to avoid vendor code
10
- #
11
- # Usage: Run directly from project root
12
-
13
- require 'infobar'
14
-
15
- paths = %w[ . ] + `bundle list --paths`.lines.map(&:chomp)
16
- cmd = %w[ ctags --recurse=yes --exclude=pkg --languages=Ruby,C ] + paths
17
- Infobar.busy(label: 'Creating tags', frames: :braille7) { system(*cmd) }
18
- if megabytes = File.size('tags').to_f / 1024 ** 2 rescue nil
19
- infobar.puts 'Created %.3fM of tags.' % megabytes
20
- end