Re: Nested Classes — thoughts and workarounds

Igbanam Ogbuluijah <[email protected]>
Newsgroups gmane.editors.vim
Message-ID <CAOmRJrdJvbou=i0k6iWePH_uvzfVBsf1Wkbt5Jc0s+RTkbNjqA@mail.gmail.com>
Ooph! Thank you!!

I wish I knew about your libparser before I started down the regex jungle
trying to parse the protobuf structure. I will finish this as a v1 with
caveman regex then port to libparser for a v2.

SearchResponseResult is a good idea as well.

Thank you.


- Igbanam

On Sat, Mar 23, 2024 at 1:41 PM Lifepillar <[email protected]> wrote:

> On 2024-03-22, Igbanam Ogbuluijah <[email protected]> wrote:
> > Hello community,
> >
> > I've been playing with some idea which has brought me to needing Nested
> > Classes in Vim. I am curious what you think about this? Would this be too
> > much for Vimscript? If not, what current workarounds would you suggest?
>
> I don't think Vim 9 script needs or would gain anything for such
> extensions.
>
> > Context: I'm taking a stab at parsing protobuf definitions into Vim 9
> > classes. Nested messages in the protobuf demands
> ><https://arc.net/l/quote/qfcssecm> nested structs/classes.
>
> Something like:
>
>   message SearchResponse {
>     message Result {
>       string url = 1;
>       string title = 2;
>       repeated string snippets = 3;
>     }
>     repeated Result results = 1;
>   }
>
> becomes two classes/structs `SearchResponse` and `SearchResponse_Result`
> in the target languages I've looked at. In Vim, you could do the same:
>
>     interface Message
>     endinterface
>
>     class SearchResponseResult implements Message
>       var url: string
>       var title: string
>       var snippets: list<string>
>     endclass
>
>     class SearchResponse implements Message
>       var results: list<SearchResponseResult>
>     endclass
>
> That seems the most straightforward approach to me.
>
> If you don't care about typing (but wouldn't that defeat the purpose of
> protobuf?), you may simply use dictionaries, which can be arbitrarily
> nested.
>
> If your problem is parsing, libparser might help:
>
>     https://github.com/lifepillar/vim-devel
>
> Protobuf's grammar seems simple enough. You might even go fancy and
> generate parsers from messages, which would be able to parse the
> corresponding messages.
>
> I don't see any reason to keep using Vim legacy script for new Vim
> scripts.
>
> Hope this helps,
> Life.
>
> --
> --
> You received this message from the "vim_use" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups
> "vim_use" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/vim_use/utmm5o%2412c1%241%40ciao.gmane.io
> .
>

-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/CAOmRJrdJvbou%3Di0k6iWePH_uvzfVBsf1Wkbt5Jc0s%2BRTkbNjqA%40mail.gmail.com.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.