Fitur Lanjutan
Alat Text Diff menawarkan berbagai fitur lanjutan yang menjadikannya alat yang kuat untuk perbandingan teks profesional.
Algoritma Perbandingan Cerdas
Deteksi Perbedaan Sadar Konteks
Alat menggunakan algoritma canggih untuk:
- Perubahan semantik yang mengenali tidak hanya perbedaan permukaan
- Perubahan kontekstual yang mengidentifikasi modifikasi yang mempengaruhi kode sekitarnya
- Perubahan struktural dalam struktur data bersarang
Pemrosesan Baris yang Dioptimalkan
- Pemetaan baris cerdas: Menemukan kecocokan terbaik antara baris serupa
- Baris konteks: Menampilkan baris sekitarnya untuk pemahaman yang lebih baik
- Perubahan minimal: Mengidentifikasi jumlah perubahan yang paling sedikit
Opsi Perbandingan Lanjutan
Penanganan Spasi Putih
// Dengan "Abaikan Spasi Putih" diaktifkan
// Baris-baris ini dianggap identik:
const name = 'John'; // File A
const name = 'John'; // File B
Kasus penggunaan:
- Konflik pemformatan kode
- Pengaturan editor yang berbeda
- Pemformatan kode otomatis
Penanganan Huruf Besar/Kecil
// Dengan "Abaikan Huruf Besar/Kecil" diaktifkan
// Objek-objek ini dianggap identik:
{
"Name": "John", // File A
"name": "John" // File B
}
Kasus penggunaan:
- File konfigurasi
- Skema database
- Respons API
Dukungan Format File
Bahasa Pemrograman
Bahasa | Ekstensi | Penyorotan Sintaks |
---|---|---|
JavaScript | .js, .mjs | ✅ |
TypeScript | .ts, .tsx | ✅ |
Python | .py | ✅ |
Java | .java | ✅ |
C/C++ | .c, .cpp, .h | ✅ |
C# | .cs | ✅ |
Go | .go | ✅ |
Rust | .rs | ✅ |
PHP | .php | ✅ |
Teknologi Web
Format | Ekstensi | Fitur Khusus |
---|---|---|
HTML | .html, .htm | Analisis struktur tag |
CSS | .css, .scss, .sass | Perbandingan selektor |
Vue | .vue | Analisis komponen |
React | .jsx, .tsx | Sintaks JSX |
Format Data
Format | Ekstensi | Analisis Struktur |
---|---|---|
JSON | .json | Hierarki objek |
XML | .xml | Struktur elemen |
YAML | .yml, .yaml | Nesting |
TOML | .toml | Struktur konfigurasi |
Manajemen Riwayat
Fungsi Riwayat Cerdas
Kategorisasi Otomatis
Alat secara otomatis mengkategorikan perbandingan:
- Perbandingan kode: Sesi pengembangan dan debugging
- Perbandingan konfigurasi: Perubahan lingkungan dan konfigurasi
- Perbandingan dokumentasi: Perubahan konten dan struktur
Pelacakan Metadata
Setiap entri riwayat berisi:
{
"timestamp": "2024-01-15T10:30:00Z",
"fileType": "javascript",
"linesChanged": 15,
"changeType": "feature-addition",
"tags": ["frontend", "component", "bugfix"]
}
Organisasi Riwayat
Fungsi Pencarian
- Pencarian teks: Cari entri riwayat berdasarkan konten
- Filter tanggal: Filter berdasarkan periode waktu
- Filter tipe: Filter berdasarkan tipe file atau tipe perubahan
Opsi Ekspor
- Perbandingan individual: Ekspor perbandingan spesifik
- Ekspor batch: Ekspor beberapa perbandingan secara bersamaan
- Format: JSON, CSV, HTML, Markdown
Optimasi Performa
File Besar
Pemrosesan Chunk
Alat memproses file besar dalam chunk:
// Ukuran chunk otomatis berdasarkan ukuran file
const chunkSize = Math.min(1000, Math.max(100, fileSize / 100));
Lazy Loading
- Tampilan progresif: Tampilkan hasil selama pemrosesan
- Virtual scrolling: Tampilan efisien dari hasil diff besar
- Manajemen memori: Penggunaan memori yang dioptimalkan
Optimasi Browser
Web Workers
// Perhitungan diff dalam thread terpisah
const worker = new Worker('/diff-worker.js');
worker.postMessage({ fileA, fileB, options });
Strategi Cache
- Local Storage: Cache entri riwayat
- Session Storage: Penyimpanan sementara selama sesi
- IndexedDB: Penyimpanan persisten untuk volume data besar
Integrasi API
Akses Programatik
// Contoh: Pembuatan diff otomatis
const diffResult = await textDiffAPI.compare({
fileA: {
content: 'Konten asli',
name: 'original.txt',
},
fileB: {
content: 'Konten yang dimodifikasi',
name: 'modified.txt',
},
options: {
ignoreWhitespace: true,
ignoreCase: false,
},
});
Dukungan Webhook
// Notifikasi otomatis perubahan
const webhook = {
url: 'https://your-app.com/diff-notifications',
events: ['diff.created', 'diff.updated'],
secret: 'your-webhook-secret',
};
Fitur Keamanan
Privasi
Pemrosesan Lokal
- Tidak ada transfer server: Semua pemrosesan terjadi di browser
- Enkripsi: Data sensitif disimpan terenkripsi
- Pembersihan otomatis: Data sementara dihapus secara otomatis
Kontrol Akses
// Contoh: Kontrol akses berbasis pengguna
const accessControl = {
user: 'developer@company.com',
permissions: ['read', 'create', 'update'],
restrictions: {
maxFileSize: '10MB',
allowedFormats: ['.js', '.ts', '.json'],
},
};
Audit Log
{
"action": "diff.created",
"user": "user@example.com",
"timestamp": "2024-01-15T10:30:00Z",
"metadata": {
"fileSize": "2.5KB",
"changeCount": 15,
"ipAddress": "192.168.1.100"
}
}
Opsi Kustomisasi
Kustomisasi UI
Tema
- Tema Terang: Penampilan terang dan profesional
- Tema Gelap: Penampilan gelap untuk kerja malam
- Kontras Tinggi: Keterbacaan yang ditingkatkan
- Tema Kustom: Warna dan gaya yang ditentukan pengguna
Opsi Layout
const layoutOptions = {
orientation: 'horizontal', // atau "vertical"
panelSize: '50%', // Pembagian panel
showLineNumbers: true, // Tampilkan nomor baris
showStatistics: true, // Tampilkan statistik
compactMode: false, // Mode kompak
};
Konfigurasi Lanjutan
Opsi Perbandingan
const advancedOptions = {
contextLines: 3, // Jumlah baris konteks
maxChanges: 1000, // Jumlah maksimum perubahan
timeout: 30000, // Timeout dalam milidetik
algorithm: 'myers', // Algoritma diff
encoding: 'utf-8', // Encoding file
};
Integrasi dengan Alat Pengembangan
Integrasi IDE
Ekstensi VS Code
{
"name": "text-diff-tool",
"version": "1.0.0",
"engines": {
"vscode": "^1.60.0"
},
"contributes": {
"commands": [
{
"command": "textDiff.compareFiles",
"title": "Compare with Text Diff Tool"
}
]
}
}
Integrasi Git
# Git hook untuk pembuatan diff otomatis
#!/bin/sh
git diff --cached | curl -X POST \
-H "Content-Type: application/json" \
-d @- \
https://text-diff-tool.com/api/compare
Pipeline CI/CD
# Contoh GitHub Actions
name: Text Diff Check
on: [pull_request]
jobs:
diff-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Compare Files
run: |
curl -X POST \
-H "Content-Type: application/json" \
-d '{"fileA": "${{ github.event.pull_request.base.sha }}", "fileB": "${{ github.sha }}"}' \
https://text-diff-tool.com/api/compare
Fitur-fitur lanjutan ini menjadikan alat Text Diff sebagai alat yang sangat diperlukan untuk pengembang profesional dan tim.