vscode-language-renpy icon indicating copy to clipboard operation
vscode-language-renpy copied to clipboard

To all Ren'Py users! We need your help! - Full Ren'Py grammar definition for 'intellisense'

Open duckdoom4 opened this issue 1 year ago • 15 comments

Let's add 'intellisense' features to the extension!

We're looking to improve this extension even further and would like your help! Our next goal is to include behaviours you've come to expect from most IDEs which support intellisense features for popular languages. We want to add these features to the plugin as well.

As you know we already support some of these features, but these are limited in it's current state. Some examples people have been asking for are:

  • Rename symbols (F2)
    • #169
  • A properly working document outliner
    • #151
  • Properly working go to definition (F12)
  • Better error/warning detection and syntax errors
    • #171
    • #189
    • #201
    • #255
    • #289
  • Support highlighting of custom keywords
    • #203
  • All features working on a single .rpy file (without the need for Ren'Py static data)
    • #332
    • #180
    • #204

How can you help

We are currently just two people building/maintaining this large extension. With some help from other contributors (Special thanks to @a2937, @seanj29, @Booplicate, @pjpollina, and @Gouvernathor for your recent help! ❤️ 🚀)

To implement all these features we need a full formal grammar definition of the Ren'Py language. This will ensure that we implement these features as they should be implemented.

Just like how there already exists a Full Python grammar specification, we will need to build a Full Ren'Py grammar specification.

Now for some good news: Ren'Py already has some formal specification! (ATL is fully specified)

Here is an example of the Transform Statement in BNF notation

atl_transform ::=  "transform" qualname ( "(" parameters ")" )? ":"
                      atl_block

Just like ATL, we will need this specification for all other renpy features.

Any help is greatly appreciated! ⭐ You can help us by adding or reviewing to the grammar specification or simply supplying us with renpy code samples showing how each language feature is used in your project. If you want to help us out, please submit your contributions to this branch. Or leave a comment down below.

duckdoom4 avatar Jun 05 '23 09:06 duckdoom4