Extension Host ('traditional' VS Code API) | \r\n\t\t\t'Test Protocol' (like DAP/LSP) | \r\n\t\t\tExtension (like existing test explorer) | \r\n\t\t
---|---|---|
\r\n\t\t\t+ Simple to adopt for extension authors \r\n\t\t\t+ Easier to manage state \r\n\t\t\t+ Clear way to build 'official' test extensions \r\n\t\t | \r\n\t\t\r\n\t\t\t+ Encourages keeping expensive work in child processes \r\n\t\t\t+ Could be theoretically shared with VS and other editors \r\n\t\t | \r\n\t\t\r\n\t\t\t+ Keep VS Code core slim \r\n\t\t\t+ Unclear whether there's significant functionality we'd want that's not already possible in exthost api \r\n\t\t | \r\n\t
\r\n\t\t\t- The 'obvious path' is doing heavy lifting in the extension host process, which is undesirable \r\n\t\t | \r\n\t\t\r\n\t\t\t- Additional implementation and maintainence complexity for VS Code \r\n\t\t\t- Less friendly, additional complexity than TS APIs for extension authors \r\n\t\t | \r\n\t\t\r\n\t\t\t- Additional extension and set of libraries to maintain+version for types and implementation \r\n\t\t\t- Less clear there's an official pathway for test extensions \r\n\t\t | \r\n\t
Extension Host ('traditional' VS Code API) | \r\n\t\t\t'Test Protocol' (like DAP/LSP) | \r\n\t\t\tExtension (like existing test explorer) | \r\n\t\t
---|---|---|
\r\n\t\t\t+ Simple to adopt for extension authors \r\n\t\t\t+ Easier to manage state \r\n\t\t\t+ Clear way to build 'official' test extensions \r\n\t\t | \r\n\t\t\r\n\t\t\t+ Encourages keeping expensive work in child processes \r\n\t\t\t+ Could be theoretically shared with VS and other editors \r\n\t\t | \r\n\t\t\r\n\t\t\t+ Keep VS Code core slim \r\n\t\t\t+ Unclear whether there's significant functionality we'd want that's not already possible in exthost api \r\n\t\t | \r\n\t
\r\n\t\t\t- The 'obvious path' is doing heavy lifting in the extension host process, which is undesirable \r\n\t\t | \r\n\t\t\r\n\t\t\t- Additional implementation and maintainence complexity for VS Code \r\n\t\t\t- Less friendly, additional complexity than TS APIs for extension authors \r\n\t\t | \r\n\t\t\r\n\t\t\t- Additional extension and set of libraries to maintain+version for types and implementation \r\n\t\t\t- Less clear there's an official pathway for test extensions \r\n\t\t | \r\n\t