From 5e10057d179c2838b169a65f6d403555592c2125 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Wed, 6 Dec 2017 15:05:44 +0100 Subject: [PATCH] symlist - add func params, close #147 --- dastworx/src/symlist.d | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/dastworx/src/symlist.d b/dastworx/src/symlist.d index 6c45ab50..9a38a928 100644 --- a/dastworx/src/symlist.d +++ b/dastworx/src/symlist.d @@ -151,7 +151,22 @@ class SymbolListBuilder(ListFmt Fmt): ASTVisitor pasStream.put("\ritem\r"); pasStream.put(format("line=%d\r", dt.name.line)); pasStream.put(format("col=%d\r", dt.name.column)); - pasStream.put(format("name='%s'\r", dt.name.text)); + static if (is(DT == FunctionDeclaration)) + { + if (dt.parameters && dt.parameters.parameters && + dt.parameters.parameters.length) + { + import dparse.formatter : fmtNode = format; + Appender!string app; + fmtNode(&app, dt.parameters); + pasStream.put(format("name='%s%s'\r", dt.name.text, app.data)); + } + else pasStream.put(format("name='%s'\r", dt.name.text)); + } + else + { + pasStream.put(format("name='%s'\r", dt.name.text)); + } pasStream.put("symType=" ~ symbolTypeStrings[st] ~ "\r"); static if (dig) if (_deep) { @@ -166,7 +181,22 @@ class SymbolListBuilder(ListFmt Fmt): ASTVisitor JSONValue item = parseJSON("{}"); item["line"] = JSONValue(dt.name.line); item["col"] = JSONValue(dt.name.column); - item["name"] = JSONValue(dt.name.text); + static if (is(DT == FunctionDeclaration)) + { + if (dt.parameters && dt.parameters.parameters && + dt.parameters.parameters.length) + { + import dparse.formatter : fmtNode = format; + Appender!string app; + fmtNode(&app, dt.parameters); + item["name"] = JSONValue(dt.name.text ~ app.data); + } + else item["name"] = JSONValue(dt.name.text); + } + else + { + item["name"] = JSONValue(dt.name.text); + } item["type"] = JSONValue(symbolTypeStrings[st]); static if (dig) if (_deep) {