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.
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/PKG-INFO +1 -1
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/pyproject.toml +1 -1
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/__init__.py +1 -1
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/server.py +14 -3
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.claude-plugin/plugin.json +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.githooks/pre-commit +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.githooks/pre-push +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/CODEOWNERS +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/SECURITY.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/dependabot.yml +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/release-drafter.yml +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/publish.yml +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/release-drafter.yml +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/stale.yml +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/test.yml +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/update-homebrew.yml +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/vscode-ext.yml +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.gitignore +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/CONTRIBUTING.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/LICENSE +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/README.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/SKILL.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/commands/lint-java.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/intellij/README.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/intellij/lsp4ij-template.json +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/.vscodeignore +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/README.md +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/package-lock.json +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/package.json +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/src/extension.ts +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/vscode/tsconfig.json +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/hooks/hooks.json +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/hooks/java_linter_reminder.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/scripts/ensure-lsp.sh +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/scripts/generate-formula.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/__main__.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/__init__.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/base.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/exception_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/functional_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/mutation_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/null_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/spring_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/cli.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/fixes.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/merkle.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/proxy.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/__init__.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/conftest.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_base.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_cli.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_config.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_e2e.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_e2e_jdtls.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_exception_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_fixes.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_functional_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_merkle.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_merkle_proxy.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_mutation_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_null_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_proxy.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_server.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_spring_checker.py +0 -0
- {java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/tests/test_suppress.py +0 -0
- {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.
|
|
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
|
+
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" }
|
|
@@ -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
|
-
|
|
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
|
-
|
|
807
|
-
|
|
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
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/ISSUE_TEMPLATE/bug-report.md
RENAMED
|
File without changes
|
{java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/ISSUE_TEMPLATE/feature-request.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/release-drafter.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/.github/workflows/update-homebrew.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/editors/intellij/lsp4ij-template.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{java_functional_lsp-0.9.7 → java_functional_lsp-0.9.8}/src/java_functional_lsp/analyzers/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|