All notable changes to the "marktree" extension will be documented in this file.
Check Keep a Changelog for recommendations on how to structure this file.
- Fix “Copy Selected Symbol as Markdown” so selected functions, classes, and other scoped symbols copy the full symbol body instead of a smart-selection fragment.
- Add “Copy Selected Symbol as Markdown” to copy the symbol/range VS Code considers relevant around the active cursor or selection.
- Remove the
# Symbol:heading from symbol Markdown output.
- Fix diff multi-selection copy so “Copy diff of selection” emits one Markdown code fence for the active file instead of one fence per selected range.
- Limit copied diff output to the touched changed lines for pure add/remove runs while keeping replacement blocks paired as readable
-/+groups.
- Fix “Copy diff of selection” to derive selected diffs from whole-file diff hunks so additive changes are no longer misreported as replacements after line shifts.
- Support selected diff copy from either diff pane while normalizing selections to touched lines in the active pane.
- Skip clipboard writes when the selected diff lines do not contain any changes.
- Fix merged diff copy output so active-tab and selected diff copy flows emit only added and removed lines instead of duplicating unchanged context.
- Preserve correct
+/-prefixes and source line numbers in rendered diff Markdown output.
- Remove the Copilot Proxy subsystem, including commands, settings, status-bar integration, worker process, and OpenAI/Anthropic route handling.
- Remove AI provider/model-picker infrastructure and associated extension settings/commands.
- Keep token counter and chunking utilities while narrowing network usage/docs to license validation and token-counter model metadata fetches.
- Simplify extension build surface and dependency graph by dropping provider/proxy runtime dependencies.
- Refresh README and privacy documentation to match the new feature set.
- Fix tab-copy commands in single-file windows by removing the hard workspace-folder requirement for tab discovery.
- Fix “Copy Tab(s) as Markdown” and “Copy Active Tab as Markdown” to work without an open workspace folder.
- In no-workspace mode, render copied Markdown file headers with absolute paths while preserving workspace-relative paths when a workspace is open.
- Fix “Copy Selected as Markdown” multi-selection ordering so copied output is always sorted by ascending source line numbers (instead of cursor creation/copy order).
- Replace
marktree.showFilenameLineNumberswithmarktree.showFilenameLineRangesandmarktree.showFilenameColumnRanges. - Add end-to-end filename range formatting support with line and column ranges across file, tab, selection, symbol, and worker-based copy flows.
- Unify diagnostics/problem location header formatting with the same range settings used by other Markdown copy outputs.
- Normalize range rendering to a compact format and auto-enable line ranges when column ranges are enabled.
- Fix diff copy line-number rendering so removed lines no longer shift subsequent line numbers.
- Preserve accurate file-line alignment for merged diff output across selection diff copy and other diff-based Markdown copy flows.
- In diff editors, update “Copy Selected as Markdown” to prompt whether to copy the selected text or the diff of the selected range.
- Fix diff-selection copying so original-side text is not truncated when the selected range reaches end-of-line in the modified pane.
- For “Copy Tab(s) as Markdown”, when the selected scope includes diff tabs, prompt once per run to copy diff tabs as tab default, before, after, or diff.
- For active-tab diff copying, prompt whether to copy before, after, or diff content.
- Refactor diff-copy handling into shared helpers so selection/tab/active diff-copy flows use consistent before/after/diff behavior.
- Fix
Copy as Markdownterminal command invocation without context args and hide it from the Command Palette to avoid invalid entry-point usage. - Update README command descriptions to document diff-aware copy behavior for selected text and tabs.
- Add a new README demo section for “Copy selection as Markdown” with a GIF placeholder.
- Follow symlinked directories when copying trees/files, including selected symlink folders.
- Prevent recursive loops and duplicate traversal by skipping repeated real directory targets.
- Annotate followed symlink directories in tree output as
name -> target. - Add
marktree.followSymlinkDirectories(defaulttrue) to control this behavior.
Consolidate problem-copy commands into a quick-pick selector.
Consolidate "Copy Tab(s) as Markdown" commands.
- Rename “Copy Active File as Markdown” to “Copy Active Tab as Markdown” and handle diffs within tab copy flows.
- Updated CHANGELOG.md.
- Fix multi-cursor selection headers by labeling each selected line range instead of collapsing to a single span.
- Add a quick-pick scope selector for “Copy Tabs as Markdown” (all/left/right of the active tab).
- Add structured copy-worker logging with configurable log level and log path settings.
- Improve Copilot Proxy request normalization, tool handling, and streaming output for Anthropic/OpenAI routes.
- Package docs assets in published artifacts and streamline build/pack scripts.
- Add “Copy Active Diff as Markdown” with quick-pick to copy merged changes, added-only, or removed-only lines from the active diff editor.
- Run the Copilot proxy in its own high-performance external process for better responsiveness.
- Add Copilot proxy start/stop/show commands, settings, and docs for 0.7.4.
- Refresh docs submodule and version metadata for the 0.7.3 release.
- Publish the 0.7.2 patch release.
- Update docs submodule and package metadata for 0.7.1.
- Add an option to include file paths in Markdown copy output.
- Skip binary files when
ignoreBinaryis enabled by detecting binaries withisbinaryfile.
- Add tokenizer selection and chunk size prompts for chunking flows.
- Add a live token counter with OpenRouter model caching.
- Bump version to repair documentation packaging for 0.6.3.
- Add Pro model-based chunking and refresh the documentation.
- Number selected lines, trim trailing blanks, and expose the selected-lines copy in the context menu.
- Rewrite the tree parser with explicit root paths and flexible comments.
- Add a license to the distribution.
- Keep build artifacts at the repo root while ignoring them in git.
- Keep generated artifacts in
dist/for packaging.
- Fix fallback root handling.
- Package Clipboardy fallback binaries for Windows.
- Respect user notification settings in the copy-selected terminal flow.
- Fix importing VS Code from the worker.
- Fix bundle output issues.
- Add a “Copy All Problems” command and densify diagnostics output.
- Correct
.gitignorefiltering in the scanner in preparation for 0.5.0.
- Add a Pro feature to scaffold workspace structures from a clipboard tree.
- Update the README.
- Add privacy policy content for this release.
- Release housekeeping and version bump to 0.4.5.
- Update the README.
- Add “Copy as Markdown” for terminal selection and refactor Markdown code block generation.
- Redo the 0.4.2 release packaging.
- Migrate the build from TSC to tsup, refresh extension configs, and remove LICENSE.
- Add a “Copy Symbol” command and document the feature.
- Add a “Copy Selected as Markdown” command and document/register it.
- Fix package availability in the worker.
- Add a “Copy Problems from Active File” command.
- Improve command error handling with top-level try/catch and add a
vscode-uriutility. - Update ESLint packages and refactor copy/worker code paths.
- Refactor scanning to gather ignores from the workspace root and simplify path handling.
- Start partial tree scans at the workspace root and prefix Markdown paths with the workspace name.
- Use the active workspace folder for paths and prepend the workspace name to outputs.
- Make Markdown paths relative to the workspace root.
- Rename the Git commits flow to a unified
copyGitCommitscommand.
- Handle empty multi-selection in “Copy Md Tree & Files.”
- Add “Copy Git Diffs for Selected Commits” and fix a
shellCommandstyping issue.
- Recursively copy directories in “Copy Files” and default to the workspace when none are selected.
- Refactor the
copyActiveFileMdcommand.
- Add multi-selection support across copy commands and improve ignore updates.
- Treat Git diff ranges as inclusive and clarify related messaging.
- Improve ignore editing feedback and general error handling.
- Add commands to view Git diff ranges.
- Implement copying staged Git changes as Markdown.
- Differentiate copy logic between the context menu and command palette.
- Fix an unclosed code block in the README.
- Add copy tabs functionality.
- Add the ability to copy open tabs as Markdown.
- Add quick add/remove controls for Markdown ignores.
- Add
copyActiveFileMdand expand default ignores.
- Bug fixes and expanded error logging.
- Add defaults to configuration.
- Update the default ignore list.
- Default command paths to the workspace root instead of erroring.
- Add command categories.
- Fix the single selection case.
- Fix handling of
additionalIgnores.
- Fix informational message handling.
- Add lockfiles to the default ignore list.
- Fix a bug with copied messages.
- Add settings for informational messages.
- Use worker threads, improve recursion, and add binary ignore plus extension-scoped gitignores.
- Initial release.