Add support for single-line comment format (///) for documentation blocks #3
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
gpuoti/ex-doc-include!3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "copilot/support-multi-line-comments"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Plan to add support for multi-line single-line comments (///) in addition to block comments (/*! ... */):
Latest Changes:
Extracted helper functions to reduce code duplication and improve maintainability:
_remove_single_line_prefix(s)- Removes///prefix and one optional space_remove_single_line_prefix_and_whitespace(s)- Removes///prefix and all leading whitespace_extract_role_from_tag(after_tag)- Extracts role from tag line (e.g.,[.api-ref])Added comprehensive test for no-space-after-slashes case:
single_line_no_spaceto verify behavior when no space follows///All 10 tests pass. Code is now more maintainable with clear separation of concerns and no duplication.
Original prompt
Fixes gpuoti/ex-doc-include#1
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.
@copilot, non ci sono test che coprono il comportamento richiesto sulle righe vuote da interpretare come parte del blocco di commenti singola riga. Aggiungili.
@copilot, aggiorna in base ai miei commenti.
Inoltre supporta la presenza di righe vuote in mezzo a blocchi di commenti singola riga. Per esempio:
Ho aggiunto un nuovo test fixture
single_line_with_blank_linesche copre il comportamento delle righe vuote nei blocchi di commenti singola riga. (commit: {commit_hash})...
Ho aggiornato il codice per supportare righe vuote (senza
///) in mezzo ai blocchi di commenti singola riga. La funzione_single_line_continues?ora accetta anche righe completamente vuote. Test aggiunto e tutti i test passano. (commit: {commit_hash})@copilot evita di usare numeri magici anche se sono effettivamente costanti note.
Ho definito le costanti
SINGLE_LINE_PREFIXeEX_DOC_TAGe uso.lengthper ottenere le loro lunghezze invece di usare numeri magici. (commit:dcf460b→ nuovo commit)@copilot, aggiorna tenendo conto dei miei commenti.
Ho refactorizzato il codice estraendo funzioni dedicate per ogni tipo di blocco. Il metodo
process_lineè ora molto più chiaro e la logica per///e/*! */è ben separata. (commit: {commit_hash})@copilot controlla di mantenere correttamente l'indentazione quando nel blocco documentale a singola linea è presente un blocco asciidoc indentato. per esempio una citazione o un elenco di punti innestato
Ho verificato che l'indentazione è correttamente preservata nei blocchi documentali a singola linea. Ho aggiunto un test completo (
single_line_nested_content) che verifica liste innestate (con 2 spazi), blocchi di codice (con 4 spazi), e citazioni. L'implementazione attuale mantiene correttamente tutta l'indentazione necessaria per il rendering AsciiDoc. (commit: {commit_hash})@ -14,59 +17,165 @@ class DocBlocksExtractorend@copilot, mi pare che questo commento indichi un buon candidato per estrarre una funzione.
@copilot, ancora function extraction
@ -0,0 +1,33 @@#ifndef ALGO_H@copilot, controlla cosa succede quando non ci sono spazi dopo il triplo slash. Specialmente in caso di blocchi asciidoc annidati
@copilot prendi i. carico i miei commenti su function extraction e duplicazione codice.
@ -0,0 +1,33 @@#ifndef ALGO_HHo verificato che il codice gestisce correttamente i casi senza spazi dopo
///. Ho aggiunto un test completo (single_line_no_space) che verifica liste innestate senza spazi dopo i tripli slash. Tutto funziona correttamente. (commit: {commit_hash})@ -14,59 +17,165 @@ class DocBlocksExtractorendHo estratto la funzione
_remove_single_line_prefix_and_whitespaceper eliminare la duplicazione del codice che rimuove///e gli spazi. Ho anche estratto_extract_role_from_tagper la logica di estrazione del ruolo. (commit: {commit_hash})Ho completato l'estrazione delle funzioni e risolto la duplicazione del codice come richiesto nei commenti. (commit: {commit_hash})
@ -14,59 +17,165 @@ class DocBlocksExtractorendHo estratto la funzione
_remove_single_line_prefixche rimuove il prefisso///e uno spazio opzionale. (commit: {commit_hash})Works ok and reads good as per my limited knowledge of ruby. A tentative use in
stlextdocumentation works as expected.Pull request closed