Skip to content

[Refactor]: git-files-sync - Improve code quality and structure #23

Description

@ClaudiaFang

Target Feature / Component

https://community.obsidian.md/plugins/git-file-sync

Current Behavior

Plugin 功能正常,lint/test 全數通過,但程式碼結構有幾個明顯的品質瓶頸。

Desired Improvement

根據原始碼分析與 Obsidian plugin scanner 回報,以下為具體改善項目:

Tasks

Plugin Scanner Warnings

  • styles.css 移除 4 處 !important(改用 specificity / source order)
  • styles.css:567 CSS shorthand:0 0 8px 0 → 0 0 8px
  • SyncStatusView.ts 改用 activeWindow.setTimeout() 取代 setTimeout()
  • releaserc.json 移除 release 中的額外 .zip 檔案

Code Quality Refactor

  • 提取 diff 演算法至 src/utils/diff.ts(含 17 個單元測試)
  • 提取 render 子元件:ActionBar、FileListItem、DiffPanel(SyncStatusView.ts 853 → 523 行)
  • 建立統一 Logger src/utils/logger.ts,取代 9 處散落的 console.*
  • 新增 src/ui/types.ts 共用型別(FileStatus、FilterValue)
  • 增加 SyncStatusView UI 互動測試覆蓋率

Impact

Medium — noticeable UX improvement

開發評估

任務 難度 預估時間
Scanner warnings 修正 低 ✅
拆分 diff 演算法 低 ✅
拆分 render 子元件 中 ✅
統一 Logger 低 ✅
diff.ts 單元測試 低 ✅
UI 互動測試 中 ~2h

Commit

31ac918 refactor: code quality enhancements for issue #23

Additional Context

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or requestreleased

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions