some more bugs in epc fixed - removed try
This commit is contained in:
parent
7dfa93d3c0
commit
b500907978
1 changed files with 31 additions and 28 deletions
|
|
@ -83,7 +83,9 @@ proc sexp(s: Suggest): SexpNode =
|
||||||
])
|
])
|
||||||
|
|
||||||
proc sexp(s: seq[Suggest]): SexpNode =
|
proc sexp(s: seq[Suggest]): SexpNode =
|
||||||
result = sexp(s)
|
result = newSList()
|
||||||
|
for sug in s:
|
||||||
|
result.add(sexp(sug))
|
||||||
|
|
||||||
proc listEPC(): SexpNode =
|
proc listEPC(): SexpNode =
|
||||||
let
|
let
|
||||||
|
|
@ -126,11 +128,13 @@ proc executeEPC(cmd: IdeCmd, args: SexpNode) =
|
||||||
file = args[0].getStr
|
file = args[0].getStr
|
||||||
line = args[1].getNum
|
line = args[1].getNum
|
||||||
column = args[2].getNum
|
column = args[2].getNum
|
||||||
|
var dirtyfile = ""
|
||||||
|
if len(args) > 3:
|
||||||
dirtyfile = args[3].getStr(nil)
|
dirtyfile = args[3].getStr(nil)
|
||||||
execute(cmd, file, dirtyfile, int(line), int(column))
|
execute(cmd, file, dirtyfile, int(line), int(column))
|
||||||
|
|
||||||
proc returnEPC(socket: var Socket, uid: string, s: SexpNode, return_symbol = "return") =
|
proc returnEPC(socket: var Socket, uid: BiggestInt, s: SexpNode, return_symbol = "return") =
|
||||||
let response = $convertSexp([newSSymbol(return_symbol), [uid, s]])
|
let response = $convertSexp([newSSymbol(return_symbol), uid, s])
|
||||||
socket.send(toHex(len(response), 6))
|
socket.send(toHex(len(response), 6))
|
||||||
socket.send(response)
|
socket.send(response)
|
||||||
|
|
||||||
|
|
@ -237,15 +241,16 @@ proc serve() =
|
||||||
let
|
let
|
||||||
message = parseSexp($messageBuffer)
|
message = parseSexp($messageBuffer)
|
||||||
messageType = message[0].getSymbol
|
messageType = message[0].getSymbol
|
||||||
try:
|
echo("received message: " & $message)
|
||||||
case messageType:
|
case messageType:
|
||||||
of "call":
|
of "call":
|
||||||
var results: seq[Suggest] = @[]
|
var results: seq[Suggest] = @[]
|
||||||
suggest.suggestionResultHook = proc (s: Suggest) =
|
suggest.suggestionResultHook = proc (s: Suggest) =
|
||||||
|
echo(s)
|
||||||
results.add(s)
|
results.add(s)
|
||||||
|
|
||||||
let
|
let
|
||||||
uid = message[1].getStr
|
uid = message[1].getNum
|
||||||
cmd = parseIdeCmd(message[2].getStr)
|
cmd = parseIdeCmd(message[2].getStr)
|
||||||
args = message[3]
|
args = message[3]
|
||||||
executeEPC(cmd, args)
|
executeEPC(cmd, args)
|
||||||
|
|
@ -258,11 +263,9 @@ proc serve() =
|
||||||
stderr.writeln("recieved epc error: " & $messageBuffer)
|
stderr.writeln("recieved epc error: " & $messageBuffer)
|
||||||
raise newException(IOError, "epc error")
|
raise newException(IOError, "epc error")
|
||||||
of "methods":
|
of "methods":
|
||||||
returnEPC(client, message[1].getStr, listEPC())
|
returnEPC(client, message[1].getNum, listEPC())
|
||||||
else:
|
else:
|
||||||
raise newException(EUnexpectedCommand, "unexpected call: " & messageType)
|
raise newException(EUnexpectedCommand, "unexpected call: " & messageType)
|
||||||
except:
|
|
||||||
returnEPC(client, message[1].getStr, sexp(getCurrentException().getStackTrace()), "return-error")
|
|
||||||
|
|
||||||
proc mainCommand =
|
proc mainCommand =
|
||||||
registerPass verbosePass
|
registerPass verbosePass
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue