github Moyf/easy-copy 1.6.5

latest release: 1.7.0
6 hours ago

[1.6.5] - 2026-05-26

🐛 Bug Fixes

  • Code block detection: fix false positive when cursor is on a heading/paragraph between two fenced code blocks. The old implementation searched upward for the nearest ``` line without distinguishing opening from closing fences — a closing fence of the previous block was mistakenly treated as an opening fence.
  • Nested fence support: the detector now correctly handles fences of different lengths (e.g. ```` wrapping ```). Per CommonMark spec, a closing fence must be at least as long as its opening fence, so a shorter inner fence is treated as content, not as a closing fence.

🧪 Tests

  • Extract core detection logic into a pure function detectCodeBlockFromLines in src/codeBlockDetect.ts, making it independently testable
  • Add 37 unit tests covering: the reported bug scenario, nested fences, unclosed blocks, all CodeBlockBehavior modes, and fence-line edge cases
中文说明(点击展开)

🐛 Bug 修复

  • 代码块检测误判:修复了光标在两个代码块之间的标题行或段落时,被错误识别为「在代码块内」的问题。原实现向上搜索第一个 ``` 行时,无法区分开始围栏和结束围栏,导致上方代码块的结束围栏被当成开始围栏。
  • 嵌套围栏支持:检测逻辑现在正确处理不同长度的嵌套围栏(如 ```` 包裹 ```)。依照 CommonMark 规范,结束围栏长度必须 ≥ 开始围栏,较短的内层围栏视为内容行而非结束围栏。

🧪 测试

  • 将核心检测逻辑提取为纯函数 detectCodeBlockFromLines(位于 src/codeBlockDetect.ts),使其可独立进行单元测试
  • 新增 37 个单元测试,覆盖:问题复现场景、嵌套围栏、未闭合块、所有 CodeBlockBehavior 模式、围栏行边界情况

[1.6.4] - 2026-05-15

🔧 Maintenance

  • Updated pnpm lockfile after removing builtin-modules and dotenv dependencies
中文说明(点击展开)

🔧 维护

  • 移除 builtin-modulesdotenv 依赖后同步更新 pnpm lockfile

[1.6.3] - 2026-05-15

🔧 Maintenance

  • Updated pnpm lockfile after removing builtin-modules and dotenv dependencies
中文说明(点击展开)

🔧 维护

  • 移除 builtin-modulesdotenv 依赖后同步更新 pnpm lockfile

[1.6.2] - 2026-05-15

🔧 Maintenance

  • Added GitHub artifact attestations for main.js and styles.css release assets
  • Fixed all Obsidian plugin linter warnings.
中文说明(点击展开)

🔧 维护

  • 为 release 产物 main.jsstyles.css 添加 GitHub Artifact Attestation(加密溯源证明)
  • 修复所有 Obsidian 插件 linter 警告

[1.6.1] - 2026-05-12

✨ Added

  • Code block copy: When the cursor is inside a fenced code block (```), the smart copy command now copies the block content directly — no more accidentally triggering block ID generation.
  • Code block copy behavior setting: A new "Code Block" settings group lets you choose what happens when copying from inside a code block:
    • Copy plain text (default) — copies the code content without the surrounding ``` fence lines
    • Copy code block (with fences) — copies the full block including the opening ```lang and closing ``` lines
    • Generate block link — falls through to the existing block ID generation behavior (same as before this feature)
    • Disabled — skips code block detection entirely
中文说明(点击展开)

✨ 新增

  • 复制代码块:当光标位于代码块(```)内时,智能复制命令现在会直接复制代码块内容,不再误触发块ID生成。
  • 代码块复制行为设置:新增「代码块」设置分组,可自定义在代码块内按下智能复制时的行为:
    • 复制纯文本(默认)—— 复制代码内容,不含前后的 ``` 围栏行
    • 复制代码块(含 ``` —— 复制完整代码块,包括开头的 ```lang 和结尾的 ```
    • 生成块链接 —— 沿用原有的块ID生成逻辑(与此功能上线前行为一致)
    • 禁用 —— 跳过代码块检测,不做任何特殊处理

[1.6.0] - 2026-05-09

✨ Added

  • Paste-time link path resolution: When "Resolve link path on paste" is enabled, Easy Copy regenerates link paths based on the destination file's location at paste time.
    • Under "Follow Obsidian settings", uses your vault's configured path style (shortest / relative / absolute)
    • Under explicit Wiki/Markdown format, uses shortest-unique paths only
    • Same-file heading paste simplifies automatically (e.g. [[#Setup]] instead of [[MyProject#Setup]])

🐛 Fixed

  • simplifiedHeadingToNoteLink setting now correctly controls link simplification (previously had no effect in some configurations)

♻️ Changed

  • Extracted copyMetadata.ts and pasteResolution.ts as pure-function modules with full test coverage
  • Added 98 new tests (total: 184)
中文说明(点击展开)

✨ 新增

  • 粘贴时解析链接路径:启用「粘贴时解析链接路径」后,Easy Copy 会在粘贴时根据目标文件位置重新生成链接路径。
    • 使用「跟随 Obsidian 设置」时,沿用软件设置中的路径风格(最短/相对/绝对)
    • 使用明确的 Wiki/Markdown 格式时,仅使用最短唯一路径
    • 同一文件内粘贴标题自动简化(如 [[#Setup]] 而非 [[MyProject#Setup]]

🐛 修复

  • simplifiedHeadingToNoteLink 设置现在正确控制链接简化逻辑(之前在某些配置下无效)

♻️ 变更

  • 提取 copyMetadata.tspasteResolution.ts 为纯函数模块,完整测试覆盖
  • 新增 98 个测试(总计 184 个)

Don't miss a new easy-copy release

NewReleases is sending notifications on new releases.