Merge pull request #314 from BBasile/issue-313

fix #313 - ddoc, overloads sets broken
This commit is contained in:
Brian Schott 2016-03-26 14:43:54 -07:00
commit 56d91114ed
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"); warning("Could not find symbol");
else else
{ {
struct Escaper(O) Appender!(char[]) app;
{
this(O* or)
{
this.outputRange = or;
}
void put(string s) void putDDocChar(dchar c)
{
foreach (c; s)
put(c);
}
void put(char c)
{ {
switch (c) switch (c)
{ {
case '\\': case '\\':
outputRange.put('\\'); app.put('\\');
outputRange.put('\\'); app.put('\\');
break; break;
case '\n': case '\n':
outputRange.put('\\'); app.put('\\');
outputRange.put('n'); app.put('n');
break; break;
default: default:
outputRange.put(c); app.put(c);
break; break;
} }
} }
O* outputRange; void putDDocString(string s)
{
foreach (c; s)
putDDocChar(c);
} }
auto app = appender!(char[])(); foreach(symbol; stuff.symbols.filter!(a => !a.doc.empty))
auto e = Escaper!(typeof(app))(&app);
foreach (symbol; stuff.symbols.filter!(a => !a.doc.empty))
{ {
app.clear(); app.clear;
foreach(c; symbol.doc) putDDocString(symbol.doc);
e.put(c); response.docComments ~= app.data.idup;
response.docComments ~= cast(string) app.data;
} }
} }
return response; 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