@@ -5,15 +5,13 @@ import (
55 "encoding/json"
66 "flag"
77 "fmt"
8- "io"
98 "log"
109 "net"
1110 "os"
1211 "os/signal"
1312 "path/filepath"
1413 "sync"
1514 "syscall"
16- "time"
1715
1816 "github.com/google/uuid"
1917 multierror "github.com/hashicorp/go-multierror"
@@ -24,7 +22,6 @@ import (
2422
2523var (
2624 proxyAddr = flag .String ("proxyAddress" , "127.0.0.1:8080" , "proxy server listen address (tcp)" )
27- lspAddr = flag .String ("lspAddress" , "" , "language server listen address (tcp)" )
2825 cacheDir = flag .String ("cacheDirectory" , filepath .Join (os .TempDir (), "proxy-cache" ), "cache directory location" )
2926 trace = flag .Bool ("trace" , false , "trace logs to stderr" )
3027)
@@ -52,19 +49,16 @@ func (h jsonrpc2HandlerFunc) Handle(ctx context.Context, conn *jsonrpc2.Conn, re
5249
5350func main () {
5451 flag .Usage = func () {
55- fmt .Printf ("Usage: cloneproxy [OPTIONS] [ LSP_COMMAND_ARGS...] \n \n Options:\n " )
52+ fmt .Printf ("Usage: cloneproxy [OPTIONS] LSP_COMMAND_ARGS...\n \n Options:\n " )
5653 flag .PrintDefaults ()
5754 }
5855
5956 flag .Parse ()
6057 log .SetFlags (log .Flags () | log .Lshortfile )
6158
6259 lspBin := flag .Args ()
63- if len (lspBin ) > 0 && * lspAddr != "" {
64- log .Fatalf ("Both an LSP command (arguments %v) and an LSP address (-lspAddress %v) are specified. Please only specify one" , lspBin , * lspAddr )
65- }
66- if len (lspBin ) == 0 && * lspAddr == "" {
67- log .Fatal ("Specify either an LSP command (positional arguments) or an LSP address (-lspAddress flag)" )
60+ if len (lspBin ) == 0 {
61+ log .Fatal ("You must specify an LSP command (positional arguments)." )
6862 }
6963
7064 lis , err := net .Listen ("tcp" , * proxyAddr )
@@ -109,20 +103,10 @@ func main() {
109103 ctx , cancel := context .WithCancel (ctx )
110104 defer cancel ()
111105
112- var lsConn io.ReadWriteCloser
113- if * lspAddr != "" {
114- lsConn , err = dialLanguageServer (ctx , * lspAddr )
115- if err != nil {
116- log .Println ("dialing language server failed" , err .Error ())
117- return
118- }
119-
120- } else {
121- lsConn , err = mkStdIoLSConn (ctx , lspBin [0 ], lspBin [1 :]... )
122- if err != nil {
123- log .Println ("connecting to language server over stdio failed" , err .Error ())
124- return
125- }
106+ var lsConn , err = stdIoLSConn (ctx , lspBin [0 ], lspBin [1 :]... )
107+ if err != nil {
108+ log .Println ("connecting to language server over stdio failed" , err .Error ())
109+ return
126110 }
127111
128112 proxy := & cloneProxy {
@@ -157,17 +141,6 @@ func main() {
157141 wg .Wait ()
158142}
159143
160- // dialLanguageServer creates a connection to the language server specified at addr.
161- func dialLanguageServer (ctx context.Context , addr string ) (net.Conn , error ) {
162- if addr == "" {
163- return nil , errors .Errorf ("language server not found at addr: %s" , addr )
164- }
165-
166- ctx , cancel := context .WithTimeout (ctx , 2 * time .Second )
167- defer cancel ()
168- return (& net.Dialer {}).DialContext (ctx , "tcp" , addr )
169- }
170-
171144func (p * cloneProxy ) handleServerRequest (ctx context.Context , conn * jsonrpc2.Conn , req * jsonrpc2.Request ) {
172145 <- p .ready
173146
0 commit comments