Fix issue #311 (Ambiguous newlines in --doc output)

This commit is contained in:
Vladimir Panteleev 2016-03-26 04:44:27 +02:00
parent 78ba8a69bf
commit 9b4c862081
5 changed files with 18 additions and 1 deletions

View File

@ -156,7 +156,7 @@ When run with the --doc or -d option, DCD will attempt to display documentation
comments associated with the symbol at the cursor position. In the case of comments associated with the symbol at the cursor position. In the case of
functions there can be more than one documentation comment associated with a functions there can be more than one documentation comment associated with a
symbol. One doc comment will be printed per line. Newlines within the doc symbol. One doc comment will be printed per line. Newlines within the doc
comments will be replaced with "\n". comments will be replaced with "\n", and backslashes escaped as "\\".
#### Example output #### Example output
An example doc comment\nParams: a = first param\n Returns: nothing An example doc comment\nParams: a = first param\n Returns: nothing
An example doc comment\nParams: a = first param\n b = second param\n Returns: nothing An example doc comment\nParams: a = first param\n b = second param\n Returns: nothing

View File

@ -88,6 +88,10 @@ public AutocompleteResponse getDoc(const AutocompleteRequest request,
{ {
switch (c) switch (c)
{ {
case '\\':
outputRange.put('\\');
outputRange.put('\\');
break;
case '\n': case '\n':
outputRange.put('\\'); outputRange.put('\\');
outputRange.put('n'); outputRange.put('n');

View File

@ -0,0 +1 @@
This is not a newline: \\n But this is:\nThis is not a newline either: $(D '\\n')

View File

@ -28,3 +28,12 @@ unittest
g; g;
cool; cool;
} }
/** This is not a newline: \n But this is: */
/** This is not a newline either: $(D '\n') */
int f;
unittest
{
f;
}

View File

@ -21,3 +21,6 @@ diff actual6.txt expected6.txt
../../bin/dcd-client $1 file.d -c313 -d> actual7.txt ../../bin/dcd-client $1 file.d -c313 -d> actual7.txt
diff actual7.txt expected7.txt diff actual7.txt expected7.txt
../../bin/dcd-client $1 file.d -c432 -d> actual8.txt
diff actual8.txt expected8.txt