Skip to content

audit: competitive analysis vs ctags, ripgrep, LSP servers #205

Description

@Wolfvin

Context

CodeLens posisinya saat ini bersaing di layer yang sama dengan: ctags, LSP servers (gopls, typescript-language-server, pylsp, dll.), dan ripgrep. Bukan GraphRAG atau LLM-based tools.

Sebelum implementasi peningkatan apapun, kita butuh audit kompetitif yang jujur: di mana CodeLens menang, di mana kalah, dan gap apa yang paling worth di-fix.

Tugas Worker

Ini adalah audit murni — tidak ada perubahan kode. Output berupa comment di issue ini.

Persiapan

Clone CodeLens. Siapkan juga tool pembanding yang bisa di-install:

  • ctagsapt install universal-ctags atau brew install universal-ctags
  • ripgrepapt install ripgrep atau brew install ripgrep
  • LSP: pilih SATU yang paling mudah di-install di environment kamu (misal typescript-language-server via npm, atau pylsp via pip)

Gunakan codebase test yang sama untuk semua: clone https://github.com/Wolfvin/Coretax-Auto-Downloader sparse (fought/extension_source/ts) — TypeScript, ~100 file, ukuran representatif.

Jika tidak bisa install salah satu tool, skip dan tulis "tidak bisa ditest di environment ini" di kolom tersebut.

Dimensi yang Harus Dibandingkan

Jalankan query yang persis sama di ketiga tool dan CodeLens, catat output:

1. Symbol lookup — "find function named signInWithGoogle"

  • ctags: ctags -R . && grep signInWithGoogle tags
  • ripgrep: rg "signInWithGoogle" --type ts -n
  • LSP: workspace/symbol request via typescript-language-server (atau equivalent)
  • CodeLens: codelens search <ws> "signInWithGoogle" --mode symbol --format compact

Catat: waktu eksekusi, jumlah hasil, apakah hasil benar (file + line), false positives.

2. Semantic search — "find code related to google authentication session"

  • ctags: tidak bisa (skip)
  • ripgrep: rg "google.*auth|auth.*google|session.*token" --type ts -n -i
  • LSP: tidak dirancang untuk ini (skip)
  • CodeLens: codelens search <ws> "google authentication session" --format compact

Catat: relevansi hasil top-5, false positives, false negatives yang obvious.

3. Find all callers of a function — "who calls signInWithGoogle?"

  • ctags: tidak bisa langsung (skip atau grep -r "signInWithGoogle(" .)
  • ripgrep: rg "signInWithGoogle\(" --type ts -n
  • LSP: textDocument/references request
  • CodeLens: codelens deps <ws> --check dependents (filter untuk file yang import google-auth.ts)

Catat: completeness (apakah semua caller ditemukan?), false positives.

4. Find circular dependencies

  • ctags: tidak bisa (skip)
  • ripgrep: tidak bisa (skip)
  • LSP: tidak dirancang untuk ini (skip)
  • CodeLens: codelens deps <ws> --check circular --format compact

Catat: apakah circular deps ditemukan? Berapa?

5. Find dead/unused exports

  • ctags: tidak bisa (skip)
  • ripgrep: bisa partial — list semua export lalu manual cross-check (skip kalau terlalu manual)
  • LSP: bisa via diagnostics (typescript-language-server report unused exports)
  • CodeLens: codelens audit <ws> --check dead-code --format compact

Catat: jumlah findings, sample 3 findings, apakah findings valid?

6. Index build time (cold start)

  • ctags: time ctags -R .
  • ripgrep: tidak perlu index (skip)
  • LSP: time untuk sampai siap (initialization)
  • CodeLens: time codelens scan <ws>

Catat: detik untuk index selesai.

7. Query latency (setelah index ada)

Format Output

Post sebagai comment di issue ini dengan tabel Markdown:

## Hasil Audit Kompetitif — [nama worker] — [tanggal]

### Environment
- OS: ...
- Tools yang bisa ditest: ctags vX.X, ripgrep X.X, LSP: ..., CodeLens vX.X

### Tabel Perbandingan

| Dimensi | ctags | ripgrep | LSP | CodeLens | Pemenang |
|---|---|---|---|---|---|
| Symbol lookup (akurasi) | | | | | |
| Symbol lookup (latency) | | | | | |
| Semantic search | N/A | | N/A | | |
| Find callers | N/A | partial | | | |
| Circular deps | N/A | N/A | N/A | | CodeLens (satu-satunya) |
| Dead exports | N/A | N/A | | | |
| Cold start time | | N/A | | | |

### Gap Terbesar CodeLens vs Kompetitor

List max 5 gap yang paling impactful berdasarkan hasil test, bukan opini:
1. ...
2. ...

### Rekomendasi Fix Prioritas

List max 3 perbaikan konkret yang akan membuat CodeLens menang di gap tersebut:
1. ...
2. ...
3. ...

Constraint

  • Tidak ada perubahan kode — ini audit murni
  • Semua klaim harus berdasarkan output nyata yang dijalankan, bukan opini atau dokumentasi tool
  • Kalau tool tidak bisa diinstall: tulis "skip — tidak tersedia" dan lanjut
  • Jangan buat PR — cukup comment di issue ini

Definition of Done

Minimal 1 comment di issue ini dengan tabel perbandingan lengkap berdasarkan eksekusi nyata.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions