40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
# Licensed under the MIT License.
|
|
"""Debugging support for LSP."""
|
|
|
|
import os
|
|
import pathlib
|
|
import runpy
|
|
import sys
|
|
|
|
|
|
def update_sys_path(path_to_add: str) -> None:
|
|
"""Add given path to `sys.path`."""
|
|
if path_to_add not in sys.path and os.path.isdir(path_to_add):
|
|
sys.path.append(path_to_add)
|
|
|
|
|
|
# Ensure debugger is loaded before we load anything else, to debug initialization.
|
|
debugger_path = os.getenv("DEBUGPY_PATH", None)
|
|
if debugger_path:
|
|
if debugger_path.endswith("debugpy"):
|
|
debugger_path = os.fspath(pathlib.Path(debugger_path).parent)
|
|
|
|
update_sys_path(debugger_path)
|
|
|
|
# pylint: disable=wrong-import-position,import-error
|
|
import debugpy
|
|
|
|
# 5678 is the default port, If you need to change it update it here
|
|
# and in launch.json.
|
|
debugpy.connect(5678)
|
|
|
|
# This will ensure that execution is paused as soon as the debugger
|
|
# connects to VS Code. If you don't want to pause here comment this
|
|
# line and set breakpoints as appropriate.
|
|
# debugpy.breakpoint()
|
|
|
|
SERVER_PATH = os.fspath(pathlib.Path(__file__).parent / "lsp_server.py")
|
|
# NOTE: Set breakpoint in `lsp_server.py` before continuing.
|
|
runpy.run_path(SERVER_PATH, run_name="__main__")
|