Skip to content

Instantly share code, notes, and snippets.

@growler
Created February 25, 2015 14:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save growler/ea83fe19845daf86f707 to your computer and use it in GitHub Desktop.
Save growler/ea83fe19845daf86f707 to your computer and use it in GitHub Desktop.
Golang IDEA plugin bug
package cli
import (
"time"
)
// @short Returns its parameter
// @cmd echo <string>:text
func echo(text string) string {
return text
}
// @short Returns server time
// @cmd show server time
// @cmd get server time
func get_server_time() time.Time {
return time.Now()
}
// @short here goes an unnecessary long command
// @cmd debug idea patience for tree with nested level more than <number>:depth
func debug_ide(depth int) string {
return "Ok!"
}
// DO NOT EDIT. THIS IS FILE IS GENERATED AUTOMAGICALLY. ANY CHANGE WILL BE LOST.
package cli
import (
"bytes"
"encoding/json"
"errors"
"fmt"
"io"
"net"
"net/textproto"
"strings"
"sync/atomic"
"text/template"
)
type session struct {
*textproto.Conn
netConn net.Conn
lineBuffer bytes.Buffer
requestId uint32
sessionId uint32
outType int
closed bool
}
type θ_parse_node struct {
name string
ident bool
bindings []int
action func(*session, []string) error
doc string
next []θ_parse_node
}
func (s *session) θ_echo(p []string) (err error) {
ret := echo(p[0])
err = s.θ_writeResponse(ret, nil)
if err != nil {
return err
} else {
return s.θ_writeOk()
}
}
func (s *session) θ_get_server_time(p []string) (err error) {
ret := get_server_time()
err = s.θ_writeResponse(ret, nil)
if err != nil {
return err
} else {
return s.θ_writeOk()
}
}
func (s *session) θ_get_server_time(p []string) (err error) {
ret := get_server_time()
err = s.θ_writeResponse(ret, nil)
if err != nil {
return err
} else {
return s.θ_writeOk()
}
}
func (s *session) θ_debug_ide(p []string) (err error) {
p0, err := s.parse_number(p[0])
if err != nil {
return s.θ_writeError(err)
}
ret := debug_ide(p0)
err = s.θ_writeResponse(ret, nil)
if err != nil {
return err
} else {
return s.θ_writeOk()
}
}
var θ_parse_tree = θ_parse_node{"", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"debug", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"idea", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"patience", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"for", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"tree", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"with", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"nested", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"level", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"more", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"than", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"<number>", false, []int{0}, (*session).θ_debug_ide, "here goes an unnecessary long command", []θ_parse_node{}}}}}}}}}}}}}}}}}}}}}}, θ_parse_node{"echo", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"<string>", false, []int{0}, (*session).θ_echo, "Returns its parameter", []θ_parse_node{}}}}, θ_parse_node{"get", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"output", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"type", true, []int{}, (*session).θ_get_output_type, "returns current output type", []θ_parse_node{}}}}, θ_parse_node{"server", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"time", true, []int{}, (*session).θ_get_server_time, "Returns server time", []θ_parse_node{}}}}}}, θ_parse_node{"quit", true, []int{}, (*session).θ_quit, "closes CLI connection", []θ_parse_node{}}, θ_parse_node{"set", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"output", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"type", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"to", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"<string>", false, []int{0}, (*session).θ_set_output_type, "sets current output type (either json or text)", []θ_parse_node{}}}}}}}}}}, θ_parse_node{"show", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"server", true, []int{}, nil, "", []θ_parse_node{θ_parse_node{"time", true, []int{}, (*session).θ_get_server_time, "Returns server time", []θ_parse_node{}}}}}}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment