From b28590234d6aa44fc00ba65bb2ff7e2d5af027cb Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Tue, 3 Sep 2013 13:56:57 -0700 Subject: [PATCH] Don't rely on unimplement toString, use Formatter instead --- acvisitor.d | 22 ++++++++++++++++------ build.bat | 2 +- build.sh | 2 +- dscanner | 2 +- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/acvisitor.d b/acvisitor.d index 95c7331..1cf90e6 100644 --- a/acvisitor.d +++ b/acvisitor.d @@ -257,7 +257,7 @@ class AutocompleteVisitor : ASTVisitor if (dec.parameters !is null && parentSymbol !is null) { symbol.calltip = format("%s this%s", parentSymbol.name, - dec.parameters.toString()); + formatNode(dec.parameters)); } auto p = parentSymbol; parentSymbol = symbol; @@ -318,7 +318,7 @@ class AutocompleteVisitor : ASTVisitor { string returnType; if (dec.returnType !is null) - returnType = dec.returnType.toString(); + returnType = formatNode(dec.returnType); else { if (dec.hasAuto) @@ -331,7 +331,7 @@ class AutocompleteVisitor : ASTVisitor returnType = "ref"; } symbol.calltip = format("%s %s%s", returnType, - dec.name.value, dec.parameters.toString()); + dec.name.value, formatNode(dec.parameters)); } auto p = parentSymbol; parentSymbol = symbol; @@ -378,7 +378,7 @@ class AutocompleteVisitor : ASTVisitor dec.type.typeSuffixes = dec.type.typeSuffixes[0 .. $ - 1]; symbol.calltip = "%s %s%s".format(dec.type, suffix.delegateOrFunction.value, - suffix.parameters.toString()); + formatNode(suffix.parameters)); } symbol.kind = CompletionKind.variableName; @@ -409,7 +409,7 @@ class AutocompleteVisitor : ASTVisitor aliasPart.type.typeSuffixes = aliasPart.type.typeSuffixes[0 .. $ - 1]; aliasSymbol.calltip = "%s %s%s".format(dec.type, suffix.delegateOrFunction.value, - suffix.parameters.toString()); + formatNode(suffix.parameters)); } if (parentSymbol is null) symbols ~= aliasSymbol; @@ -431,7 +431,7 @@ class AutocompleteVisitor : ASTVisitor dec.type.typeSuffixes = dec.type.typeSuffixes[0 .. $ - 1]; aliasSymbol.calltip = "%s %s%s".format(dec.type, suffix.delegateOrFunction.value, - suffix.parameters.toString()); + formatNode(suffix.parameters)); } aliasSymbol.location = dec.name.startIndex; if (parentSymbol is null) @@ -509,6 +509,16 @@ class AutocompleteVisitor : ASTVisitor bool currentFile = false; private: + + static string formatNode(T)(T node) + { + import formatter; + auto app = appender!(char[])(); + auto f = new Formatter!(typeof(app))(app); + f.format(node); + return app.data.idup; + } + static enum string visitAndAdd = q{ auto p = parentSymbol; parentSymbol = symbol; diff --git a/build.bat b/build.bat index e47abc3..35660b9 100644 --- a/build.bat +++ b/build.bat @@ -1,2 +1,2 @@ dmd -wi client.d messages.d msgpack-d/src/msgpack.d -Imsgpack-d/src -ofdcd-client -L/exet:nt/su:windows:4.0 -dmd -wi -g server.d modulecache.d actypes.d messages.d constants.d acvisitor.d autocomplete.d dscanner/stdx/d/ast.d dscanner/stdx/d/parser.d dscanner/stdx/d/lexer.d dscanner/stdx/d/entities.d msgpack-d/src/msgpack.d -Imsgpack-d/src -Idscanner/ -ofdcd-server +dmd -wi -g server.d modulecache.d actypes.d messages.d constants.d acvisitor.d autocomplete.d dscanner/stdx/d/ast.d dscanner/stdx/d/parser.d dscanner/stdx/d/lexer.d dscanner/stdx/d/entities.d dscanner/formatter.d msgpack-d/src/msgpack.d -Imsgpack-d/src -Idscanner/ -ofdcd-server diff --git a/build.sh b/build.sh index da57e14..67ca672 100755 --- a/build.sh +++ b/build.sh @@ -1,2 +1,2 @@ dmd -wi client.d messages.d msgpack-d/src/msgpack.d -Imsgpack-d/src -ofdcd-client -dmd -wi -g server.d modulecache.d actypes.d messages.d constants.d acvisitor.d autocomplete.d dscanner/stdx/d/ast.d dscanner/stdx/d/parser.d dscanner/stdx/d/lexer.d dscanner/stdx/d/entities.d msgpack-d/src/msgpack.d -Imsgpack-d/src -Idscanner/ -ofdcd-server +dmd -wi -g server.d modulecache.d actypes.d messages.d constants.d acvisitor.d autocomplete.d dscanner/stdx/d/ast.d dscanner/stdx/d/parser.d dscanner/stdx/d/lexer.d dscanner/stdx/d/entities.d dscanner/formatter.d msgpack-d/src/msgpack.d -Imsgpack-d/src -Idscanner/ -ofdcd-server diff --git a/dscanner b/dscanner index 2088089..80c2462 160000 --- a/dscanner +++ b/dscanner @@ -1 +1 @@ -Subproject commit 2088089e368e5621673bf83472e441b28c43c81a +Subproject commit 80c2462445a937eaf339890edf4282c4e6878d08