Is your feature request related to a problem? Please describe.
As a literate programming enthusiast, I find the current VS Code integration lacks some features that would make the workflow more seamless and efficient. Specifically:
There's no real-time preview for non-computational parts of the document.
Writing and executing Python code directly within the MyST file is not supported.
The execution and rendering of computational cells lack flexibility and visual feedback.
Managing temporary files and project organization could be improved.
These limitations make it challenging to fully leverage MyST for literate programming within VS Code, often requiring workarounds or external tools.
Describe the solution you'd like
I'd like to see the following enhancements to the MyST VS Code extension:
Real-time lightweight preview: Implement a preview panel that updates in real-time for non-computational parts, similar to standard Markdown preview.
Integrated Python execution:
Enable writing and executing Python code directly within .myst.md files.
Support calling tagged #%% sections from external .py files or to transclude them directly.
Allow flexibility in file organization (single .myst.md or multiple files).
Enhanced code cell execution:
Add a keyboard shortcut to update and render all computational cells.
Enable running specific cells or all cells up to a certain point.
Visually indicate outdated outputs in the preview.
Project organization:
Provide an option to isolate temporary generated files in a specific folder.
Describe alternatives you've considered
I've explored several alternatives, but each has significant drawbacks:
Semi-WYSIWYG solutions like Jupyter Notebooks (.ipynb files), WxMaxima, or GNU TeXmacs: These are not suitable due to their git-unfriendly nature, which complicates version control and collaboration.
Quarto: This comes close to meeting my needs and does almost everything except the lightweight real-time rendering. While it's a powerful tool, the lack of instant preview for non-computational parts is a limitation for my workflow.
Using standard Markdown with code blocks: This approach lacks the rich features of MyST and doesn't support executable cells, which are crucial for literate programming.
Employing external build tools to render MyST documents: This breaks the immediate feedback loop, making the writing and coding process less fluid.
These alternatives have led me to believe that enhancing the MyST VS Code extension would be the most effective solution for creating a seamless literate programming environment while maintaining git-friendly, plain text files.
Additional context
These enhancements would create a more integrated literate programming environment within VS Code, similar to the experience in Jupyter Lab but with the advantages of MyST Markdown and VS Code's extensibility.
The ideal workflow would allow seamless switching between writing documentation, coding, and viewing results, all within the same VS Code window and primarily interacting with .myst.md files.
I'm open to discussing these ideas further and potentially contributing to their implementation if that would be helpful.
Is your feature request related to a problem? Please describe. As a literate programming enthusiast, I find the current VS Code integration lacks some features that would make the workflow more seamless and efficient. Specifically:
These limitations make it challenging to fully leverage MyST for literate programming within VS Code, often requiring workarounds or external tools.
Describe the solution you'd like I'd like to see the following enhancements to the MyST VS Code extension:
.myst.md
files.#%%
sections from external.py
files or to transclude them directly..myst.md
or multiple files).Describe alternatives you've considered I've explored several alternatives, but each has significant drawbacks:
Semi-WYSIWYG solutions like Jupyter Notebooks (.ipynb files), WxMaxima, or GNU TeXmacs: These are not suitable due to their git-unfriendly nature, which complicates version control and collaboration.
Quarto: This comes close to meeting my needs and does almost everything except the lightweight real-time rendering. While it's a powerful tool, the lack of instant preview for non-computational parts is a limitation for my workflow.
Using standard Markdown with code blocks: This approach lacks the rich features of MyST and doesn't support executable cells, which are crucial for literate programming.
Employing external build tools to render MyST documents: This breaks the immediate feedback loop, making the writing and coding process less fluid.
These alternatives have led me to believe that enhancing the MyST VS Code extension would be the most effective solution for creating a seamless literate programming environment while maintaining git-friendly, plain text files.
Additional context These enhancements would create a more integrated literate programming environment within VS Code, similar to the experience in Jupyter Lab but with the advantages of MyST Markdown and VS Code's extensibility.
The ideal workflow would allow seamless switching between writing documentation, coding, and viewing results, all within the same VS Code window and primarily interacting with
.myst.md
files.I'm open to discussing these ideas further and potentially contributing to their implementation if that would be helpful.