Implement paging for variables
At the moment the variable table will show a Too large to show contents. Max items to show: 300 message if a user decides to show a list with more than 300 entries:

The DAP supports startand count for the variables request, which can be using to implement paging: https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Variables
VS code currently shows the same message when defining ls = list(range(1000)):

If we use a @lumino/datagrid and it supports an arbitrary number of variables, does this solve our issue or are we concerned about too much data being sent across the wire?
We should probably use a streaming adapter to make sure we don't get flooded and to accommodate the paging built into the debug adapter protocol.
cf. https://github.com/jupyterlab/lumino/blob/master/examples/example-datagrid/src/index.ts#L53-L105
Using the streaming adapter sounds good :+1:
I quickly tried using the start and count parameters the other day, but they didn't seem to be taken into account. Maybe that's something we need to tweak on the ptvsd side.
As a start, there could be a new test that makes use of the start and count parameters in:
https://github.com/jupyterlab/debugger/blob/master/tests/src/session.spec.ts
There is no support for pagination, probably... https://github.com/jupyterlab/debugger/pull/415
Any suggestions?
This limitation of 300 variables comes from pydev itself. debugpy, the drop-in replacement for ptvsd also vendors pydev and has the same issue.
EDIT: I opened an issue to remove it (or get the ability to set it from the outside).
Moving to Future as the limit of 300 variables is still in debugpy / pydev.