Nim/nimsuggest/tests/tv3.nim
Ivan Yonchovski 7031ea65cd
Implemented basic macro expand functionality (#20579)
* Implemented level based macro expand functionality

- it can handle single macro call or expand whole function/proc/etc and it

- In addition, I have altered the parser to provide the endInfo for the node.
The usefulness of the `endInfo` is not limited to the `expandMacro`
functionality but also it is useful for `ideOutline` functionality and I have
altered the ideOutline functionality to use `endInfo`. Note `endInfo` most of
the time is lost during the AST transformation thus in `nimsuggest.nim` I am
using freshly parsed tree to get the location information.

* Make sure we stop expanding correctly

* Test CI

* Fix tv3_outline.nim
2023-01-27 07:11:30 +01:00

27 lines
531 B
Nim

# tests v3
type
Foo* = ref object of RootObj
bar*: string
proc test(f: Foo) =
echo f.ba#[!]#r
#[!]#
discard """
$nimsuggest --v3 --tester $file
>use $1
def skField tv3.Foo.bar string $file 5 4 "" 100
use skField tv3.Foo.bar string $file 8 9 "" 100
>def $1
def skField tv3.Foo.bar string $file 5 4 "" 100
>sug $1
sug skField bar string $file 5 4 "" 100 Prefix
>globalSymbols test
def skProc tv3.test proc (f: Foo){.gcsafe.} $file 7 5 "" 100
>globalSymbols Foo
def skType tv3.Foo Foo $file 4 2 "" 100
>def $2
>use $2
"""