Skip to content

Instantly share code, notes, and snippets.

@d3m1gd
Created June 10, 2024 09:32
Show Gist options
  • Save d3m1gd/1872c18f53c986edb8ef388ca285133e to your computer and use it in GitHub Desktop.
Save d3m1gd/1872c18f53c986edb8ef388ca285133e to your computer and use it in GitHub Desktop.
good helix log for issue
2024-06-10T16:19:15.321 globset [DEBUG] glob converted to regex: Glob { glob: "*/Dockerfile.*", re: "(?-u)^.*/Dockerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('D'), Literal('o'), Literal('c'), Literal('k'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:19:15.321 globset [DEBUG] glob converted to regex: Glob { glob: "*/dockerfile.*", re: "(?-u)^.*/dockerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('d'), Literal('o'), Literal('c'), Literal('k'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:19:15.321 globset [DEBUG] glob converted to regex: Glob { glob: "*/Containerfile.*", re: "(?-u)^.*/Containerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('C'), Literal('o'), Literal('n'), Literal('t'), Literal('a'), Literal('i'), Literal('n'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:19:15.321 globset [DEBUG] glob converted to regex: Glob { glob: "*/containerfile.*", re: "(?-u)^.*/containerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('c'), Literal('o'), Literal('n'), Literal('t'), Literal('a'), Literal('i'), Literal('n'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:19:15.321 globset [DEBUG] glob converted to regex: Glob { glob: "*/BUILD.*", re: "(?-u)^.*/BUILD\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('B'), Literal('U'), Literal('I'), Literal('L'), Literal('D'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:19:15.321 globset [DEBUG] glob converted to regex: Glob { glob: "*/.env.*", re: "(?-u)^.*/\\.env\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('.'), Literal('e'), Literal('n'), Literal('v'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:19:15.321 globset [DEBUG] glob converted to regex: Glob { glob: "*/.envrc.*", re: "(?-u)^.*/\\.envrc\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('.'), Literal('e'), Literal('n'), Literal('v'), Literal('r'), Literal('c'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:19:15.321 globset [DEBUG] glob converted to regex: Glob { glob: "*/Jenkinsfile.*", re: "(?-u)^.*/Jenkinsfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('J'), Literal('e'), Literal('n'), Literal('k'), Literal('i'), Literal('n'), Literal('s'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:19:15.321 globset [DEBUG] built glob set; 1 literals, 0 basenames, 0 extensions, 0 prefixes, 121 suffixes, 5 required extensions, 8 regexes
2024-06-10T16:19:15.323 helix_view::clipboard [DEBUG] Using wl-copy+wl-paste to interact with the system and selection (primary) clipboard
2024-06-10T16:19:15.330 mio::poll [TRACE] registering event source with poller: token=Token(94740803522432), interests=READABLE | WRITABLE
2024-06-10T16:19:15.330 mio::poll [TRACE] registering event source with poller: token=Token(94740805833216), interests=READABLE | WRITABLE
2024-06-10T16:19:15.330 mio::poll [TRACE] registering event source with poller: token=Token(94740803269760), interests=READABLE | WRITABLE
2024-06-10T16:19:15.330 mio::poll [TRACE] registering event source with poller: token=Token(94740805842688), interests=READABLE
2024-06-10T16:19:15.330 helix_view::editor [DEBUG] Language server not found for `source.go` golangci-lint-lsp command 'golangci-lint-langserver' not found: cannot find binary path
2024-06-10T16:19:15.330 helix_lsp::client [INFO] Using custom LSP config: {"hints":{"assignVariableTypes":true,"compositeLiteralFields":true,"constantValues":true,"functionTypeParameters":true,"parameterNames":true,"rangeVariableTypes":true}}
2024-06-10T16:19:15.330 helix_view::editor [DEBUG] editor status: Loaded 1 file.
2024-06-10T16:19:15.330 mio::poll [TRACE] registering event source with poller: token=Token(94740805853440), interests=READABLE | WRITABLE
2024-06-10T16:19:15.330 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"general":{"positionEncodings":["utf-8","utf-32","utf-16"]},"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dataSupport":true,"disabledSupport":true,"isPreferredSupport":true,"resolveSupport":{"properties":["edit","command"]}},"completion":{"completionItem":{"deprecatedSupport":true,"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{}},"hover":{"contentFormat":["markdown"]},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"tagSupport":{"valueSet":[1,2]},"versionSupport":true},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":true},"signatureHelp":{"signatureInformation":{"activeParameterSupport":true,"documentationFormat":["markdown"],"parameterInformation":{"labelOffsetSupport":true}}}},"window":{"workDoneProgress":true},"workspace":{"applyEdit":true,"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"didChangeWatchedFiles":{"dynamicRegistration":true,"relativePatternSupport":false},"executeCommand":{"dynamicRegistration":false},"fileOperations":{"didRename":true,"willRename":true},"inlayHint":{"refreshSupport":false},"symbol":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true,"failureHandling":"abort","normalizesLineEndings":false,"resourceOperations":["create","rename","delete"]},"workspaceFolders":true}},"clientInfo":{"name":"helix","version":"24.3 (2cadec0b)"},"initializationOptions":{"hints":{"assignVariableTypes":true,"compositeLiteralFields":true,"constantValues":true,"functionTypeParameters":true,"parameterNames":true,"rangeVariableTypes":true}},"processId":855756,"rootPath":"/home/z/project/wb/postman","rootUri":"file:///home/z/project/wb/postman","workspaceFolders":[{"name":"postman","uri":"file:///home/z/project/wb/postman"}]},"id":0}
2024-06-10T16:19:15.330 mio::poll [TRACE] registering event source with poller: token=Token(94740805939200), interests=READABLE | WRITABLE
2024-06-10T16:19:15.330 mio::poll [TRACE] registering event source with poller: token=Token(0), interests=READABLE
2024-06-10T16:19:15.330 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE
2024-06-10T16:19:15.331 helix_tui::backend::crossterm [DEBUG] The keyboard enhancement protocol is supported in this terminal (checked in 217.512µs)
2024-06-10T16:19:15.331 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:15.353 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":{"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":["."]},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor.extract","refactor.inline","refactor.rewrite","source.fixAll","source.organizeImports"]},"codeLensProvider":{},"documentLinkProvider":{},"workspaceSymbolProvider":true,"documentFormattingProvider":true,"renameProvider":{"prepareProvider":true},"foldingRangeProvider":true,"selectionRangeProvider":true,"executeCommandProvider":{"commands":["gopls.add_dependency","gopls.add_import","gopls.add_telemetry_counters","gopls.apply_fix","gopls.change_signature","gopls.check_upgrades","gopls.edit_go_directive","gopls.fetch_vulncheck_result","gopls.gc_details","gopls.generate","gopls.go_get_package","gopls.list_imports","gopls.list_known_packages","gopls.maybe_prompt_for_telemetry","gopls.mem_stats","gopls.regenerate_cgo","gopls.remove_dependency","gopls.reset_go_mod_diagnostics","gopls.run_go_work_command","gopls.run_govulncheck","gopls.run_tests","gopls.start_debugging","gopls.start_profile","gopls.stop_profile","gopls.test","gopls.tidy","gopls.toggle_gc_details","gopls.update_go_sum","gopls.upgrade_dependency","gopls.vendor","gopls.workspace_stats"]},"callHierarchyProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":[],"tokenModifiers":[]},"range":true,"full":true},"inlayHintProvider":{},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"serverInfo":{"name":"gopls","version":"{\"GoVersion\":\"go1.21.6\",\"Path\":\"golang.org/x/tools/gopls\",\"Main\":{\"Path\":\"golang.org/x/tools/gopls\",\"Version\":\"v0.14.2\",\"Sum\":\"h1:sIw6vjZiuQ9S7s0auUUkHlWgsCkKZFWDHmrge8LYsnc=\",\"Replace\":null},\"Deps\":[{\"Path\":\"github.com/BurntSushi/toml\",\"Version\":\"v1.2.1\",\"Sum\":\"h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=\",\"Replace\":null},{\"Path\":\"github.com/google/go-cmp\",\"Version\":\"v0.5.9\",\"Sum\":\"h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=\",\"Replace\":null},{\"Path\":\"github.com/sergi/go-diff\",\"Version\":\"v1.1.0\",\"Sum\":\"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=\",\"Replace\":null},{\"Path\":\"golang.org/x/exp/typeparams\",\"Version\":\"v0.0.0-20221212164502-fae10dda9338\",\"Sum\":\"h1:2O2DON6y3XMJiQRAS1UWU+54aec2uopH3x7MAiqGW6Y=\",\"Replace\":null},{\"Path\":\"golang.org/x/mod\",\"Version\":\"v0.14.0\",\"Sum\":\"h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=\",\"Replace\":null},{\"Path\":\"golang.org/x/sync\",\"Version\":\"v0.4.0\",\"Sum\":\"h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=\",\"Replace\":null},{\"Path\":\"golang.org/x/sys\",\"Version\":\"v0.14.0\",\"Sum\":\"h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=\",\"Replace\":null},{\"Path\":\"golang.org/x/telemetry\",\"Version\":\"v0.0.0-20231114163143-69313e640400\",\"Sum\":\"h1:brbkEFfGwNGAEkykUOcryE/JiHUMMJouzE0fWWmz/QU=\",\"Replace\":null},{\"Path\":\"golang.org/x/text\",\"Version\":\"v0.13.0\",\"Sum\":\"h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=\",\"Replace\":null},{\"Path\":\"golang.org/x/tools\",\"Version\":\"v0.14.1-0.20231114185516-c9d3e7de13fd\",\"Sum\":\"h1:Oku7E+OCrXHyst1dG1z10etCTxewCHXNFLRlyMPbh3w=\",\"Replace\":null},{\"Path\":\"golang.org/x/vuln\",\"Version\":\"v1.0.1\",\"Sum\":\"h1:KUas02EjQK5LTuIx1OylBQdKKZ9jeugs+HiqO5HormU=\",\"Replace\":null},{\"Path\":\"honnef.co/go/tools\",\"Version\":\"v0.4.5\",\"Sum\":\"h1:YGD4H+SuIOOqsyoLOpZDWcieM28W47/zRO7f+9V3nvo=\",\"Replace\":null},{\"Path\":\"mvdan.cc/gofumpt\",\"Version\":\"v0.4.0\",\"Sum\":\"h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM=\",\"Replace\":null},{\"Path\":\"mvdan.cc/xurls/v2\",\"Version\":\"v2.4.0\",\"Sum\":\"h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc=\",\"Replace\":null}],\"Settings\":[{\"Key\":\"-buildmode\",\"Value\":\"exe\"},{\"Key\":\"-compiler\",\"Value\":\"gc\"},{\"Key\":\"DefaultGODEBUG\",\"Value\":\"panicnil=1\"},{\"Key\":\"CGO_ENABLED\",\"Value\":\"1\"},{\"Key\":\"CGO_CFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CPPFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CXXFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_LDFLAGS\",\"Value\":\"\"},{\"Key\":\"GOARCH\",\"Value\":\"amd64\"},{\"Key\":\"GOOS\",\"Value\":\"linux\"},{\"Key\":\"GOAMD64\",\"Value\":\"v1\"}],\"Version\":\"v0.14.2\"}"}},"id":0}
2024-06-10T16:19:15.353 helix_lsp::transport [INFO] gopls <- {"capabilities":{"callHierarchyProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor.extract","refactor.inline","refactor.rewrite","source.fixAll","source.organizeImports"]},"codeLensProvider":{},"completionProvider":{"triggerCharacters":["."]},"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":true,"documentLinkProvider":{},"documentSymbolProvider":true,"executeCommandProvider":{"commands":["gopls.add_dependency","gopls.add_import","gopls.add_telemetry_counters","gopls.apply_fix","gopls.change_signature","gopls.check_upgrades","gopls.edit_go_directive","gopls.fetch_vulncheck_result","gopls.gc_details","gopls.generate","gopls.go_get_package","gopls.list_imports","gopls.list_known_packages","gopls.maybe_prompt_for_telemetry","gopls.mem_stats","gopls.regenerate_cgo","gopls.remove_dependency","gopls.reset_go_mod_diagnostics","gopls.run_go_work_command","gopls.run_govulncheck","gopls.run_tests","gopls.start_debugging","gopls.start_profile","gopls.stop_profile","gopls.test","gopls.tidy","gopls.toggle_gc_details","gopls.update_go_sum","gopls.upgrade_dependency","gopls.vendor","gopls.workspace_stats"]},"foldingRangeProvider":true,"hoverProvider":true,"implementationProvider":true,"inlayHintProvider":{},"referencesProvider":true,"renameProvider":{"prepareProvider":true},"selectionRangeProvider":true,"semanticTokensProvider":{"full":true,"legend":{"tokenModifiers":[],"tokenTypes":[]},"range":true},"signatureHelpProvider":{"triggerCharacters":["(",","]},"textDocumentSync":{"change":2,"openClose":true,"save":{}},"typeDefinitionProvider":true,"workspace":{"workspaceFolders":{"changeNotifications":"workspace/didChangeWorkspaceFolders","supported":true}},"workspaceSymbolProvider":true},"serverInfo":{"name":"gopls","version":"{\"GoVersion\":\"go1.21.6\",\"Path\":\"golang.org/x/tools/gopls\",\"Main\":{\"Path\":\"golang.org/x/tools/gopls\",\"Version\":\"v0.14.2\",\"Sum\":\"h1:sIw6vjZiuQ9S7s0auUUkHlWgsCkKZFWDHmrge8LYsnc=\",\"Replace\":null},\"Deps\":[{\"Path\":\"github.com/BurntSushi/toml\",\"Version\":\"v1.2.1\",\"Sum\":\"h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=\",\"Replace\":null},{\"Path\":\"github.com/google/go-cmp\",\"Version\":\"v0.5.9\",\"Sum\":\"h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=\",\"Replace\":null},{\"Path\":\"github.com/sergi/go-diff\",\"Version\":\"v1.1.0\",\"Sum\":\"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=\",\"Replace\":null},{\"Path\":\"golang.org/x/exp/typeparams\",\"Version\":\"v0.0.0-20221212164502-fae10dda9338\",\"Sum\":\"h1:2O2DON6y3XMJiQRAS1UWU+54aec2uopH3x7MAiqGW6Y=\",\"Replace\":null},{\"Path\":\"golang.org/x/mod\",\"Version\":\"v0.14.0\",\"Sum\":\"h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=\",\"Replace\":null},{\"Path\":\"golang.org/x/sync\",\"Version\":\"v0.4.0\",\"Sum\":\"h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=\",\"Replace\":null},{\"Path\":\"golang.org/x/sys\",\"Version\":\"v0.14.0\",\"Sum\":\"h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=\",\"Replace\":null},{\"Path\":\"golang.org/x/telemetry\",\"Version\":\"v0.0.0-20231114163143-69313e640400\",\"Sum\":\"h1:brbkEFfGwNGAEkykUOcryE/JiHUMMJouzE0fWWmz/QU=\",\"Replace\":null},{\"Path\":\"golang.org/x/text\",\"Version\":\"v0.13.0\",\"Sum\":\"h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=\",\"Replace\":null},{\"Path\":\"golang.org/x/tools\",\"Version\":\"v0.14.1-0.20231114185516-c9d3e7de13fd\",\"Sum\":\"h1:Oku7E+OCrXHyst1dG1z10etCTxewCHXNFLRlyMPbh3w=\",\"Replace\":null},{\"Path\":\"golang.org/x/vuln\",\"Version\":\"v1.0.1\",\"Sum\":\"h1:KUas02EjQK5LTuIx1OylBQdKKZ9jeugs+HiqO5HormU=\",\"Replace\":null},{\"Path\":\"honnef.co/go/tools\",\"Version\":\"v0.4.5\",\"Sum\":\"h1:YGD4H+SuIOOqsyoLOpZDWcieM28W47/zRO7f+9V3nvo=\",\"Replace\":null},{\"Path\":\"mvdan.cc/gofumpt\",\"Version\":\"v0.4.0\",\"Sum\":\"h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM=\",\"Replace\":null},{\"Path\":\"mvdan.cc/xurls/v2\",\"Version\":\"v2.4.0\",\"Sum\":\"h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc=\",\"Replace\":null}],\"Settings\":[{\"Key\":\"-buildmode\",\"Value\":\"exe\"},{\"Key\":\"-compiler\",\"Value\":\"gc\"},{\"Key\":\"DefaultGODEBUG\",\"Value\":\"panicnil=1\"},{\"Key\":\"CGO_ENABLED\",\"Value\":\"1\"},{\"Key\":\"CGO_CFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CPPFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CXXFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_LDFLAGS\",\"Value\":\"\"},{\"Key\":\"GOARCH\",\"Value\":\"amd64\"},{\"Key\":\"GOOS\",\"Value\":\"linux\"},{\"Key\":\"GOAMD64\",\"Value\":\"v1\"}],\"Version\":\"v0.14.2\"}"}}
2024-06-10T16:19:15.353 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"initialized","params":{}}
2024-06-10T16:19:15.354 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: None, method: "initialized", params: None })))
2024-06-10T16:19:15.354 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"hints":{"assignVariableTypes":true,"compositeLiteralFields":true,"constantValues":true,"functionTypeParameters":true,"parameterNames":true,"rangeVariableTypes":true}}}}
2024-06-10T16:19:15.354 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"go","text":"package main\n\nimport (\n\t\"bytes\"\n\t\"cmp\"\n\t\"os/exec\"\n\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/parser\"\n\t\"go/token\"\n\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"slices\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/davecgh/go-spew/spew\"\n\t\"github.com/getkin/kin-openapi/openapi3\"\n\t\"github.com/rbretecher/go-postman-collection\"\n\t\"golang.org/x/text/cases\"\n\t\"golang.org/x/text/language\"\n\n\t\"gopkg.in/yaml.v2\"\n\n\t_ \"gitlab.wildberries.ru/southdev/kwms/colib.git/app\"\n)\n\nfunc main() {\n\tif len(os.Args) < 2 {\n\t\tfmt.Println(\"Usage: go run main.go /path/to/colib\")\n\t\treturn\n\t}\n\n\ttag := getCurrentTag(os.Args[1])\n\n\tprintCollection(os.Args[1], \"wh-api-gateway \"+tag, \"api/whapigateway/openapi/spec.yml\")\n}\n\nfunc printCollection(rootDir, name, relativeOpenapiSpecPath string) {\n\topenapiSpecPath := filepath.Join(rootDir, relativeOpenapiSpecPath)\n\tloader := openapi3.NewLoader()\n\tloader.IsExternalRefsAllowed = true\n\tdoc, err := loader.LoadFromFile(openapiSpecPath)\n\tif err != nil {\n\t\tfmt.Printf(\"Error parsing OpenAPI spec: %v\\n\", err)\n\t\treturn\n\t}\n\n\tpaths := doc.Paths.Map()\n\torderedPathKeys := make([]string, 0, len(paths))\n\tfor p := range paths {\n\t\torderedPathKeys = append(orderedPathKeys, p)\n\t}\n\n\tsort.Strings(orderedPathKeys)\n\n\tcollection := postman.CreateCollection(name, \"Colib Specs\")\n\n\tfor _, path := range orderedPathKeys {\n\t\tpathItem := paths[path]\n\t\titems := make([]*postman.Items, 0, 16)\n\t\tvar auth *postman.Auth\n\n\t\tfor method, operation := range pathItem.Operations() {\n\t\t\tfmt.Printf(\"%s %s\\n\", method, path)\n\t\t\trequest := &postman.Request{\n\t\t\t\tDescription: operation.Summary,\n\t\t\t\tURL: &postman.URL{\n\t\t\t\t\tRaw: \"{{baseUrl}}\" + path,\n\t\t\t\t\tHost: []string{\"{{baseUrl}}\"},\n\t\t\t\t\tPath: strings.Split(strings.TrimPrefix(path, \"/\"), \"/\"),\n\t\t\t\t},\n\t\t\t\tMethod: postman.Method(strings.ToUpper(method)),\n\t\t\t}\n\n\t\t\tif false {\n\t\t\t\tspew.Dump(pathItem)\n\t\t\t}\n\n\t\t\tfor _, param := range operation.Parameters {\n\t\t\t\tswitch param.Value.In {\n\t\t\t\tcase openapi3.ParameterInPath:\n\t\t\t\t\tname := param.Value.Name\n\t\t\t\t\tcurlyName := \"{\" + name + \"}\"\n\t\t\t\t\tmustacheVar := createMustacheVariable(path, name)\n\t\t\t\t\tre := regexp.MustCompile(regexp.QuoteMeta(curlyName))\n\t\t\t\t\trequest.URL.Raw = re.ReplaceAllString(request.URL.Raw, mustacheVar)\n\t\t\t\t\tfor i, p := range request.URL.Path {\n\t\t\t\t\t\trequest.URL.Path[i] = strings.ReplaceAll(p, curlyName, mustacheVar)\n\t\t\t\t\t}\n\t\t\t\tcase openapi3.ParameterInHeader:\n\t\t\t\t\trequest.Header = append(request.Header, &postman.Header{\n\t\t\t\t\t\tKey: param.Value.Name,\n\t\t\t\t\t\tValue: fmt.Sprintf(\"%v\", param.Value.Example),\n\t\t\t\t\t\tDisabled: false,\n\t\t\t\t\t\tDescription: param.Value.Description,\n\t\t\t\t\t})\n\t\t\t\tcase openapi3.ParameterInCookie:\n\t\t\t\t\tpanic(\"TODO: parameter in cookie\")\n\t\t\t\tcase openapi3.ParameterInQuery:\n\t\t\t\t\tdescription := param.Value.Description\n\t\t\t\t\tif description != \"\" {\n\t\t\t\t\t\tdescription += \", \"\n\t\t\t\t\t}\n\t\t\t\t\tdescription += param.Value.Schema.Value.Format\n\t\t\t\t\trequest.URL.Query = append(request.URL.Query, &postman.QueryParam{\n\t\t\t\t\t\tKey: param.Value.Name,\n\t\t\t\t\t\tDisabled: !param.Value.Required,\n\t\t\t\t\t\tDescription: &description,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif operation.RequestBody != nil {\n\t\t\t\tfor contentType, mediaType := range operation.RequestBody.Value.Content {\n\t\t\t\t\trequest.Header = append(request.Header, &postman.Header{\n\t\t\t\t\t\tKey: \"Content-Type\",\n\t\t\t\t\t\tValue: contentType,\n\t\t\t\t\t})\n\n\t\t\t\t\tswitch contentType {\n\t\t\t\t\tcase \"application/json\":\n\t\t\t\t\t\ts := structForSpec(rootDir, path, openapiSpecPath, mediaType.Schema.Ref)\n\t\t\t\t\t\trequest.Body = &postman.Body{\n\t\t\t\t\t\t\tMode: \"raw\",\n\t\t\t\t\t\t\tRaw: string(s.marshal(0)),\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tpanic(\"unhandled content type: \" + contentType)\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\titem := postman.Item{\n\t\t\t\tName: operation.Summary,\n\t\t\t\tRequest: request,\n\t\t\t\tResponses: []*postman.Response{},\n\t\t\t}\n\n\t\t\titems = append(items, postman.CreateItem(item))\n\t\t}\n\n\t\tgroup := postman.CreateItemGroup(postman.ItemGroup{\n\t\t\tName: path,\n\t\t\tDescription: pathItem.Description,\n\t\t\t// Variables: []*postman.Variable{},\n\t\t\t// Events: []*postman.Event{},\n\t\t\t// ProtocolProfileBehavior: nil,\n\t\t\tItems: items,\n\t\t\tAuth: auth,\n\t\t})\n\n\t\tcollection.Items = append(collection.Items, group)\n\t}\n\n\tconst filename = \"collection.json\"\n\n\tfile, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)\n\tif err != nil {\n\t\tfmt.Printf(\"Error creating file: %v\\n\", err)\n\t\treturn\n\t}\n\tdefer file.Close()\n\n\terr = collection.Write(file, postman.V210)\n\tif err != nil {\n\t\tfmt.Printf(\"Error writing collection to %s: %v\\n\", filename, err)\n\t\treturn\n\t}\n}\n\n// createMustacheVariable creates a mustache-like variable for Postman\nfunc createMustacheVariable(path, param string) string {\n\tre := regexp.MustCompile(`[/\\-_]`)\n\tparts := re.Split(path, -1)\n\tcaser := cases.Title(language.English)\n\tvar varName string\n\tfor _, part := range parts {\n\t\tif part == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(part, \"{\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tvarName += caser.String(strings.ToLower(part))\n\t}\n\tfor _, part := range re.Split(param, -1) {\n\t\tvarName += caser.String(part)\n\t}\n\treturn fmt.Sprintf(\"{{%s}}\", varName)\n}\n\ntype OapiConfig struct {\n\tImportMapping map[string]string `yaml:\"import-mapping\"`\n}\n\nfunc near(a, b string) string {\n\treturn filepath.Join(filepath.Dir(a), b)\n}\n\nfunc structForSpec(root, urlpath, specpath, spec string) Struct {\n\toapiConfigPath := near(specpath, \"oapi-codegen.yml\")\n\n\toapiConfigData, err := os.ReadFile(oapiConfigPath)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tvar config OapiConfig\n\terr = yaml.Unmarshal(oapiConfigData, &config)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparts := strings.Split(spec, \"#\")\n\tif len(parts) != 2 {\n\t\tpanic(fmt.Errorf(\"invalid spec string format\"))\n\t}\n\tsubSpecFile, objectPath := parts[0], parts[1]\n\n\t// Lookup the import-mapping for the sub spec YAML file\n\tgoPackagePath, exists := config.ImportMapping[subSpecFile]\n\tif !exists {\n\t\tpanic(fmt.Errorf(\"no import mapping found for %s\", subSpecFile))\n\t}\n\n\tname, object := extractObjectFromYAML(near(specpath, subSpecFile), objectPath)\n\tif len(object) != 0 {\n\t\t// in such case just return yaml converted to postman body\n\t\tpanic(\"object in yaml is not empty\")\n\t}\n\n\tprintln(\"package path:\", goPackagePath)\n\n\ts := makeSource(urlpath, getPackageDir(root, goPackagePath))\n\tt := s.getStruct(name)\n\treturn s.structToNode(t)\n}\n\nfunc (src Source) handleType(fieldType ast.Expr, name string, comment string) Node {\n\tswitch t := fieldType.(type) {\n\tcase *ast.StructType:\n\t\treturn src.structToNode(t)\n\tcase *ast.ArrayType:\n\t\treturn Array{\n\t\t\tItem: src.handleType(t.Elt, name+\"ArrayItem\", comment),\n\t\t\tComment: comment,\n\t\t}\n\tcase *ast.StarExpr:\n\t\tpanic(\"unhandled optional value: pointer is not implemented yet\")\n\tcase *ast.Ident:\n\t\tvalue := \"\"\n\t\tswitch t.Name {\n\t\tcase \"string\":\n\t\t\tvalue = fmt.Sprintf(\"\\\"%s\\\"\", createMustacheVariable(src.urlpath, name))\n\t\tcase \"int\", \"int8\", \"int16\", \"int32\", \"int64\",\n\t\t\t\"uint\", \"uint8\", \"uint16\", \"uint32\", \"uint64\", \"uintptr\",\n\t\t\t\"float32\", \"float64\", \"bool\", \"complex64\", \"complex128\":\n\t\t\tvalue = fmt.Sprintf(\"%s\", createMustacheVariable(src.urlpath, name))\n\t\tdefault:\n\t\t\tif s := src.getStruct(t.Name); s != nil {\n\t\t\t\treturn src.structToNode(s)\n\t\t\t}\n\t\t\tpanic(t.Name)\n\t\t}\n\n\t\tif comment == \"\" {\n\t\t\tcomment = t.Name\n\t\t} else {\n\t\t\tcomment = t.Name + \", \" + comment\n\t\t}\n\n\t\treturn Bare{\n\t\t\tValue: []byte(value),\n\t\t\tComment: comment,\n\t\t}\n\tcase *ast.SelectorExpr:\n\t\tif t.Sel != nil {\n\t\t\t// hacky\n\t\t\tswitch t.Sel.Name {\n\t\t\tcase \"UUID\":\n\t\t\t\treturn Bare{\n\t\t\t\t\tValue: []byte(createMustacheVariable(src.urlpath, name)),\n\t\t\t\t\tComment: \"UUID \" + comment,\n\t\t\t\t}\n\t\t\tcase \"Time\":\n\t\t\t\treturn Bare{\n\t\t\t\t\tValue: []byte(createMustacheVariable(src.urlpath, name)),\n\t\t\t\t\tComment: \"Time \" + comment,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tpanic(fmt.Sprintf(\"unknown type: %T: %+v: %s // %s\", fieldType, fieldType, name, comment))\n\tcase *ast.MapType, *ast.ChanType, *ast.FuncType, *ast.InterfaceType:\n\t\tpanic(fmt.Sprintf(\"unhandler composite type: %T\", fieldType))\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown type: %T: %+v: %s // %s\", fieldType, fieldType, name, comment))\n\t}\n}\n\nfunc (src Source) structToNode(structType *ast.StructType) Struct {\n\ts := Struct{\n\t\tChildren: make(map[string]Node),\n\t}\n\n\tfor _, field := range structType.Fields.List {\n\t\tvar fieldName string\n\t\tif len(field.Names) > 0 {\n\t\t\tfieldName = field.Names[0].Name\n\t\t} else {\n\t\t\tfieldName = fmt.Sprintf(\"%v\", field.Type)\n\t\t}\n\n\t\tjsonTag := getJSONTag(field.Tag)\n\t\tif jsonTag == \"\" {\n\t\t\tjsonTag = fieldName\n\t\t}\n\n\t\tvar cs []string\n\t\tif field.Comment != nil {\n\t\t\tfor _, c := range field.Comment.List {\n\t\t\t\tcs = append(cs, strings.TrimSpace(strings.TrimPrefix(c.Text, \"//\")))\n\t\t\t}\n\t\t}\n\t\tif field.Doc != nil {\n\t\t\tfor _, c := range field.Doc.List {\n\t\t\t\tcs = append(cs, strings.TrimSpace(strings.TrimPrefix(c.Text, \"//\")))\n\t\t\t}\n\t\t}\n\t\tcomment := strings.Join(cs, \" \")\n\n\t\ts.Children[jsonTag] = src.handleType(field.Type, jsonTag, comment)\n\t}\n\n\treturn s\n}\n\nfunc getPackageDir(rootDir, pkgPath string) string {\n\t// Convert package path to a file system path\n\tparts := strings.Split(pkgPath, \"/\")\n\n\tfor len(parts) > 0 {\n\t\trelevantPath := filepath.Join(parts...)\n\t\tpkgDir := filepath.Join(rootDir, relevantPath)\n\n\t\t// Check if the directory exists\n\t\tif _, err := os.Stat(pkgDir); err == nil {\n\t\t\treturn pkgDir\n\t\t}\n\n\t\t// Remove the first component and try again\n\t\tparts = parts[1:]\n\t}\n\n\tpanic(fmt.Sprintf(\"package directory for %s not found in root directory %s\", pkgPath, rootDir))\n}\n\nfunc extractObjectFromYAML(yamlPath, objectPath string) (string, map[any]any) {\n\tyamlData, err := os.ReadFile(yamlPath)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tvar yamlContent map[any]any\n\terr = yaml.Unmarshal(yamlData, &yamlContent)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tname := \"\"\n\tobject := yamlContent\n\tfor _, part := range strings.Split(objectPath, \"/\") {\n\t\tif part == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif subObject, exists := object[part]; exists {\n\t\t\tobject = subObject.(map[any]any)\n\t\t\tname = part\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"object path %s not found in %s\", objectPath, yamlPath))\n\t\t}\n\t}\n\n\treturn name, object\n}\n\ntype Source struct {\n\turlpath string\n\tpath string\n\tfiles []*ast.File\n}\n\nfunc makeSource(urlpath, pkgDir string) Source {\n\tfset := token.NewFileSet()\n\n\tvar files []*ast.File\n\n\t// Walk the package directory and collect all Go files\n\terr := filepath.Walk(pkgDir, func(path string, info os.FileInfo, err error) error {\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !info.IsDir() && strings.HasSuffix(info.Name(), \".go\") {\n\t\t\tfile, err := parser.ParseFile(fset, path, nil, parser.ParseComments)\n\t\t\tif err != nil {\n\t\t\t\tpanic(fmt.Sprintf(\"failed to parse file %s: %v\", path, err))\n\t\t\t}\n\t\t\tfiles = append(files, file)\n\t\t}\n\t\treturn nil\n\t})\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"failed to walk package directory: %v\", err))\n\t}\n\n\treturn Source{urlpath: urlpath, path: pkgDir, files: files}\n}\n\nfunc (src Source) getStruct(structName string) *ast.StructType {\n\tvar result *ast.StructType\n\n\t// Traverse the AST of each file to find the struct definition\n\tfor _, file := range src.files {\n\t\tast.Inspect(file, func(n ast.Node) bool {\n\t\t\tif genDecl, ok := n.(*ast.GenDecl); ok && genDecl.Tok == token.TYPE {\n\t\t\t\tfor _, spec := range genDecl.Specs {\n\t\t\t\t\tif typeSpec, ok := spec.(*ast.TypeSpec); ok {\n\t\t\t\t\t\tif typeSpec.Name.Name == structName {\n\t\t\t\t\t\t\tif structType, ok := typeSpec.Type.(*ast.StructType); ok {\n\t\t\t\t\t\t\t\tresult = structType\n\t\t\t\t\t\t\t\treturn false // Found the struct, stop traversing\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t}\n\n\treturn result\n}\n\n// Node interface represents a node in the tree.\ntype Node interface {\n\tsimple() bool\n\tsize() int\n}\n\n// Bare represents a leaf node with a string value and an optional comment.\ntype Bare struct {\n\tValue []byte\n\tComment string\n}\n\n// Struct represents a branch node with map of child nodes.\ntype Struct struct {\n\tChildren map[string]Node\n\tComment string\n}\n\n// Array represents a branch node with array of child nodes.\ntype Array struct {\n\tItem Node\n\tComment string\n}\n\nfunc (l Bare) simple() bool {\n\treturn true\n}\n\nfunc (l Struct) simple() bool {\n\treturn false\n}\n\nfunc (l Array) simple() bool {\n\treturn false\n}\n\nfunc (l Bare) size() int {\n\treturn 1\n}\n\nfunc (l Array) size() int {\n\treturn 3\n}\n\nfunc (l Struct) size() int {\n\ts := 2\n\tfor _, child := range l.Children {\n\t\ts += child.size()\n\t}\n\treturn s\n}\n\nfunc (s Struct) marshal(indent int) []byte {\n\tkeys := make([]string, 0, len(s.Children))\n\n\tfor k := range s.Children {\n\t\tkeys = append(keys, k)\n\t}\n\n\tslices.SortStableFunc(keys, func(a, b string) int {\n\t\tswitch cmp.Compare(s.Children[a].size(), s.Children[b].size()) {\n\t\tcase -1:\n\t\t\treturn -1\n\t\tcase 1:\n\t\t\treturn 1\n\t\tdefault:\n\t\t\treturn strings.Compare(a, b)\n\t\t}\n\t})\n\n\tformatBare := func(k string, v []byte, last bool) string {\n\t\tcomma := \",\"\n\t\tif last {\n\t\t\tcomma = \"\"\n\t\t}\n\t\treturn fmt.Sprintf(\"\\\"%s\\\": %s%s\", k, v, comma)\n\t}\n\n\tprefix := strings.Repeat(\" \", indent+4)\n\n\tcommentStart := 0\n\tfor i, k := range keys {\n\t\tlast := i+1 == len(keys)\n\t\tswitch v := s.Children[k].(type) {\n\t\tcase Bare:\n\t\t\ts := formatBare(k, v.Value, last)\n\t\t\tcommentStart = max(commentStart, len(s))\n\t\t}\n\t}\n\n\tvar buf bytes.Buffer\n\tbuf.WriteString(\"{\\n\")\n\n\tfor i, k := range keys {\n\t\tlast := i+1 == len(keys)\n\t\tswitch v := s.Children[k].(type) {\n\t\tcase Bare:\n\t\t\ts := formatBare(k, v.Value, last)\n\t\t\tpadding := strings.Repeat(\" \", commentStart-len(s))\n\t\t\tbuf.WriteString(fmt.Sprintf(\"%s%s%s // %s\\n\", prefix, s, padding, v.Comment))\n\t\tcase Struct:\n\t\t\tbuf.WriteString(fmt.Sprintf(\"%s\\\"%s\\\": %s\", prefix, k, v.marshal(indent+4)))\n\t\t\tif !last {\n\t\t\t\tbuf.WriteString(\",\")\n\t\t\t}\n\t\t\tbuf.WriteString(\"\\n\")\n\t\tcase Array:\n\t\t\tbuf.WriteString(fmt.Sprintf(\"%s\\\"%s\\\": %s\", prefix, k, v.marshal(indent+4)))\n\t\t\tif !last {\n\t\t\t\tbuf.WriteString(\",\")\n\t\t\t}\n\t\t\tbuf.WriteString(\"\\n\")\n\t\tdefault:\n\t\t\tpanic(\"bug: unhandled Node case\")\n\t\t}\n\t}\n\n\tbuf.WriteString(fmt.Sprintf(\"%s}\", strings.Repeat(\" \", indent)))\n\n\treturn buf.Bytes()\n}\n\nfunc (s Array) marshal(indent int) []byte {\n\tprefix := strings.Repeat(\" \", indent+4)\n\n\tvar buf bytes.Buffer\n\tbuf.WriteString(\"[\\n\")\n\n\tswitch v := s.Item.(type) {\n\tcase Bare:\n\t\tbuf.WriteString(fmt.Sprintf(\"%s%s // %s\\n\", prefix, v.Value, v.Comment))\n\tcase Struct:\n\t\tbuf.WriteString(fmt.Sprintf(\"%s%s\", prefix, v.marshal(indent+4)))\n\t\tbuf.WriteString(\"\\n\")\n\tcase Array:\n\t\tbuf.WriteString(fmt.Sprintf(\"%s%s\", prefix, v.marshal(indent+4)))\n\t\tbuf.WriteString(\"\\n\")\n\tdefault:\n\t\tpanic(\"bug: unhandled Node case\")\n\t}\n\n\tbuf.WriteString(fmt.Sprintf(\"%s]\", strings.Repeat(\" \", indent)))\n\n\treturn buf.Bytes()\n}\n\nfunc getJSONTag(tag *ast.BasicLit) string {\n\tif tag == nil {\n\t\treturn \"\"\n\t}\n\n\ttagValue := reflect.StructTag(strings.Trim(tag.Value, \"`\")).Get(\"json\")\n\tif tagValue == \"-\" {\n\t\treturn \"\"\n\t}\n\n\t// Extract the name before the comma (if any)\n\tif idx := strings.Index(tagValue, \",\"); idx != -1 {\n\t\treturn tagValue[:idx]\n\t}\n\treturn tagValue\n}\n\n// getCurrentTag returns the currently checked out tag for the given directory.\n// It panics if the repository is not tagged or if any error occurs.\nfunc getCurrentTag(dir string) string {\n\tcmd := exec.Command(\"git\", \"describe\", \"--tags\", \"--exact-match\")\n\tcmd.Dir = dir\n\n\tvar out bytes.Buffer\n\tcmd.Stdout = &out\n\tcmd.Stderr = &out\n\n\tif err := cmd.Run(); err != nil {\n\t\tpanic(fmt.Sprintf(\"failed to get current tag: %s\", out.String()))\n\t}\n\n\ttag := strings.TrimSpace(out.String())\n\tif tag == \"\" {\n\t\tpanic(\"no tag found\")\n\t}\n\n\treturn tag\n}\n","uri":"file:///home/z/project/wb/postman/main.go","version":0}}}
2024-06-10T16:19:15.354 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":"7948790921933193538"},"id":1}
2024-06-10T16:19:15.354 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "window/workDoneProgress/create", params: Map({"token": String("7948790921933193538")}), id: Num(1) })))
2024-06-10T16:19:15.354 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":null,"id":1}
2024-06-10T16:19:15.354 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"7948790921933193538","value":{"kind":"begin","title":"Setting up workspace","message":"Loading packages..."}}}
2024-06-10T16:19:15.354 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"workspace/configuration","params":{"items":[{"scopeUri":"file:///home/z/project/wb/postman","section":"gopls"}]},"id":2}
2024-06-10T16:19:15.354 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "$/progress", params: Map({"token": String("7948790921933193538"), "value": Object {"kind": String("begin"), "message": String("Loading packages..."), "title": String("Setting up workspace")}}) })))
2024-06-10T16:19:15.354 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "workspace/configuration", params: Map({"items": Array [Object {"scopeUri": String("file:///home/z/project/wb/postman"), "section": String("gopls")}]}), id: Num(2) })))
2024-06-10T16:19:15.354 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":[null],"id":2}
2024-06-10T16:19:15.360 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"2024/06/10 16:19:15 go info for /home/z/project/wb/postman\n(go dir /home/z/project/wb/postman)\n(go version go version go1.22.1 linux/amd64)\n(valid build configuration = true)\n(build flags: [])\n(selected go env: [GO111MODULE=, GOCACHE=/home/z/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/z/.local/state/go/pkg/mod, GOPATH=/home/z/.local/state/go, GOPRIVATE=gitlab.wildberries.ru, GOROOT=/usr/local/go, GOWORK=])\n\n"}}
2024-06-10T16:19:15.360 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "window/logMessage", params: Map({"message": String("2024/06/10 16:19:15 go info for /home/z/project/wb/postman\n(go dir /home/z/project/wb/postman)\n(go version go version go1.22.1 linux/amd64)\n(valid build configuration = true)\n(build flags: [])\n(selected go env: [GO111MODULE=, GOCACHE=/home/z/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/z/.local/state/go/pkg/mod, GOPATH=/home/z/.local/state/go, GOPRIVATE=gitlab.wildberries.ru, GOROOT=/usr/local/go, GOWORK=])\n\n"), "type": Number(3)}) })))
2024-06-10T16:19:15.360 helix_term::application [INFO] window/logMessage: LogMessageParams { typ: Info, message: "2024/06/10 16:19:15 go info for /home/z/project/wb/postman\n(go dir /home/z/project/wb/postman)\n(go version go version go1.22.1 linux/amd64)\n(valid build configuration = true)\n(build flags: [])\n(selected go env: [GO111MODULE=, GOCACHE=/home/z/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/z/.local/state/go/pkg/mod, GOPATH=/home/z/.local/state/go, GOPRIVATE=gitlab.wildberries.ru, GOROOT=/usr/local/go, GOWORK=])\n\n" }
2024-06-10T16:19:15.387 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:19:15.388 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:15.454 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"2024/06/10 16:19:15 go/packages.Load #1\n\tsnapshot=0\n\tdirectory=file:///home/z/project/wb/postman\n\tquery=[/home/z/project/wb/postman/... builtin]\n\tpackages=2\n"}}
2024-06-10T16:19:15.454 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "window/logMessage", params: Map({"message": String("2024/06/10 16:19:15 go/packages.Load #1\n\tsnapshot=0\n\tdirectory=file:///home/z/project/wb/postman\n\tquery=[/home/z/project/wb/postman/... builtin]\n\tpackages=2\n"), "type": Number(3)}) })))
2024-06-10T16:19:15.454 helix_term::application [INFO] window/logMessage: LogMessageParams { typ: Info, message: "2024/06/10 16:19:15 go/packages.Load #1\n\tsnapshot=0\n\tdirectory=file:///home/z/project/wb/postman\n\tquery=[/home/z/project/wb/postman/... builtin]\n\tpackages=2\n" }
2024-06-10T16:19:15.456 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"2024/06/10 16:19:15 go/packages.Load #1: updating metadata for 172 packages\n"}}
2024-06-10T16:19:15.456 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "window/logMessage", params: Map({"message": String("2024/06/10 16:19:15 go/packages.Load #1: updating metadata for 172 packages\n"), "type": Number(3)}) })))
2024-06-10T16:19:15.456 helix_term::application [INFO] window/logMessage: LogMessageParams { typ: Info, message: "2024/06/10 16:19:15 go/packages.Load #1: updating metadata for 172 packages\n" }
2024-06-10T16:19:15.474 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"7948790921933193538","value":{"kind":"end","message":"Finished loading packages."}}}
2024-06-10T16:19:15.474 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"client/registerCapability","params":{"registrations":[{"id":"workspace/didChangeWatchedFiles-0","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.{go,mod,sum,work}","kind":7}]}}]},"id":3}
2024-06-10T16:19:15.474 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "$/progress", params: Map({"token": String("7948790921933193538"), "value": Object {"kind": String("end"), "message": String("Finished loading packages.")}}) })))
2024-06-10T16:19:15.474 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "client/registerCapability", params: Map({"registrations": Array [Object {"id": String("workspace/didChangeWatchedFiles-0"), "method": String("workspace/didChangeWatchedFiles"), "registerOptions": Object {"watchers": Array [Object {"globPattern": String("**/*.{go,mod,sum,work}"), "kind": Number(7)}]}}]}), id: Num(3) })))
2024-06-10T16:19:15.474 helix_lsp::file_event [DEBUG] Registering didChangeWatchedFiles for client '0' with id 'workspace/didChangeWatchedFiles-0'
2024-06-10T16:19:15.474 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":null,"id":3}
2024-06-10T16:19:15.474 globset [DEBUG] glob converted to regex: Glob { glob: "**/*.{go,mod,sum,work}", re: "(?-u)^(?:/?|.*/).*\\.(?:work|sum|mod|go)$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, ZeroOrMore, Literal('.'), Alternates([Tokens([Literal('w'), Literal('o'), Literal('r'), Literal('k')]), Tokens([Literal('s'), Literal('u'), Literal('m')]), Tokens([Literal('m'), Literal('o'), Literal('d')]), Tokens([Literal('g'), Literal('o')])])]) }
2024-06-10T16:19:15.474 globset [DEBUG] built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
2024-06-10T16:19:15.475 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"workspace/configuration","params":{"items":[{"section":"gopls"}]},"id":4}
2024-06-10T16:19:15.475 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "workspace/configuration", params: Map({"items": Array [Object {"section": String("gopls")}]}), id: Num(4) })))
2024-06-10T16:19:15.475 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":[null],"id":4}
2024-06-10T16:19:15.475 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"workspace/configuration","params":{"items":[{"scopeUri":"file:///home/z/project/wb/postman","section":"gopls"}]},"id":5}
2024-06-10T16:19:15.475 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "workspace/configuration", params: Map({"items": Array [Object {"scopeUri": String("file:///home/z/project/wb/postman"), "section": String("gopls")}]}), id: Num(5) })))
2024-06-10T16:19:15.475 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":[null],"id":5}
2024-06-10T16:19:15.488 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:19:15.489 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:15.525 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/z/project/wb/postman/main.go","diagnostics":[]}}
2024-06-10T16:19:15.525 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "textDocument/publishDiagnostics", params: Map({"diagnostics": Array [], "uri": String("file:///home/z/project/wb/postman/main.go")}) })))
2024-06-10T16:19:15.560 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:19:15.560 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:15.574 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:19:15.574 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/inlayHint","params":{"range":{"end":{"character":0,"line":88},"start":{"character":0,"line":0}},"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}},"id":1}
2024-06-10T16:19:15.582 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":[{"position":{"line":33,"character":14},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":37,"character":4},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":37,"character":22},"label":[{"value":"dir:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":17},"label":[{"value":"rootDir:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":29},"label":[{"value":"name:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":52},"label":[{"value":"relativeOpenapiSpecPath:"}],"kind":2,"paddingRight":true},{"position":{"line":43,"character":16},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":43,"character":34},"label":[{"value":"elem...:"}],"kind":2,"paddingRight":true},{"position":{"line":44,"character":7},"label":[{"value":"*openapi3.Loader"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":4},"label":[{"value":"*openapi3.T"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":9},"label":[{"value":"error"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":33},"label":[{"value":"location:"}],"kind":2,"paddingRight":true},{"position":{"line":48,"character":13},"label":[{"value":"format:"}],"kind":2,"paddingRight":true},{"position":{"line":48,"character":49},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":52,"character":6},"label":[{"value":"map[string]*openapi3.PathItem"}],"kind":1,"paddingLeft":true},{"position":{"line":53,"character":16},"label":[{"value":"[]string"}],"kind":1,"paddingLeft":true},{"position":{"line":54,"character":6},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":58,"character":14},"label":[{"value":"x:"}],"kind":2,"paddingRight":true},{"position":{"line":60,"character":11},"label":[{"value":"*postman.Collection"}],"kind":1,"paddingLeft":true},{"position":{"line":60,"character":46},"label":[{"value":"desc:"}],"kind":2,"paddingRight":true},{"position":{"line":62,"character":6},"label":[{"value":"int"}],"kind":1,"paddingLeft":true},{"position":{"line":62,"character":12},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":63,"character":10},"label":[{"value":"*openapi3.PathItem"}],"kind":1,"paddingLeft":true},{"position":{"line":64,"character":7},"label":[{"value":"[]*postman.Items"}],"kind":1,"paddingLeft":true},{"position":{"line":67,"character":12},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":67,"character":23},"label":[{"value":"*openapi3.Operation"}],"kind":1,"paddingLeft":true},{"position":{"line":68,"character":14},"label":[{"value":"format:"}],"kind":2,"paddingRight":true},{"position":{"line":68,"character":25},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":69,"character":10},"label":[{"value":"*postman.Request"}],"kind":1,"paddingLeft":true},{"position":{"line":74,"character":25},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":56},"label":[{"value":"sep:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":44},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":50},"label":[{"value":"prefix:"}],"kind":2,"paddingRight":true},{"position":{"line":76,"character":43},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":80,"character":14},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":83,"character":8},"label":[{"value":"int"}],"kind":1,"paddingLeft":true},{"position":{"line":83,"character":15},"label":[{"value":"*openapi3.ParameterRef"}],"kind":1,"paddingLeft":true},{"position":{"line":86,"character":9},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":87,"character":14},"label":[{"value":"string"}],"kind":1,"paddingLeft":true}],"id":1}
2024-06-10T16:19:15.582 helix_lsp::transport [INFO] gopls <- [{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":14,"line":33}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":4,"line":37}},{"kind":2,"label":[{"value":"dir:"}],"paddingRight":true,"position":{"character":22,"line":37}},{"kind":2,"label":[{"value":"rootDir:"}],"paddingRight":true,"position":{"character":17,"line":39}},{"kind":2,"label":[{"value":"name:"}],"paddingRight":true,"position":{"character":29,"line":39}},{"kind":2,"label":[{"value":"relativeOpenapiSpecPath:"}],"paddingRight":true,"position":{"character":52,"line":39}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":16,"line":43}},{"kind":2,"label":[{"value":"elem...:"}],"paddingRight":true,"position":{"character":34,"line":43}},{"kind":1,"label":[{"value":"*openapi3.Loader"}],"paddingLeft":true,"position":{"character":7,"line":44}},{"kind":1,"label":[{"value":"*openapi3.T"}],"paddingLeft":true,"position":{"character":4,"line":46}},{"kind":1,"label":[{"value":"error"}],"paddingLeft":true,"position":{"character":9,"line":46}},{"kind":2,"label":[{"value":"location:"}],"paddingRight":true,"position":{"character":33,"line":46}},{"kind":2,"label":[{"value":"format:"}],"paddingRight":true,"position":{"character":13,"line":48}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":49,"line":48}},{"kind":1,"label":[{"value":"map[string]*openapi3.PathItem"}],"paddingLeft":true,"position":{"character":6,"line":52}},{"kind":1,"label":[{"value":"[]string"}],"paddingLeft":true,"position":{"character":16,"line":53}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":6,"line":54}},{"kind":2,"label":[{"value":"x:"}],"paddingRight":true,"position":{"character":14,"line":58}},{"kind":1,"label":[{"value":"*postman.Collection"}],"paddingLeft":true,"position":{"character":11,"line":60}},{"kind":2,"label":[{"value":"desc:"}],"paddingRight":true,"position":{"character":46,"line":60}},{"kind":1,"label":[{"value":"int"}],"paddingLeft":true,"position":{"character":6,"line":62}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":12,"line":62}},{"kind":1,"label":[{"value":"*openapi3.PathItem"}],"paddingLeft":true,"position":{"character":10,"line":63}},{"kind":1,"label":[{"value":"[]*postman.Items"}],"paddingLeft":true,"position":{"character":7,"line":64}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":12,"line":67}},{"kind":1,"label":[{"value":"*openapi3.Operation"}],"paddingLeft":true,"position":{"character":23,"line":67}},{"kind":2,"label":[{"value":"format:"}],"paddingRight":true,"position":{"character":14,"line":68}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":25,"line":68}},{"kind":1,"label":[{"value":"*postman.Request"}],"paddingLeft":true,"position":{"character":10,"line":69}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":25,"line":74}},{"kind":2,"label":[{"value":"sep:"}],"paddingRight":true,"position":{"character":56,"line":74}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":44,"line":74}},{"kind":2,"label":[{"value":"prefix:"}],"paddingRight":true,"position":{"character":50,"line":74}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":43,"line":76}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":14,"line":80}},{"kind":1,"label":[{"value":"int"}],"paddingLeft":true,"position":{"character":8,"line":83}},{"kind":1,"label":[{"value":"*openapi3.ParameterRef"}],"paddingLeft":true,"position":{"character":15,"line":83}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":9,"line":86}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":14,"line":87}}]
2024-06-10T16:19:15.583 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:16.282 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:16.532 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:19:16.545 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/z/project/wb/postman/go.mod","diagnostics":[{"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":57}},"severity":2,"source":"go mod tidy","message":"golang.org/x/tools is not used in this module"},{"range":{"start":{"line":27,"character":1},"end":{"line":27,"character":25}},"severity":2,"source":"go mod tidy","message":"golang.org/x/mod is not used in this module"},{"range":{"start":{"line":28,"character":1},"end":{"line":28,"character":25}},"severity":2,"source":"go mod tidy","message":"golang.org/x/sync is not used in this module"}]}}
2024-06-10T16:19:16.545 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "textDocument/publishDiagnostics", params: Map({"diagnostics": Array [Object {"message": String("golang.org/x/tools is not used in this module"), "range": Object {"end": Object {"character": Number(57), "line": Number(12)}, "start": Object {"character": Number(1), "line": Number(12)}}, "severity": Number(2), "source": String("go mod tidy")}, Object {"message": String("golang.org/x/mod is not used in this module"), "range": Object {"end": Object {"character": Number(25), "line": Number(27)}, "start": Object {"character": Number(1), "line": Number(27)}}, "severity": Number(2), "source": String("go mod tidy")}, Object {"message": String("golang.org/x/sync is not used in this module"), "range": Object {"end": Object {"character": Number(25), "line": Number(28)}, "start": Object {"character": Number(1), "line": Number(28)}}, "severity": Number(2), "source": String("go mod tidy")}], "uri": String("file:///home/z/project/wb/postman/go.mod")}) })))
2024-06-10T16:19:16.579 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:19:16.580 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:16.924 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:17.175 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:19:17.193 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(2), exact=true) extracted before optimization: Seq[E("M"), E("m")]
2024-06-10T16:19:17.193 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(2), exact=true) extracted after optimization: Seq[E("M"), E("m")]
2024-06-10T16:19:17.193 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 2 literals: [E("M"), E("m")]
2024-06-10T16:19:17.193 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:19:17.194 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:17.388 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(4), exact=true) extracted before optimization: Seq[E("MA"), E("Ma"), E("mA"), E("ma")]
2024-06-10T16:19:17.388 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(4), exact=true) extracted after optimization: Seq[E("MA"), E("Ma"), E("mA"), E("ma")]
2024-06-10T16:19:17.388 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 4 literals: [E("MA"), E("Ma"), E("mA"), E("ma")]
2024-06-10T16:19:17.388 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:19:17.389 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:17.433 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(8), exact=true) extracted before optimization: Seq[E("MAI"), E("MAi"), E("MaI"), E("Mai"), E("mAI"), E("mAi"), E("maI"), E("mai")]
2024-06-10T16:19:17.433 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(8), exact=true) extracted after optimization: Seq[E("MAI"), E("MAi"), E("MaI"), E("Mai"), E("mAI"), E("mAi"), E("maI"), E("mai")]
2024-06-10T16:19:17.433 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 8 literals: [E("MAI"), E("MAi"), E("MaI"), E("Mai"), E("mAI"), E("mAi"), E("maI"), E("mai")]
2024-06-10T16:19:17.434 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:19:17.435 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:17.658 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted before optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:19:17.658 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted after optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:19:17.658 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 16 literals: [E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:19:17.658 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:19:17.660 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:18.123 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted before optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:19:18.124 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted after optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:19:18.124 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 16 literals: [E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:19:18.124 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:19:18.125 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:19.068 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:19.293 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/prepareRename","params":{"position":{"character":8,"line":31},"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}},"id":2}
2024-06-10T16:19:19.294 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:19.295 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":{"range":{"start":{"line":31,"character":5},"end":{"line":31,"character":9}},"placeholder":"main"},"id":2}
2024-06-10T16:19:19.295 helix_lsp::transport [INFO] gopls <- {"placeholder":"main","range":{"end":{"character":9,"line":31},"start":{"character":5,"line":31}}}
2024-06-10T16:19:19.296 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:19.544 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:19:20.704 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:21.138 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/rename","params":{"newName":"mainx","position":{"character":8,"line":31},"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}},"id":3}
2024-06-10T16:19:21.141 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":{"documentChanges":[{"textDocument":{"version":0,"uri":"file:///home/z/project/wb/postman/main.go"},"edits":[{"range":{"start":{"line":31,"character":5},"end":{"line":31,"character":9}},"newText":"mainx"}]}]},"id":3}
2024-06-10T16:19:21.141 helix_lsp::transport [INFO] gopls <- {"documentChanges":[{"edits":[{"newText":"mainx","range":{"end":{"character":9,"line":31},"start":{"character":5,"line":31}}}],"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go","version":0}}]}
2024-06-10T16:19:21.144 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"range":{"end":{"character":9,"line":31},"start":{"character":5,"line":31}},"text":"mainx"}],"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go","version":1}}}
2024-06-10T16:19:21.154 helix_vcs::diff::worker [INFO] Diff computation timed out, update of diffs might appear delayed
2024-06-10T16:19:21.155 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 1
2024-06-10T16:19:22.187 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/z/project/wb/postman/main.go","version":1,"diagnostics":[]}}
2024-06-10T16:19:22.188 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "textDocument/publishDiagnostics", params: Map({"diagnostics": Array [], "uri": String("file:///home/z/project/wb/postman/main.go"), "version": Number(1)}) })))
2024-06-10T16:19:22.222 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:19:22.223 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 1
2024-06-10T16:19:22.431 helix_view::view [DEBUG] Syncing view ViewId(2v1) between 1 and 0
2024-06-10T16:19:22.431 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"range":{"end":{"character":10,"line":31},"start":{"character":5,"line":31}},"text":"main"}],"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go","version":2}}}
2024-06-10T16:19:22.432 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:22.680 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:19:22.680 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/inlayHint","params":{"range":{"end":{"character":0,"line":88},"start":{"character":0,"line":0}},"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}},"id":4}
2024-06-10T16:19:22.688 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":[{"position":{"line":33,"character":14},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":37,"character":4},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":37,"character":22},"label":[{"value":"dir:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":17},"label":[{"value":"rootDir:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":29},"label":[{"value":"name:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":52},"label":[{"value":"relativeOpenapiSpecPath:"}],"kind":2,"paddingRight":true},{"position":{"line":43,"character":16},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":43,"character":34},"label":[{"value":"elem...:"}],"kind":2,"paddingRight":true},{"position":{"line":44,"character":7},"label":[{"value":"*openapi3.Loader"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":4},"label":[{"value":"*openapi3.T"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":9},"label":[{"value":"error"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":33},"label":[{"value":"location:"}],"kind":2,"paddingRight":true},{"position":{"line":48,"character":13},"label":[{"value":"format:"}],"kind":2,"paddingRight":true},{"position":{"line":48,"character":49},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":52,"character":6},"label":[{"value":"map[string]*openapi3.PathItem"}],"kind":1,"paddingLeft":true},{"position":{"line":53,"character":16},"label":[{"value":"[]string"}],"kind":1,"paddingLeft":true},{"position":{"line":54,"character":6},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":58,"character":14},"label":[{"value":"x:"}],"kind":2,"paddingRight":true},{"position":{"line":60,"character":11},"label":[{"value":"*postman.Collection"}],"kind":1,"paddingLeft":true},{"position":{"line":60,"character":46},"label":[{"value":"desc:"}],"kind":2,"paddingRight":true},{"position":{"line":62,"character":6},"label":[{"value":"int"}],"kind":1,"paddingLeft":true},{"position":{"line":62,"character":12},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":63,"character":10},"label":[{"value":"*openapi3.PathItem"}],"kind":1,"paddingLeft":true},{"position":{"line":64,"character":7},"label":[{"value":"[]*postman.Items"}],"kind":1,"paddingLeft":true},{"position":{"line":67,"character":12},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":67,"character":23},"label":[{"value":"*openapi3.Operation"}],"kind":1,"paddingLeft":true},{"position":{"line":68,"character":14},"label":[{"value":"format:"}],"kind":2,"paddingRight":true},{"position":{"line":68,"character":25},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":69,"character":10},"label":[{"value":"*postman.Request"}],"kind":1,"paddingLeft":true},{"position":{"line":74,"character":25},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":56},"label":[{"value":"sep:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":44},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":50},"label":[{"value":"prefix:"}],"kind":2,"paddingRight":true},{"position":{"line":76,"character":43},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":80,"character":14},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":83,"character":8},"label":[{"value":"int"}],"kind":1,"paddingLeft":true},{"position":{"line":83,"character":15},"label":[{"value":"*openapi3.ParameterRef"}],"kind":1,"paddingLeft":true},{"position":{"line":86,"character":9},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":87,"character":14},"label":[{"value":"string"}],"kind":1,"paddingLeft":true}],"id":4}
2024-06-10T16:19:22.689 helix_lsp::transport [INFO] gopls <- [{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":14,"line":33}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":4,"line":37}},{"kind":2,"label":[{"value":"dir:"}],"paddingRight":true,"position":{"character":22,"line":37}},{"kind":2,"label":[{"value":"rootDir:"}],"paddingRight":true,"position":{"character":17,"line":39}},{"kind":2,"label":[{"value":"name:"}],"paddingRight":true,"position":{"character":29,"line":39}},{"kind":2,"label":[{"value":"relativeOpenapiSpecPath:"}],"paddingRight":true,"position":{"character":52,"line":39}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":16,"line":43}},{"kind":2,"label":[{"value":"elem...:"}],"paddingRight":true,"position":{"character":34,"line":43}},{"kind":1,"label":[{"value":"*openapi3.Loader"}],"paddingLeft":true,"position":{"character":7,"line":44}},{"kind":1,"label":[{"value":"*openapi3.T"}],"paddingLeft":true,"position":{"character":4,"line":46}},{"kind":1,"label":[{"value":"error"}],"paddingLeft":true,"position":{"character":9,"line":46}},{"kind":2,"label":[{"value":"location:"}],"paddingRight":true,"position":{"character":33,"line":46}},{"kind":2,"label":[{"value":"format:"}],"paddingRight":true,"position":{"character":13,"line":48}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":49,"line":48}},{"kind":1,"label":[{"value":"map[string]*openapi3.PathItem"}],"paddingLeft":true,"position":{"character":6,"line":52}},{"kind":1,"label":[{"value":"[]string"}],"paddingLeft":true,"position":{"character":16,"line":53}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":6,"line":54}},{"kind":2,"label":[{"value":"x:"}],"paddingRight":true,"position":{"character":14,"line":58}},{"kind":1,"label":[{"value":"*postman.Collection"}],"paddingLeft":true,"position":{"character":11,"line":60}},{"kind":2,"label":[{"value":"desc:"}],"paddingRight":true,"position":{"character":46,"line":60}},{"kind":1,"label":[{"value":"int"}],"paddingLeft":true,"position":{"character":6,"line":62}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":12,"line":62}},{"kind":1,"label":[{"value":"*openapi3.PathItem"}],"paddingLeft":true,"position":{"character":10,"line":63}},{"kind":1,"label":[{"value":"[]*postman.Items"}],"paddingLeft":true,"position":{"character":7,"line":64}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":12,"line":67}},{"kind":1,"label":[{"value":"*openapi3.Operation"}],"paddingLeft":true,"position":{"character":23,"line":67}},{"kind":2,"label":[{"value":"format:"}],"paddingRight":true,"position":{"character":14,"line":68}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":25,"line":68}},{"kind":1,"label":[{"value":"*postman.Request"}],"paddingLeft":true,"position":{"character":10,"line":69}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":25,"line":74}},{"kind":2,"label":[{"value":"sep:"}],"paddingRight":true,"position":{"character":56,"line":74}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":44,"line":74}},{"kind":2,"label":[{"value":"prefix:"}],"paddingRight":true,"position":{"character":50,"line":74}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":43,"line":76}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":14,"line":80}},{"kind":1,"label":[{"value":"int"}],"paddingLeft":true,"position":{"character":8,"line":83}},{"kind":1,"label":[{"value":"*openapi3.ParameterRef"}],"paddingLeft":true,"position":{"character":15,"line":83}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":9,"line":86}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":14,"line":87}}]
2024-06-10T16:19:22.690 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:23.419 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:23.481 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/z/project/wb/postman/main.go","version":2,"diagnostics":[]}}
2024-06-10T16:19:23.481 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "textDocument/publishDiagnostics", params: Map({"diagnostics": Array [], "uri": String("file:///home/z/project/wb/postman/main.go"), "version": Number(2)}) })))
2024-06-10T16:19:23.516 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:19:23.517 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:23.669 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:19:24.020 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:24.079 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:25.203 helix_term::job [DEBUG] waiting on jobs...
2024-06-10T16:19:25.203 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/formatting","params":{"options":{"insertSpaces":false,"tabSize":4},"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}},"id":5}
2024-06-10T16:19:25.210 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":[],"id":5}
2024-06-10T16:19:25.211 helix_lsp::transport [INFO] gopls <- []
2024-06-10T16:19:25.211 helix_view::document [DEBUG] submitting save of doc 'Some("/home/z/project/wb/postman/main.go")'
2024-06-10T16:19:25.227 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}}}
2024-06-10T16:19:25.227 helix_view::document [DEBUG] doc 1 revision updated 0 -> 0
2024-06-10T16:19:25.227 helix_term::commands::typed [DEBUG] quitting...
2024-06-10T16:19:25.227 helix_lsp::file_event [DEBUG] Received file event for "/home/z/project/wb/postman/main.go"
2024-06-10T16:19:25.227 helix_lsp::file_event [DEBUG] Sending didChangeWatchedFiles notification to client 'gopls'
2024-06-10T16:19:25.227 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"workspace/didChangeWatchedFiles","params":{"changes":[{"type":2,"uri":"file:///home/z/project/wb/postman/main.go"}]}}
2024-06-10T16:19:25.227 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:19:25.227 helix_term::job [DEBUG] waiting on jobs...
2024-06-10T16:19:25.227 helix_term::job [DEBUG] waiting on jobs...
2024-06-10T16:19:25.227 helix_lsp::file_event [DEBUG] Removing LSP client: 0
2024-06-10T16:19:25.227 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"shutdown","id":6}
2024-06-10T16:19:25.229 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":null,"id":6}
2024-06-10T16:19:25.229 helix_lsp::transport [INFO] gopls <- null
2024-06-10T16:19:25.229 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"2024/06/10 16:19:25 Shutdown session\n\tshutdown_session=1\n"}}
2024-06-10T16:19:25.229 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"exit"}
2024-06-10T16:19:25.229 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:19:25.230 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:19:25.230 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:19:25.231 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:19:25.232 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:19:25.232 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:21:58.791 globset [DEBUG] glob converted to regex: Glob { glob: "*/Dockerfile.*", re: "(?-u)^.*/Dockerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('D'), Literal('o'), Literal('c'), Literal('k'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:21:58.806 globset [DEBUG] glob converted to regex: Glob { glob: "*/dockerfile.*", re: "(?-u)^.*/dockerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('d'), Literal('o'), Literal('c'), Literal('k'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:21:58.806 globset [DEBUG] glob converted to regex: Glob { glob: "*/Containerfile.*", re: "(?-u)^.*/Containerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('C'), Literal('o'), Literal('n'), Literal('t'), Literal('a'), Literal('i'), Literal('n'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:21:58.806 globset [DEBUG] glob converted to regex: Glob { glob: "*/containerfile.*", re: "(?-u)^.*/containerfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('c'), Literal('o'), Literal('n'), Literal('t'), Literal('a'), Literal('i'), Literal('n'), Literal('e'), Literal('r'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:21:58.806 globset [DEBUG] glob converted to regex: Glob { glob: "*/BUILD.*", re: "(?-u)^.*/BUILD\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('B'), Literal('U'), Literal('I'), Literal('L'), Literal('D'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:21:58.806 globset [DEBUG] glob converted to regex: Glob { glob: "*/.env.*", re: "(?-u)^.*/\\.env\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('.'), Literal('e'), Literal('n'), Literal('v'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:21:58.806 globset [DEBUG] glob converted to regex: Glob { glob: "*/.envrc.*", re: "(?-u)^.*/\\.envrc\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('.'), Literal('e'), Literal('n'), Literal('v'), Literal('r'), Literal('c'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:21:58.806 globset [DEBUG] glob converted to regex: Glob { glob: "*/Jenkinsfile.*", re: "(?-u)^.*/Jenkinsfile\\..*$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([ZeroOrMore, Literal('/'), Literal('J'), Literal('e'), Literal('n'), Literal('k'), Literal('i'), Literal('n'), Literal('s'), Literal('f'), Literal('i'), Literal('l'), Literal('e'), Literal('.'), ZeroOrMore]) }
2024-06-10T16:21:58.806 globset [DEBUG] built glob set; 1 literals, 0 basenames, 0 extensions, 0 prefixes, 121 suffixes, 5 required extensions, 8 regexes
2024-06-10T16:21:58.808 helix_view::clipboard [DEBUG] Using wl-copy+wl-paste to interact with the system and selection (primary) clipboard
2024-06-10T16:21:58.816 mio::poll [TRACE] registering event source with poller: token=Token(94352089771776), interests=READABLE | WRITABLE
2024-06-10T16:21:58.816 mio::poll [TRACE] registering event source with poller: token=Token(94352091505280), interests=READABLE | WRITABLE
2024-06-10T16:21:58.816 mio::poll [TRACE] registering event source with poller: token=Token(94352088664960), interests=READABLE | WRITABLE
2024-06-10T16:21:58.816 mio::poll [TRACE] registering event source with poller: token=Token(94352091581312), interests=READABLE
2024-06-10T16:21:58.816 helix_view::editor [DEBUG] Language server not found for `source.go` golangci-lint-lsp command 'golangci-lint-langserver' not found: cannot find binary path
2024-06-10T16:21:58.816 helix_view::editor [DEBUG] editor status: Loaded 1 file.
2024-06-10T16:21:58.816 helix_lsp::client [INFO] Using custom LSP config: {"hints":{"assignVariableTypes":true,"compositeLiteralFields":true,"constantValues":true,"functionTypeParameters":true,"parameterNames":true,"rangeVariableTypes":true}}
2024-06-10T16:21:58.816 mio::poll [TRACE] registering event source with poller: token=Token(94352090024192), interests=READABLE | WRITABLE
2024-06-10T16:21:58.816 mio::poll [TRACE] registering event source with poller: token=Token(94352091572352), interests=READABLE | WRITABLE
2024-06-10T16:21:58.816 mio::poll [TRACE] registering event source with poller: token=Token(0), interests=READABLE
2024-06-10T16:21:58.816 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{"general":{"positionEncodings":["utf-8","utf-32","utf-16"]},"textDocument":{"codeAction":{"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"dataSupport":true,"disabledSupport":true,"isPreferredSupport":true,"resolveSupport":{"properties":["edit","command"]}},"completion":{"completionItem":{"deprecatedSupport":true,"insertReplaceSupport":true,"resolveSupport":{"properties":["documentation","detail","additionalTextEdits"]},"snippetSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{}},"hover":{"contentFormat":["markdown"]},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"tagSupport":{"valueSet":[1,2]},"versionSupport":true},"rename":{"dynamicRegistration":false,"honorsChangeAnnotations":false,"prepareSupport":true},"signatureHelp":{"signatureInformation":{"activeParameterSupport":true,"documentationFormat":["markdown"],"parameterInformation":{"labelOffsetSupport":true}}}},"window":{"workDoneProgress":true},"workspace":{"applyEdit":true,"configuration":true,"didChangeConfiguration":{"dynamicRegistration":false},"didChangeWatchedFiles":{"dynamicRegistration":true,"relativePatternSupport":false},"executeCommand":{"dynamicRegistration":false},"fileOperations":{"didRename":true,"willRename":true},"inlayHint":{"refreshSupport":false},"symbol":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true,"failureHandling":"abort","normalizesLineEndings":false,"resourceOperations":["create","rename","delete"]},"workspaceFolders":true}},"clientInfo":{"name":"helix","version":"24.3 (2cadec0b)"},"initializationOptions":{"hints":{"assignVariableTypes":true,"compositeLiteralFields":true,"constantValues":true,"functionTypeParameters":true,"parameterNames":true,"rangeVariableTypes":true}},"processId":858152,"rootPath":"/home/z/project/wb/postman","rootUri":"file:///home/z/project/wb/postman","workspaceFolders":[{"name":"postman","uri":"file:///home/z/project/wb/postman"}]},"id":0}
2024-06-10T16:21:58.816 mio::poll [TRACE] registering event source with poller: token=Token(1), interests=READABLE
2024-06-10T16:21:58.817 helix_tui::backend::crossterm [DEBUG] The keyboard enhancement protocol is supported in this terminal (checked in 198.373µs)
2024-06-10T16:21:58.817 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:21:58.839 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":{"capabilities":{"textDocumentSync":{"openClose":true,"change":2,"save":{}},"completionProvider":{"triggerCharacters":["."]},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",","]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor.extract","refactor.inline","refactor.rewrite","source.fixAll","source.organizeImports"]},"codeLensProvider":{},"documentLinkProvider":{},"workspaceSymbolProvider":true,"documentFormattingProvider":true,"renameProvider":{"prepareProvider":true},"foldingRangeProvider":true,"selectionRangeProvider":true,"executeCommandProvider":{"commands":["gopls.add_dependency","gopls.add_import","gopls.add_telemetry_counters","gopls.apply_fix","gopls.change_signature","gopls.check_upgrades","gopls.edit_go_directive","gopls.fetch_vulncheck_result","gopls.gc_details","gopls.generate","gopls.go_get_package","gopls.list_imports","gopls.list_known_packages","gopls.maybe_prompt_for_telemetry","gopls.mem_stats","gopls.regenerate_cgo","gopls.remove_dependency","gopls.reset_go_mod_diagnostics","gopls.run_go_work_command","gopls.run_govulncheck","gopls.run_tests","gopls.start_debugging","gopls.start_profile","gopls.stop_profile","gopls.test","gopls.tidy","gopls.toggle_gc_details","gopls.update_go_sum","gopls.upgrade_dependency","gopls.vendor","gopls.workspace_stats"]},"callHierarchyProvider":true,"semanticTokensProvider":{"legend":{"tokenTypes":[],"tokenModifiers":[]},"range":true,"full":true},"inlayHintProvider":{},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":"workspace/didChangeWorkspaceFolders"}}},"serverInfo":{"name":"gopls","version":"{\"GoVersion\":\"go1.21.6\",\"Path\":\"golang.org/x/tools/gopls\",\"Main\":{\"Path\":\"golang.org/x/tools/gopls\",\"Version\":\"v0.14.2\",\"Sum\":\"h1:sIw6vjZiuQ9S7s0auUUkHlWgsCkKZFWDHmrge8LYsnc=\",\"Replace\":null},\"Deps\":[{\"Path\":\"github.com/BurntSushi/toml\",\"Version\":\"v1.2.1\",\"Sum\":\"h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=\",\"Replace\":null},{\"Path\":\"github.com/google/go-cmp\",\"Version\":\"v0.5.9\",\"Sum\":\"h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=\",\"Replace\":null},{\"Path\":\"github.com/sergi/go-diff\",\"Version\":\"v1.1.0\",\"Sum\":\"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=\",\"Replace\":null},{\"Path\":\"golang.org/x/exp/typeparams\",\"Version\":\"v0.0.0-20221212164502-fae10dda9338\",\"Sum\":\"h1:2O2DON6y3XMJiQRAS1UWU+54aec2uopH3x7MAiqGW6Y=\",\"Replace\":null},{\"Path\":\"golang.org/x/mod\",\"Version\":\"v0.14.0\",\"Sum\":\"h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=\",\"Replace\":null},{\"Path\":\"golang.org/x/sync\",\"Version\":\"v0.4.0\",\"Sum\":\"h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=\",\"Replace\":null},{\"Path\":\"golang.org/x/sys\",\"Version\":\"v0.14.0\",\"Sum\":\"h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=\",\"Replace\":null},{\"Path\":\"golang.org/x/telemetry\",\"Version\":\"v0.0.0-20231114163143-69313e640400\",\"Sum\":\"h1:brbkEFfGwNGAEkykUOcryE/JiHUMMJouzE0fWWmz/QU=\",\"Replace\":null},{\"Path\":\"golang.org/x/text\",\"Version\":\"v0.13.0\",\"Sum\":\"h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=\",\"Replace\":null},{\"Path\":\"golang.org/x/tools\",\"Version\":\"v0.14.1-0.20231114185516-c9d3e7de13fd\",\"Sum\":\"h1:Oku7E+OCrXHyst1dG1z10etCTxewCHXNFLRlyMPbh3w=\",\"Replace\":null},{\"Path\":\"golang.org/x/vuln\",\"Version\":\"v1.0.1\",\"Sum\":\"h1:KUas02EjQK5LTuIx1OylBQdKKZ9jeugs+HiqO5HormU=\",\"Replace\":null},{\"Path\":\"honnef.co/go/tools\",\"Version\":\"v0.4.5\",\"Sum\":\"h1:YGD4H+SuIOOqsyoLOpZDWcieM28W47/zRO7f+9V3nvo=\",\"Replace\":null},{\"Path\":\"mvdan.cc/gofumpt\",\"Version\":\"v0.4.0\",\"Sum\":\"h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM=\",\"Replace\":null},{\"Path\":\"mvdan.cc/xurls/v2\",\"Version\":\"v2.4.0\",\"Sum\":\"h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc=\",\"Replace\":null}],\"Settings\":[{\"Key\":\"-buildmode\",\"Value\":\"exe\"},{\"Key\":\"-compiler\",\"Value\":\"gc\"},{\"Key\":\"DefaultGODEBUG\",\"Value\":\"panicnil=1\"},{\"Key\":\"CGO_ENABLED\",\"Value\":\"1\"},{\"Key\":\"CGO_CFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CPPFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CXXFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_LDFLAGS\",\"Value\":\"\"},{\"Key\":\"GOARCH\",\"Value\":\"amd64\"},{\"Key\":\"GOOS\",\"Value\":\"linux\"},{\"Key\":\"GOAMD64\",\"Value\":\"v1\"}],\"Version\":\"v0.14.2\"}"}},"id":0}
2024-06-10T16:21:58.839 helix_lsp::transport [INFO] gopls <- {"capabilities":{"callHierarchyProvider":true,"codeActionProvider":{"codeActionKinds":["quickfix","refactor.extract","refactor.inline","refactor.rewrite","source.fixAll","source.organizeImports"]},"codeLensProvider":{},"completionProvider":{"triggerCharacters":["."]},"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":true,"documentLinkProvider":{},"documentSymbolProvider":true,"executeCommandProvider":{"commands":["gopls.add_dependency","gopls.add_import","gopls.add_telemetry_counters","gopls.apply_fix","gopls.change_signature","gopls.check_upgrades","gopls.edit_go_directive","gopls.fetch_vulncheck_result","gopls.gc_details","gopls.generate","gopls.go_get_package","gopls.list_imports","gopls.list_known_packages","gopls.maybe_prompt_for_telemetry","gopls.mem_stats","gopls.regenerate_cgo","gopls.remove_dependency","gopls.reset_go_mod_diagnostics","gopls.run_go_work_command","gopls.run_govulncheck","gopls.run_tests","gopls.start_debugging","gopls.start_profile","gopls.stop_profile","gopls.test","gopls.tidy","gopls.toggle_gc_details","gopls.update_go_sum","gopls.upgrade_dependency","gopls.vendor","gopls.workspace_stats"]},"foldingRangeProvider":true,"hoverProvider":true,"implementationProvider":true,"inlayHintProvider":{},"referencesProvider":true,"renameProvider":{"prepareProvider":true},"selectionRangeProvider":true,"semanticTokensProvider":{"full":true,"legend":{"tokenModifiers":[],"tokenTypes":[]},"range":true},"signatureHelpProvider":{"triggerCharacters":["(",","]},"textDocumentSync":{"change":2,"openClose":true,"save":{}},"typeDefinitionProvider":true,"workspace":{"workspaceFolders":{"changeNotifications":"workspace/didChangeWorkspaceFolders","supported":true}},"workspaceSymbolProvider":true},"serverInfo":{"name":"gopls","version":"{\"GoVersion\":\"go1.21.6\",\"Path\":\"golang.org/x/tools/gopls\",\"Main\":{\"Path\":\"golang.org/x/tools/gopls\",\"Version\":\"v0.14.2\",\"Sum\":\"h1:sIw6vjZiuQ9S7s0auUUkHlWgsCkKZFWDHmrge8LYsnc=\",\"Replace\":null},\"Deps\":[{\"Path\":\"github.com/BurntSushi/toml\",\"Version\":\"v1.2.1\",\"Sum\":\"h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=\",\"Replace\":null},{\"Path\":\"github.com/google/go-cmp\",\"Version\":\"v0.5.9\",\"Sum\":\"h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=\",\"Replace\":null},{\"Path\":\"github.com/sergi/go-diff\",\"Version\":\"v1.1.0\",\"Sum\":\"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=\",\"Replace\":null},{\"Path\":\"golang.org/x/exp/typeparams\",\"Version\":\"v0.0.0-20221212164502-fae10dda9338\",\"Sum\":\"h1:2O2DON6y3XMJiQRAS1UWU+54aec2uopH3x7MAiqGW6Y=\",\"Replace\":null},{\"Path\":\"golang.org/x/mod\",\"Version\":\"v0.14.0\",\"Sum\":\"h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=\",\"Replace\":null},{\"Path\":\"golang.org/x/sync\",\"Version\":\"v0.4.0\",\"Sum\":\"h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=\",\"Replace\":null},{\"Path\":\"golang.org/x/sys\",\"Version\":\"v0.14.0\",\"Sum\":\"h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q=\",\"Replace\":null},{\"Path\":\"golang.org/x/telemetry\",\"Version\":\"v0.0.0-20231114163143-69313e640400\",\"Sum\":\"h1:brbkEFfGwNGAEkykUOcryE/JiHUMMJouzE0fWWmz/QU=\",\"Replace\":null},{\"Path\":\"golang.org/x/text\",\"Version\":\"v0.13.0\",\"Sum\":\"h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=\",\"Replace\":null},{\"Path\":\"golang.org/x/tools\",\"Version\":\"v0.14.1-0.20231114185516-c9d3e7de13fd\",\"Sum\":\"h1:Oku7E+OCrXHyst1dG1z10etCTxewCHXNFLRlyMPbh3w=\",\"Replace\":null},{\"Path\":\"golang.org/x/vuln\",\"Version\":\"v1.0.1\",\"Sum\":\"h1:KUas02EjQK5LTuIx1OylBQdKKZ9jeugs+HiqO5HormU=\",\"Replace\":null},{\"Path\":\"honnef.co/go/tools\",\"Version\":\"v0.4.5\",\"Sum\":\"h1:YGD4H+SuIOOqsyoLOpZDWcieM28W47/zRO7f+9V3nvo=\",\"Replace\":null},{\"Path\":\"mvdan.cc/gofumpt\",\"Version\":\"v0.4.0\",\"Sum\":\"h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM=\",\"Replace\":null},{\"Path\":\"mvdan.cc/xurls/v2\",\"Version\":\"v2.4.0\",\"Sum\":\"h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc=\",\"Replace\":null}],\"Settings\":[{\"Key\":\"-buildmode\",\"Value\":\"exe\"},{\"Key\":\"-compiler\",\"Value\":\"gc\"},{\"Key\":\"DefaultGODEBUG\",\"Value\":\"panicnil=1\"},{\"Key\":\"CGO_ENABLED\",\"Value\":\"1\"},{\"Key\":\"CGO_CFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CPPFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_CXXFLAGS\",\"Value\":\"\"},{\"Key\":\"CGO_LDFLAGS\",\"Value\":\"\"},{\"Key\":\"GOARCH\",\"Value\":\"amd64\"},{\"Key\":\"GOOS\",\"Value\":\"linux\"},{\"Key\":\"GOAMD64\",\"Value\":\"v1\"}],\"Version\":\"v0.14.2\"}"}}
2024-06-10T16:21:58.839 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"initialized","params":{}}
2024-06-10T16:21:58.839 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: None, method: "initialized", params: None })))
2024-06-10T16:21:58.839 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"hints":{"assignVariableTypes":true,"compositeLiteralFields":true,"constantValues":true,"functionTypeParameters":true,"parameterNames":true,"rangeVariableTypes":true}}}}
2024-06-10T16:21:58.839 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/workDoneProgress/create","params":{"token":"3299754501610098282"},"id":1}
2024-06-10T16:21:58.839 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"languageId":"go","text":"package main\n\nimport (\n\t\"bytes\"\n\t\"cmp\"\n\t\"os/exec\"\n\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/parser\"\n\t\"go/token\"\n\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"slices\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/davecgh/go-spew/spew\"\n\t\"github.com/getkin/kin-openapi/openapi3\"\n\t\"github.com/rbretecher/go-postman-collection\"\n\t\"golang.org/x/text/cases\"\n\t\"golang.org/x/text/language\"\n\n\t\"gopkg.in/yaml.v2\"\n\n\t_ \"gitlab.wildberries.ru/southdev/kwms/colib.git/app\"\n)\n\nfunc main() {\n\tif len(os.Args) < 2 {\n\t\tfmt.Println(\"Usage: go run main.go /path/to/colib\")\n\t\treturn\n\t}\n\n\ttag := getCurrentTag(os.Args[1])\n\n\tprintCollection(os.Args[1], \"wh-api-gateway \"+tag, \"api/whapigateway/openapi/spec.yml\")\n}\n\nfunc printCollection(rootDir, name, relativeOpenapiSpecPath string) {\n\topenapiSpecPath := filepath.Join(rootDir, relativeOpenapiSpecPath)\n\tloader := openapi3.NewLoader()\n\tloader.IsExternalRefsAllowed = true\n\tdoc, err := loader.LoadFromFile(openapiSpecPath)\n\tif err != nil {\n\t\tfmt.Printf(\"Error parsing OpenAPI spec: %v\\n\", err)\n\t\treturn\n\t}\n\n\tpaths := doc.Paths.Map()\n\torderedPathKeys := make([]string, 0, len(paths))\n\tfor p := range paths {\n\t\torderedPathKeys = append(orderedPathKeys, p)\n\t}\n\n\tsort.Strings(orderedPathKeys)\n\n\tcollection := postman.CreateCollection(name, \"Colib Specs\")\n\n\tfor _, path := range orderedPathKeys {\n\t\tpathItem := paths[path]\n\t\titems := make([]*postman.Items, 0, 16)\n\t\tvar auth *postman.Auth\n\n\t\tfor method, operation := range pathItem.Operations() {\n\t\t\tfmt.Printf(\"%s %s\\n\", method, path)\n\t\t\trequest := &postman.Request{\n\t\t\t\tDescription: operation.Summary,\n\t\t\t\tURL: &postman.URL{\n\t\t\t\t\tRaw: \"{{baseUrl}}\" + path,\n\t\t\t\t\tHost: []string{\"{{baseUrl}}\"},\n\t\t\t\t\tPath: strings.Split(strings.TrimPrefix(path, \"/\"), \"/\"),\n\t\t\t\t},\n\t\t\t\tMethod: postman.Method(strings.ToUpper(method)),\n\t\t\t}\n\n\t\t\tif false {\n\t\t\t\tspew.Dump(pathItem)\n\t\t\t}\n\n\t\t\tfor _, param := range operation.Parameters {\n\t\t\t\tswitch param.Value.In {\n\t\t\t\tcase openapi3.ParameterInPath:\n\t\t\t\t\tname := param.Value.Name\n\t\t\t\t\tcurlyName := \"{\" + name + \"}\"\n\t\t\t\t\tmustacheVar := createMustacheVariable(path, name)\n\t\t\t\t\tre := regexp.MustCompile(regexp.QuoteMeta(curlyName))\n\t\t\t\t\trequest.URL.Raw = re.ReplaceAllString(request.URL.Raw, mustacheVar)\n\t\t\t\t\tfor i, p := range request.URL.Path {\n\t\t\t\t\t\trequest.URL.Path[i] = strings.ReplaceAll(p, curlyName, mustacheVar)\n\t\t\t\t\t}\n\t\t\t\tcase openapi3.ParameterInHeader:\n\t\t\t\t\trequest.Header = append(request.Header, &postman.Header{\n\t\t\t\t\t\tKey: param.Value.Name,\n\t\t\t\t\t\tValue: fmt.Sprintf(\"%v\", param.Value.Example),\n\t\t\t\t\t\tDisabled: false,\n\t\t\t\t\t\tDescription: param.Value.Description,\n\t\t\t\t\t})\n\t\t\t\tcase openapi3.ParameterInCookie:\n\t\t\t\t\tpanic(\"TODO: parameter in cookie\")\n\t\t\t\tcase openapi3.ParameterInQuery:\n\t\t\t\t\tdescription := param.Value.Description\n\t\t\t\t\tif description != \"\" {\n\t\t\t\t\t\tdescription += \", \"\n\t\t\t\t\t}\n\t\t\t\t\tdescription += param.Value.Schema.Value.Format\n\t\t\t\t\trequest.URL.Query = append(request.URL.Query, &postman.QueryParam{\n\t\t\t\t\t\tKey: param.Value.Name,\n\t\t\t\t\t\tDisabled: !param.Value.Required,\n\t\t\t\t\t\tDescription: &description,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif operation.RequestBody != nil {\n\t\t\t\tfor contentType, mediaType := range operation.RequestBody.Value.Content {\n\t\t\t\t\trequest.Header = append(request.Header, &postman.Header{\n\t\t\t\t\t\tKey: \"Content-Type\",\n\t\t\t\t\t\tValue: contentType,\n\t\t\t\t\t})\n\n\t\t\t\t\tswitch contentType {\n\t\t\t\t\tcase \"application/json\":\n\t\t\t\t\t\ts := structForSpec(rootDir, path, openapiSpecPath, mediaType.Schema.Ref)\n\t\t\t\t\t\trequest.Body = &postman.Body{\n\t\t\t\t\t\t\tMode: \"raw\",\n\t\t\t\t\t\t\tRaw: string(s.marshal(0)),\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tpanic(\"unhandled content type: \" + contentType)\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\titem := postman.Item{\n\t\t\t\tName: operation.Summary,\n\t\t\t\tRequest: request,\n\t\t\t\tResponses: []*postman.Response{},\n\t\t\t}\n\n\t\t\titems = append(items, postman.CreateItem(item))\n\t\t}\n\n\t\tgroup := postman.CreateItemGroup(postman.ItemGroup{\n\t\t\tName: path,\n\t\t\tDescription: pathItem.Description,\n\t\t\t// Variables: []*postman.Variable{},\n\t\t\t// Events: []*postman.Event{},\n\t\t\t// ProtocolProfileBehavior: nil,\n\t\t\tItems: items,\n\t\t\tAuth: auth,\n\t\t})\n\n\t\tcollection.Items = append(collection.Items, group)\n\t}\n\n\tconst filename = \"collection.json\"\n\n\tfile, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)\n\tif err != nil {\n\t\tfmt.Printf(\"Error creating file: %v\\n\", err)\n\t\treturn\n\t}\n\tdefer file.Close()\n\n\terr = collection.Write(file, postman.V210)\n\tif err != nil {\n\t\tfmt.Printf(\"Error writing collection to %s: %v\\n\", filename, err)\n\t\treturn\n\t}\n}\n\n// createMustacheVariable creates a mustache-like variable for Postman\nfunc createMustacheVariable(path, param string) string {\n\tre := regexp.MustCompile(`[/\\-_]`)\n\tparts := re.Split(path, -1)\n\tcaser := cases.Title(language.English)\n\tvar varName string\n\tfor _, part := range parts {\n\t\tif part == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(part, \"{\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tvarName += caser.String(strings.ToLower(part))\n\t}\n\tfor _, part := range re.Split(param, -1) {\n\t\tvarName += caser.String(part)\n\t}\n\treturn fmt.Sprintf(\"{{%s}}\", varName)\n}\n\ntype OapiConfig struct {\n\tImportMapping map[string]string `yaml:\"import-mapping\"`\n}\n\nfunc near(a, b string) string {\n\treturn filepath.Join(filepath.Dir(a), b)\n}\n\nfunc structForSpec(root, urlpath, specpath, spec string) Struct {\n\toapiConfigPath := near(specpath, \"oapi-codegen.yml\")\n\n\toapiConfigData, err := os.ReadFile(oapiConfigPath)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tvar config OapiConfig\n\terr = yaml.Unmarshal(oapiConfigData, &config)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tparts := strings.Split(spec, \"#\")\n\tif len(parts) != 2 {\n\t\tpanic(fmt.Errorf(\"invalid spec string format\"))\n\t}\n\tsubSpecFile, objectPath := parts[0], parts[1]\n\n\t// Lookup the import-mapping for the sub spec YAML file\n\tgoPackagePath, exists := config.ImportMapping[subSpecFile]\n\tif !exists {\n\t\tpanic(fmt.Errorf(\"no import mapping found for %s\", subSpecFile))\n\t}\n\n\tname, object := extractObjectFromYAML(near(specpath, subSpecFile), objectPath)\n\tif len(object) != 0 {\n\t\t// in such case just return yaml converted to postman body\n\t\tpanic(\"object in yaml is not empty\")\n\t}\n\n\tprintln(\"package path:\", goPackagePath)\n\n\ts := makeSource(urlpath, getPackageDir(root, goPackagePath))\n\tt := s.getStruct(name)\n\treturn s.structToNode(t)\n}\n\nfunc (src Source) handleType(fieldType ast.Expr, name string, comment string) Node {\n\tswitch t := fieldType.(type) {\n\tcase *ast.StructType:\n\t\treturn src.structToNode(t)\n\tcase *ast.ArrayType:\n\t\treturn Array{\n\t\t\tItem: src.handleType(t.Elt, name+\"ArrayItem\", comment),\n\t\t\tComment: comment,\n\t\t}\n\tcase *ast.StarExpr:\n\t\tpanic(\"unhandled optional value: pointer is not implemented yet\")\n\tcase *ast.Ident:\n\t\tvalue := \"\"\n\t\tswitch t.Name {\n\t\tcase \"string\":\n\t\t\tvalue = fmt.Sprintf(\"\\\"%s\\\"\", createMustacheVariable(src.urlpath, name))\n\t\tcase \"int\", \"int8\", \"int16\", \"int32\", \"int64\",\n\t\t\t\"uint\", \"uint8\", \"uint16\", \"uint32\", \"uint64\", \"uintptr\",\n\t\t\t\"float32\", \"float64\", \"bool\", \"complex64\", \"complex128\":\n\t\t\tvalue = fmt.Sprintf(\"%s\", createMustacheVariable(src.urlpath, name))\n\t\tdefault:\n\t\t\tif s := src.getStruct(t.Name); s != nil {\n\t\t\t\treturn src.structToNode(s)\n\t\t\t}\n\t\t\tpanic(t.Name)\n\t\t}\n\n\t\tif comment == \"\" {\n\t\t\tcomment = t.Name\n\t\t} else {\n\t\t\tcomment = t.Name + \", \" + comment\n\t\t}\n\n\t\treturn Bare{\n\t\t\tValue: []byte(value),\n\t\t\tComment: comment,\n\t\t}\n\tcase *ast.SelectorExpr:\n\t\tif t.Sel != nil {\n\t\t\t// hacky\n\t\t\tswitch t.Sel.Name {\n\t\t\tcase \"UUID\":\n\t\t\t\treturn Bare{\n\t\t\t\t\tValue: []byte(createMustacheVariable(src.urlpath, name)),\n\t\t\t\t\tComment: \"UUID \" + comment,\n\t\t\t\t}\n\t\t\tcase \"Time\":\n\t\t\t\treturn Bare{\n\t\t\t\t\tValue: []byte(createMustacheVariable(src.urlpath, name)),\n\t\t\t\t\tComment: \"Time \" + comment,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tpanic(fmt.Sprintf(\"unknown type: %T: %+v: %s // %s\", fieldType, fieldType, name, comment))\n\tcase *ast.MapType, *ast.ChanType, *ast.FuncType, *ast.InterfaceType:\n\t\tpanic(fmt.Sprintf(\"unhandler composite type: %T\", fieldType))\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown type: %T: %+v: %s // %s\", fieldType, fieldType, name, comment))\n\t}\n}\n\nfunc (src Source) structToNode(structType *ast.StructType) Struct {\n\ts := Struct{\n\t\tChildren: make(map[string]Node),\n\t}\n\n\tfor _, field := range structType.Fields.List {\n\t\tvar fieldName string\n\t\tif len(field.Names) > 0 {\n\t\t\tfieldName = field.Names[0].Name\n\t\t} else {\n\t\t\tfieldName = fmt.Sprintf(\"%v\", field.Type)\n\t\t}\n\n\t\tjsonTag := getJSONTag(field.Tag)\n\t\tif jsonTag == \"\" {\n\t\t\tjsonTag = fieldName\n\t\t}\n\n\t\tvar cs []string\n\t\tif field.Comment != nil {\n\t\t\tfor _, c := range field.Comment.List {\n\t\t\t\tcs = append(cs, strings.TrimSpace(strings.TrimPrefix(c.Text, \"//\")))\n\t\t\t}\n\t\t}\n\t\tif field.Doc != nil {\n\t\t\tfor _, c := range field.Doc.List {\n\t\t\t\tcs = append(cs, strings.TrimSpace(strings.TrimPrefix(c.Text, \"//\")))\n\t\t\t}\n\t\t}\n\t\tcomment := strings.Join(cs, \" \")\n\n\t\ts.Children[jsonTag] = src.handleType(field.Type, jsonTag, comment)\n\t}\n\n\treturn s\n}\n\nfunc getPackageDir(rootDir, pkgPath string) string {\n\t// Convert package path to a file system path\n\tparts := strings.Split(pkgPath, \"/\")\n\n\tfor len(parts) > 0 {\n\t\trelevantPath := filepath.Join(parts...)\n\t\tpkgDir := filepath.Join(rootDir, relevantPath)\n\n\t\t// Check if the directory exists\n\t\tif _, err := os.Stat(pkgDir); err == nil {\n\t\t\treturn pkgDir\n\t\t}\n\n\t\t// Remove the first component and try again\n\t\tparts = parts[1:]\n\t}\n\n\tpanic(fmt.Sprintf(\"package directory for %s not found in root directory %s\", pkgPath, rootDir))\n}\n\nfunc extractObjectFromYAML(yamlPath, objectPath string) (string, map[any]any) {\n\tyamlData, err := os.ReadFile(yamlPath)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tvar yamlContent map[any]any\n\terr = yaml.Unmarshal(yamlData, &yamlContent)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tname := \"\"\n\tobject := yamlContent\n\tfor _, part := range strings.Split(objectPath, \"/\") {\n\t\tif part == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tif subObject, exists := object[part]; exists {\n\t\t\tobject = subObject.(map[any]any)\n\t\t\tname = part\n\t\t} else {\n\t\t\tpanic(fmt.Errorf(\"object path %s not found in %s\", objectPath, yamlPath))\n\t\t}\n\t}\n\n\treturn name, object\n}\n\ntype Source struct {\n\turlpath string\n\tpath string\n\tfiles []*ast.File\n}\n\nfunc makeSource(urlpath, pkgDir string) Source {\n\tfset := token.NewFileSet()\n\n\tvar files []*ast.File\n\n\t// Walk the package directory and collect all Go files\n\terr := filepath.Walk(pkgDir, func(path string, info os.FileInfo, err error) error {\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !info.IsDir() && strings.HasSuffix(info.Name(), \".go\") {\n\t\t\tfile, err := parser.ParseFile(fset, path, nil, parser.ParseComments)\n\t\t\tif err != nil {\n\t\t\t\tpanic(fmt.Sprintf(\"failed to parse file %s: %v\", path, err))\n\t\t\t}\n\t\t\tfiles = append(files, file)\n\t\t}\n\t\treturn nil\n\t})\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"failed to walk package directory: %v\", err))\n\t}\n\n\treturn Source{urlpath: urlpath, path: pkgDir, files: files}\n}\n\nfunc (src Source) getStruct(structName string) *ast.StructType {\n\tvar result *ast.StructType\n\n\t// Traverse the AST of each file to find the struct definition\n\tfor _, file := range src.files {\n\t\tast.Inspect(file, func(n ast.Node) bool {\n\t\t\tif genDecl, ok := n.(*ast.GenDecl); ok && genDecl.Tok == token.TYPE {\n\t\t\t\tfor _, spec := range genDecl.Specs {\n\t\t\t\t\tif typeSpec, ok := spec.(*ast.TypeSpec); ok {\n\t\t\t\t\t\tif typeSpec.Name.Name == structName {\n\t\t\t\t\t\t\tif structType, ok := typeSpec.Type.(*ast.StructType); ok {\n\t\t\t\t\t\t\t\tresult = structType\n\t\t\t\t\t\t\t\treturn false // Found the struct, stop traversing\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t}\n\n\treturn result\n}\n\n// Node interface represents a node in the tree.\ntype Node interface {\n\tsimple() bool\n\tsize() int\n}\n\n// Bare represents a leaf node with a string value and an optional comment.\ntype Bare struct {\n\tValue []byte\n\tComment string\n}\n\n// Struct represents a branch node with map of child nodes.\ntype Struct struct {\n\tChildren map[string]Node\n\tComment string\n}\n\n// Array represents a branch node with array of child nodes.\ntype Array struct {\n\tItem Node\n\tComment string\n}\n\nfunc (l Bare) simple() bool {\n\treturn true\n}\n\nfunc (l Struct) simple() bool {\n\treturn false\n}\n\nfunc (l Array) simple() bool {\n\treturn false\n}\n\nfunc (l Bare) size() int {\n\treturn 1\n}\n\nfunc (l Array) size() int {\n\treturn 3\n}\n\nfunc (l Struct) size() int {\n\ts := 2\n\tfor _, child := range l.Children {\n\t\ts += child.size()\n\t}\n\treturn s\n}\n\nfunc (s Struct) marshal(indent int) []byte {\n\tkeys := make([]string, 0, len(s.Children))\n\n\tfor k := range s.Children {\n\t\tkeys = append(keys, k)\n\t}\n\n\tslices.SortStableFunc(keys, func(a, b string) int {\n\t\tswitch cmp.Compare(s.Children[a].size(), s.Children[b].size()) {\n\t\tcase -1:\n\t\t\treturn -1\n\t\tcase 1:\n\t\t\treturn 1\n\t\tdefault:\n\t\t\treturn strings.Compare(a, b)\n\t\t}\n\t})\n\n\tformatBare := func(k string, v []byte, last bool) string {\n\t\tcomma := \",\"\n\t\tif last {\n\t\t\tcomma = \"\"\n\t\t}\n\t\treturn fmt.Sprintf(\"\\\"%s\\\": %s%s\", k, v, comma)\n\t}\n\n\tprefix := strings.Repeat(\" \", indent+4)\n\n\tcommentStart := 0\n\tfor i, k := range keys {\n\t\tlast := i+1 == len(keys)\n\t\tswitch v := s.Children[k].(type) {\n\t\tcase Bare:\n\t\t\ts := formatBare(k, v.Value, last)\n\t\t\tcommentStart = max(commentStart, len(s))\n\t\t}\n\t}\n\n\tvar buf bytes.Buffer\n\tbuf.WriteString(\"{\\n\")\n\n\tfor i, k := range keys {\n\t\tlast := i+1 == len(keys)\n\t\tswitch v := s.Children[k].(type) {\n\t\tcase Bare:\n\t\t\ts := formatBare(k, v.Value, last)\n\t\t\tpadding := strings.Repeat(\" \", commentStart-len(s))\n\t\t\tbuf.WriteString(fmt.Sprintf(\"%s%s%s // %s\\n\", prefix, s, padding, v.Comment))\n\t\tcase Struct:\n\t\t\tbuf.WriteString(fmt.Sprintf(\"%s\\\"%s\\\": %s\", prefix, k, v.marshal(indent+4)))\n\t\t\tif !last {\n\t\t\t\tbuf.WriteString(\",\")\n\t\t\t}\n\t\t\tbuf.WriteString(\"\\n\")\n\t\tcase Array:\n\t\t\tbuf.WriteString(fmt.Sprintf(\"%s\\\"%s\\\": %s\", prefix, k, v.marshal(indent+4)))\n\t\t\tif !last {\n\t\t\t\tbuf.WriteString(\",\")\n\t\t\t}\n\t\t\tbuf.WriteString(\"\\n\")\n\t\tdefault:\n\t\t\tpanic(\"bug: unhandled Node case\")\n\t\t}\n\t}\n\n\tbuf.WriteString(fmt.Sprintf(\"%s}\", strings.Repeat(\" \", indent)))\n\n\treturn buf.Bytes()\n}\n\nfunc (s Array) marshal(indent int) []byte {\n\tprefix := strings.Repeat(\" \", indent+4)\n\n\tvar buf bytes.Buffer\n\tbuf.WriteString(\"[\\n\")\n\n\tswitch v := s.Item.(type) {\n\tcase Bare:\n\t\tbuf.WriteString(fmt.Sprintf(\"%s%s // %s\\n\", prefix, v.Value, v.Comment))\n\tcase Struct:\n\t\tbuf.WriteString(fmt.Sprintf(\"%s%s\", prefix, v.marshal(indent+4)))\n\t\tbuf.WriteString(\"\\n\")\n\tcase Array:\n\t\tbuf.WriteString(fmt.Sprintf(\"%s%s\", prefix, v.marshal(indent+4)))\n\t\tbuf.WriteString(\"\\n\")\n\tdefault:\n\t\tpanic(\"bug: unhandled Node case\")\n\t}\n\n\tbuf.WriteString(fmt.Sprintf(\"%s]\", strings.Repeat(\" \", indent)))\n\n\treturn buf.Bytes()\n}\n\nfunc getJSONTag(tag *ast.BasicLit) string {\n\tif tag == nil {\n\t\treturn \"\"\n\t}\n\n\ttagValue := reflect.StructTag(strings.Trim(tag.Value, \"`\")).Get(\"json\")\n\tif tagValue == \"-\" {\n\t\treturn \"\"\n\t}\n\n\t// Extract the name before the comma (if any)\n\tif idx := strings.Index(tagValue, \",\"); idx != -1 {\n\t\treturn tagValue[:idx]\n\t}\n\treturn tagValue\n}\n\n// getCurrentTag returns the currently checked out tag for the given directory.\n// It panics if the repository is not tagged or if any error occurs.\nfunc getCurrentTag(dir string) string {\n\tcmd := exec.Command(\"git\", \"describe\", \"--tags\", \"--exact-match\")\n\tcmd.Dir = dir\n\n\tvar out bytes.Buffer\n\tcmd.Stdout = &out\n\tcmd.Stderr = &out\n\n\tif err := cmd.Run(); err != nil {\n\t\tpanic(fmt.Sprintf(\"failed to get current tag: %s\", out.String()))\n\t}\n\n\ttag := strings.TrimSpace(out.String())\n\tif tag == \"\" {\n\t\tpanic(\"no tag found\")\n\t}\n\n\treturn tag\n}\n","uri":"file:///home/z/project/wb/postman/main.go","version":0}}}
2024-06-10T16:21:58.839 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "window/workDoneProgress/create", params: Map({"token": String("3299754501610098282")}), id: Num(1) })))
2024-06-10T16:21:58.839 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":null,"id":1}
2024-06-10T16:21:58.839 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"3299754501610098282","value":{"kind":"begin","title":"Setting up workspace","message":"Loading packages..."}}}
2024-06-10T16:21:58.840 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "$/progress", params: Map({"token": String("3299754501610098282"), "value": Object {"kind": String("begin"), "message": String("Loading packages..."), "title": String("Setting up workspace")}}) })))
2024-06-10T16:21:58.840 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"workspace/configuration","params":{"items":[{"scopeUri":"file:///home/z/project/wb/postman","section":"gopls"}]},"id":2}
2024-06-10T16:21:58.840 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "workspace/configuration", params: Map({"items": Array [Object {"scopeUri": String("file:///home/z/project/wb/postman"), "section": String("gopls")}]}), id: Num(2) })))
2024-06-10T16:21:58.840 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":[null],"id":2}
2024-06-10T16:21:58.846 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"2024/06/10 16:21:58 go info for /home/z/project/wb/postman\n(go dir /home/z/project/wb/postman)\n(go version go version go1.22.1 linux/amd64)\n(valid build configuration = true)\n(build flags: [])\n(selected go env: [GO111MODULE=, GOCACHE=/home/z/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/z/.local/state/go/pkg/mod, GOPATH=/home/z/.local/state/go, GOPRIVATE=gitlab.wildberries.ru, GOROOT=/usr/local/go, GOWORK=])\n\n"}}
2024-06-10T16:21:58.846 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "window/logMessage", params: Map({"message": String("2024/06/10 16:21:58 go info for /home/z/project/wb/postman\n(go dir /home/z/project/wb/postman)\n(go version go version go1.22.1 linux/amd64)\n(valid build configuration = true)\n(build flags: [])\n(selected go env: [GO111MODULE=, GOCACHE=/home/z/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/z/.local/state/go/pkg/mod, GOPATH=/home/z/.local/state/go, GOPRIVATE=gitlab.wildberries.ru, GOROOT=/usr/local/go, GOWORK=])\n\n"), "type": Number(3)}) })))
2024-06-10T16:21:58.846 helix_term::application [INFO] window/logMessage: LogMessageParams { typ: Info, message: "2024/06/10 16:21:58 go info for /home/z/project/wb/postman\n(go dir /home/z/project/wb/postman)\n(go version go version go1.22.1 linux/amd64)\n(valid build configuration = true)\n(build flags: [])\n(selected go env: [GO111MODULE=, GOCACHE=/home/z/.cache/go-build, GOFLAGS=, GOMODCACHE=/home/z/.local/state/go/pkg/mod, GOPATH=/home/z/.local/state/go, GOPRIVATE=gitlab.wildberries.ru, GOROOT=/usr/local/go, GOWORK=])\n\n" }
2024-06-10T16:21:58.874 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:21:58.874 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:21:58.924 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"2024/06/10 16:21:58 go/packages.Load #1\n\tsnapshot=0\n\tdirectory=file:///home/z/project/wb/postman\n\tquery=[/home/z/project/wb/postman/... builtin]\n\tpackages=2\n"}}
2024-06-10T16:21:58.924 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "window/logMessage", params: Map({"message": String("2024/06/10 16:21:58 go/packages.Load #1\n\tsnapshot=0\n\tdirectory=file:///home/z/project/wb/postman\n\tquery=[/home/z/project/wb/postman/... builtin]\n\tpackages=2\n"), "type": Number(3)}) })))
2024-06-10T16:21:58.924 helix_term::application [INFO] window/logMessage: LogMessageParams { typ: Info, message: "2024/06/10 16:21:58 go/packages.Load #1\n\tsnapshot=0\n\tdirectory=file:///home/z/project/wb/postman\n\tquery=[/home/z/project/wb/postman/... builtin]\n\tpackages=2\n" }
2024-06-10T16:21:58.926 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"2024/06/10 16:21:58 go/packages.Load #1: updating metadata for 172 packages\n"}}
2024-06-10T16:21:58.926 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "window/logMessage", params: Map({"message": String("2024/06/10 16:21:58 go/packages.Load #1: updating metadata for 172 packages\n"), "type": Number(3)}) })))
2024-06-10T16:21:58.926 helix_term::application [INFO] window/logMessage: LogMessageParams { typ: Info, message: "2024/06/10 16:21:58 go/packages.Load #1: updating metadata for 172 packages\n" }
2024-06-10T16:21:58.944 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"$/progress","params":{"token":"3299754501610098282","value":{"kind":"end","message":"Finished loading packages."}}}
2024-06-10T16:21:58.944 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"client/registerCapability","params":{"registrations":[{"id":"workspace/didChangeWatchedFiles-0","method":"workspace/didChangeWatchedFiles","registerOptions":{"watchers":[{"globPattern":"**/*.{go,mod,sum,work}","kind":7}]}}]},"id":3}
2024-06-10T16:21:58.944 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "$/progress", params: Map({"token": String("3299754501610098282"), "value": Object {"kind": String("end"), "message": String("Finished loading packages.")}}) })))
2024-06-10T16:21:58.944 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "client/registerCapability", params: Map({"registrations": Array [Object {"id": String("workspace/didChangeWatchedFiles-0"), "method": String("workspace/didChangeWatchedFiles"), "registerOptions": Object {"watchers": Array [Object {"globPattern": String("**/*.{go,mod,sum,work}"), "kind": Number(7)}]}}]}), id: Num(3) })))
2024-06-10T16:21:58.944 helix_lsp::file_event [DEBUG] Registering didChangeWatchedFiles for client '0' with id 'workspace/didChangeWatchedFiles-0'
2024-06-10T16:21:58.944 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":null,"id":3}
2024-06-10T16:21:58.944 globset [DEBUG] glob converted to regex: Glob { glob: "**/*.{go,mod,sum,work}", re: "(?-u)^(?:/?|.*/).*\\.(?:work|sum|mod|go)$", opts: GlobOptions { case_insensitive: false, literal_separator: false, backslash_escape: true, empty_alternates: false }, tokens: Tokens([RecursivePrefix, ZeroOrMore, Literal('.'), Alternates([Tokens([Literal('w'), Literal('o'), Literal('r'), Literal('k')]), Tokens([Literal('s'), Literal('u'), Literal('m')]), Tokens([Literal('m'), Literal('o'), Literal('d')]), Tokens([Literal('g'), Literal('o')])])]) }
2024-06-10T16:21:58.944 globset [DEBUG] built glob set; 0 literals, 0 basenames, 0 extensions, 0 prefixes, 0 suffixes, 0 required extensions, 1 regexes
2024-06-10T16:21:58.944 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"workspace/configuration","params":{"items":[{"section":"gopls"}]},"id":4}
2024-06-10T16:21:58.945 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "workspace/configuration", params: Map({"items": Array [Object {"section": String("gopls")}]}), id: Num(4) })))
2024-06-10T16:21:58.945 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":[null],"id":4}
2024-06-10T16:21:58.945 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"workspace/configuration","params":{"items":[{"scopeUri":"file:///home/z/project/wb/postman","section":"gopls"}]},"id":5}
2024-06-10T16:21:58.945 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, MethodCall(MethodCall { jsonrpc: Some(V2), method: "workspace/configuration", params: Map({"items": Array [Object {"scopeUri": String("file:///home/z/project/wb/postman"), "section": String("gopls")}]}), id: Num(5) })))
2024-06-10T16:21:58.945 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","result":[null],"id":5}
2024-06-10T16:21:58.958 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:21:58.959 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:21:58.989 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/z/project/wb/postman/main.go","diagnostics":[]}}
2024-06-10T16:21:58.989 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "textDocument/publishDiagnostics", params: Map({"diagnostics": Array [], "uri": String("file:///home/z/project/wb/postman/main.go")}) })))
2024-06-10T16:21:59.023 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:21:59.024 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:21:59.060 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:21:59.060 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/inlayHint","params":{"range":{"end":{"character":0,"line":88},"start":{"character":0,"line":0}},"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}},"id":1}
2024-06-10T16:21:59.067 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":[{"position":{"line":33,"character":14},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":37,"character":4},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":37,"character":22},"label":[{"value":"dir:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":17},"label":[{"value":"rootDir:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":29},"label":[{"value":"name:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":52},"label":[{"value":"relativeOpenapiSpecPath:"}],"kind":2,"paddingRight":true},{"position":{"line":43,"character":16},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":43,"character":34},"label":[{"value":"elem...:"}],"kind":2,"paddingRight":true},{"position":{"line":44,"character":7},"label":[{"value":"*openapi3.Loader"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":4},"label":[{"value":"*openapi3.T"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":9},"label":[{"value":"error"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":33},"label":[{"value":"location:"}],"kind":2,"paddingRight":true},{"position":{"line":48,"character":13},"label":[{"value":"format:"}],"kind":2,"paddingRight":true},{"position":{"line":48,"character":49},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":52,"character":6},"label":[{"value":"map[string]*openapi3.PathItem"}],"kind":1,"paddingLeft":true},{"position":{"line":53,"character":16},"label":[{"value":"[]string"}],"kind":1,"paddingLeft":true},{"position":{"line":54,"character":6},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":58,"character":14},"label":[{"value":"x:"}],"kind":2,"paddingRight":true},{"position":{"line":60,"character":11},"label":[{"value":"*postman.Collection"}],"kind":1,"paddingLeft":true},{"position":{"line":60,"character":46},"label":[{"value":"desc:"}],"kind":2,"paddingRight":true},{"position":{"line":62,"character":6},"label":[{"value":"int"}],"kind":1,"paddingLeft":true},{"position":{"line":62,"character":12},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":63,"character":10},"label":[{"value":"*openapi3.PathItem"}],"kind":1,"paddingLeft":true},{"position":{"line":64,"character":7},"label":[{"value":"[]*postman.Items"}],"kind":1,"paddingLeft":true},{"position":{"line":67,"character":12},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":67,"character":23},"label":[{"value":"*openapi3.Operation"}],"kind":1,"paddingLeft":true},{"position":{"line":68,"character":14},"label":[{"value":"format:"}],"kind":2,"paddingRight":true},{"position":{"line":68,"character":25},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":69,"character":10},"label":[{"value":"*postman.Request"}],"kind":1,"paddingLeft":true},{"position":{"line":74,"character":25},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":56},"label":[{"value":"sep:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":44},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":50},"label":[{"value":"prefix:"}],"kind":2,"paddingRight":true},{"position":{"line":76,"character":43},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":80,"character":14},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":83,"character":8},"label":[{"value":"int"}],"kind":1,"paddingLeft":true},{"position":{"line":83,"character":15},"label":[{"value":"*openapi3.ParameterRef"}],"kind":1,"paddingLeft":true},{"position":{"line":86,"character":9},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":87,"character":14},"label":[{"value":"string"}],"kind":1,"paddingLeft":true}],"id":1}
2024-06-10T16:21:59.068 helix_lsp::transport [INFO] gopls <- [{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":14,"line":33}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":4,"line":37}},{"kind":2,"label":[{"value":"dir:"}],"paddingRight":true,"position":{"character":22,"line":37}},{"kind":2,"label":[{"value":"rootDir:"}],"paddingRight":true,"position":{"character":17,"line":39}},{"kind":2,"label":[{"value":"name:"}],"paddingRight":true,"position":{"character":29,"line":39}},{"kind":2,"label":[{"value":"relativeOpenapiSpecPath:"}],"paddingRight":true,"position":{"character":52,"line":39}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":16,"line":43}},{"kind":2,"label":[{"value":"elem...:"}],"paddingRight":true,"position":{"character":34,"line":43}},{"kind":1,"label":[{"value":"*openapi3.Loader"}],"paddingLeft":true,"position":{"character":7,"line":44}},{"kind":1,"label":[{"value":"*openapi3.T"}],"paddingLeft":true,"position":{"character":4,"line":46}},{"kind":1,"label":[{"value":"error"}],"paddingLeft":true,"position":{"character":9,"line":46}},{"kind":2,"label":[{"value":"location:"}],"paddingRight":true,"position":{"character":33,"line":46}},{"kind":2,"label":[{"value":"format:"}],"paddingRight":true,"position":{"character":13,"line":48}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":49,"line":48}},{"kind":1,"label":[{"value":"map[string]*openapi3.PathItem"}],"paddingLeft":true,"position":{"character":6,"line":52}},{"kind":1,"label":[{"value":"[]string"}],"paddingLeft":true,"position":{"character":16,"line":53}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":6,"line":54}},{"kind":2,"label":[{"value":"x:"}],"paddingRight":true,"position":{"character":14,"line":58}},{"kind":1,"label":[{"value":"*postman.Collection"}],"paddingLeft":true,"position":{"character":11,"line":60}},{"kind":2,"label":[{"value":"desc:"}],"paddingRight":true,"position":{"character":46,"line":60}},{"kind":1,"label":[{"value":"int"}],"paddingLeft":true,"position":{"character":6,"line":62}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":12,"line":62}},{"kind":1,"label":[{"value":"*openapi3.PathItem"}],"paddingLeft":true,"position":{"character":10,"line":63}},{"kind":1,"label":[{"value":"[]*postman.Items"}],"paddingLeft":true,"position":{"character":7,"line":64}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":12,"line":67}},{"kind":1,"label":[{"value":"*openapi3.Operation"}],"paddingLeft":true,"position":{"character":23,"line":67}},{"kind":2,"label":[{"value":"format:"}],"paddingRight":true,"position":{"character":14,"line":68}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":25,"line":68}},{"kind":1,"label":[{"value":"*postman.Request"}],"paddingLeft":true,"position":{"character":10,"line":69}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":25,"line":74}},{"kind":2,"label":[{"value":"sep:"}],"paddingRight":true,"position":{"character":56,"line":74}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":44,"line":74}},{"kind":2,"label":[{"value":"prefix:"}],"paddingRight":true,"position":{"character":50,"line":74}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":43,"line":76}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":14,"line":80}},{"kind":1,"label":[{"value":"int"}],"paddingLeft":true,"position":{"character":8,"line":83}},{"kind":1,"label":[{"value":"*openapi3.ParameterRef"}],"paddingLeft":true,"position":{"character":15,"line":83}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":9,"line":86}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":14,"line":87}}]
2024-06-10T16:21:59.069 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:21:59.691 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:21:59.941 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:21:59.959 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(2), exact=true) extracted before optimization: Seq[E("M"), E("m")]
2024-06-10T16:21:59.959 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(2), exact=true) extracted after optimization: Seq[E("M"), E("m")]
2024-06-10T16:21:59.959 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 2 literals: [E("M"), E("m")]
2024-06-10T16:21:59.959 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:21:59.960 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:00.009 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/z/project/wb/postman/go.mod","diagnostics":[{"range":{"start":{"line":12,"character":1},"end":{"line":12,"character":57}},"severity":2,"source":"go mod tidy","message":"golang.org/x/tools is not used in this module"},{"range":{"start":{"line":27,"character":1},"end":{"line":27,"character":25}},"severity":2,"source":"go mod tidy","message":"golang.org/x/mod is not used in this module"},{"range":{"start":{"line":28,"character":1},"end":{"line":28,"character":25}},"severity":2,"source":"go mod tidy","message":"golang.org/x/sync is not used in this module"}]}}
2024-06-10T16:22:00.009 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "textDocument/publishDiagnostics", params: Map({"diagnostics": Array [Object {"message": String("golang.org/x/tools is not used in this module"), "range": Object {"end": Object {"character": Number(57), "line": Number(12)}, "start": Object {"character": Number(1), "line": Number(12)}}, "severity": Number(2), "source": String("go mod tidy")}, Object {"message": String("golang.org/x/mod is not used in this module"), "range": Object {"end": Object {"character": Number(25), "line": Number(27)}, "start": Object {"character": Number(1), "line": Number(27)}}, "severity": Number(2), "source": String("go mod tidy")}, Object {"message": String("golang.org/x/sync is not used in this module"), "range": Object {"end": Object {"character": Number(25), "line": Number(28)}, "start": Object {"character": Number(1), "line": Number(28)}}, "severity": Number(2), "source": String("go mod tidy")}], "uri": String("file:///home/z/project/wb/postman/go.mod")}) })))
2024-06-10T16:22:00.044 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:22:00.045 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:00.215 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(4), exact=true) extracted before optimization: Seq[E("MA"), E("Ma"), E("mA"), E("ma")]
2024-06-10T16:22:00.215 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(4), exact=true) extracted after optimization: Seq[E("MA"), E("Ma"), E("mA"), E("ma")]
2024-06-10T16:22:00.215 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 4 literals: [E("MA"), E("Ma"), E("mA"), E("ma")]
2024-06-10T16:22:00.215 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:22:00.216 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:00.217 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(8), exact=true) extracted before optimization: Seq[E("MAI"), E("MAi"), E("MaI"), E("Mai"), E("mAI"), E("mAi"), E("maI"), E("mai")]
2024-06-10T16:22:00.217 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(8), exact=true) extracted after optimization: Seq[E("MAI"), E("MAi"), E("MaI"), E("Mai"), E("mAI"), E("mAi"), E("maI"), E("mai")]
2024-06-10T16:22:00.217 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 8 literals: [E("MAI"), E("MAi"), E("MaI"), E("Mai"), E("mAI"), E("mAi"), E("maI"), E("mai")]
2024-06-10T16:22:00.217 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:22:00.218 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:00.424 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted before optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:22:00.424 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted after optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:22:00.424 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 16 literals: [E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:22:00.424 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:22:00.425 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:01.009 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted before optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:22:01.009 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted after optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:22:01.009 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 16 literals: [E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:22:01.009 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:22:01.010 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:01.340 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted before optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:22:01.340 regex_cursor::util::prefilter [DEBUG] prefixes (len=Some(16), exact=true) extracted after optimization: Seq[E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:22:01.340 regex_cursor::engines::meta::strategy [DEBUG] trying to bypass regex engine by creating prefilter from 16 literals: [E("MAIN"), E("MAIn"), E("MAiN"), E("MAin"), E("MaIN"), E("MaIn"), E("MaiN"), E("Main"), E("mAIN"), E("mAIn"), E("mAiN"), E("mAin"), E("maIN"), E("maIn"), E("maiN"), E("main")]
2024-06-10T16:22:01.340 regex_cursor::engines::meta::strategy [DEBUG] found that the regex can be broken down to a literal search, avoiding the regex engine entirely
2024-06-10T16:22:01.341 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:01.592 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:22:03.005 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:03.256 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:22:04.849 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/prepareRename","params":{"position":{"character":8,"line":31},"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}},"id":2}
2024-06-10T16:22:04.850 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:04.851 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":{"range":{"start":{"line":31,"character":5},"end":{"line":31,"character":9}},"placeholder":"main"},"id":2}
2024-06-10T16:22:04.851 helix_lsp::transport [INFO] gopls <- {"placeholder":"main","range":{"end":{"character":9,"line":31},"start":{"character":5,"line":31}}}
2024-06-10T16:22:04.852 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:05.101 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:22:05.705 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:06.155 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/rename","params":{"newName":"mainx","position":{"character":8,"line":31},"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}},"id":3}
2024-06-10T16:22:06.157 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":{"documentChanges":[{"textDocument":{"version":0,"uri":"file:///home/z/project/wb/postman/main.go"},"edits":[{"range":{"start":{"line":31,"character":5},"end":{"line":31,"character":9}},"newText":"mainx"}]}]},"id":3}
2024-06-10T16:22:06.157 helix_lsp::transport [INFO] gopls <- {"documentChanges":[{"edits":[{"newText":"mainx","range":{"end":{"character":9,"line":31},"start":{"character":5,"line":31}}}],"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go","version":0}}]}
2024-06-10T16:22:06.160 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"range":{"end":{"character":9,"line":31},"start":{"character":5,"line":31}},"text":"mainx"}],"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go","version":1}}}
2024-06-10T16:22:06.170 helix_vcs::diff::worker [INFO] Diff computation timed out, update of diffs might appear delayed
2024-06-10T16:22:06.171 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 1
2024-06-10T16:22:07.043 helix_view::view [DEBUG] Syncing view ViewId(2v1) between 1 and 0
2024-06-10T16:22:07.043 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"contentChanges":[{"range":{"end":{"character":10,"line":31},"start":{"character":5,"line":31}},"text":"main"}],"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go","version":2}}}
2024-06-10T16:22:07.044 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:07.291 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:22:07.291 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"textDocument/inlayHint","params":{"range":{"end":{"character":0,"line":88},"start":{"character":0,"line":0}},"textDocument":{"uri":"file:///home/z/project/wb/postman/main.go"}},"id":4}
2024-06-10T16:22:07.298 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":[{"position":{"line":33,"character":14},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":37,"character":4},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":37,"character":22},"label":[{"value":"dir:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":17},"label":[{"value":"rootDir:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":29},"label":[{"value":"name:"}],"kind":2,"paddingRight":true},{"position":{"line":39,"character":52},"label":[{"value":"relativeOpenapiSpecPath:"}],"kind":2,"paddingRight":true},{"position":{"line":43,"character":16},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":43,"character":34},"label":[{"value":"elem...:"}],"kind":2,"paddingRight":true},{"position":{"line":44,"character":7},"label":[{"value":"*openapi3.Loader"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":4},"label":[{"value":"*openapi3.T"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":9},"label":[{"value":"error"}],"kind":1,"paddingLeft":true},{"position":{"line":46,"character":33},"label":[{"value":"location:"}],"kind":2,"paddingRight":true},{"position":{"line":48,"character":13},"label":[{"value":"format:"}],"kind":2,"paddingRight":true},{"position":{"line":48,"character":49},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":52,"character":6},"label":[{"value":"map[string]*openapi3.PathItem"}],"kind":1,"paddingLeft":true},{"position":{"line":53,"character":16},"label":[{"value":"[]string"}],"kind":1,"paddingLeft":true},{"position":{"line":54,"character":6},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":58,"character":14},"label":[{"value":"x:"}],"kind":2,"paddingRight":true},{"position":{"line":60,"character":11},"label":[{"value":"*postman.Collection"}],"kind":1,"paddingLeft":true},{"position":{"line":60,"character":46},"label":[{"value":"desc:"}],"kind":2,"paddingRight":true},{"position":{"line":62,"character":6},"label":[{"value":"int"}],"kind":1,"paddingLeft":true},{"position":{"line":62,"character":12},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":63,"character":10},"label":[{"value":"*openapi3.PathItem"}],"kind":1,"paddingLeft":true},{"position":{"line":64,"character":7},"label":[{"value":"[]*postman.Items"}],"kind":1,"paddingLeft":true},{"position":{"line":67,"character":12},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":67,"character":23},"label":[{"value":"*openapi3.Operation"}],"kind":1,"paddingLeft":true},{"position":{"line":68,"character":14},"label":[{"value":"format:"}],"kind":2,"paddingRight":true},{"position":{"line":68,"character":25},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":69,"character":10},"label":[{"value":"*postman.Request"}],"kind":1,"paddingLeft":true},{"position":{"line":74,"character":25},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":56},"label":[{"value":"sep:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":44},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":74,"character":50},"label":[{"value":"prefix:"}],"kind":2,"paddingRight":true},{"position":{"line":76,"character":43},"label":[{"value":"s:"}],"kind":2,"paddingRight":true},{"position":{"line":80,"character":14},"label":[{"value":"a...:"}],"kind":2,"paddingRight":true},{"position":{"line":83,"character":8},"label":[{"value":"int"}],"kind":1,"paddingLeft":true},{"position":{"line":83,"character":15},"label":[{"value":"*openapi3.ParameterRef"}],"kind":1,"paddingLeft":true},{"position":{"line":86,"character":9},"label":[{"value":"string"}],"kind":1,"paddingLeft":true},{"position":{"line":87,"character":14},"label":[{"value":"string"}],"kind":1,"paddingLeft":true}],"id":4}
2024-06-10T16:22:07.298 helix_lsp::transport [INFO] gopls <- [{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":14,"line":33}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":4,"line":37}},{"kind":2,"label":[{"value":"dir:"}],"paddingRight":true,"position":{"character":22,"line":37}},{"kind":2,"label":[{"value":"rootDir:"}],"paddingRight":true,"position":{"character":17,"line":39}},{"kind":2,"label":[{"value":"name:"}],"paddingRight":true,"position":{"character":29,"line":39}},{"kind":2,"label":[{"value":"relativeOpenapiSpecPath:"}],"paddingRight":true,"position":{"character":52,"line":39}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":16,"line":43}},{"kind":2,"label":[{"value":"elem...:"}],"paddingRight":true,"position":{"character":34,"line":43}},{"kind":1,"label":[{"value":"*openapi3.Loader"}],"paddingLeft":true,"position":{"character":7,"line":44}},{"kind":1,"label":[{"value":"*openapi3.T"}],"paddingLeft":true,"position":{"character":4,"line":46}},{"kind":1,"label":[{"value":"error"}],"paddingLeft":true,"position":{"character":9,"line":46}},{"kind":2,"label":[{"value":"location:"}],"paddingRight":true,"position":{"character":33,"line":46}},{"kind":2,"label":[{"value":"format:"}],"paddingRight":true,"position":{"character":13,"line":48}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":49,"line":48}},{"kind":1,"label":[{"value":"map[string]*openapi3.PathItem"}],"paddingLeft":true,"position":{"character":6,"line":52}},{"kind":1,"label":[{"value":"[]string"}],"paddingLeft":true,"position":{"character":16,"line":53}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":6,"line":54}},{"kind":2,"label":[{"value":"x:"}],"paddingRight":true,"position":{"character":14,"line":58}},{"kind":1,"label":[{"value":"*postman.Collection"}],"paddingLeft":true,"position":{"character":11,"line":60}},{"kind":2,"label":[{"value":"desc:"}],"paddingRight":true,"position":{"character":46,"line":60}},{"kind":1,"label":[{"value":"int"}],"paddingLeft":true,"position":{"character":6,"line":62}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":12,"line":62}},{"kind":1,"label":[{"value":"*openapi3.PathItem"}],"paddingLeft":true,"position":{"character":10,"line":63}},{"kind":1,"label":[{"value":"[]*postman.Items"}],"paddingLeft":true,"position":{"character":7,"line":64}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":12,"line":67}},{"kind":1,"label":[{"value":"*openapi3.Operation"}],"paddingLeft":true,"position":{"character":23,"line":67}},{"kind":2,"label":[{"value":"format:"}],"paddingRight":true,"position":{"character":14,"line":68}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":25,"line":68}},{"kind":1,"label":[{"value":"*postman.Request"}],"paddingLeft":true,"position":{"character":10,"line":69}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":25,"line":74}},{"kind":2,"label":[{"value":"sep:"}],"paddingRight":true,"position":{"character":56,"line":74}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":44,"line":74}},{"kind":2,"label":[{"value":"prefix:"}],"paddingRight":true,"position":{"character":50,"line":74}},{"kind":2,"label":[{"value":"s:"}],"paddingRight":true,"position":{"character":43,"line":76}},{"kind":2,"label":[{"value":"a...:"}],"paddingRight":true,"position":{"character":14,"line":80}},{"kind":1,"label":[{"value":"int"}],"paddingLeft":true,"position":{"character":8,"line":83}},{"kind":1,"label":[{"value":"*openapi3.ParameterRef"}],"paddingLeft":true,"position":{"character":15,"line":83}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":9,"line":86}},{"kind":1,"label":[{"value":"string"}],"paddingLeft":true,"position":{"character":14,"line":87}}]
2024-06-10T16:22:07.299 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:08.076 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:08.103 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:///home/z/project/wb/postman/main.go","version":2,"diagnostics":[]}}
2024-06-10T16:22:08.104 helix_term::application [DEBUG] received editor event: LanguageServerMessage((0, Notification(Notification { jsonrpc: Some(V2), method: "textDocument/publishDiagnostics", params: Map({"diagnostics": Array [], "uri": String("file:///home/z/project/wb/postman/main.go"), "version": Number(2)}) })))
2024-06-10T16:22:08.138 helix_term::application [DEBUG] received editor event: Redraw
2024-06-10T16:22:08.139 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:08.325 helix_term::application [DEBUG] received editor event: IdleTimer
2024-06-10T16:22:08.359 helix_term::commands::typed [DEBUG] quitting...
2024-06-10T16:22:08.360 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:08.749 helix_term::commands::typed [DEBUG] quitting...
2024-06-10T16:22:08.749 helix_view::document [DEBUG] id 1 modified - last saved: 0, current: 0
2024-06-10T16:22:08.749 helix_term::job [DEBUG] waiting on jobs...
2024-06-10T16:22:08.749 helix_term::job [DEBUG] waiting on jobs...
2024-06-10T16:22:08.750 helix_lsp::file_event [DEBUG] Removing LSP client: 0
2024-06-10T16:22:08.750 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"shutdown","id":5}
2024-06-10T16:22:08.751 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","result":null,"id":5}
2024-06-10T16:22:08.751 helix_lsp::transport [INFO] gopls <- null
2024-06-10T16:22:08.751 helix_lsp::transport [INFO] gopls <- {"jsonrpc":"2.0","method":"window/logMessage","params":{"type":3,"message":"2024/06/10 16:22:08 Shutdown session\n\tshutdown_session=1\n"}}
2024-06-10T16:22:08.751 helix_lsp::transport [INFO] gopls -> {"jsonrpc":"2.0","method":"exit"}
2024-06-10T16:22:08.751 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:22:08.752 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:22:08.752 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:22:08.753 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:22:08.753 mio::poll [TRACE] deregistering event source from poller
2024-06-10T16:22:08.753 mio::poll [TRACE] deregistering event source from poller
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment