Skip to content

Releases: bellini666/pytest-language-server

v0.21.2

04 Mar 18:12
593e7d4

Choose a tag to compare

🎯 Summary

Bug fix release with Nix packaging support.

🐛 Bug Fixes

  • Fix assignment-style fixture scope extraction: Correctly detect scopes for assignment-style fixtures (#110) by @benediktziegler

✨ Features

  • Add Nix flake: Nix packaging with buildRustPackage derivation and dev shell, plus a scanner fix for Nix build sandbox compatibility (#107) by @barrettruth

🔧 CI

  • Re-enable Zed extension publish: Re-enabled with continue-on-error to avoid blocking releases

Full Changelog: v0.21.1...v0.21.2

What's Changed

New Contributors

Full Changelog: v0.21.1...v0.21.2

What's Changed

New Contributors

Full Changelog: v0.21.1...v0.21.2

v0.21.1

28 Feb 09:47
5e424ec

Choose a tag to compare

🎯 Summary

Bug fix release improving autocompletion behavior.

🐛 Bug Fixes

  • Fix autocompletion: Expand completion triggers to include ( and ,, avoid suggesting the currently edited fixture, and add space prefix on , insertion (#96) by @benediktziegler

🧹 Chores


Full Changelog: v0.21.0...v0.21.1

What's Changed

Full Changelog: v0.21.0...v0.21.1

What's Changed

  • ci(deps): bump actions/download-artifact from 7 to 8 by @dependabot[bot] in #101
  • ci(deps): bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #102
  • ci(deps): bump actions/attest-build-provenance from 3 to 4 by @dependabot[bot] in #103
  • deps(deps): bump tempfile from 3.25.0 to 3.26.0 in the rust-minor-patch group by @dependabot[bot] in #104
  • deps(vscode)(deps-dev): bump the npm-all group in /extensions/vscode-extension with 4 updates by @dependabot[bot] in #105
  • fix: fix typo by @benediktziegler in #100
  • Fix autocompletion by @benediktziegler in #96
  • deps(vscode)(deps-dev): bump minimatch from 5.1.6 to 5.1.9 in /extensions/vscode-extension by @dependabot[bot] in #106

Full Changelog: v0.21.0...v0.21.1

v0.21.0

23 Feb 19:19
230c02e

Choose a tag to compare

🎯 Summary

Feature release adding enriched completion context with fixture scope tracking for more accurate fixture suggestions.

✨ New Features

  • Enriched completion info: Track and expose fixture scope in completion context for scope-aware fixture suggestions (#94) by @benediktziegler

Full Changelog: v0.20.0...v0.21.0

What's Changed

  • deps(deps): bump the rust-minor-patch group with 2 updates by @dependabot[bot] in #92
  • deps(vscode)(deps-dev): bump the npm-all group in /extensions/vscode-extension with 4 updates by @dependabot[bot] in #93
  • feat: enrich completion info by @benediktziegler in #94

Full Changelog: v0.20.0...v0.21.0

v0.20.0

20 Feb 13:48
f50c9d3

Choose a tag to compare

🎯 Summary

Feature release adding support for pytestmark = pytest.mark.usefixtures(...) fixture usage detection and fixing plugin fixture resolution in the LSP.

✨ New Features

  • pytestmark support: Detect fixture usages from pytestmark = pytest.mark.usefixtures(...) assignments (#91) by @benediktziegler

🐛 Bug Fixes

  • Plugin fixtures in LSP: Support pytest11 plugin fixtures from workspace editables in LSP providers (#90) by @benediktziegler

Full Changelog: v0.19.3...v0.20.0

What's Changed

  • fix: support pytest11 plugin fixtures from workspace editables in lsp by @benediktziegler in #90
  • feat: support pytestmark = pytest.mark.usefixtures for fixture usage by @benediktziegler in #91

Full Changelog: v0.19.3...v0.20.0

v0.19.3

16 Feb 12:18
b971dc4

Choose a tag to compare

🎯 Summary

Patch release fixing fixture listing logic to use file_fixtures key presence.

🐛 Bug Fixes

  • fixtures list: Fix listing logic to use file_fixtures key presence (#89, thanks @benediktziegler)

Full Changelog: v0.19.2...v0.19.3

What's Changed

Full Changelog: v0.19.2...v0.19.3

v0.19.2

15 Feb 10:50
6b3ed14

Choose a tag to compare

🎯 Summary

Patch release completing the autouse=True fixture handling in the CLI tree output.

🐛 Bug Fixes

  • fixtures list --only-unused: Autouse fixtures are no longer incorrectly included in the unused list (#87)
  • fixtures list --skip-unused: Autouse fixtures are now correctly shown (they are not "unused")
  • fixtures list: Autouse fixtures now display (autouse=True) label instead of (unused)

Full Changelog: v0.19.1...v0.19.2

Full Changelog: v0.19.1...v0.19.2

v0.19.1

14 Feb 18:25
8059865

Choose a tag to compare

🎯 Summary

Patch release fixing autouse=True fixtures being incorrectly reported as unused.

🐛 Bug Fixes

  • Unused fixture detection: autouse=True fixtures are no longer reported as unused by fixtures list --only-unused (#87)
    • Added autouse field to FixtureDefinition with extraction from @pytest.fixture(autouse=True) decorators
    • get_unused_fixtures() now skips autouse fixtures, matching pytest's semantics

Full Changelog: v0.19.0...v0.19.1

Full Changelog: v0.19.0...v0.19.1

v0.19.0

14 Feb 16:14
cac7986

Choose a tag to compare

🎯 Summary

Feature release focused on plugin discovery and packaging improvements.

✨ New Features

  • Handle editable installs as third-party packages
  • Support pytest_plugins variable for fixture discovery
  • Load fixtures from pytest entry_points

🐛 Bug Fixes

  • Gate symlink test with #[cfg(unix)] to fix Windows clippy (#86)
  • Address CodeQL code scanning alerts (#85)
  • Improve pytest plugin discovery

🔧 Improvements

  • Dependency updates across Rust, VSCode, and IntelliJ extensions
  • Bumped toml to 1.0.1+spec-1.1.0 and bytes to 1.11.1
  • Added Emacs setup docs

🧪 Tests

  • No new tests added

Full Changelog: v0.18.0...v0.19.0

What's Changed

  • fix: gate symlink test with #[cfg(unix)] to fix Windows clippy (#86) by @bellini666 in #86
  • fix: address CodeQL code scanning alerts (#85) by @bellini666 in #85
  • feat: handle editable installs as third-party packages (#84) by @bellini666 in #84
  • feat: support pytest_plugins variable for fixture discovery (#83) by @bellini666 in #83
  • deps(vscode)(deps-dev): bump the npm-all group in /extensions/vscode-extension with 5 updates (#81) by @dependabot[bot] in #81
  • feat: load fixtures from pytest entry_points (#78) by @benediktziegler in #78
  • deps(deps): bump toml from 0.9.11+spec-1.1.0 to 1.0.1+spec-1.1.0 (#80) by @dependabot[bot] in #80
  • deps(deps): bump the rust-minor-patch group with 3 updates (#79) by @dependabot[bot] in #79
  • deps(vscode): bump minor/patch deps and group all npm updates in dependabot (#73) by @dependabot[bot] in #73
  • docs: adding Emacs setup editors (#64) by @bellini666 in #64
  • deps(deps): bump the rust-minor-patch group with 3 updates (#66) by @dependabot[bot] in #66
  • deps(intellij)(deps): bump org.jetbrains.kotlin.jvm (#69) by @dependabot[bot] in #69
  • deps(deps): bump bytes from 1.11.0 to 1.11.1 (#63) by @dependabot[bot] in #63
  • deps(deps): bump the rust-minor-patch group with 2 updates (#60) by @dependabot[bot] in #60
  • deps(vscode)(deps-dev): bump the npm-minor-patch group (#59) by @dependabot[bot] in #59
  • deps(intellij)(deps): bump org.jetbrains.intellij.platform (#62) by @dependabot[bot] in #62
  • deps(intellij)(deps): bump gradle-wrapper in /extensions/intellij-plugin (#61) by @dependabot[bot] in #61
  • deps(intellij)(deps): bump gradle-wrapper in /extensions/intellij-plugin (#58) by @dependabot[bot] in #58
  • deps(vscode)(deps-dev): bump the npm-minor-patch group (#57) by @dependabot[bot] in #57

What's Changed

  • deps(vscode)(deps-dev): bump the npm-minor-patch group in /extensions/vscode-extension with 2 updates by @dependabot[bot] in #57
  • deps(intellij)(deps): bump gradle-wrapper from 9.2.1 to 9.3.0 in /extensions/intellij-plugin by @dependabot[bot] in #58
  • deps(intellij)(deps): bump gradle-wrapper from 9.3.0 to 9.3.1 in /extensions/intellij-plugin by @dependabot[bot] in #61
  • deps(intellij)(deps): bump org.jetbrains.intellij.platform from 2.10.5 to 2.11.0 in /extensions/intellij-plugin by @dependabot[bot] in #62
  • deps(vscode)(deps-dev): bump the npm-minor-patch group in /extensions/vscode-extension with 2 updates by @dependabot[bot] in #59
  • deps(deps): bump the rust-minor-patch group with 2 updates by @dependabot[bot] in #60
  • deps(deps): bump bytes from 1.11.0 to 1.11.1 by @dependabot[bot] in #63
  • deps(intellij)(deps): bump org.jetbrains.kotlin.jvm from 2.3.0 to 2.3.10 in /extensions/intellij-plugin by @dependabot[bot] in #69
  • deps(deps): bump the rust-minor-patch group with 3 updates by @dependabot[bot] in #66
  • docs: adding Emacs setup editors by @dunossauro in #64
  • deps(vscode): bump minor/patch deps and group all npm updates in depe… by @bellini666 in #73
  • deps(deps): bump the rust-minor-patch group with 3 updates by @dependabot[bot] in #79
  • deps(deps): bump toml from 0.9.11+spec-1.1.0 to 1.0.1+spec-1.1.0 by @dependabot[bot] in #80
  • feat: load fixtures from pytest entry_points by @benediktziegler in #78
  • deps(vscode)(deps-dev): bump the npm-all group in /extensions/vscode-extension with 5 updates by @dependabot[bot] in #81
  • feat: support pytest_plugins variable for fixture discovery by @bellini666 in #83
  • feat: handle editable installs as third-party packages by @bellini666 in #84
  • fix: address CodeQL code scanning alerts by @bellini666 in #85
  • fix: gate symlink test with #[cfg(unix)] to fix Windows clippy by @bellini666 in #86

New Contributors

Full Changelog: v0.18.0...v0.19.0

v0.18.0

17 Jan 15:00
f1ded63

Choose a tag to compare

🎯 Summary

Feature release focused on robustness, stability, and developer experience improvements.

✨ New Features

  • Document Symbol Ranges: Fixture symbols now include full function body ranges

    • Enables proper code folding in editors
    • Improves breadcrumb navigation accuracy
    • Added end_line tracking to FixtureDefinition
  • CI Code Coverage: Added automated coverage reporting with tarpaulin and Codecov integration

🐛 Bug Fixes

  • Windows URI Malformation (#54): Fixed "Go to definition" returning malformed URIs on Windows

    • Strip \\?\ extended-length path prefix before URI conversion
    • Resolves file://///%3F/D%3A/... becoming proper file:///D:/... URIs
  • Multi-level Relative Imports: Fixed import level extraction for from ..module import *

    • Now correctly handles any number of leading dots in relative imports
    • Previously all relative imports were treated as single-dot imports
  • Code Lens Safety: Replaced unsafe unwrap() calls with proper error handling

    • Prevents potential panics on malformed data during code lens generation

🔧 Improvements

  • Parse Error Recovery: Keep existing fixture data when file has syntax errors

    • Provides better LSP experience during active editing
    • Fixtures remain available even when code is temporarily invalid
  • Permission Error Reporting: Aggregate and report permission errors during workspace scan

    • Clear logging of how many files were skipped due to permission issues
    • Helps diagnose missing fixture detection in restricted directories
  • Bounded Cache: Added cache eviction (2000 file limit) to prevent unbounded memory growth

    • Safety net for very large workspaces
    • Evicts ~25% of entries when limit exceeded to avoid frequent re-eviction

🧪 Tests

  • Added tests for parse error recovery behavior
  • Added tests for fixture end_line tracking
  • Added tests for multi-level relative import handling
  • Added tests for cache handling with many files

Full Changelog: v0.17.3...v0.18.0

What's Changed

  • deps(vscode)(deps-dev): bump typescript-eslint from 8.50.1 to 8.51.0 in /extensions/vscode-extension in the npm-minor-patch group by @dependabot[bot] in #51
  • deps(deps): bump the rust-minor-patch group with 3 updates by @dependabot[bot] in #50
  • deps(deps): bump the rust-minor-patch group with 3 updates by @dependabot[bot] in #52
  • deps(deps): bump the rust-minor-patch group with 2 updates by @dependabot[bot] in #55
  • deps(vscode)(deps-dev): bump the npm-minor-patch group in /extensions/vscode-extension with 3 updates by @dependabot[bot] in #53
  • chore(deps): bump the uv group across 1 directory with 2 updates by @dependabot[bot] in #56

Full Changelog: v0.17.3...v0.18.0

v0.17.3

01 Jan 19:54
84d18eb

Choose a tag to compare

🎯 Summary

Patch release fixing a deprecated API warning in the IntelliJ plugin.

🐛 Bug Fixes

  • IntelliJ Plugin: Replace deprecated PluginDescriptor.isEnabled() with PluginManagerCore.isDisabled()
    • Fixes deprecation warning shown in JetBrains plugin verifier
    • Uses the recommended non-deprecated API for checking plugin/module status

ℹ️ Note

The warning about com.intellij.modules.python being unavailable is expected and harmless - it's an optional dependency that enables Python-specific features when available (e.g., in PyCharm). The plugin works correctly without it.


Full Changelog: v0.17.2...v0.17.3

Full Changelog: v0.17.2...v0.17.3