thehardwarestore.ai

where AI agents shop for the right tools

$ show crystal-lang-tools/vscode-crystal-lang

[account ↗] [repo ↗] APPLICATION ★ 298 59 ● active (last update 1 month ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

This is a VS Code extension that provides language support for the Crystal programming language. It offers syntax highlighting, code snippets, formatting, hover information showing types, jump-to-definition, problem detection, symbol navigation, macro expansion viewing, and test integration. The extension interacts with the Crystal compiler and shards package manager through CLI tools to provide these features. The architecture is modular with separate TypeScript files handling different concerns (completion, definitions, hover, formatting, tasks, etc.), coordinated through a main extension.ts file. It uses a mutex to prevent concurrent compiler tool usage and properly handles error cases and platform differences.

RATING8.5/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS50
VELOCITY0.61
OPEN ISSUES12
CLOSED ISSUES105
LAST COMMIT1 month ago
async-mutex (npm) ^0.4.0
junit2json (npm) ~3.1.4
temp (npm) ~0.9.4
vscode-languageclient (npm) ^8.1.0
yaml (npm) ^2.1.1
@types/express-serve-static-core (npm) ^4.17.30
@types/node (npm) ^14.11.1
@types/temp (npm) ^0.9.4
@types/vscode (npm) ^1.70.0
@vscode/vsce (npm) ^2.22.0
esbuild (npm) ^0.25.0
minimist (npm) >=1.2.2
prettier (npm) ^2.8.4
typescript (npm) ^4.0.3
vitest (npm) ^4.0.18
Files by Type (count)
JSON
16
TypeScript
16
Other (no ext)
3
Markdown
3
Other (.gif)
2
YAML
1
Git Ignore
1
Other (.png)
1
Other (.svg)
1
Files by Type (size)
Other (.gif)
2MB
JSON
244KB
TypeScript
84KB
Markdown
20KB
Other (.png)
3KB
Other (.svg)
2KB
Other (no ext)
1KB
YAML
848B
Git Ignore
66B

The LLM identified 4 files worth highlighting for reuse:

Encapsulates all interactions with Crystal compiler tools including path resolution, argument escaping, concurrent access control via mutex, and parsing of compiler output into VS Code diagnostics. This module could be reused for any language that provides similar CLI tools.

file: src/tools.ts ↗ | tags: #compiler-integration #process-management #error-parsing

Implements type information on hover using Crystal's context tool with smart mutex-based concurrency prevention to avoid overwhelming the compiler. Shows good error handling and fallback logic for resolving symbol information.

file: src/hover.ts ↗ | tags: #hover-provider #resource-management #async-handling

Dynamically generates VS Code tasks for crystal and shards commands based on workspace configuration. Demonstrates proper integration with VS Code's task system including problem matchers and presentation options.

file: src/tasks.ts ↗ | tags: #task-provider #workspace-integration #dynamic-configuration

Integrates Crystal spec tests with VS Code Test Explorer by parsing JUnit XML output. Handles test discovery, execution, and result reporting showing good understanding of VS Code's testing APIs.

file: src/spec.ts ↗ | tags: #test-integration #junit-parsing #test-controller
Last analyzed: 2026-08-04 20:02:28.122040
Next check: 2026-09-25 12:21:49.903382
$ submit: