Comando Parse
Il comando codeknit parse estrae informazioni strutturali dalla tua codebase — come funzioni, classi, metodi, variabili e le loro relazioni — e le emette in formato compatto .skt per impostazione predefinita. Usa JSON quando hai bisogno di output leggibile da macchine per script, integrazioni o strumenti downstream.
Utilizzo di base
Sezione intitolata “Utilizzo di base”codeknit parse <input-path> [output-dir]<input-path>: Percorso della directory o del file che si desidera analizzare.[output-dir]: Directory di output opzionale. Se non specificata, il valore predefinito è./skeleton.
# Analizza un progetto, output nella directory predefinita ./skeletoncodeknit parse ./src
# Analizza e scrive in una directory di output personalizzatacodeknit parse ./src ./output
# Analizza un singolo file e invia l'output a stdoutcodeknit parse ./src/main.go --output-mode inline
# Emette JSON leggibile da macchine su stdoutcodeknit parse ./src --output-mode inline --format jsonModalità di output
Sezione intitolata “Modalità di output”Usa --output-mode per controllare come viene strutturato l’output. Sono disponibili tre modalità:
| Modalità | Descrizione | Ideale per |
|---|---|---|
directory-flat |
Scrive file .skt suddivisi (es. map_001.skt, map_002.skt) nella directory di output. |
✅ La maggior parte dei progetti — modalità predefinita e consigliata |
directory-tree |
Rispecchia la struttura della directory sorgente, creando un file .skt per ogni file sorgente. |
Navigare l’output insieme al codice sorgente |
inline |
Invia tutto l’output a stdout. | Singoli file o piping verso altri strumenti |
Suggerimento: Usa
directory-flatcome predefinito a meno che tu non stia lavorando con un singolo file. Evitainlineper input di grandi dimensioni poiché può sovraccaricare le finestre di contesto.
| Flag | Predefinito | Descrizione |
|---|---|---|
--output-mode |
directory-flat |
Modalità di output: inline, directory-flat o directory-tree |
--format |
skt |
Formato di output: skt o json |
--max-lines |
500 |
Numero massimo di righe per file di output in modalità flat/tree |
--collect-test |
false |
Includi i file di test nell’analisi |
--minify |
false |
Abilita la compressione basata su dizionario per ridurre l’uso di token |
--edges |
false |
Includi la sezione [edges] con i dati delle relazioni (chiamate, contiene, ecc.) |
--clean |
false |
Rimuovi i file .skt esistenti nella directory di output prima della scrittura |
--workers |
NumCPU |
Numero massimo di goroutine di parsing concorrenti (0 = usa tutti i core CPU) |
--verbose |
false |
Stampa informazioni di avanzamento e temporizzazione durante l’elaborazione |
Pattern comuni
Sezione intitolata “Pattern comuni”# Prima esecuzione su un progettocodeknit parse ./src# Riesegui e pulisci l'output precedentecodeknit parse ./src --clean# Analizza un singolo file su stdoutcodeknit parse ./src/main.go --output-mode inline# Minimizza l'output per codebase di grandi dimensionicodeknit parse ./src --minify# Includi gli archi delle relazioni (es. per l'analisi delle dipendenze)codeknit parse ./src --edges# Emetti JSON per un altro strumentocodeknit parse ./src --output-mode inline --format json --edgesEsempio di output JSON:
{ "files": ["app.go"], "symbols": [ { "id": "app.go::User", "short_id": "S1", "name": "User", "file": "app.go", "category": "type", "kind": "struct", "signature": "type User struct", "span": [3, 3] }, { "id": "app.go::Save", "short_id": "S2", "name": "Save", "file": "app.go", "category": "callable", "kind": "function", "signature": "Save(u: S1)", "span": [5, 5] } ], "edges": [ { "from": "app.go::Save", "from_short": "S2", "to": "app.go::User", "to_short": "S1", "kind": "references" } ]}# Rispecchia la struttura della directory sorgente nell'outputcodeknit parse ./src --output-mode directory-treeProtezione contro output obsoleto
Sezione intitolata “Protezione contro output obsoleto”Se la directory di output contiene già file .skt da una precedente esecuzione, codeknit rifiuterà di scrivere nuovo output per evitare di mescolare dati obsoleti e freschi.
Per sovrascrivere questo comportamento e pulire la directory di output prima della scrittura, usa il flag --clean:
codeknit parse ./src --cleanQuesto garantisce un set di output fresco e coerente.
Suggerimenti
Sezione intitolata “Suggerimenti”- ✅ Usa
directory-flatcome predefinito per la maggior parte dei progetti. Offre un buon equilibrio tra leggibilità e gestibilità. - 🔍 Usa
--minifysu codebase di grandi dimensioni per ridurre l’uso di token tramite un dizionario condiviso (dict.skt). - 🔗 La sezione
[edges]è esclusa per impostazione predefinita per risparmiare token. Usa--edgesquando hai bisogno di dati sulle relazioni comecalls,containsoinherits. - 🧾 Usa
--format jsonquando uno script o un’integrazione necessita di dati strutturati invece di.skt. - 🧹 Usa sempre
--cleanquando riesegui l’analisi sulla stessa directory di output. - 📁 Usa
directory-treese desideri correlare i file.sktdirettamente con i file sorgente nel tuo editor.