python-rope / ropevim

vim mode that uses rope library to provide features like python refactorings and code-assists
GNU General Public License v2.0
245 stars 34 forks source link

Menu system is confusing and unhelpful #70

Open tngreene opened 6 years ago

tngreene commented 6 years ago

Last up. And let me just say thank you for maintaining this. As a maintainer of an open source project, I know this is not easy.

Lastly, though some of the commands aren't working, I'm still able to try working through the menus. They were confusing to me and only after carefully reading the manual do I have a better feeling of what they might do, as the manual is not comprehensive.

These were my first impressions before I read the manual.

0. search
1. cancel
2. batchset
3. unsure
4. in_hierarchy
5. resources

What does search mean? Search what? Aren't the others also searching something? What will "unsure" do? Does "in_hierarchy" refer to the folder heirarchy? Does resources refer to something in the .ropeproject folder?

And the rest of the full log:

Rope project root folder: .Opening [.] project ... Opening [.] project ... done

  1. search
  2. cancel
  3. batchset
  4. unsure
  5. in_hierarchy
  6. resources Choose what todo: [search] 40. yes <-Not sure what 40 means. Number of occurrences? We're done? Didn't I already choose what to do?
  7. no <- If there is only one choice, why give me the choice? Rename methods in class hierarchy: [no] 10. search <- Woah! Rename? I thought I was just finding information!
  8. cancel
  9. batchset
  10. unsure
  11. in_hierarchy <- These options are repeated, but I'm not sure how it is relativent, if we've already searched through everything and found 40 of something.
  12. resources Choose what to do: [search] Find Occurences ... <- Now we're finding occurrences?! What was the rest of this for? What have we been doing? Find Occurrences ... 5%% <- Before this appeared, I thought the program had completely crashed Vim, but it turns out that it was just taking forever to do whatever it is it is/was doing. I was completely surprised to find out it was not dead in its tracks. Find Occurrences ... 10%% <- I keep thinking that this is dead, but every 10 minutes or so another 5% gets added. I'd love to see how long this takes, but I can't wait that long.
    
    So, some real feedback

Now, I know this is all easier said and done, and any time someone says "just do X, it is so easy!" they're probably have no idea what they're talking about and asking for, especially for a volunteer project, and this is already a lot of work put into this so far, but! I have really high hopes for this project!

If I could do some refactoring in Vim I could ditch PyDev and Eclipse! So, I'm really hoping that this project becomes usable. I expect nothing, and will be glad for whatever else comes out of the python open source community. But maybe if this becomes especially useful in my life, I could put in a few pull requests to help out the community!

tngreene commented 6 years ago

Oh, I should also say, I assume you've already had many of these thoughts yourself. I couldn't find a "TODO" list anywhere, so, maybe there is some cross over.

mcepl commented 6 years ago

I completely agree that menu is mess. Two answers:

  1. Any specific suggestions how to fix this would be welcome (especially in the form of pull request).

  2. I am not certain how much future there is for whole ropemode and ropevim. Currently it is still the best way how to use rope in your application, but there seem to be better alternatives developing. rope itself seems to be everywhere (e.g., inside of the Python extension for VS Code and others), but as the future goes I would bet more money on something like LSP and its (still very immature) vim plugin (other implementations could be found elsewhere).

Palpatineli commented 6 years ago

Hi mcepl,

What you suggest sounds like a great way forward, but it may actually be an open niche now. The palantir python lsp is a hack that bundles together rope/jedi/flake8/etc and there are a lot of problems with that, including duplicate messages and non-incremental check in many of its components. PyDev is currently tightly bundled with vscode. There is another alpha phase project on github that is not working.

All this been said, is there a plan to convert rope itself into a lsp for python, as rope basically does everything already and just needs an interface?

mcepl commented 6 years ago

I agree about pyls, but it seems to be moving in the more modular direction. And it is not necessarily too important anyway: if this particular LSP server turns out to be wrong, it can be replaced by something else (e.g., I can imagine a fork having true rope etc. as a git submodules).

And BTW PyDev is plugin to Eclipse … oh they made it to work with VS Code as well. Interesting. For VS Code itself I meant vscode-python which uses rope as well.

Concerning converting rope into the LSP server, I think a separate project on the top of rope is more likely to work (hence possible fork of pyls or something similar to ropemode/ropevim/ropemacs).

samyak-jain commented 3 years ago

@mcepl There's an open issue for having better integration with rope in pyls. Might be easier to integrate all the good stuff of rope into pyls than create a whole new language server.

mcepl commented 3 years ago

I have started my own clone of pyls, where I try to use rope only, but I don't have enough time for it, so it is now mostly abandoned. Any pull requests are more than welcome.