Module: Jsonc

Defined in:
lib/jsonc/merge.rb,
lib/jsonc/merge/emitter.rb,
lib/jsonc/merge/version.rb,
lib/jsonc/merge/freeze_node.rb,
lib/jsonc/merge/debug_logger.rb,
lib/jsonc/merge/merge_result.rb,
lib/jsonc/merge/node_wrapper.rb,
lib/jsonc/merge/smart_merger.rb,
lib/jsonc/merge/file_analysis.rb,
lib/jsonc/merge/comment_tracker.rb,
lib/jsonc/merge/conflict_resolver.rb

Overview

Jsonc::Merge provides a generic JSONC file smart merge system using tree-sitter AST analysis.
It intelligently merges template and destination JSON/JSONC files by identifying matching
keys and resolving differences using structural signatures.

JSONC (JSON with Comments) support allows merging configuration files that include
comments (like devcontainer.json, tsconfig.json, VS Code settings, etc.).

Examples:

Basic usage

template = File.read("template.json")
destination = File.read("destination.json")
merger = Jsonc::Merge::SmartMerger.new(template, destination)
result = merger.merge

With debug information

merger = Jsonc::Merge::SmartMerger.new(template, destination)
debug_result = merger.merge_with_debug
puts debug_result[:content]
puts debug_result[:statistics]

Defined Under Namespace

Modules: Merge