11package view
22
33import (
4+ "encoding/csv"
45 "fmt"
56 "io"
67 "os"
@@ -116,7 +117,7 @@ func prepareTitle(text string) string {
116117 return tview .Escape (text )
117118}
118119
119- func issueKeyFromTuiData (r int , d interface {} ) string {
120+ func issueKeyFromTuiData (r int , d any ) string {
120121 var path string
121122
122123 switch data := d .(type ) {
@@ -129,24 +130,24 @@ func issueKeyFromTuiData(r int, d interface{}) string {
129130 return path
130131}
131132
132- func jiraURLFromTuiData (server string , r int , d interface {} ) string {
133+ func jiraURLFromTuiData (server string , r int , d any ) string {
133134 return cmdutil .GenerateServerBrowseURL (server , issueKeyFromTuiData (r , d ))
134135}
135136
136137func navigate (server string ) tui.SelectedFunc {
137- return func (r , _ int , d interface {} ) {
138+ return func (r , _ int , d any ) {
138139 _ = browser .Browse (jiraURLFromTuiData (server , r , d ))
139140 }
140141}
141142
142143func copyURL (server string ) tui.CopyFunc {
143- return func (r , _ int , d interface {} ) {
144+ return func (r , _ int , d any ) {
144145 _ = clipboard .WriteAll (jiraURLFromTuiData (server , r , d ))
145146 }
146147}
147148
148149func copyKey () tui.CopyKeyFunc {
149- return func (r , _ int , d interface {} ) {
150+ return func (r , _ int , d any ) {
150151 _ = clipboard .WriteAll (issueKeyFromTuiData (r , d ))
151152 }
152153}
@@ -169,6 +170,22 @@ func renderPlain(w io.Writer, data tui.TableData) error {
169170 return nil
170171}
171172
173+ func renderCSV (w io.Writer , data tui.TableData ) error {
174+ csvwrt := csv .NewWriter (w )
175+
176+ for _ , items := range data {
177+ if err := csvwrt .Write (items ); err != nil {
178+ return err
179+ }
180+ }
181+
182+ csvwrt .Flush ()
183+ if err := csvwrt .Error (); err != nil {
184+ return err
185+ }
186+ return nil
187+ }
188+
172189func unescape (s string ) string {
173190 pattern := regexp .MustCompile (`(\[[a-zA-Z0-9_,;: \-\."#]+\[*)\[\]` )
174191 return pattern .ReplaceAllString (s , "$1]" )
0 commit comments