Initial commit
This commit is contained in:
12
.claude-plugin/plugin.json
Normal file
12
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "rbs-goose",
|
||||
"description": "Setup rbs type definitions for steep and automatically fix type errors",
|
||||
"version": "1.1.0",
|
||||
"author": {
|
||||
"name": "kokuyouwind",
|
||||
"url": "https://github.com/kokuyouwind"
|
||||
},
|
||||
"commands": [
|
||||
"./commands"
|
||||
]
|
||||
}
|
||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# rbs-goose
|
||||
|
||||
Setup rbs type definitions for steep and automatically fix type errors
|
||||
22
commands/run.md
Normal file
22
commands/run.md
Normal file
@@ -0,0 +1,22 @@
|
||||
Follow these instructions:
|
||||
|
||||
```
|
||||
# All file paths are relative to the plugin installation directory
|
||||
# (e.g., ~/.claude/plugins/marketplaces/kokuyouwind-plugins/plugins/rbs-goose)
|
||||
plugin_base_path = File.dirname(__FILE__) # This is the plugin root directory
|
||||
|
||||
# First Run Setup
|
||||
unless File.exists?('./rbs_goose.yml')
|
||||
follow_instruction(File.join(plugin_base_path, 'commands/setup.md'))
|
||||
return
|
||||
end
|
||||
|
||||
config = Config.load('./rbs_goose.yml')
|
||||
|
||||
case config.type_annotation_mode
|
||||
when :inline
|
||||
follow_instruction(File.join(plugin_base_path, 'internal/type_inline.md'))
|
||||
when :file
|
||||
follow_instruction(File.join(plugin_base_path, 'internal/type_file.md'))
|
||||
end
|
||||
```
|
||||
63
commands/setup.md
Normal file
63
commands/setup.md
Normal file
@@ -0,0 +1,63 @@
|
||||
Follow these instructions:
|
||||
|
||||
```
|
||||
# All file paths in this command are relative to the plugin installation directory
|
||||
# (e.g., ~/.claude/plugins/marketplaces/kokuyouwind-plugins/plugins/rbs-goose)
|
||||
plugin_base_path = File.dirname(__FILE__) # This is the plugin root directory
|
||||
|
||||
# Setup configurations
|
||||
file = File.copy(File.join(plugin_base_path, 'templates/rbs_goose.template.yml'), './rbs_goose.yml')
|
||||
|
||||
puts(file.contents)
|
||||
until('If there are no problems with the above settings file, please answer yes. If you wish to update the file, please describe the changes.') do
|
||||
file.update_contents
|
||||
end
|
||||
|
||||
# Setup tools
|
||||
config = Config.load('./rbs_goose.yml')
|
||||
unless gemfile.contain?('rbs')
|
||||
puts('setup rbs...')
|
||||
fetch('https://github.com/soutaro/steep')
|
||||
setup_rbs
|
||||
|
||||
if config.type_annotation_mode.inline?
|
||||
fetch('https://github.com/soutaro/rbs-inline')
|
||||
|
||||
begin
|
||||
setup_rbs_inline
|
||||
rescue => CompatibilityError(['rbs-inline', 'rubocop-ast'])
|
||||
# rbs-inline <= v0.11.0 requires prism < 1.3, so use rubocop with prism < 1.3
|
||||
# @see https://github.com/soutaro/rbs-inline/pull/207
|
||||
if (confirm('Due to compatibility issues with rbs-inline, we will downgrade rubocop to version 1.74.0. Is that okay?'))
|
||||
gemfile.update('rubocop', '1.74.0')
|
||||
retry
|
||||
else
|
||||
say('Failed to install rbs-inline. Please resolve the dependencies of rbs-inline or switch the mode to file and try the `/rbs-goose:setup` command again.')
|
||||
exit(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
fetch('https://github.com/ruby/gem_rbs_collection')
|
||||
setup_rbs_collection
|
||||
end
|
||||
|
||||
unless gemifle.contain?('steep')
|
||||
puts('setup steep...')
|
||||
fetch('https://github.com/soutaro/steep')
|
||||
setup_steep
|
||||
update_steep_config(directory_structure)
|
||||
end
|
||||
|
||||
if rails_app? && !gemfile.contain?('rbs')
|
||||
puts('setup rbs-rails...')
|
||||
fetch('https://github.com/pocke/rbs_rails')
|
||||
setup_rails
|
||||
end
|
||||
|
||||
update_git_ignore(<<~"IGNORE")
|
||||
.gem_rbs_collection/
|
||||
sig/generated/
|
||||
IGNORE
|
||||
puts('Initialize Complete! Run `/rbs-goose:run` to start type checking.')
|
||||
```
|
||||
49
plugin.lock.json
Normal file
49
plugin.lock.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||
"pluginId": "gh:kokuyouwind/claude-plugins:plugins/rbs-goose",
|
||||
"normalized": {
|
||||
"repo": null,
|
||||
"ref": "refs/tags/v20251128.0",
|
||||
"commit": "44bfb70e7b94498c69b810ae595b73ba8c90f921",
|
||||
"treeHash": "fae7ecc014d380e410753a022fe3be616e9524171c2b63bb80ec0c233b4f2537",
|
||||
"generatedAt": "2025-11-28T10:19:54.133585Z",
|
||||
"toolVersion": "publish_plugins.py@0.2.0"
|
||||
},
|
||||
"origin": {
|
||||
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||
"branch": "master",
|
||||
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||
},
|
||||
"manifest": {
|
||||
"name": "rbs-goose",
|
||||
"description": "Setup rbs type definitions for steep and automatically fix type errors",
|
||||
"version": "1.1.0"
|
||||
},
|
||||
"content": {
|
||||
"files": [
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "5555b1aff09f4609896c978c07219704812e08e9fba71a7df289cab3a7e2a54c"
|
||||
},
|
||||
{
|
||||
"path": ".claude-plugin/plugin.json",
|
||||
"sha256": "850cf23194004e1b0bfcea75eb6a4a781a8b605f5d76c4f9868c9aca42c90bab"
|
||||
},
|
||||
{
|
||||
"path": "commands/setup.md",
|
||||
"sha256": "1bb02759990dd19260ea030edfe644c1c23cf2daaa6f2d87eb7bfa3f0750a9a4"
|
||||
},
|
||||
{
|
||||
"path": "commands/run.md",
|
||||
"sha256": "e93d7a41d117c173c695ae3d20997bf37bd117ea38a01c99ed2b24cea4855667"
|
||||
}
|
||||
],
|
||||
"dirSha256": "fae7ecc014d380e410753a022fe3be616e9524171c2b63bb80ec0c233b4f2537"
|
||||
},
|
||||
"security": {
|
||||
"scannedAt": null,
|
||||
"scannerVersion": null,
|
||||
"flags": []
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user