Before submitting your bug report
Relevant environment info
- OS: Linux Debian Trixie
- Continue version: 1.3.38
- IDE version: VS Code 1.116.0
- Model: google/gemma-4-e4b
- config:
name: Local Config
version: 1.0.0
schema: v1
models:
- name: Gemma 4 E4B
provider: lmstudio
model: google/gemma-4-e4b
apiBase: http://localhost:1234/v1
defaultCompletionOptions:
reasoning: true
temperature: 0.2
requestOptions:
verifySsl: false
capabilities:
- tool_use
- image_input
roles:
- chat
- edit
- apply
mcpServers:
- name: Github MCP
type: streamable-http
url: http://localhost:8000/mcp
Description
There seems to be a problem with how VS Code + Continue extension are not able to render markdown tables in the model response sections. I am attaching a screenshot below. It shows how the markdown table appears in a single line of text but not rendered, and I am not sure which one is the culprit (vscode or continue, that is).
I initially thought the model was not returning the table in proper markdown, but logs show it does (also attached).
Here's a screenshot showcasing the problem:
These are the logs from lmstudio (lms log stream --stats | tee lms.txt command line):
Streaming logs from LM Studio
timestamp: �[32m4/18/2026, 8:22:48 AM�[39m
type: �[32mllm.prediction.input�[39m
modelIdentifier: �[32mgoogle/gemma-4-e4b�[39m
modelPath: �[32mgoogle/gemma-4-e4b�[39m
input:
�[32m<|turn>system�[39m
�[32m<|think|>�[39m
�[32m<important_rules>�[39m
�[32m You are in chat mode.�[39m
�[32m�[39m
�[32m If the user asks to make changes to files offer that they can use the Apply Button on the code block, or switch to Agent Mode to make the suggested updates automatically.�[39m
�[32m If needed concisely explain to the user they can switch to agent mode using the Mode Selector dropdown and provide no other details.�[39m
�[32m�[39m
�[32m Always include the language and file name in the info string when you write code blocks.�[39m
�[32m If you are editing "src/main.py" for example, your code block should start with '```python src/main.py'�[39m
�[32m�[39m
�[32m When addressing code modification requests, present a concise code snippet that�[39m
�[32m emphasizes only the necessary changes and uses abbreviated placeholders for�[39m
�[32m unmodified sections. For example:�[39m
�[32m�[39m
�[32m ```language /path/to/file�[39m
�[32m // ... existing code ...�[39m
�[32m�[39m
�[32m {{ modified code here }}�[39m
�[32m�[39m
�[32m // ... existing code ...�[39m
�[32m�[39m
�[32m {{ another modification }}�[39m
�[32m�[39m
�[32m // ... rest of code ...�[39m
�[32m ```�[39m
�[32m�[39m
�[32m In existing files, you should always restate the function or class that the snippet belongs to:�[39m
�[32m�[39m
�[32m ```language /path/to/file�[39m
�[32m // ... existing code ...�[39m
�[32m�[39m
�[32m function exampleFunction() {�[39m
�[32m // ... existing code ...�[39m
�[32m�[39m
�[32m {{ modified code here }}�[39m
�[32m�[39m
�[32m // ... rest of function ...�[39m
�[32m }�[39m
�[32m�[39m
�[32m // ... rest of code ...�[39m
�[32m ```�[39m
�[32m�[39m
�[32m Since users have access to their complete file, they prefer reading only the�[39m
�[32m relevant modifications. It's perfectly acceptable to omit unmodified portions�[39m
�[32m at the beginning, middle, or end of files using these "lazy" comments. Only�[39m
�[32m provide the complete file when explicitly requested. Include a concise explanation�[39m
�[32m of changes unless the user specifically asks for code only.�[39m
�[32m�[39m
�[32m</important_rules>�[39m
�[32m�[39m
�[32mBe concise<turn|>�[39m
�[32m<|turn>user�[39m
�[32mI'm debugging a problem parsing markdown tables and I need your help. Generate a 3 by 3 markdown table with dummy content so I can debug the parser.<turn|>�[39m
�[32m<|turn>model�[39m
�[32m�[39m
timestamp: �[32m4/18/2026, 8:22:51 AM�[39m
type: �[32mllm.prediction.output�[39m
modelIdentifier: �[32mgoogle/gemma-4-e4b�[39m
output:
�[32m<|channel>thought�[39m
�[32mThe user wants a sample 3x3 Markdown table for testing a markdown table parser. I should generate this directly in the response. No file modifications are needed.<channel|>Here is a 3x3 markdown table with dummy content you can use for debugging:�[39m
�[32m�[39m
�[32m| Header 1 | Header 2 | Header 3 |�[39m
�[32m| :--- | :---: | ---: |�[39m
�[32m| Row 1, Col 1 | Data A | Value X |�[39m
�[32m| Row 2, Col 1 | Data B | Value Y |�[39m
�[32m| Row 3, Col 1 | Data C | Value Z |�[39m
stopReason: �[32meosFound�[39m
tokensPerSecond: �[32m47.063338202578706�[39m
numGpuLayers: �[32m-1�[39m
timeToFirstTokenSec: �[32m0.094�[39m
totalTimeSec: �[32m2.734�[39m
promptTokensCount: �[32m426�[39m
predictedTokensCount: �[32m130�[39m
totalTokensCount: �[32m556�[39m
Color characters from the lms log command aside, it seems the markdown table is properly generated, but either VS Code or the extension is not able to render to its markdown preview format. Any ideas where to look next?
Thanks!
To reproduce
- Open Continue extension
- Force model to write a markdown table
- More often than not, it will output an unrendered markdown table in one line
Before submitting your bug report
Relevant environment info
Description
There seems to be a problem with how VS Code + Continue extension are not able to render markdown tables in the model response sections. I am attaching a screenshot below. It shows how the markdown table appears in a single line of text but not rendered, and I am not sure which one is the culprit (vscode or continue, that is).
I initially thought the model was not returning the table in proper markdown, but logs show it does (also attached).
Here's a screenshot showcasing the problem:
These are the logs from lmstudio (
lms log stream --stats | tee lms.txtcommand line):Color characters from the
lms logcommand aside, it seems the markdown table is properly generated, but either VS Code or the extension is not able to render to its markdown preview format. Any ideas where to look next?Thanks!
To reproduce