Skip to content

Commit 105c308

Browse files
committed
refactor debugger
1 parent 6ae9b40 commit 105c308

File tree

21 files changed

+158
-82
lines changed

21 files changed

+158
-82
lines changed

.vscode/launch.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@
3434
}
3535
},
3636
{
37-
"name": "Python: robotcode.debug_adapter.launcher",
37+
"name": "Python: robotcode.debugger",
3838
"type": "python",
3939
"request": "launch",
40-
"module": "robotcode.debug_adapter.launcher",
40+
"module": "robotcode.debugger",
4141
"justMyCode": false,
4242
"args": [
4343
"--debug-asyncio",
@@ -50,10 +50,10 @@
5050
]
5151
},
5252
{
53-
"name": "Python: robotcode.debug_adapter tcp",
53+
"name": "Python: robotcode.debugger.launcher tcp",
5454
"type": "python",
5555
"request": "launch",
56-
"module": "robotcode.debug_adapter",
56+
"module": "robotcode.debugger.launcher",
5757
"justMyCode": false,
5858
"args": [
5959
"--mode",
@@ -64,10 +64,10 @@
6464
]
6565
},
6666
{
67-
"name": "Python: robotcode.debug_adapter stdio",
67+
"name": "Python: robotcode.debugger.launcher stdio",
6868
"type": "python",
6969
"request": "launch",
70-
"module": "robotcode.debug_adapter",
70+
"module": "robotcode.debugger.launcher",
7171
"justMyCode": false,
7272
"args": [
7373
"--mode",

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ RobotFramework Language Server and client for Visual Studio Code.
77

88
* Python 3.9 or above
99
* Robotframework 4.0 and above
10-
* VSCode version 1.58 and above
10+
* VSCode version 1.59 and above
1111

1212
## Installation
1313

log.ini

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[loggers]
2-
keys: root,server,language_server,language_server_parts,jsonrpc2,jsonrpc2_message,robotframework,debug_adapter, debug_adapter_launcher, asyncio
2+
keys: root,server,language_server,language_server_parts,jsonrpc2,jsonrpc2_message,robotframework,debugger, debugger_launcher, asyncio
33
#keys: root
44

55
[formatters]
@@ -73,15 +73,15 @@ handlers:
7373
qualname: robotcode.jsonrpc2.protocol.JsonRPCProtocol.message
7474
#propagate: 0
7575

76-
[logger_debug_adapter]
76+
[logger_debugger]
7777
level: TRACE
7878
handlers:
79-
qualname: robotcode.debug_adapter
79+
qualname: robotcode.debugger
8080

81-
[logger_debug_adapter_launcher]
81+
[logger_debugger_launcher]
8282
level: TRACE
8383
handlers:
84-
qualname: robotcode.debug_adapter.launcher
84+
qualname: robotcode.debugger.launcher
8585

8686
[logger_asyncio]
8787
level: TRACE

robotcode/debug_adapter/launcher/__init__.py

Lines changed: 0 additions & 3 deletions
This file was deleted.
File renamed without changes.

robotcode/debug_adapter/launcher/__main__.py renamed to robotcode/debugger/__main__.py

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
if __name__ == "__main__" and __package__ is None or __package__ == "":
1717

1818
file = Path(__file__).resolve()
19-
parent, top = file.parent, file.parents[3]
19+
parent, top = file.parent, file.parents[2]
2020

2121
if str(top) not in sys.path:
2222
sys.path.append(str(top))
@@ -26,10 +26,10 @@
2626
except ValueError: # Already removed
2727
pass
2828

29-
__package__ = "robotcode.debug_adapter.launcher"
29+
__package__ = "robotcode.debugger"
3030

31-
from ..._version import __version__
32-
from ...utils.logging import LoggingDescriptor
31+
from .._version import __version__
32+
from ..utils.logging import LoggingDescriptor
3333

3434
TRACE = logging.DEBUG - 6
3535
logging.addLevelName(TRACE, "TRACE")
@@ -42,15 +42,15 @@
4242
except ImportError:
4343
_logger.debug("typing_extensions not found, add our external path to sys.path")
4444
file = Path(__file__).resolve()
45-
external_path = Path(file.parents[2], "external", "typing_extensions")
45+
external_path = Path(file.parents[1], "external", "typing_extensions")
4646
sys.path.append(str(external_path))
4747

4848
try:
4949
__import__("pydantic")
5050
except ImportError:
5151
_logger.debug("pydantic library not found, add our external path to sys.path")
5252
file = Path(__file__).resolve()
53-
external_path = Path(file.parents[2], "external", "pydantic")
53+
external_path = Path(file.parents[1], "external", "pydantic")
5454
sys.path.append(str(external_path))
5555

5656
if TYPE_CHECKING:
@@ -86,7 +86,7 @@ async def wait() -> None:
8686

8787
@_logger.call
8888
def run_server(port: int, loop: asyncio.AbstractEventLoop) -> None:
89-
from ...jsonrpc2.server import TcpParams
89+
from ..jsonrpc2.server import TcpParams
9090
from .server import LaucherServer
9191

9292
asyncio.set_event_loop(loop)
@@ -124,9 +124,9 @@ async def run_robot(
124124
) -> Any:
125125
import robot
126126

127-
from ...utils.debugpy import enable_debugpy, wait_for_debugpy_connected
128-
from ...utils.net import check_free_port
129-
from ..types import Event
127+
from ..utils.debugpy import enable_debugpy, wait_for_debugpy_connected
128+
from ..utils.net import check_free_port
129+
from .types import Event
130130
from .debugger import Debugger
131131

132132
@_logger.call
@@ -171,22 +171,23 @@ async def start_debugpy_async() -> None:
171171

172172
await asyncio.wrap_future(asyncio.run_coroutine_threadsafe(server.protocol.initialized(), loop=loop))
173173

174-
try:
175-
await asyncio.wrap_future(
176-
asyncio.run_coroutine_threadsafe(
177-
server.protocol.wait_for_configuration_done(configuration_done_timeout), loop=loop
174+
if wait_for_client:
175+
try:
176+
await asyncio.wrap_future(
177+
asyncio.run_coroutine_threadsafe(
178+
server.protocol.wait_for_configuration_done(configuration_done_timeout), loop=loop
179+
)
178180
)
179-
)
180-
except (asyncio.CancelledError, SystemExit, KeyboardInterrupt):
181-
pass
182-
except asyncio.TimeoutError:
183-
raise ConnectionError("Timeout to get configuration from client.")
181+
except (asyncio.CancelledError, SystemExit, KeyboardInterrupt):
182+
pass
183+
except asyncio.TimeoutError:
184+
raise ConnectionError("Timeout to get configuration from client.")
184185

185186
await start_debugpy_async()
186187

187188
args = [
188189
"--listener",
189-
f"robotcode.debug_adapter.launcher.listeners.ListenerV2:no_debug={repr(no_debug)}",
190+
f"robotcode.debugger.listeners.ListenerV2:no_debug={repr(no_debug)}",
190191
*args,
191192
]
192193

@@ -267,7 +268,7 @@ def get_log_handler(logfile: str) -> logging.FileHandler:
267268

268269
def main() -> None:
269270
parser = argparse.ArgumentParser(
270-
description="RobotCode Debug Adapter Launcher",
271+
description="RobotCode Debugger",
271272
prog=__package__,
272273
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
273274
usage=f"{__package__} [arguments]... -- [<robot arguments>]...",
@@ -294,7 +295,7 @@ def main() -> None:
294295
)
295296
parser.add_argument("--log", action="store_true", help="enable logging")
296297
parser.add_argument(
297-
"--log-debug-adapter-launcher", action="store_true", help="show debug adapter launcher messages"
298+
"--log-debugger", action="store_true", help="show debugger log messages"
298299
)
299300
parser.add_argument("-n", "--no-debug", action="store_true", help="disable debugging")
300301
parser.add_argument("--debug-asyncio", action="store_true", help="enable async io debugging messages")
@@ -382,9 +383,9 @@ def main() -> None:
382383
if not args.log_asyncio:
383384
logging.getLogger("asyncio").propagate = False
384385

385-
if not args.log_debug_adapter_launcher:
386-
logging.getLogger("robotcode.debug_adapter").propagate = False
387-
logging.getLogger("robotcode.debug_adapter").disabled = True
386+
if not args.log_debugger:
387+
logging.getLogger("robotcode.debugger").propagate = False
388+
logging.getLogger("robotcode.debugger").disabled = True
388389

389390
_logger.info(f"starting {__package__} version={__version__}")
390391
_logger.debug(f"args={args}")
File renamed without changes.

robotcode/debug_adapter/launcher/debugger.py renamed to robotcode/debugger/debugger.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
Union,
2121
)
2222

23-
from ...utils.event import event
24-
from ...utils.logging import LoggingDescriptor
25-
from ..types import (
23+
from ..utils.event import event
24+
from ..utils.logging import LoggingDescriptor
25+
from .types import (
2626
Breakpoint,
2727
ContinuedEvent,
2828
ContinuedEventBody,

robotcode/debugger/launcher/__init__.py

Whitespace-only changes.

robotcode/debug_adapter/__main__.py renamed to robotcode/debugger/launcher/__main__.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
if __name__ == "__main__" and __package__ is None or __package__ == "":
1515

1616
file = Path(__file__).resolve()
17-
parent, top = file.parent, file.parents[2]
17+
parent, top = file.parent, file.parents[3]
1818

1919
if str(top) not in sys.path:
2020
sys.path.append(str(top))
@@ -24,11 +24,11 @@
2424
except ValueError: # Already removed
2525
pass
2626

27-
__package__ = "robotcode.debug_adapter"
27+
__package__ = "robotcode.debugger.launcher"
2828

29-
from .._version import __version__
30-
from ..utils.debugpy import start_debugpy
31-
from ..utils.logging import LoggingDescriptor
29+
from ..._version import __version__
30+
from ...utils.debugpy import start_debugpy
31+
from ...utils.logging import LoggingDescriptor
3232

3333
TRACE = logging.DEBUG - 6
3434
logging.addLevelName(TRACE, "TRACE")
@@ -41,15 +41,15 @@
4141
except ImportError:
4242
_logger.debug("typing_extensions not found, add our external path to sys.path")
4343
file = Path(__file__).resolve()
44-
external_path = Path(file.parents[1], "external", "typing_extensions")
44+
external_path = Path(file.parents[2], "external", "typing_extensions")
4545
sys.path.append(str(external_path))
4646

4747
try:
4848
__import__("pydantic")
4949
except ImportError:
5050
_logger.debug("pydantic library not found, add our external path to sys.path")
5151
file = Path(__file__).resolve()
52-
external_path = Path(file.parents[1], "external", "pydantic")
52+
external_path = Path(file.parents[2], "external", "pydantic")
5353
sys.path.append(str(external_path))
5454

5555

@@ -70,7 +70,7 @@ def get_log_handler(logfile: str) -> logging.FileHandler:
7070

7171

7272
def run_server(mode: str, port: int) -> None:
73-
from ..jsonrpc2.server import JsonRpcServerMode, TcpParams
73+
from ...jsonrpc2.server import JsonRpcServerMode, TcpParams
7474
from .server import DebugAdapterServer
7575

7676
with DebugAdapterServer(JsonRpcServerMode(mode), tcp_params=TcpParams("127.0.0.1", port)) as server:
@@ -84,7 +84,7 @@ def run_server(mode: str, port: int) -> None:
8484

8585
def main() -> None:
8686
parser = argparse.ArgumentParser(
87-
description="RobotCode Debug Adapter",
87+
description="RobotCode Debugger Launcher",
8888
prog=__package__,
8989
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
9090
)
@@ -99,7 +99,7 @@ def main() -> None:
9999
)
100100
parser.add_argument("-p", "--port", default=6611, help="server listen port (tcp)", type=int)
101101
parser.add_argument("--log", action="store_true", help="enable logging")
102-
parser.add_argument("--log-debug-adapter", action="store_true", help="show debug adapter messages")
102+
parser.add_argument("--log-debugger-launcher", action="store_true", help="show debugger launcher log messages")
103103
parser.add_argument("--debug-asyncio", action="store_true", help="enable async io debugging messages")
104104
parser.add_argument("--log-asyncio", action="store_true", help="show asyncio log messages")
105105
parser.add_argument("--log-colored", action="store_true", help="colored output for logs")
@@ -162,10 +162,10 @@ def main() -> None:
162162
if not args.log_asyncio:
163163
logging.getLogger("asyncio").propagate = False
164164

165-
if not args.log_debug_adapter:
166-
logging.getLogger("robotcode.debug_adapter").propagate = False
165+
if not args.log_debugger_launcher:
166+
logging.getLogger("robotcode.debugger.launcher").propagate = False
167167

168-
_logger.info(f"starting debug adapter server version={__version__}")
168+
_logger.info(f"starting debugger launcher server version={__version__}")
169169
_logger.debug(f"args={args}")
170170
if args.debugpy:
171171
start_debugpy(args.debugpy_port, args.debugpy_wait_for_client)

0 commit comments

Comments
 (0)