Skip to content

Commit 573eac0

Browse files
committed
Fixes
1 parent da04672 commit 573eac0

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

pylsp/_utils.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import os
88
import pathlib
99
import re
10+
import subprocess
11+
import sys
1012
import threading
1113
import time
1214
from typing import Callable, List, Optional
@@ -245,22 +247,22 @@ def _is_available_via_cli(self) -> bool:
245247
],
246248
)
247249
return True
248-
except CalledProcessError:
250+
except subprocess.CalledProcessError:
249251
return False
250252

251253

252-
class RuffFormatter:
254+
class RuffFormatter(Formatter):
253255
command = ["ruff", "format"]
254256

255257

256-
class BlackFormatter:
258+
class BlackFormatter(Formatter):
257259
command = ["black"]
258260

259261

260262
formatters = {"ruff": RuffFormatter(), "black": BlackFormatter()}
261263

262264

263-
def format_signature(signature: str, signature_formatter: str) -> str:
265+
def format_signature(signature: str, config: dict, signature_formatter: str) -> str:
264266
"""Formats signature using ruff or black if either is available."""
265267
as_func = f"def {signature.strip()}:\n pass"
266268
line_length = config.get("line_length", 88)
@@ -286,7 +288,10 @@ def convert_signatures_to_markdown(signatures: List[str], config: dict) -> str:
286288
signature_formatter = config.get("format", "black")
287289
if signature_formatter:
288290
signatures = [
289-
format_signature(signature, config=config) for signature in signatures
291+
format_signature(
292+
signature, signature_formatter=signature_formatter, config=config
293+
)
294+
for signature in signatures
290295
]
291296
return wrap_signature("\n".join(signatures))
292297

pylsp/plugins/hover.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
@hookimpl
1212
def pylsp_hover(config, document, position):
13-
signature_config = config.settings.get("signatures", {})
13+
signature_config = config.settings().get("signature", {})
1414
code_position = _utils.position_to_jedi_linecolumn(document, position)
1515
definitions = document.jedi_script(use_document_path=True).infer(**code_position)
1616
word = document.word_at_position(position)

pylsp/plugins/jedi_completion.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def pylsp_completions(config, document, position):
4141
"""Get formatted completions for current code position"""
4242
settings = config.plugin_settings("jedi_completion", document_path=document.path)
4343
resolve_eagerly = settings.get("eager", False)
44-
signature_config = config.settings.get("signatures", {})
44+
signature_config = config.settings().get("signature", {})
4545

4646
code_position = _utils.position_to_jedi_linecolumn(document, position)
4747
code_position["fuzzy"] = settings.get("fuzzy", False)
@@ -165,7 +165,7 @@ def pylsp_completion_item_resolve(
165165
completion,
166166
data,
167167
markup_kind=preferred_markup_kind,
168-
signature_config=config.settings.get("signatures", {}),
168+
signature_config=config.settings().get("signature", {}),
169169
)
170170
return completion_item
171171

test/plugins/test_hover.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ def main(a: float, b: float):
2323
2424
"""
2525

26-
pylsp_hover = partial(pylsp_hover, signatures_to_markdown=None)
27-
2826

2927
def test_numpy_hover(workspace) -> None:
3028
# Over the blank line
@@ -92,15 +90,17 @@ def test_hover(workspace) -> None:
9290
assert {"contents": ""} == pylsp_hover(doc._config, doc, no_hov_position)
9391

9492

95-
def test_hover_custom_signature(workspace) -> None:
93+
def test_hover_signature_formatting(workspace) -> None:
9694
# Over 'main' in def main():
9795
hov_position = {"line": 2, "character": 6}
9896

9997
doc = Document(DOC_URI, workspace, DOC)
98+
# setting low line length should trigger reflow to multiple lines
99+
doc._config.update({"signature": {"line_length": 10}})
100100

101101
contents = {
102102
"kind": "markdown",
103-
"value": "```python\nmain(\n a: float,\n b: float\n)\n```\n\n\nhello world",
103+
"value": "```python\nmain(\n a: float,\n b: float,\n)\n```\n\n\nhello world",
104104
}
105105

106106
assert {"contents": contents} == pylsp_hover(doc._config, doc, hov_position)

0 commit comments

Comments
 (0)