class-metrix 1.0.1 → 1.1.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: 9b893eab40ee30c91bfb72059fcaffc282efca2088e4e150d2cf89c7fb0ff835
4
- data.tar.gz: 553832b76ef1c44f6ace2cb7b37808dc2e18ef3c2f16882cc2aa951d1d9b82b3
3
+ metadata.gz: 0106c0c9302df96ca95140d24c7b95cd1a9b5a6381336b96b6bd639e3edd3ba7
4
+ data.tar.gz: e8a1c3fe4e9a1be7253514ff9851a6af39b2aa0975444e38196e252c596f0fb2
5
5
  SHA512:
6
- metadata.gz: 98297596048b427aa614a18ab3bb01cde37382b95df9b10dd2d9e2856db0afccdc420245e6b5f84ac676fa35bd7b6b68e8d945bf58f987526c39fde840d05a8f
7
- data.tar.gz: dc3729ab21692725a5660b781c51c81282640640a3fae6d11328fb0485f30f4af4e30e71c74e987a3ad5709726878fb04713e349098bd4df0538468416b0099f
6
+ metadata.gz: c0518a94b39fbfd118a5d3e4961602619cc91e611bbfef3a6e63b5d1c1b799f30b004710a3edc2489a31a060d8e6c8143f974b90dad1aab60971427f51c5c32f
7
+ data.tar.gz: e22b3a3db21c49321dcc986f79efa2eaabfe42f7b05dc75ff89e204a40f1f75e8079a11b0c1a48a3598f67082b8dd760823cd3662747ac8c2a980c5eeadb5f2a
data/.prettierrc.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "semi": true,
3
+ "singleQuote": false,
4
+ "tabWidth": 2,
5
+ "useTabs": false,
6
+ "trailingComma": "none",
7
+ "bracketSpacing": true,
8
+ "bracketSameLine": false,
9
+ "arrowParens": "avoid",
10
+ "printWidth": 80,
11
+ "endOfLine": "lf",
12
+ "proseWrap": "preserve",
13
+ "htmlWhitespaceSensitivity": "css",
14
+ "embeddedLanguageFormatting": "auto",
15
+ "overrides": [
16
+ {
17
+ "files": "*.json",
18
+ "options": {
19
+ "printWidth": 120,
20
+ "tabWidth": 2
21
+ }
22
+ },
23
+ {
24
+ "files": ["*.yml", "*.yaml"],
25
+ "options": {
26
+ "printWidth": 120,
27
+ "tabWidth": 2,
28
+ "singleQuote": false,
29
+ "bracketSpacing": true
30
+ }
31
+ },
32
+ {
33
+ "files": "*.md",
34
+ "options": {
35
+ "printWidth": 80,
36
+ "proseWrap": "preserve",
37
+ "tabWidth": 2
38
+ }
39
+ }
40
+ ]
41
+ }
data/.qlty/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ *
2
+ !configs
3
+ !configs/**
4
+ !hooks
5
+ !hooks/**
6
+ !qlty.toml
7
+ !.gitignore
@@ -0,0 +1,8 @@
1
+ rules:
2
+ document-start: disable
3
+ quoted-strings:
4
+ required: only-when-needed
5
+ extra-allowed: ["{|}"]
6
+ key-duplicates: {}
7
+ octal-values:
8
+ forbid-implicit-octal: true
data/.qlty/qlty.toml ADDED
@@ -0,0 +1,108 @@
1
+ # This file was automatically generated by `qlty init`.
2
+ # You can modify it to suit your needs.
3
+ # We recommend you to commit this file to your repository.
4
+ #
5
+ # This configuration is used by both Qlty CLI and Qlty Cloud.
6
+ #
7
+ # Qlty CLI -- Code quality toolkit for developers
8
+ # Qlty Cloud -- Fully automated Code Health Platform
9
+ #
10
+ # Try Qlty Cloud: https://qlty.sh
11
+ #
12
+ # For a guide to configuration, visit https://qlty.sh/d/config
13
+ # Or for a full reference, visit https://qlty.sh/d/qlty-toml
14
+ config_version = "0"
15
+
16
+ exclude_patterns = [
17
+ "*_min.*",
18
+ "*-min.*",
19
+ "*.min.*",
20
+ "**/.yarn/**",
21
+ "**/*.d.ts",
22
+ "**/assets/**",
23
+ "**/bower_components/**",
24
+ "**/build/**",
25
+ "**/cache/**",
26
+ "**/config/**",
27
+ "**/db/**",
28
+ "**/deps/**",
29
+ "**/dist/**",
30
+ "**/extern/**",
31
+ "**/external/**",
32
+ "**/generated/**",
33
+ "**/Godeps/**",
34
+ "**/gradlew/**",
35
+ "**/mvnw/**",
36
+ "**/node_modules/**",
37
+ "**/protos/**",
38
+ "**/seed/**",
39
+ "**/target/**",
40
+ "**/templates/**",
41
+ "**/testdata/**",
42
+ "**/vendor/**",
43
+ # Project-specific exclusions
44
+ "**/.github/**", # GitHub configuration files
45
+ "**/examples/**", # Example code doesn't need strict formatting
46
+ "**/docs/**", # Documentation files are less strict
47
+ "**/.vscode/**", # VS Code configuration files
48
+ "**/bin/**", # Script files
49
+ # Documentation files with relaxed formatting
50
+ "README.md", # Readme can have long lines
51
+ "CHANGELOG.md", # Changelog can have duplicate headers
52
+ ]
53
+
54
+ test_patterns = [
55
+ "**/test/**",
56
+ "**/spec/**",
57
+ "**/*.test.*",
58
+ "**/*.spec.*",
59
+ "**/*_test.*",
60
+ "**/*_spec.*",
61
+ "**/test_*.*",
62
+ "**/spec_*.*",
63
+ ]
64
+
65
+ [smells]
66
+ mode = "comment"
67
+
68
+ [[source]]
69
+ name = "default"
70
+ default = true
71
+
72
+
73
+ [[plugin]]
74
+ name = "actionlint"
75
+
76
+ [[plugin]]
77
+ name = "checkov"
78
+
79
+ [[plugin]]
80
+ name = "markdownlint"
81
+ mode = "comment"
82
+
83
+ [[plugin]]
84
+ name = "osv-scanner"
85
+
86
+ [[plugin]]
87
+ name = "prettier"
88
+
89
+ [[plugin]]
90
+ name = "ripgrep"
91
+ mode = "comment"
92
+
93
+ [[plugin]]
94
+ name = "rubocop"
95
+ version = "1.75.8"
96
+
97
+ [[plugin]]
98
+ name = "trivy"
99
+ drivers = [
100
+ "config",
101
+ "fs-vuln",
102
+ ]
103
+
104
+ [[plugin]]
105
+ name = "trufflehog"
106
+
107
+ [[plugin]]
108
+ name = "yamllint"
data/.rubocop.yml CHANGED
@@ -3,11 +3,14 @@ AllCops:
3
3
  SuggestExtensions: false
4
4
  NewCops: enable
5
5
  Exclude:
6
- - 'bin/*'
7
- - 'examples/**/*'
8
- - 'vendor/**/*'
9
- - 'node_modules/**/*'
10
- - '.ruby-lsp/**/*'
6
+ - bin/*
7
+ - config/**/*
8
+ - examples/**/*
9
+ - tmp/**/*
10
+ - vendor/**/*
11
+ - node_modules/**/*
12
+ - .ruby-lsp/**/*
13
+ - Rakefile
11
14
 
12
15
  # String literal styles
13
16
  Style/StringLiterals:
@@ -18,49 +21,52 @@ Style/StringLiteralsInInterpolation:
18
21
 
19
22
  # Documentation requirements
20
23
  Style/Documentation:
21
- Enabled: false # Many classes don't need top-level documentation
24
+ Enabled: false # Many classes don't need top-level documentation
22
25
 
23
26
  # Method and class length limits
24
27
  Metrics/MethodLength:
25
- Max: 25 # Increased to accommodate current codebase
28
+ Max: 25 # Increased to accommodate current codebase
26
29
 
27
30
  Metrics/ClassLength:
28
- Max: 250 # Increased to accommodate complex formatter classes
31
+ Max: 250 # Increased to accommodate complex formatter classes
29
32
 
30
33
  Metrics/BlockLength:
31
- Max: 30 # Slightly increased from default
34
+ Max: 30 # Slightly increased from default
32
35
  Exclude:
33
- - 'spec/**/*' # Allow long blocks in tests
34
- - 'class-metrix.gemspec' # Allow long blocks in gemspec
36
+ - spec/**/* # Allow long blocks in tests
37
+ - class-metrix.gemspec # Allow long blocks in gemspec
35
38
 
36
39
  # Complexity limits
37
40
  Metrics/AbcSize:
38
- Max: 35 # Increased to accommodate current codebase
41
+ Max: 35 # Increased to accommodate current codebase
39
42
 
40
43
  Metrics/CyclomaticComplexity:
41
- Max: 15 # Increased to accommodate current codebase
44
+ Max: 15 # Increased to accommodate current codebase
42
45
 
43
46
  Metrics/PerceivedComplexity:
44
- Max: 15 # Increased to accommodate current codebase
47
+ Max: 15 # Increased to accommodate current codebase
45
48
 
46
49
  # Line length
47
50
  Layout/LineLength:
48
- Max: 140 # Increased from default 120
51
+ Max: 140 # Increased from default 120
49
52
 
50
53
  # Naming conventions
51
54
  Naming/AccessorMethodName:
52
- Enabled: false # Allow get_ prefixed methods
55
+ Enabled: false # Allow get_ prefixed methods
53
56
 
54
- Naming/PredicateName:
55
- Enabled: false # Allow has_ prefixed methods
57
+ Naming/PredicatePrefix:
58
+ Enabled: false # Allow has_ prefixed methods
59
+
60
+ Naming/PredicateMethod:
61
+ Enabled: false # Allow boolean methods without ? suffix in tests
56
62
 
57
63
  # Optional boolean parameters
58
64
  Style/OptionalBooleanParameter:
59
- Enabled: false # Allow boolean default parameters
65
+ Enabled: false # Allow boolean default parameters
60
66
 
61
67
  # Gemspec warning
62
68
  Gemspec/RequiredRubyVersion:
63
- Enabled: false # Allow different ruby versions in gemspec vs rubocop
69
+ Enabled: false # Allow different ruby versions in gemspec vs rubocop
64
70
 
65
71
  # Script permissions (for examples)
66
72
  Lint/ScriptPermission:
@@ -72,17 +78,17 @@ Lint/ConstantDefinitionInBlock:
72
78
 
73
79
  # String concatenation
74
80
  Style/StringConcatenation:
75
- Enabled: false # Allow string concatenation in some cases
81
+ Enabled: false # Allow string concatenation in some cases
76
82
 
77
83
  # Additional cops to disable based on project needs
78
84
  Gemspec/DevelopmentDependencies:
79
- Enabled: false # Allow development dependencies in gemspec
85
+ Enabled: false # Allow development dependencies in gemspec
80
86
 
81
87
  Lint/DuplicateBranch:
82
- Enabled: false # Allow duplicate rescue branches for different error types
88
+ Enabled: false # Allow duplicate rescue branches for different error types
83
89
 
84
90
  Style/ComparableClamp:
85
- Enabled: false # Allow traditional min/max patterns for clarity
91
+ Enabled: false # Allow traditional min/max patterns for clarity
86
92
 
87
93
  Lint/NonAtomicFileOperation:
88
- Enabled: false # Allow traditional file existence checks in specs
94
+ Enabled: false # Allow traditional file existence checks in specs
data/.vscode/README.md CHANGED
@@ -1,128 +1,280 @@
1
- # VS Code Configuration for ClassMetrix
1
+ # VS Code Development Environment for ClassMetrix
2
2
 
3
3
  ## 🎯 Overview
4
4
 
5
- This directory contains comprehensive VS Code configuration for the ClassMetrix Ruby gem development with full RBS (Ruby Signature) and Steep type checking integration.
5
+ This directory contains a comprehensive VS Code development environment for the ClassMetrix Ruby gem, featuring modern Ruby development practices with full type safety through RBS and Steep integration.
6
6
 
7
- ## 📦 Extensions
7
+ ## 🌟 Key Features
8
8
 
9
- ### Required Extensions
9
+ - **🔧 Complete Ruby LSP Integration** - Full language support with intelligent code completion
10
+ - **🔍 Real-time Type Checking** - Steep integration with live error detection
11
+ - **📝 RBS Type Annotations** - Full support for Ruby signature files
12
+ - **🚀 Auto-formatting** - RuboCop integration with format-on-save
13
+ - **⌨️ Custom Keyboard Shortcuts** - Optimized development workflow
14
+ - **🧪 Integrated Testing** - One-click RSpec test execution
15
+ - **🛠️ Smart Problem Matching** - VS Code integration for all tools
10
16
 
11
- - **Ruby LSP** (`shopify.ruby-lsp`) - Primary Ruby language support
12
- - **RBS Syntax** (`soutaro.rbs-syntax`) - RBS file syntax highlighting
13
- - **Steep VS Code** (`soutaro.steep-vscode`) - Type checking integration
14
- - **RBS Snippets** (`mateuszdrewniak.rbs-snippets`) - Code snippets for RBS
17
+ ## 📦 Extensions Configuration
15
18
 
16
- ### Optional Extensions
19
+ ### Required Extensions (Auto-installed)
17
20
 
18
- - **Ruby Debugger** (`koichisasada.vscode-rdbg`) - Debugging support
21
+ Our `extensions.json` automatically recommends these essential extensions:
22
+
23
+ - **Ruby LSP** (`shopify.ruby-lsp`) - Primary Ruby language server
24
+ - **Steep VS Code** (`soutaro.steep-vscode`) - Real-time type checking
25
+ - **Ruby Debugger** (`koichisasada.vscode-rdbg`) - Advanced debugging support
26
+
27
+ ### Productivity Extensions
28
+
29
+ - **Prettier** (`esbenp.prettier-vscode`) - Markdown and JSON formatting
19
30
  - **GitLens** (`eamodio.gitlens`) - Enhanced Git integration
20
- - **Markdown All in One** (`yzhang.markdown-all-in-one`) - Documentation support
31
+ - **YAML Support** (`redhat.vscode-yaml`) - YAML file support
32
+ - **EditorConfig** (`editorconfig.editorconfig`) - Consistent editor settings
21
33
 
22
- ## ⚙️ Settings Configuration
34
+ ## ⚙️ Intelligent Settings Configuration
23
35
 
24
36
  ### Ruby Language Support
25
37
 
26
- - **Format on Save**: Enabled with RuboCop
27
- - **Ruby LSP**: Full feature set enabled
28
- - **Semantic Highlighting**: Enabled for both Ruby and RBS files
38
+ Our settings provide optimal Ruby development experience:
39
+
40
+ ```json
41
+ {
42
+ "ruby.format": "rubocop", // Use RuboCop for formatting
43
+ "ruby.useLanguageServer": true, // Enable Ruby LSP
44
+ "ruby.intellisense": "rubyLsp", // Intelligent code completion
45
+ "editor.formatOnSave": true, // Auto-format on save
46
+ "editor.semanticHighlighting.enabled": true // Enhanced syntax highlighting
47
+ }
48
+ ```
49
+
50
+ ### File-Specific Configurations
51
+
52
+ #### Ruby Files (`.rb`, `.gemspec`, `Rakefile`)
29
53
 
30
- ### RBS Type Checking
54
+ - **Formatter**: Ruby LSP with RuboCop
55
+ - **Tab Size**: 2 spaces
56
+ - **Line Length**: 140 characters
57
+ - **Auto-fix**: RuboCop issues on save
31
58
 
32
- - **Steep Integration**: Real-time type checking
33
- - **Diagnostics**: Enabled for immediate feedback
34
- - **File Associations**: `.rbs` files properly recognized
59
+ #### RBS Files (`.rbs`)
35
60
 
36
- ### Code Quality
61
+ - **Formatter**: RBS syntax formatter
62
+ - **Tab Size**: 2 spaces
63
+ - **Line Length**: 120 characters
64
+ - **Semantic Highlighting**: Enabled
37
65
 
38
- - **RuboCop**: Integrated for code formatting and linting
39
- - **Auto-fix on Save**: Automatic code corrections
66
+ #### Markdown Files (`.md`)
67
+
68
+ - **Formatter**: Prettier
69
+ - **Word Wrap**: Enabled
70
+ - **Tab Size**: 2 spaces
71
+
72
+ ### Type Checking Integration
73
+
74
+ - **Steep**: Real-time type checking with diagnostics
75
+ - **RBS Validation**: Automatic signature file validation
76
+ - **Error Integration**: Problems panel integration
40
77
 
41
78
  ## 🛠️ Available Tasks
42
79
 
80
+ Access tasks via `Ctrl+Shift+P` → "Tasks: Run Task" or use keyboard shortcuts:
81
+
43
82
  ### Ruby Development Tasks
44
83
 
45
- - **`Ctrl+Shift+P` "Tasks: Run Task"**
84
+ | Task | Description | Group |
85
+ | ----------------------------- | ----------------------------------------- | ----- |
86
+ | **Rubocop: Check** | Lint all Ruby files with problem matching | Test |
87
+ | **Rubocop: Fix** | Auto-fix all RuboCop issues | Build |
88
+ | **Rubocop: Fix Current File** | Fix only the current file | Build |
89
+ | **RSpec: Run All Tests** | Execute entire test suite | Test |
90
+ | **RSpec: Run Current File** | Run tests for current file only | Test |
91
+ | **Bundle Install** | Install gem dependencies | Build |
92
+
93
+ ### Type Checking & RBS Tasks
46
94
 
47
- | Task | Description | Shortcut |
48
- | --------------------------- | --------------------------- | ---------------------- |
49
- | `Rubocop: Check` | Lint all Ruby files | - |
50
- | `Rubocop: Fix` | Auto-fix all RuboCop issues | `Ctrl+Shift+R, Ctrl+R` |
51
- | `Rubocop: Fix Current File` | Fix current file only | - |
52
- | `RSpec: Run All Tests` | Run entire test suite | - |
53
- | `RSpec: Run Current File` | Run tests for current file | - |
95
+ | Task | Description | Group |
96
+ | ---------------------------- | ---------------------------------------- | ----- |
97
+ | **RBS: Validate** | Validate RBS syntax with error detection | Test |
98
+ | **RBS: Generate Prototypes** | Generate RBS from Ruby code | Build |
99
+ | **Steep: Type Check** | Run one-time type checking | Test |
100
+ | **Steep: Watch Mode** | Continuous type checking (background) | Build |
101
+ | **Steep: Watch All Targets** | Watch all configured targets | Build |
54
102
 
55
- ### Type Checking Tasks
103
+ ### Problem Matchers
56
104
 
57
- | Task | Description | Shortcut |
58
- | -------------------------- | --------------------------- | ---------------------- |
59
- | `RBS: Validate` | Validate RBS syntax | `Ctrl+Shift+R, Ctrl+V` |
60
- | `RBS: Generate Prototypes` | Generate RBS from Ruby code | - |
61
- | `Steep: Type Check` | Run type checking | `Ctrl+Shift+R, Ctrl+S` |
62
- | `Steep: Watch Mode` | Continuous type checking | `Ctrl+Shift+R, Ctrl+W` |
105
+ All tasks include intelligent problem matchers that integrate errors directly into VS Code's Problems panel:
63
106
 
64
- ### Build Tasks
107
+ - **RuboCop**: File/line/column error positioning
108
+ - **RSpec**: Test failure integration
109
+ - **Steep**: Type error reporting with severity levels
110
+ - **RBS**: Syntax validation errors
65
111
 
66
- | Task | Description |
67
- | ---------------- | ------------------------ |
68
- | `Bundle Install` | Install gem dependencies |
112
+ ## ⌨️ Custom Keyboard Shortcuts
69
113
 
70
- ## ⌨️ Keyboard Shortcuts
114
+ Our workflow uses a two-key chord system starting with `Ctrl+Shift+R`:
71
115
 
72
- ### Custom Shortcuts
116
+ ### Primary Shortcuts
73
117
 
74
- - **`Ctrl+Shift+R, Ctrl+V`**: RBS Validate
75
- - **`Ctrl+Shift+R, Ctrl+S`**: Steep Type Check
76
- - **`Ctrl+Shift+R, Ctrl+W`**: Steep Watch Mode
77
- - **`Ctrl+Shift+R, Ctrl+R`**: RuboCop Fix
118
+ | Shortcut | Task | Description |
119
+ | ---------------------- | --------------------- | ------------------------------ |
120
+ | `Ctrl+Shift+R, Ctrl+V` | **RBS: Validate** | Validate type signatures |
121
+ | `Ctrl+Shift+R, Ctrl+S` | **Steep: Type Check** | Run type checking |
122
+ | `Ctrl+Shift+R, Ctrl+W` | **Steep: Watch Mode** | Start continuous type checking |
123
+ | `Ctrl+Shift+R, Ctrl+R` | **Rubocop: Fix** | Auto-fix code style issues |
78
124
 
79
125
  ### Usage Pattern
80
126
 
81
- 1. Press `Ctrl+Shift+R` to enter "Ruby mode"
82
- 2. Press the second key for the specific action
127
+ 1. **Press `Ctrl+Shift+R`** to enter "Ruby development mode"
128
+ 2. **Press the second key** for the specific action
129
+ 3. **View results** in the integrated terminal or Problems panel
130
+
131
+ ## 🚀 Getting Started
83
132
 
84
- ## 📝 Code Snippets
133
+ ### 1. Automatic Extension Installation
85
134
 
86
- ### RBS Snippets
135
+ When you open this workspace in VS Code, you'll be prompted to:
87
136
 
88
- - **`rbsclass`**: Complete RBS class template
89
- - **`rbsmodule`**: RBS module template
90
- - **`rbsmethod`**: Method signature
91
- - **`rbsattr_reader`**: Attribute reader
92
- - **`rbsattr_writer`**: Attribute writer
93
- - **`rbsattr_accessor`**: Attribute accessor
137
+ - Install recommended extensions
138
+ - Enable workspace settings
139
+ - Configure the development environment
94
140
 
95
- ### Usage
141
+ ### 2. Verify Your Setup
96
142
 
97
- 1. Type snippet prefix in `.rbs` file
98
- 2. Press `Tab` to expand
99
- 3. Use `Tab` to navigate through placeholders
143
+ #### Basic Functionality Check
100
144
 
101
- ## 🚀 Getting Started
145
+ 1. **Open any `.rb` file** → Should show Ruby LSP features (autocompletion, hover info)
146
+ 2. **Open any `.rbs` file** → Should have syntax highlighting and validation
147
+ 3. **Save a Ruby file** → Should auto-format with RuboCop
148
+
149
+ #### Test Keyboard Shortcuts
150
+
151
+ 1. **Press `Ctrl+Shift+R, Ctrl+S`** → Should run type checking
152
+ 2. **Press `Ctrl+Shift+R, Ctrl+W`** → Should start watch mode
153
+ 3. **Press `Ctrl+Shift+R, Ctrl+V`** → Should validate RBS files
154
+
155
+ ### 3. Development Workflow
156
+
157
+ #### For Active Development
158
+
159
+ ```bash
160
+ # Start continuous type checking
161
+ Ctrl+Shift+R, Ctrl+W
162
+
163
+ # Make your changes...
164
+ # Files auto-format on save
165
+ # See real-time type checking feedback
166
+ ```
167
+
168
+ #### For Code Review
169
+
170
+ ```bash
171
+ # Check all types
172
+ Ctrl+Shift+R, Ctrl+S
173
+
174
+ # Fix all style issues
175
+ Ctrl+Shift+R, Ctrl+R
176
+
177
+ # Validate RBS signatures
178
+ Ctrl+Shift+R, Ctrl+V
179
+ ```
180
+
181
+ ## 🔧 Advanced Configuration
182
+
183
+ ### Debug Configuration
184
+
185
+ The included `launch.json` provides Ruby debugging setup:
186
+
187
+ - **Ruby Debug** - Full debugging support with breakpoints
188
+ - **RSpec Debug** - Debug individual test files
189
+ - **Integration** with `vscode-rdbg` extension
190
+
191
+ ### Workspace Settings
192
+
193
+ Key workspace-specific settings:
194
+
195
+ ```json
196
+ {
197
+ "files.autoSave": "onFocusChange", // Save when switching files
198
+ "files.trimTrailingWhitespace": true, // Clean trailing spaces
199
+ "files.insertFinalNewline": true, // Ensure final newline
200
+ "breadcrumbs.enabled": true, // Show code breadcrumbs
201
+ "workbench.editor.enablePreview": false // Always open new tabs
202
+ }
203
+ ```
204
+
205
+ ### File Associations
206
+
207
+ Automatic recognition for Ruby ecosystem files:
208
+
209
+ - `*.gemspec` → Ruby
210
+ - `Gemfile` → Ruby
211
+ - `Rakefile` → Ruby
212
+ - `Steepfile` → Ruby
213
+ - `*.rbs` → RBS
214
+ - `.rubocop.yml` → YAML
215
+
216
+ ## 📊 Development Status
217
+
218
+ ### Type Safety Status
219
+
220
+ ✅ **RBS Coverage**: Complete type annotations for all public APIs
221
+ ✅ **Steep Integration**: Real-time type checking with zero errors
222
+ ✅ **Problem Matching**: All type errors appear in VS Code Problems panel
223
+
224
+ ### Code Quality Status
225
+
226
+ ✅ **RuboCop Integration**: Auto-formatting and linting on save
227
+ ✅ **Test Integration**: One-click RSpec execution with results
228
+ ✅ **Git Integration**: GitLens for enhanced version control
229
+
230
+ ### Workflow Optimization
231
+
232
+ ✅ **Keyboard Shortcuts**: Efficient two-key chord system
233
+ ✅ **Background Tasks**: Watch mode for continuous feedback
234
+ ✅ **Smart Defaults**: Optimized settings for Ruby development
235
+
236
+ ## 🛠️ Troubleshooting
237
+
238
+ ### Common Issues
239
+
240
+ #### Extensions Not Loading
241
+
242
+ - Ensure you've accepted the workspace extension recommendations
243
+ - Restart VS Code after installing extensions
244
+ - Check VS Code version compatibility
245
+
246
+ #### Type Checking Not Working
247
+
248
+ - Verify Steep is in your Gemfile: `gem 'steep', '~> 1.0'`
249
+ - Run `bundle install` to ensure dependencies
250
+ - Check that `Steepfile` exists in project root
102
251
 
103
- ### 1. Install Extensions
252
+ #### RuboCop Not Formatting
104
253
 
105
- VS Code will prompt to install recommended extensions when you open the workspace.
254
+ - Ensure `.rubocop.yml` configuration exists
255
+ - Install RuboCop: `gem install rubocop`
256
+ - Check Ruby LSP is using RuboCop formatter
106
257
 
107
- ### 2. Verify Setup
258
+ ### Debug Commands
108
259
 
109
- 1. Open any `.rb` file - should have Ruby LSP support
110
- 2. Open any `.rbs` file - should have syntax highlighting
111
- 3. Run `Ctrl+Shift+R, Ctrl+S` - should type check without errors
260
+ ```bash
261
+ # Check Ruby LSP status
262
+ Ruby LSP: Show Output Channel
112
263
 
113
- ### 3. Start Development
264
+ # Verify Steep configuration
265
+ bundle exec steep check --debug
114
266
 
115
- 1. Use `Ctrl+Shift+R, Ctrl+W` to start watch mode
116
- 2. Edit Ruby files - see real-time type checking
117
- 3. Use code snippets for rapid RBS development
267
+ # Test RuboCop configuration
268
+ bundle exec rubocop --version
269
+ ```
118
270
 
119
- ## 📊 Current Status
271
+ ## 📚 Additional Resources
120
272
 
121
- **Type Safety**: 100% (0 Steep errors)
122
- **RBS Coverage**: Complete for all extractors
123
- **VS Code Integration**: Fully configured
124
- **Development Workflow**: Optimized
273
+ - **[Ruby LSP Documentation](https://shopify.github.io/ruby-lsp/)**
274
+ - **[Steep Type Checker](https://github.com/soutaro/steep)**
275
+ - **[RBS Documentation](https://github.com/ruby/rbs)**
276
+ - **[RuboCop Configuration](https://docs.rubocop.org/)**
125
277
 
126
278
  ---
127
279
 
128
- This VS Code setup provides a complete Ruby development environment with modern type checking capabilities.
280
+ This VS Code setup provides a modern, type-safe Ruby development environment optimized for the ClassMetrix gem development workflow.