Repository navigation
Releases: SPACESODA/obsidian-vault-code
Release list
2.0.8
What's Changed in 2.0.8
🛡️ Code Quality & Obsidian Submission Compliance
- Zero Direct Filesystem Access: Completely eliminated Node fs usage across the codebase. Enclosing repository discovery now runs natively via git rev-parse --show-toplevel, and untracked file reads strictly use Obsidian's official vault.adapter.read(...) API.
- Strict Type Safety: Replaced dynamic module loading types with explicit, strongly-typed TypeScript interfaces (NodeChildProcess, ExecFileFn, ExecFileError, ExecFileResult) with zero any types, resolving all @typescript-eslint/no-unsafe-* and redundant type constituent warnings.
- Scanner Parity: Upgraded ESLint configuration to eslint-plugin-obsidianmd's recommendedWithLocalesEn with projectService, bringing local linting into 100% parity with Obsidian's Community Plugin Review scanner bot (0 errors, 0 warnings).
- DOM/Browser Globals: Replaced non-browser global Buffer references in Git service callbacks with standard Uint8Array.
🎨 UI & Search Bar Symmetries
- Visual Symmetries: Preserved the (Aa) case-matching indicator alongside whole-word (\b) and regex (.*) controls for consistent, intuitive visual alignment.
- Sentence-Case Refinements: Polished English locale UI strings and configured symbol exceptions in alignment with Obsidian's official interface guidelines.
Full Changelog: 2.0.7...2.0.8
2.0.7
What's Changed in 2.0.7
✨ Git Diff & Coordinate Alignment
- Pixel-Perfect Gutter Alignment: Aligned collapsed unchanged lines with the standard editor line height, eliminating vertical drift and gutter offset between change markers and text lines.
- Translucent Diff Overlays: Refined word-level changed and deleted text highlights to a subtle 25% opacity in both dark and light themes, ensuring clear readability without heavy opaque blocks.
- Removed Bottom Underline: Replaced CodeMirror's default 2px bottom gradient underline with clean, flush rounded text highlights.
🌐 Localization & String Refinements
- 100% Locale Key Symmetry: Cleaned up unused translation keys across all 10 locales, achieving complete 154-key symmetry.
- Intuitive Descriptions: Clarified English and Traditional Chinese settings descriptions for opening unsupported files with default system applications.
📱 UI & Platform Refinements
- Desktop Guard for Git: Guarded Git status bar widgets, modified files lists, and diff views strictly to desktop environments (Platform.isDesktop) for optimal mobile/tablet performance.
- Settings Polish: Removed pseudo-element borders above settings headings, suppressed heading focus outlines, and improved spacing above the Reset all section.
- Documentation: Updated README and package metadata with generalized language support descriptions and eliminated all legacy em-dash characters across the repository.
Full Changelog: 2.0.6...2.0.7
2.0.6
What's Changed in 2.0.6
🛡️ Obsidian Submission & Security Compliance
• Stripped legacy Internet Explorer runtime script creation and new Function polyfill branches from bundled dependencies during build.
• Verified zero occurrences of createElement('script'), new Function, or eval in the production bundle.
🎨 CSS & Performance Optimizations
• Replaced all :has selectors with direct .hidden-files-modal-container class scoping to prevent broad DOM selector invalidation and performance warnings.
• Fixed @media query syntax into standard standalone CSS blocks.
• Cleaned up duplicate max-height declarations, standardizing on modern 100dvh units.
📖 Documentation & Feature Overview
• Refreshed README with a concise "Features at a Glance" summary and updated project introduction.
Full Changelog: 2.0.5...2.0.6
2.0.5
What's Changed in 2.0.5
🌐 Visual Preview & MJML Email Rendering
• MJML Email Templates: Added live visual preview for .mjml responsive email templates (Cmd / Ctrl + E) powered by MJML 5.4.1.
• CSP-Compliant Stylesheet Inlining: Prefetches and inlines external CDN stylesheets (<link rel="stylesheet">) via Obsidian's requestUrl API, rendering remote styles flawlessly with 0 CSP violations and eliminating Electron webRequest main process crashes.
• Protocol-Relative & Local Assets: Seamlessly resolves protocol-relative (//) URLs, font resources, and vault assets in preview frames.
• Bounded Stylesheet Cache: Cached external stylesheets with automatic LRU eviction (max 100 entries) and complete memory cleanup on plugin unload.
📱 Mobile & Tablet Ergonomics
• Keyboard-Aware Modal Placement: Positioned modals near the top of the viewport with safe-area insets and 100dvh bounds on mobile devices, ensuring virtual keyboards never obstruct inputs or action buttons.
• Compact Search & Replace: Refined mobile search/replace rows with icon-only action buttons and compact fields to prevent awkward line wrapping.
• Adaptive Touch Controls: Optimized header buttons (28×28px) with background auto-save via visibilitychange when Obsidian is minimized on iOS and Android.
🛡️ Ignore Rules & Zero-Compute Indexing
• Advanced Ignore Matching: Enhanced .obsidianignore and .gitignore parser to support directory-only paths (/), character classes ([a-z]), recursive subtree filtering, and case-sensitive rule matching.
• Zero-Compute Indexing: Ignored files and folders are excluded at the adapter level, preventing Obsidian from indexing them and conserving device CPU and battery.
• Quick Setup in Settings: Added 1-click button to generate or copy default .obsidianignore templates with instant visual feedback.
✨ UI, i18n & Editor Polish
• Markdown View Restoration: Switching back to a markdown note from a code editor tab in the same leaf cleanly restores the native Obsidian markdown view.
• Tooltip Overlap Fix: Removed redundant title attributes across all interactive buttons, eliminating duplicate overlapping native tooltips.
• 100% Locale Parity: Complete translation coverage across all 10 supported languages (English, Traditional Chinese, Simplified Chinese, Japanese, Korean, Spanish, French, Italian, German, Russian) across all 125 UI strings.
Full Changelog: 2.0.4...2.0.5
2.0.4
What's Changed in 2.0.4
🔍 Find & Replace Improvements
- Multiline Find & Replace: Search and replace inputs now support multiline queries with auto-expanding textareas matching VS Code behavior.
- Line Break on Shift+Enter: Pressing
Shift + Enter,Ctrl + Enter, orCmd + Enterinserts a newline (\n) directly at the cursor in both Find and Replace fields. - Accidental Replace Protection: Restricted Replace All to manual button click only to prevent accidental vault-wide replacements from shortcut keys.
🎨 Editor & Contrast Polish
- Selection & Search Highlight Fix: Replaced opaque CodeMirror selection layer with native translucent
var(--text-selection)andvar(--text-highlight-bg), eliminating washed-out or invisible text when selecting code in dark theme. - Syntax Highlighting Preservation: Search match highlights use translucent overlays with accent outlines, preserving full underlying syntax colors (keywords, strings, punctuation).
- Default Line Wrapping: Enabled line wrapping by default for improved readability on long code lines.
📄 Licensing
- Updated project license to GNU Affero General Public License v3.0 (AGPL-3.0-or-later).
Full Changelog: 2.0.3...2.0.4
2.0.3
Modern Code Editor & Full Obsidian Compliance
✨ Features & Improvements
- Modern Code Editor: CodeMirror 6 syntax highlighting and autocomplete for over 70 programming languages.
- Hidden & Dotfile Management: Full vault indexing and editing capabilities for hidden files and developer configs.
- Multi-Window Support: Full popout window compatibility across all editor views and modals.
- Obsidian Native Integration: Seamless styling matching Obsidian light and dark themes with zero CSS conflicts.
- Localization: Native language detection supporting English, Chinese (Simplified & Traditional), Japanese, Korean, German, French, Spanish, Italian, and Russian.
- Cryptographic Provenance: Build assets cryptographically attested via GitHub Artifact Attestations.
2.0.2
What's Changed in 2.0.2
- Resolved all Obsidian automated compliance and linter checks
- Replaced createElement with Obsidian createEl helpers
- Added window scoping for timer and interval methods
- Upgraded dependencies and fixed directive comments
2.0.1
What's Changed in 2.0.1
- Compact 'Go to Line' corner widget
- Open external links in system default browser
- Runaway auto-scroll watchdog fix
- Seamlessly reload and preserve open code editor tabs on plugin updates