mtsmfm / language_server-ruby

A Ruby Language Server implementation
MIT License
259 stars 10 forks source link

Ripper -> Ripper-tags? #38

Open kwerle opened 6 years ago

kwerle commented 6 years ago

I notice this uses the ripper gem - which looks pretty ancient. Also I haven't seen it parse anything more than class names in my codebase - which seems weird. And finally, I'm a little confused by the parse code, which is probably more of a me issue.

Anyway - the ripper-tags gem seems up to date and like maybe it'd do a lot of the right things: https://github.com/tmm1/ripper-tags

mtsmfm commented 6 years ago

Hi @kwerle, thank you for your opinion!

I notice this uses the ripper gem - which looks pretty ancient

Ripper isn't a gem. It's a stdlib. So I think it isn't ancient and it always works. And actually, ripper-tags is using ripper internally. Ripper is even faster than other parser gems.

I haven't seen it parse anything more than class names in my codebase

Yeah, at this time, the static analysis only works for constants and not perfect 😞

https://github.com/mtsmfm/language_server-ruby/issues/19#issue-258347904

I'm a little confused by the parse code, which is probably more of a me issue.

I was just curious about building analyser but now I noticed analysing Ruby code is harder than as I expected.

Of course it's welcome to send PR to use ripper-tags, but please don't remove adhoc things. adhoc things don't work perfectly for now so I'd like to introduce --experimental flag.

kwerle commented 6 years ago

Yeah, following up I saw that ripper is internal. Ripper tags seems to do a really good job of ctagging - which I figure is a pretty good step in the right direction I've forked a branch of the LS and am going to take a shot at using ripper-tags with it. We'll see how it goes.

It's disappointing that atom-ide does not have a lookup and outline implementation that just uses ctag data - that seems like an obvious first step for all languages.

NewAlexandria commented 2 years ago

@kwerle did you ever get somewhere on that implementation? Did you find an alt at this point? etc / thanks!

kwerle commented 2 years ago

@kwerle did you ever get somewhere on that implementation? Did you find an alt at this point? etc / thanks!

I use https://github.com/kwerle/ruby_language_server with vscode https://github.com/kwerle/vscode_ruby_language_server