@@ -5,15 +5,13 @@ import (
5
5
"encoding/json"
6
6
"flag"
7
7
"fmt"
8
- "io"
9
8
"log"
10
9
"net"
11
10
"os"
12
11
"os/signal"
13
12
"path/filepath"
14
13
"sync"
15
14
"syscall"
16
- "time"
17
15
18
16
"github.com/google/uuid"
19
17
multierror "github.com/hashicorp/go-multierror"
@@ -24,7 +22,6 @@ import (
24
22
25
23
var (
26
24
proxyAddr = flag .String ("proxyAddress" , "127.0.0.1:8080" , "proxy server listen address (tcp)" )
27
- lspAddr = flag .String ("lspAddress" , "" , "language server listen address (tcp)" )
28
25
cacheDir = flag .String ("cacheDirectory" , filepath .Join (os .TempDir (), "proxy-cache" ), "cache directory location" )
29
26
trace = flag .Bool ("trace" , false , "trace logs to stderr" )
30
27
)
@@ -52,19 +49,16 @@ func (h jsonrpc2HandlerFunc) Handle(ctx context.Context, conn *jsonrpc2.Conn, re
52
49
53
50
func main () {
54
51
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 " )
56
53
flag .PrintDefaults ()
57
54
}
58
55
59
56
flag .Parse ()
60
57
log .SetFlags (log .Flags () | log .Lshortfile )
61
58
62
59
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)." )
68
62
}
69
63
70
64
lis , err := net .Listen ("tcp" , * proxyAddr )
@@ -109,20 +103,10 @@ func main() {
109
103
ctx , cancel := context .WithCancel (ctx )
110
104
defer cancel ()
111
105
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
126
110
}
127
111
128
112
proxy := & cloneProxy {
@@ -157,17 +141,6 @@ func main() {
157
141
wg .Wait ()
158
142
}
159
143
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
-
171
144
func (p * cloneProxy ) handleServerRequest (ctx context.Context , conn * jsonrpc2.Conn , req * jsonrpc2.Request ) {
172
145
<- p .ready
173
146
0 commit comments