java-functional-lsp 0.7.7__tar.gz → 0.7.8__tar.gz

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.
Files changed (66) hide show
  1. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/PKG-INFO +1 -1
  2. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/pyproject.toml +1 -1
  3. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/__init__.py +1 -1
  4. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/proxy.py +9 -5
  5. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.claude-plugin/plugin.json +0 -0
  6. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.githooks/pre-commit +0 -0
  7. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.githooks/pre-push +0 -0
  8. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/CODEOWNERS +0 -0
  9. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  10. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  11. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  12. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/SECURITY.md +0 -0
  13. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/dependabot.yml +0 -0
  14. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/release-drafter.yml +0 -0
  15. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/workflows/publish.yml +0 -0
  16. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/workflows/release-drafter.yml +0 -0
  17. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/workflows/stale.yml +0 -0
  18. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/workflows/test.yml +0 -0
  19. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/workflows/update-homebrew.yml +0 -0
  20. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.github/workflows/vscode-ext.yml +0 -0
  21. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/.gitignore +0 -0
  22. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/CONTRIBUTING.md +0 -0
  23. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/LICENSE +0 -0
  24. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/README.md +0 -0
  25. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/SKILL.md +0 -0
  26. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/commands/lint-java.md +0 -0
  27. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/editors/intellij/README.md +0 -0
  28. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/editors/intellij/lsp4ij-template.json +0 -0
  29. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/editors/vscode/.vscodeignore +0 -0
  30. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/editors/vscode/README.md +0 -0
  31. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/editors/vscode/package-lock.json +0 -0
  32. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/editors/vscode/package.json +0 -0
  33. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/editors/vscode/src/extension.ts +0 -0
  34. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/editors/vscode/tsconfig.json +0 -0
  35. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/hooks/hooks.json +0 -0
  36. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/hooks/java_linter_reminder.py +0 -0
  37. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/scripts/ensure-lsp.sh +0 -0
  38. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/scripts/generate-formula.py +0 -0
  39. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/__main__.py +0 -0
  40. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/analyzers/__init__.py +0 -0
  41. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/analyzers/base.py +0 -0
  42. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/analyzers/exception_checker.py +0 -0
  43. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/analyzers/functional_checker.py +0 -0
  44. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/analyzers/mutation_checker.py +0 -0
  45. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/analyzers/null_checker.py +0 -0
  46. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/analyzers/spring_checker.py +0 -0
  47. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/cli.py +0 -0
  48. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/fixes.py +0 -0
  49. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/src/java_functional_lsp/server.py +0 -0
  50. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/__init__.py +0 -0
  51. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/conftest.py +0 -0
  52. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_base.py +0 -0
  53. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_cli.py +0 -0
  54. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_config.py +0 -0
  55. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_e2e.py +0 -0
  56. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_e2e_jdtls.py +0 -0
  57. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_exception_checker.py +0 -0
  58. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_fixes.py +0 -0
  59. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_functional_checker.py +0 -0
  60. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_mutation_checker.py +0 -0
  61. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_null_checker.py +0 -0
  62. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_proxy.py +0 -0
  63. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_server.py +0 -0
  64. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_spring_checker.py +0 -0
  65. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/tests/test_suppress.py +0 -0
  66. {java_functional_lsp-0.7.7 → java_functional_lsp-0.7.8}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: java-functional-lsp
3
- Version: 0.7.7
3
+ Version: 0.7.8
4
4
  Summary: Java LSP server enforcing functional programming best practices — null safety, immutability, no exceptions
5
5
  Project-URL: Homepage, https://github.com/aviadshiber/java-functional-lsp
6
6
  Project-URL: Repository, https://github.com/aviadshiber/java-functional-lsp
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "java-functional-lsp"
7
- version = "0.7.7"
7
+ version = "0.7.8"
8
8
  description = "Java LSP server enforcing functional programming best practices — null safety, immutability, no exceptions"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -1,3 +1,3 @@
1
1
  """java-functional-lsp: A Java LSP server enforcing functional programming best practices."""
2
2
 
3
- __version__ = "0.7.7"
3
+ __version__ = "0.7.8"
@@ -484,18 +484,22 @@ class JdtlsProxy:
484
484
  """Start jdtls subprocess and initialize it.
485
485
 
486
486
  If *module_root_uri* is provided, jdtls is scoped to that module for
487
- fast startup. The data-directory hash is always based on the original
488
- workspace root (from init_params) so the index persists across restarts.
487
+ fast startup and the data-dir hash is based on the module URI (so each
488
+ module gets its own isolated index). Otherwise the workspace root is used.
489
489
  """
490
490
  jdtls_path = shutil.which("jdtls")
491
491
  if not jdtls_path:
492
492
  return False
493
493
 
494
- # Data-dir hash based on original workspace root (stable across module changes).
494
+ # Data-dir hash: use module URI when scoped so each module gets its own
495
+ # clean jdtls state. This avoids loading a 2.5GB monorepo index when only
496
+ # one module is needed. Without expansion, each session is module-scoped,
497
+ # so the data-dir should match that scope.
495
498
  original_root: str = init_params.get("rootUri") or init_params.get("rootPath") or str(Path.cwd())
496
499
  self._original_root_uri = original_root
497
- workspace_hash = hashlib.sha256(original_root.encode()).hexdigest()[:12]
498
- data_dir = Path.home() / ".cache" / "jdtls-data" / workspace_hash
500
+ hash_source = module_root_uri or original_root
501
+ data_hash = hashlib.sha256(hash_source.encode()).hexdigest()[:12]
502
+ data_dir = Path.home() / ".cache" / "jdtls-data" / data_hash
499
503
  data_dir.mkdir(parents=True, exist_ok=True)
500
504
 
501
505
  # Deep copy to avoid mutating server._init_params.