Context
CodeLens saat ini mendukung 7 bahasa via tree-sitter: Python, Rust, JavaScript, TypeScript, TSX, CSS, HTML.
Language support didefinisikan di dua tempat:
scripts/languages/node_types.yaml — registry node type per bahasa (kategori: function, class, import, dll.)
scripts/base_parser.py — base tree-sitter parser yang membaca YAML
requirements.txt — tree-sitter grammar packages
Tujuan
Tambah support untuk 5 bahasa prioritas:
| Bahasa |
Package pip |
Ekstensi file |
| Go |
tree-sitter-go |
.go |
| Java |
tree-sitter-java |
.java |
| PHP |
tree-sitter-php |
.php |
| Ruby |
tree-sitter-ruby |
.rb |
| C/C++ |
tree-sitter-c, tree-sitter-cpp |
.c, .cpp, .cc, .h, .hpp |
Constraint
- Jangan ubah arsitektur yang sudah ada. Ikuti pattern yang sudah ada di node_types.yaml untuk 7 bahasa existing.
- Setiap bahasa baru harus punya entry di node_types.yaml dengan kategori minimal: function, class, import, call
- Tambah grammar packages ke requirements.txt
- Jangan ubah file di luar scripts/languages/ dan requirements.txt kecuali memang diperlukan untuk wiring
- Baca CONTEXT.md untuk memahami arsitektur CodeLens sebelum mulai
Source of Truth
- Pattern node types yang benar: baca
scripts/languages/node_types.yaml yang sudah ada
- Cara parser bekerja: baca
scripts/languages/loader.py dan scripts/base_parser.py
- Node type names per bahasa: cek dokumentasi tree-sitter grammar masing-masing (tersedia di PyPI / GitHub tree-sitter-languages)
Definition of Done
scripts/languages/node_types.yaml punya entry untuk Go, Java, PHP, Ruby, C, C++
- Setiap entry punya minimal 4 kategori: function, class, import, call
- Package grammar ditambah ke
requirements.txt
codelens scan <workspace> tidak crash saat dijalankan di codebase yang mengandung file bahasa baru
codelens search <workspace> "query" return hasil dari file bahasa baru (bukan 0 results karena file diskip)
Checklist Laporan Worker
Context
CodeLens saat ini mendukung 7 bahasa via tree-sitter: Python, Rust, JavaScript, TypeScript, TSX, CSS, HTML.
Language support didefinisikan di dua tempat:
scripts/languages/node_types.yaml— registry node type per bahasa (kategori: function, class, import, dll.)scripts/base_parser.py— base tree-sitter parser yang membaca YAMLrequirements.txt— tree-sitter grammar packagesTujuan
Tambah support untuk 5 bahasa prioritas:
Constraint
Source of Truth
scripts/languages/node_types.yamlyang sudah adascripts/languages/loader.pydanscripts/base_parser.pyDefinition of Done
scripts/languages/node_types.yamlpunya entry untuk Go, Java, PHP, Ruby, C, C++requirements.txtcodelens scan <workspace>tidak crash saat dijalankan di codebase yang mengandung file bahasa barucodelens search <workspace> "query"return hasil dari file bahasa baru (bukan 0 results karena file diskip)Checklist Laporan Worker