java-functional-lsp 0.9.7__tar.gz → 0.9.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 (69) hide show
  1. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/PKG-INFO +1 -1
  2. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/pyproject.toml +1 -1
  3. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/__init__.py +1 -1
  4. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/server.py +14 -3
  5. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.claude-plugin/plugin.json +0 -0
  6. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.githooks/pre-commit +0 -0
  7. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.githooks/pre-push +0 -0
  8. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/CODEOWNERS +0 -0
  9. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  10. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  11. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  12. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/SECURITY.md +0 -0
  13. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/dependabot.yml +0 -0
  14. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/release-drafter.yml +0 -0
  15. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/publish.yml +0 -0
  16. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/release-drafter.yml +0 -0
  17. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/stale.yml +0 -0
  18. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/test.yml +0 -0
  19. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/update-homebrew.yml +0 -0
  20. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/vscode-ext.yml +0 -0
  21. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.gitignore +0 -0
  22. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/CONTRIBUTING.md +0 -0
  23. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/LICENSE +0 -0
  24. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/README.md +0 -0
  25. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/SKILL.md +0 -0
  26. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/commands/lint-java.md +0 -0
  27. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/intellij/README.md +0 -0
  28. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/intellij/lsp4ij-template.json +0 -0
  29. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/.vscodeignore +0 -0
  30. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/README.md +0 -0
  31. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/package-lock.json +0 -0
  32. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/package.json +0 -0
  33. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/src/extension.ts +0 -0
  34. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/tsconfig.json +0 -0
  35. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/hooks/hooks.json +0 -0
  36. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/hooks/java_linter_reminder.py +0 -0
  37. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/scripts/ensure-lsp.sh +0 -0
  38. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/scripts/generate-formula.py +0 -0
  39. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/__main__.py +0 -0
  40. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/__init__.py +0 -0
  41. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/base.py +0 -0
  42. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/exception_checker.py +0 -0
  43. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/functional_checker.py +0 -0
  44. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/mutation_checker.py +0 -0
  45. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/null_checker.py +0 -0
  46. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/spring_checker.py +0 -0
  47. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/cli.py +0 -0
  48. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/fixes.py +0 -0
  49. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/merkle.py +0 -0
  50. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/proxy.py +0 -0
  51. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/__init__.py +0 -0
  52. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/conftest.py +0 -0
  53. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_base.py +0 -0
  54. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_cli.py +0 -0
  55. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_config.py +0 -0
  56. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_e2e.py +0 -0
  57. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_e2e_jdtls.py +0 -0
  58. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_exception_checker.py +0 -0
  59. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_fixes.py +0 -0
  60. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_functional_checker.py +0 -0
  61. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_merkle.py +0 -0
  62. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_merkle_proxy.py +0 -0
  63. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_mutation_checker.py +0 -0
  64. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_null_checker.py +0 -0
  65. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_proxy.py +0 -0
  66. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_server.py +0 -0
  67. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_spring_checker.py +0 -0
  68. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_suppress.py +0 -0
  69. {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: java-functional-lsp
3
- Version: 0.9.7
3
+ Version: 0.9.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.9.7"
7
+ version = "0.9.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.9.7"
3
+ __version__ = "0.9.8"
@@ -696,12 +696,18 @@ async def _ensure_module_and_forward(
696
696
  return None
697
697
 
698
698
  module_uri = _resolve_module_uri(file_uri)
699
+ short_mod = Path(to_fs_path(module_uri) or module_uri).name if module_uri else "<none>"
699
700
 
700
701
  # Hot path: module already confirmed working.
701
702
  if module_uri and proxy.modules.is_ready(module_uri):
702
- return await proxy.send_request(method, _serialize_params(params))
703
+ logger.info("jdtls: %s [hot] module=%s", method, short_mod)
704
+ result = await proxy.send_request(method, _serialize_params(params))
705
+ if result is None:
706
+ logger.info("jdtls: %s [hot] → null (jdtls has no result for this file_uri)", method)
707
+ return result
703
708
 
704
709
  # Cold path: add module if unknown, then wait for ready.
710
+ logger.info("jdtls: %s [cold] module=%s expanded=%s", method, short_mod, proxy._workspace_expanded)
705
711
  new_module_uri = await proxy.add_module_if_new(file_uri)
706
712
 
707
713
  serialized = _serialize_params(params)
@@ -719,11 +725,13 @@ async def _ensure_module_and_forward(
719
725
  # If a concurrent request succeeds, Event.set() wakes us early.
720
726
  wait_uri = new_module_uri or module_uri
721
727
  if wait_uri and not proxy.modules.is_ready(wait_uri):
728
+ logger.info("jdtls: %s [cold] waiting for module %s to become ready", method, short_mod)
722
729
  await proxy.modules.wait_until_ready(wait_uri, timeout=5.0)
723
730
  # Always retry once after waiting — even on timeout the module may be ready.
724
731
  result = await proxy.send_request(method, serialized)
725
732
  if result is not None and can_mark_ready and module_uri:
726
733
  proxy.modules.mark_ready(module_uri)
734
+ logger.info("jdtls: %s [cold] retry → %s", method, "result" if result is not None else "null")
727
735
  return result
728
736
 
729
737
 
@@ -803,8 +811,11 @@ async def _on_incoming_calls(
803
811
  if result is None:
804
812
  return None
805
813
  try:
806
- return [_converter.structure(c, lsp.CallHierarchyIncomingCall) for c in result]
807
- except Exception:
814
+ structured = [_converter.structure(c, lsp.CallHierarchyIncomingCall) for c in result]
815
+ logger.info("jdtls: incomingCalls → %d callers", len(structured))
816
+ return structured
817
+ except Exception as e:
818
+ logger.warning("jdtls: incomingCalls structuring failed: %s (raw=%r)", e, result)
808
819
  return None
809
820
 
810
821