Allow -I to appear with other options. Fix #134
This commit is contained in:
parent
21576ca9a8
commit
059726b662
22
client.d
22
client.d
|
@ -73,15 +73,6 @@ int main(string[] args)
|
|||
scope (exit) { socket.shutdown(SocketShutdown.BOTH); socket.close(); }
|
||||
return sendRequest(socket, request) ? 0 : 1;
|
||||
}
|
||||
else if (importPaths.length > 0)
|
||||
{
|
||||
AutocompleteRequest request;
|
||||
request.kind = RequestKind.addImport;
|
||||
request.importPaths = importPaths.map!(a => absolutePath(a)).array;
|
||||
TcpSocket socket = createSocket(port);
|
||||
scope (exit) { socket.shutdown(SocketShutdown.BOTH); socket.close(); }
|
||||
return sendRequest(socket, request) ? 0 : 1;
|
||||
}
|
||||
else if (cursorPos == size_t.max)
|
||||
{
|
||||
// cursor position is a required argument
|
||||
|
@ -122,12 +113,19 @@ int main(string[] args)
|
|||
request.importPaths = importPaths;
|
||||
request.sourceCode = sourceCode;
|
||||
request.cursorPosition = cursorPos;
|
||||
|
||||
if (importPaths.length > 0)
|
||||
{
|
||||
request.kind |= RequestKind.addImport;
|
||||
request.importPaths = importPaths.map!(a => absolutePath(a)).array;
|
||||
}
|
||||
|
||||
if (symbolLocation)
|
||||
request.kind = RequestKind.symbolLocation;
|
||||
request.kind |= RequestKind.symbolLocation;
|
||||
else if (doc)
|
||||
request.kind = RequestKind.doc;
|
||||
request.kind |= RequestKind.doc;
|
||||
else
|
||||
request.kind = RequestKind.autocomplete;
|
||||
request.kind |= RequestKind.autocomplete;
|
||||
|
||||
// Send message to server
|
||||
TcpSocket socket = createSocket(port);
|
||||
|
|
13
messages.d
13
messages.d
|
@ -111,18 +111,19 @@ enum CompletionType : string
|
|||
*/
|
||||
enum RequestKind : ubyte
|
||||
{
|
||||
uninitialized = 0b00000000,
|
||||
/// Autocompletion
|
||||
autocomplete,
|
||||
autocomplete = 0b00000001,
|
||||
/// Clear the completion cache
|
||||
clearCache,
|
||||
clearCache = 0b00000010,
|
||||
/// Add import directory to server
|
||||
addImport,
|
||||
addImport = 0b00000100,
|
||||
/// Shut down the server
|
||||
shutdown,
|
||||
shutdown = 0b00001000,
|
||||
/// Get declaration location of given symbol
|
||||
symbolLocation,
|
||||
symbolLocation = 0b00010000,
|
||||
/// Get the doc comments for the symbol
|
||||
doc
|
||||
doc = 0b00100000,
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
41
server.d
41
server.d
|
@ -145,32 +145,28 @@ int main(string[] args)
|
|||
|
||||
AutocompleteRequest request;
|
||||
msgpack.unpack(buffer[size_t.sizeof .. bytesReceived], request);
|
||||
final switch (request.kind)
|
||||
{
|
||||
case RequestKind.addImport:
|
||||
if (request.kind & RequestKind.addImport)
|
||||
ModuleCache.addImportPaths(request.importPaths);
|
||||
break;
|
||||
case RequestKind.clearCache:
|
||||
if (request.kind & RequestKind.clearCache)
|
||||
{
|
||||
Log.info("Clearing cache.");
|
||||
ModuleCache.clear();
|
||||
break;
|
||||
case RequestKind.shutdown:
|
||||
}
|
||||
else if (request.kind & RequestKind.shutdown)
|
||||
{
|
||||
Log.info("Shutting down.");
|
||||
break serverLoop;
|
||||
case RequestKind.autocomplete:
|
||||
// try
|
||||
// {
|
||||
}
|
||||
else if (request.kind & RequestKind.autocomplete)
|
||||
{
|
||||
Log.info("Getting completions");
|
||||
AutocompleteResponse response = complete(request);
|
||||
ubyte[] responseBytes = msgpack.pack(response);
|
||||
s.send(responseBytes);
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// Log.error("Could not handle autocomplete request due to an exception:",
|
||||
// e.msg);
|
||||
// }
|
||||
break;
|
||||
case RequestKind.doc:
|
||||
}
|
||||
else if (request.kind & RequestKind.doc)
|
||||
{
|
||||
Log.info("Getting doc comment");
|
||||
try
|
||||
{
|
||||
AutocompleteResponse response = getDoc(request);
|
||||
|
@ -181,9 +177,9 @@ int main(string[] args)
|
|||
{
|
||||
Log.error("Could not get DDoc information", e.msg);
|
||||
}
|
||||
|
||||
break;
|
||||
case RequestKind.symbolLocation:
|
||||
}
|
||||
else if (request.kind & RequestKind.symbolLocation)
|
||||
{
|
||||
try
|
||||
{
|
||||
AutocompleteResponse response = findDeclaration(request);
|
||||
|
@ -194,8 +190,9 @@ int main(string[] args)
|
|||
{
|
||||
Log.error("Could not get symbol location", e.msg);
|
||||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
Log.error("Unknown request type");
|
||||
Log.info("Request processed in ", requestWatch.peek().to!("msecs", float), " milliseconds");
|
||||
}
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue