Scony / godot-gdscript-toolkit

Independent set of GDScript tools - parser, linter, formatter, and more
MIT License
944 stars 65 forks source link

All Scripts Produce Error When Encountering $/ in Scripts #312

Closed Limisios closed 4 days ago

Limisios commented 2 months ago

When checking my scripts, I get a lot of these errors:

my_script.gd:

    player.reparent($/root/Level)
                         ^

Unexpected token Token('SLASH', '/') at line 13, column 19.
Expected one of: 
    * NAME
    * LONG_STRING
    * PERCENT
    * REGULAR_STRING
Previous tokens: [Token('DOLLAR', '$')]

I normally use this method similar to the one shown on the second line when I need to grab a node and want to find it from the root of the SceneTree, as detailed here except by using the $ shorthand instead of the get_node() method.

I was able to avoid triggering the error by putting the path in quotes after the dollar sign. i.e.: player.reparent($"/root/Level") I've never had any problems in game with not using quote marks in these kinds of paths although I have no idea if it's best practice. Either way the big error message seems unintentional but I apologise if I'm wrong.

Scony commented 1 month ago

what version of gdtoolkit do you use?

Limisios commented 1 month ago

according to pip list it's version 4.2.2. I downloaded it the same day I posted the issue.

Scony commented 1 month ago

according to pip list it's version 4.2.2. I downloaded it the same day I posted the issue.

Thanks, then it must be a bug.

Scony commented 1 week ago

I've confirmed it's a bug in gdtoolkit - I had no idea $/root/Level syntax is legal and therefore it was never implemented.