Skip to content

Commit 0ef7b3f

Browse files
committed
Log black errors to stderr
Previously errors were being silently dropped. INFO log messages don't seem to be displayed by python-lsp-server for now, at least not in its default configuration, but they don't hurt.
1 parent bc86305 commit 0ef7b3f

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

pylsp_black/plugin.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1+
import logging
12
from typing import Dict
23

34
import black
45
import toml
56
from pylsp import hookimpl
67

8+
logger = logging.getLogger(__name__)
9+
710

811
@hookimpl(tryfirst=True)
912
def pylsp_format_document(document):
@@ -56,8 +59,13 @@ def format_text(*, text, config):
5659
is_pyi=config["pyi"],
5760
string_normalization=not config["skip_string_normalization"],
5861
)
59-
60-
return black.format_file_contents(text, fast=config["fast"], mode=mode)
62+
try:
63+
return black.format_file_contents(text, fast=config["fast"], mode=mode)
64+
except black.NothingChanged:
65+
raise
66+
except Exception as e:
67+
logger.exception("Error formatting with black: %s", e)
68+
raise black.NothingChanged
6169

6270

6371
def load_config(filename: str) -> Dict:
@@ -74,11 +82,16 @@ def load_config(filename: str) -> Dict:
7482
pyproject_filename = root / "pyproject.toml"
7583

7684
if not pyproject_filename.is_file():
85+
logger.info("Using defaults for python-lsp-black: %r", defaults)
7786
return defaults
7887

7988
try:
8089
pyproject_toml = toml.load(str(pyproject_filename))
8190
except (toml.TomlDecodeError, OSError):
91+
logger.info(
92+
"Error decoding pyproject.toml file, using defaults for python-lsp-black: %r",
93+
defaults,
94+
)
8295
return defaults
8396

8497
file_config = pyproject_toml.get("tool", {}).get("black", {})
@@ -108,4 +121,8 @@ def load_config(filename: str) -> Dict:
108121

109122
config["target_version"] = target_version
110123

124+
logger.info(
125+
"Using config from %s for python-lsp-black: %r", pyproject_filename, config
126+
)
127+
111128
return config

0 commit comments

Comments
 (0)