What are the constraints on go-swagger?  Can one simply indent
everything to get a code block?

Ian

On Wed, Aug 17, 2022 at 6:49 PM Kurtis Rader <kra...@skepticism.us> wrote:
>
> As K. Alex Mills noted gofmt was intentionally enhanced which you can see in 
> the release notes: https://go.dev/blog/go1.19. Specifically, the new support 
> for lists is what's causing you heartburn. See https://go.dev/doc/comment for 
> details. Note this text in that document:
>
>> Analysis in 2022 found that only 3% of doc comments in public Go modules 
>> were reformatted at all by the draft Go 1.19 gofmt. Limiting ourselves to 
>> those comments, about 87% of gofmt’s reformattings preserved the structure 
>> that a person would infer from reading the comment; about 6% were tripped up 
>> by these kinds of unindented lists, unindented multiline shell commands, and 
>> unindented brace-delimited code blocks.
>
>
>  It seems to me the go-swagger project will need to adapt to the new rules 
> for how Go doc comments are handled by gofmt.
>
> On Wed, Aug 17, 2022 at 5:36 PM crod...@gmail.com <crodr...@gmail.com> wrote:
>>
>> Hi,
>>
>> I have a codebase which uses go-swagger to parse comments in Go files
>> and generate swagger documentation.
>>
>> I recently upgraded to Go 1.19, and found that gofmt’s behavior formats
>> comments in a way which breaks go-swagger.
>>
>> For example this code:
>>
>> package somepackage
>>
>> import (
>>     "encoding/json"
>>     "fmt"
>>     "io"
>>     "net/http"
>>     "strconv"
>>     "time"
>>
>> )
>>
>> // SomeFunc do something
>> //
>> // swagger:operation POST /api/v1/somefunc someFunc
>> //
>> // Do something
>> //
>> // ---
>> // x-codeSamples:
>> // - lang: 'curl'
>> //   source: |
>> //       curl -u "${LOGIN}:${PASSWORD}" -d '{"key": "value"}' -X POST   
>> "https://{host}/api/v1/somefunc";
>> //       curl -u "${LOGIN}:${PASSWORD}" -d '{"key2": "value2"}' -X POST   
>> "https://{host}/api/v1/somefunc";
>> // responses:
>> //  '200':
>> //    description: "Some func"
>> //    examples:
>> //      application/json:
>> //          key: "value"
>> //  '400':
>> //    $ref: "#/responses/ErrorResponse"
>> //  '503':
>> //    $ref: "#/responses/ErrorResponse"
>> func SomeFunct(rw http.ResponseWriter, req *http.Request) {
>>     /// do something
>> }
>>
>> Gets reformatted as:
>>
>> package somepackage
>>
>> import (
>>     "encoding/json"
>>     "fmt"
>>     "io"
>>     "net/http"
>>     "strconv"
>>     "time"
>> )
>>
>> // SomeFunc do something
>> //
>> // swagger:operation POST /api/v1/somefunc someFunc
>> //
>> // # Do something
>> //
>> // ---
>> // x-codeSamples:
>> //   - lang: 'curl'
>> //     source: |
>> //     curl -u "${LOGIN}:${PASSWORD}" -d '{"key": "value"}' -X POST   
>> "https://{host}/api/v1/somefunc";
>> //     curl -u "${LOGIN}:${PASSWORD}" -d '{"key2": "value2"}' -X POST   
>> "https://{host}/api/v1/somefunc";
>> //
>> // responses:
>> //
>> //    '200':
>> //      description: "Some func"
>> //      examples:
>> //        application/json:
>> //            key: "value"
>> //    '400':
>> //      $ref: "#/responses/ErrorResponse"
>> //    '503':
>> //      $ref: "#/responses/ErrorResponse"
>> func SomeFunct(rw http.ResponseWriter, req *http.Request) {
>>     /// do something
>> }
>>
>> Specifically the lines under source: |
>> get re-indented in such a way
>> that the YAML is invalid, and go-swagger fails to process this file.
>>
>> This issue has been raised in the go-swagger community:
>> https://github.com/go-swagger/go-swagger/issues/2759
>>
>> but I don’t think this can be worked around in go-swagger, since
>> go-swagger parses the .go files after they have been formatted by gofmt and 
>> written to disk.
>>
>> Can anyone suggest a possible workaround, or a bugfix to gofmt?
>> Thanks.
>>
>> —
>> Craig
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/d6abf372-4cb1-4070-8a62-d4c6c6ba6bcen%40googlegroups.com.
>
>
>
> --
> Kurtis Rader
> Caretaker of the exceptional canines Junior and Hank
>
> --
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/CABx2%3DD9-2%2B6bgb0wjV7V9fJXaCf7KdRssih832Vc5SaCaspxzw%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAOyqgcXc%3D8zZB0pYdZp34vkp7E18_wRnq1a6uYKXBRAZccUrKw%40mail.gmail.com.

Reply via email to