Files
2026-07-05 23:22:47 -04:00

33 lines
1.1 KiB
Python

from __future__ import annotations
from shutil import which
from LSP.plugin import AbstractPlugin
from LSP.plugin import ClientConfig
from LSP.plugin import WorkspaceFolder
import sublime
class ScryerProlog(AbstractPlugin):
@classmethod
def name(cls) -> str:
return "prolog"
@classmethod
def can_start(
cls,
window: sublime.Window,
initiating_view: sublime.View,
workspace_folders: list[WorkspaceFolder],
configuration: ClientConfig,
) -> str | None:
command = configuration.command[0] if configuration.command else "scryer-prolog"
binary = sublime.expand_variables(command, {"packages": sublime.packages_path()})
if which(binary):
return None
return (
f'Could not find "{command}" on your PATH. LSP-prolog requires a build of scryer-prolog with '
'"--lsp" support (see https://github.com/mthom/scryer-prolog). Install it, or set the "command" '
"setting in LSP-prolog.sublime-settings to the full path of the binary."
)