Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 26 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.5.0] - 2025-12-26

### Added
- **Go modules support** — Full ecosystem support for Go packages (`deps-go` crate)
- go.mod parser with position tracking for all directives
- go.sum lock file parser for resolved versions
- Support for `require`, `replace`, `exclude` directives
- Indirect dependency detection (`// indirect` comments)
- Pseudo-version parsing and display
- proxy.golang.org registry client with HTTP caching
- Module path escaping for uppercase characters
- Inlay hints, hover, code actions, diagnostics
- Lockfile template added to ecosystem templates
- Formatter template added to ecosystem templates

### Changed
- **Feature flags for ecosystems** — Each ecosystem can now be enabled/disabled independently
- `cargo` — Cargo.toml support (default: enabled)
- `npm` — package.json support (default: enabled)
- `pypi` — pyproject.toml support (default: enabled)
- `go` — go.mod support (default: enabled)
- Updated ECOSYSTEM_GUIDE.md with Go examples and lockfile/formatter requirements
- Templates now include lockfile.rs.template and formatter.rs.template

## [0.4.1] - 2025-12-26

### Added
Expand Down Expand Up @@ -174,7 +198,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- TLS enforced via rustls
- cargo-deny configured for vulnerability scanning

[Unreleased]: https://github.com/bug-ops/deps-lsp/compare/v0.4.1...HEAD
[Unreleased]: https://github.com/bug-ops/deps-lsp/compare/v0.5.0...HEAD
[0.5.0]: https://github.com/bug-ops/deps-lsp/compare/v0.4.1...v0.5.0
[0.4.1]: https://github.com/bug-ops/deps-lsp/compare/v0.4.0...v0.4.1
[0.4.0]: https://github.com/bug-ops/deps-lsp/compare/v0.3.1...v0.4.0
[0.3.1]: https://github.com/bug-ops/deps-lsp/compare/v0.3.0...v0.3.1
Expand Down
12 changes: 6 additions & 6 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ exclude = ["crates/deps-zed"]
resolver = "2"

[workspace.package]
version = "0.4.1"
version = "0.5.0"
edition = "2024"
rust-version = "1.89"
authors = ["Andrei G"]
Expand All @@ -15,12 +15,12 @@ repository = "https://github.com/bug-ops/deps-lsp"
async-trait = "0.1"
criterion = "0.8"
dashmap = "6.1"
deps-core = { version = "0.4.1", path = "crates/deps-core" }
deps-cargo = { version = "0.4.1", path = "crates/deps-cargo" }
deps-npm = { version = "0.4.1", path = "crates/deps-npm" }
deps-pypi = { version = "0.4.1", path = "crates/deps-pypi" }
deps-go = { version = "0.4.1", path = "crates/deps-go" }
deps-lsp = { version = "0.4.1", path = "crates/deps-lsp" }
deps-core = { version = "0.5.0", path = "crates/deps-core" }
deps-cargo = { version = "0.5.0", path = "crates/deps-cargo" }
deps-npm = { version = "0.5.0", path = "crates/deps-npm" }
deps-pypi = { version = "0.5.0", path = "crates/deps-pypi" }
deps-go = { version = "0.5.0", path = "crates/deps-go" }
deps-lsp = { version = "0.5.0", path = "crates/deps-lsp" }
futures = "0.3"
insta = "1"
mockito = "1"
Expand Down
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,25 @@ Download from [GitHub Releases](https://github.com/bug-ops/deps-lsp/releases/lat
| macOS | Apple Silicon | `deps-lsp-aarch64-apple-darwin` |
| Windows | x86_64 | `deps-lsp-x86_64-pc-windows-msvc.exe` |

### Feature Flags

By default, all ecosystems are enabled. To build with specific ecosystems only:

```bash
# Only Cargo and npm support
cargo install deps-lsp --no-default-features --features "cargo,npm"

# Only Python support
cargo install deps-lsp --no-default-features --features "pypi"
```

| Feature | Ecosystem | Default |
|---------|-----------|---------|
| `cargo` | Cargo.toml | ✅ |
| `npm` | package.json | ✅ |
| `pypi` | pyproject.toml | ✅ |
| `go` | go.mod | ✅ |

## Editor Setup

### Zed
Expand Down
2 changes: 1 addition & 1 deletion crates/deps-cargo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ This crate provides parsing and registry integration for Rust's Cargo ecosystem.

```toml
[dependencies]
deps-cargo = "0.4"
deps-cargo = "0.5"
```

```rust
Expand Down
2 changes: 1 addition & 1 deletion crates/deps-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ This crate provides the shared infrastructure used by ecosystem-specific crates

```toml
[dependencies]
deps-core = "0.4"
deps-core = "0.5"
```

```rust
Expand Down
3 changes: 2 additions & 1 deletion crates/deps-go/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ This crate provides parsing and registry integration for Go's module ecosystem.
## Features

- **go.mod Parsing** — Parse `go.mod` with position tracking for all directives
- **go.sum Lock File** — Extract resolved versions from `go.sum`
- **Directive Support** — Handle `require`, `replace`, `exclude`, and `retract` directives
- **Indirect Dependencies** — Detect and mark indirect dependencies (`// indirect`)
- **Pseudo-versions** — Parse and validate Go pseudo-version format
Expand All @@ -23,7 +24,7 @@ This crate provides parsing and registry integration for Go's module ecosystem.

```toml
[dependencies]
deps-go = "0.4"
deps-go = "0.5"
```

```rust
Expand Down
15 changes: 11 additions & 4 deletions crates/deps-lsp/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,20 @@ path = "src/main.rs"
name = "deps_lsp"
path = "src/lib.rs"

[features]
default = ["cargo", "npm", "pypi", "go"]
cargo = ["dep:deps-cargo"]
npm = ["dep:deps-npm"]
pypi = ["dep:deps-pypi"]
go = ["dep:deps-go"]

[dependencies]
# Internal crates
deps-core = { workspace = true }
deps-cargo = { workspace = true }
deps-npm = { workspace = true }
deps-pypi = { workspace = true }
deps-go = { workspace = true }
deps-cargo = { workspace = true, optional = true }
deps-npm = { workspace = true, optional = true }
deps-pypi = { workspace = true, optional = true }
deps-go = { workspace = true, optional = true }

# External dependencies
dashmap = { workspace = true }
Expand Down
Loading
Loading