Skip to content

Commit 8b3be53

Browse files
committed
feat: update plugin to new api
1 parent 98ca1d9 commit 8b3be53

File tree

11 files changed

+53
-39
lines changed

11 files changed

+53
-39
lines changed

pylsp/plugins/_resolvers.py

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

88
from jedi.api.classes import Completion
99

10-
from pylsp import lsp
10+
from lsprotocol import types as lsp
1111

1212
log = logging.getLogger(__name__)
1313

pylsp/plugins/flake8_lint.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212

1313
from flake8.plugins.pyflakes import FLAKE8_PYFLAKES_CODES
1414

15-
from pylsp import hookimpl, lsp
15+
from pylsp import hookimpl
16+
from lsprotocol import types as lsp
1617
from pylsp.plugins.pyflakes_lint import PYFLAKES_ERROR_MESSAGES
1718

1819
log = logging.getLogger(__name__)
@@ -42,7 +43,7 @@ def pylsp_settings():
4243

4344

4445
@hookimpl
45-
def pylsp_lint(workspace, document):
46+
def pylsp_lint(config, workspace, document, is_saved): # noqa: ARG001 (is_saved unused)
4647
with workspace.report_progress("lint: flake8"):
4748
config = workspace._config
4849
settings = config.plugin_settings("flake8", document_path=document.path)

pylsp/plugins/highlight.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33

44
import logging
55

6-
from pylsp import _utils, hookimpl, lsp
6+
from pylsp import _utils, hookimpl
7+
from lsprotocol import types as lsp
78

89
log = logging.getLogger(__name__)
910

1011

1112
@hookimpl
12-
def pylsp_document_highlight(document, position):
13+
def pylsp_document_highlight(config, workspace, document, position):
1314
code_position = _utils.position_to_jedi_linecolumn(document, position)
1415
usages = document.jedi_script().get_references(**code_position)
1516

pylsp/plugins/jedi_completion.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
import parso
88

9-
from pylsp import _utils, hookimpl, lsp
9+
from pylsp import _utils, hookimpl
10+
from lsprotocol import types as lsp
1011
from pylsp.plugins._resolvers import LABEL_RESOLVER, SNIPPET_RESOLVER
1112

1213
log = logging.getLogger(__name__)
@@ -36,7 +37,7 @@
3637

3738

3839
@hookimpl
39-
def pylsp_completions(config, document, position):
40+
def pylsp_completions(config, workspace, document, position, ignored_names=None):
4041
"""Get formatted completions for current code position"""
4142
settings = config.plugin_settings("jedi_completion", document_path=document.path)
4243
resolve_eagerly = settings.get("eager", False)
@@ -143,8 +144,9 @@ def pylsp_completions(config, document, position):
143144
@hookimpl
144145
def pylsp_completion_item_resolve(
145146
config,
146-
completion_item,
147+
workspace,
147148
document,
149+
completion_item,
148150
):
149151
"""Resolve formatted completion for given non-resolved completion"""
150152
shared_data = document.shared_data["LAST_JEDI_COMPLETIONS"].get(

pylsp/plugins/mccabe_lint.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
import mccabe
88

9-
from pylsp import hookimpl, lsp
9+
from pylsp import hookimpl
10+
from lsprotocol import types as lsp
1011

1112
log = logging.getLogger(__name__)
1213

@@ -15,7 +16,7 @@
1516

1617

1718
@hookimpl
18-
def pylsp_lint(config, workspace, document):
19+
def pylsp_lint(config, workspace, document, is_saved): # noqa: ARG001 (is_saved unused)
1920
with workspace.report_progress("lint: mccabe"):
2021
threshold = config.plugin_settings("mccabe", document_path=document.path).get(
2122
THRESHOLD, DEFAULT_THRESHOLD

pylsp/plugins/pycodestyle_lint.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55

66
import pycodestyle
77

8-
from pylsp import hookimpl, lsp
8+
from pylsp import hookimpl
9+
from lsprotocol import types as lsp
910
from pylsp._utils import get_eol_chars
1011

1112
try:
@@ -24,7 +25,7 @@
2425

2526

2627
@hookimpl
27-
def pylsp_lint(workspace, document):
28+
def pylsp_lint(config, workspace, document, is_saved): # noqa: ARG001 (is_saved unused)
2829
with workspace.report_progress("lint: pycodestyle"):
2930
config = workspace._config
3031
settings = config.plugin_settings("pycodestyle", document_path=document.path)

pylsp/plugins/pydocstyle_lint.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99

1010
import pydocstyle
1111

12-
from pylsp import hookimpl, lsp
12+
from pylsp import hookimpl
13+
from lsprotocol import types as lsp
1314

1415
log = logging.getLogger(__name__)
1516

@@ -28,7 +29,7 @@ def pylsp_settings():
2829

2930

3031
@hookimpl
31-
def pylsp_lint(config, workspace, document):
32+
def pylsp_lint(config, workspace, document, is_saved): # noqa: ARG001 (is_saved unused)
3233
with workspace.report_progress("lint: pydocstyle"):
3334
settings = config.plugin_settings("pydocstyle", document_path=document.path)
3435
log.debug("Got pydocstyle settings: %s", settings)

pylsp/plugins/pyflakes_lint.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
from pyflakes import api as pyflakes_api
55
from pyflakes import messages
66

7-
from pylsp import hookimpl, lsp
7+
from pylsp import hookimpl
8+
from lsprotocol import types as lsp
89

910
# Pyflakes messages that should be reported as Errors instead of Warns
1011
PYFLAKES_ERROR_MESSAGES = (
@@ -22,7 +23,7 @@
2223

2324

2425
@hookimpl
25-
def pylsp_lint(workspace, document):
26+
def pylsp_lint(config, workspace, document, is_saved): # noqa: ARG001 (is_saved unused)
2627
with workspace.report_progress("lint: pyflakes"):
2728
reporter = PyflakesDiagnosticReport(document.lines)
2829
pyflakes_api.check(
@@ -36,7 +37,7 @@ def __init__(self, lines) -> None:
3637
self.lines = lines
3738
self.diagnostics = []
3839

39-
def unexpectedError(self, _filename, msg) -> None: # pragma: no cover
40+
def unexpectedError(self, _filename, msg) -> None:
4041
err_range = {
4142
"start": {"line": 0, "character": 0},
4243
"end": {"line": 0, "character": 0},

pylsp/plugins/pylint_lint.py

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
import sys
1313
from subprocess import PIPE, Popen
1414

15-
from pylsp import hookimpl, lsp
15+
from lsprotocol.types import DiagnosticSeverity, DiagnosticTag
16+
17+
from pylsp import hookimpl
1618

1719
try:
1820
import ujson as json
@@ -74,7 +76,7 @@ def lint(cls, document, is_saved, flags=""):
7476
},
7577
}
7678
'message': msg,
77-
'severity': lsp.DiagnosticSeverity.*,
79+
'severity': DiagnosticSeverity.*,
7880
}
7981
"""
8082
if not is_saved:
@@ -160,17 +162,20 @@ def lint(cls, document, is_saved, flags=""):
160162
}
161163

162164
if diag["type"] == "convention":
163-
severity = lsp.DiagnosticSeverity.Information
165+
severity = DiagnosticSeverity.Information
164166
elif diag["type"] == "information":
165-
severity = lsp.DiagnosticSeverity.Information
167+
severity = DiagnosticSeverity.Information
166168
elif diag["type"] == "error":
167-
severity = lsp.DiagnosticSeverity.Error
169+
severity = DiagnosticSeverity.Error
168170
elif diag["type"] == "fatal":
169-
severity = lsp.DiagnosticSeverity.Error
171+
severity = DiagnosticSeverity.Error
170172
elif diag["type"] == "refactor":
171-
severity = lsp.DiagnosticSeverity.Hint
173+
severity = DiagnosticSeverity.Hint
172174
elif diag["type"] == "warning":
173-
severity = lsp.DiagnosticSeverity.Warning
175+
severity = DiagnosticSeverity.Warning
176+
else:
177+
log.warning("Unknown pylint diagnostic type '%s'", diag["type"])
178+
severity = DiagnosticSeverity.Error
174179

175180
code = diag["message-id"]
176181

@@ -183,9 +188,9 @@ def lint(cls, document, is_saved, flags=""):
183188
}
184189

185190
if code in UNNECESSITY_CODES:
186-
diagnostic["tags"] = [lsp.DiagnosticTag.Unnecessary]
191+
diagnostic["tags"] = [DiagnosticTag.Unnecessary]
187192
if code in DEPRECATION_CODES:
188-
diagnostic["tags"] = [lsp.DiagnosticTag.Deprecated]
193+
diagnostic["tags"] = [DiagnosticTag.Deprecated]
189194

190195
diagnostics.append(diagnostic)
191196
cls.last_diags[document.path] = diagnostics
@@ -327,12 +332,12 @@ def _parse_pylint_stdio_result(document, stdout):
327332
line = int(line) - 1
328333
character = int(character)
329334
severity_map = {
330-
"C": lsp.DiagnosticSeverity.Information,
331-
"E": lsp.DiagnosticSeverity.Error,
332-
"F": lsp.DiagnosticSeverity.Error,
333-
"I": lsp.DiagnosticSeverity.Information,
334-
"R": lsp.DiagnosticSeverity.Hint,
335-
"W": lsp.DiagnosticSeverity.Warning,
335+
"C": DiagnosticSeverity.Information,
336+
"E": DiagnosticSeverity.Error,
337+
"F": DiagnosticSeverity.Error,
338+
"I": DiagnosticSeverity.Information,
339+
"R": DiagnosticSeverity.Hint,
340+
"W": DiagnosticSeverity.Warning,
336341
}
337342
severity = severity_map[code[0]]
338343
diagnostic = {
@@ -351,9 +356,9 @@ def _parse_pylint_stdio_result(document, stdout):
351356
"severity": severity,
352357
}
353358
if code in UNNECESSITY_CODES:
354-
diagnostic["tags"] = [lsp.DiagnosticTag.Unnecessary]
359+
diagnostic["tags"] = [DiagnosticTag.Unnecessary]
355360
if code in DEPRECATION_CODES:
356-
diagnostic["tags"] = [lsp.DiagnosticTag.Deprecated]
361+
diagnostic["tags"] = [DiagnosticTag.Deprecated]
357362
diagnostics.append(diagnostic)
358363

359364
return diagnostics

pylsp/plugins/rope_completion.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55

66
from rope.contrib.codeassist import code_assist, sorted_proposals
77

8-
from pylsp import _utils, hookimpl, lsp
8+
from pylsp import _utils, hookimpl
9+
from lsprotocol import types as lsp
910

1011
log = logging.getLogger(__name__)
1112

@@ -28,7 +29,7 @@ def _resolve_completion(completion, data, markup_kind):
2829

2930

3031
@hookimpl
31-
def pylsp_completions(config, workspace, document, position):
32+
def pylsp_completions(config, workspace, document, position, ignored_names=None):
3233
settings = config.plugin_settings("rope_completion", document_path=document.path)
3334
resolve_eagerly = settings.get("eager", False)
3435

@@ -90,7 +91,7 @@ def pylsp_completions(config, workspace, document, position):
9091

9192

9293
@hookimpl
93-
def pylsp_completion_item_resolve(config, completion_item, document):
94+
def pylsp_completion_item_resolve(config, workspace, document, completion_item):
9495
"""Resolve formatted completion for given non-resolved completion"""
9596
shared_data = document.shared_data["LAST_ROPE_COMPLETIONS"].get(
9697
completion_item["label"]

0 commit comments

Comments
 (0)