fix #313 - ddoc, overloads sets broken

This commit is contained in:
Basile Burg 2016-03-26 18:56:21 +01:00
parent afc2d55dbc
commit 080d9d667a
4 changed files with 48 additions and 41 deletions

View File

@ -71,48 +71,37 @@ public AutocompleteResponse getDoc(const AutocompleteRequest request,
warning("Could not find symbol");
else
{
struct Escaper(O)
Appender!(char[]) app;
void putDDocChar(dchar c)
{
switch (c)
{
case '\\':
app.put('\\');
app.put('\\');
break;
case '\n':
app.put('\\');
app.put('n');
break;
default:
app.put(c);
break;
}
}
void putDDocString(string s)
{
foreach (c; s)
putDDocChar(c);
}
foreach(symbol; stuff.symbols.filter!(a => !a.doc.empty))
{
this(O* or)
{
this.outputRange = or;
}
void put(string s)
{
foreach (c; s)
put(c);
}
void put(char c)
{
switch (c)
{
case '\\':
outputRange.put('\\');
outputRange.put('\\');
break;
case '\n':
outputRange.put('\\');
outputRange.put('n');
break;
default:
outputRange.put(c);
break;
}
}
O* outputRange;
}
auto app = appender!(char[])();
auto e = Escaper!(typeof(app))(&app);
foreach (symbol; stuff.symbols.filter!(a => !a.doc.empty))
{
app.clear();
foreach(c; symbol.doc)
e.put(c);
response.docComments ~= cast(string) app.data;
app.clear;
putDDocString(symbol.doc);
response.docComments ~= app.data.idup;
}
}
return response;

View File

@ -0,0 +1 @@
foo\nF\n\nbar\nB

12
tests/tc031/file.d Normal file
View File

@ -0,0 +1,12 @@
foo;
/**
foo
F
*/
void foo();
/**
bar
B
*/
void foo(uint a);

5
tests/tc031/run.sh Executable file
View File

@ -0,0 +1,5 @@
set -e
set -u
../../bin/dcd-client $1 file.d -d -c1 > actual1.txt
diff actual1.txt expected1.txt