mirror of https://github.com/buggins/dlangide.git
dcdinterface improvements
This commit is contained in:
parent
7b4e43ef8d
commit
4fa4bd22a6
|
@ -9,6 +9,8 @@ import std.typecons;
|
||||||
import std.conv;
|
import std.conv;
|
||||||
import std.string;
|
import std.string;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
enum DCDResult : int {
|
enum DCDResult : int {
|
||||||
DCD_NOT_RUNNING = 0,
|
DCD_NOT_RUNNING = 0,
|
||||||
SUCCESS,
|
SUCCESS,
|
||||||
|
@ -20,14 +22,16 @@ alias ResultSet = Tuple!(DCDResult, "result", dstring[], "output");
|
||||||
//Interface to DCD
|
//Interface to DCD
|
||||||
//TODO: Check if server is running, start server if needed etc.
|
//TODO: Check if server is running, start server if needed etc.
|
||||||
class DCDInterface {
|
class DCDInterface {
|
||||||
ExternalProcess dcdProcess;
|
|
||||||
ProtectedTextStorage stdoutTarget;
|
private int _port = 9166;
|
||||||
|
//ExternalProcess dcdProcess;
|
||||||
|
//ProtectedTextStorage stdoutTarget;
|
||||||
this() {
|
this() {
|
||||||
dcdProcess = new ExternalProcess();
|
//dcdProcess = new ExternalProcess();
|
||||||
stdoutTarget = new ProtectedTextStorage();
|
//stdoutTarget = new ProtectedTextStorage();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected dstring[] invokeDcd(char[][] arguments, dstring content, out bool success) {
|
protected dstring[] invokeDcd(string[] arguments, dstring content, out bool success) {
|
||||||
success = false;
|
success = false;
|
||||||
ExternalProcess dcdProcess = new ExternalProcess();
|
ExternalProcess dcdProcess = new ExternalProcess();
|
||||||
|
|
||||||
|
@ -40,7 +44,7 @@ class DCDInterface {
|
||||||
string dcd_client_name = "dcd-client";
|
string dcd_client_name = "dcd-client";
|
||||||
string dcd_client_dir = "/usr/bin";
|
string dcd_client_dir = "/usr/bin";
|
||||||
}
|
}
|
||||||
dcdProcess.run(dcd_client_name.dup, arguments, dcd_client_dir ? dcd_client_dir.dup : null, stdoutTarget);
|
dcdProcess.run(dcd_client_name, arguments, dcd_client_dir, stdoutTarget);
|
||||||
dcdProcess.write(content);
|
dcdProcess.write(content);
|
||||||
dcdProcess.wait();
|
dcdProcess.wait();
|
||||||
|
|
||||||
|
@ -55,8 +59,8 @@ class DCDInterface {
|
||||||
ResultSet goToDefinition(in dstring content, int index) {
|
ResultSet goToDefinition(in dstring content, int index) {
|
||||||
ResultSet result;
|
ResultSet result;
|
||||||
|
|
||||||
char[][] arguments = ["-l".dup, "-c".dup];
|
string[] arguments = ["-l", "-c"];
|
||||||
arguments ~= [to!(char[])(index)];
|
arguments ~= [to!string(index)];
|
||||||
|
|
||||||
bool success = false;
|
bool success = false;
|
||||||
dstring[] output = invokeDcd(arguments, content, success);
|
dstring[] output = invokeDcd(arguments, content, success);
|
||||||
|
@ -93,8 +97,8 @@ class DCDInterface {
|
||||||
|
|
||||||
ResultSet result;
|
ResultSet result;
|
||||||
|
|
||||||
char[][] arguments = ["-c".dup];
|
string[] arguments = ["-c"];
|
||||||
arguments ~= [to!(char[])(index)];
|
arguments ~= [to!string(index)];
|
||||||
|
|
||||||
bool success = false;
|
bool success = false;
|
||||||
dstring[] output = invokeDcd(arguments, content, success);
|
dstring[] output = invokeDcd(arguments, content, success);
|
||||||
|
|
Loading…
Reference in New Issue