Comments (15)
Hi Steve,
Spec is a more or less resolved/disambiguated method. To get the list of them for a method name, you make a call to method_targets
in the backend.
robe-jump-modules
does more or less that on the Elisp side. It also tries to resolve the context at point, so I should probably extract the relevant piece of code to another function.
from robe.
That'd be cool. I just released an initial simple version of ac-inf-ruby without any documentation support for now.
from robe.
Actually, why don't you just call (robe-request "method_targets" target module instance super robe-jump-conservative)
, like robe-jump-modules
does in the end?
Let me know if you need help deciphering the arguments.
from robe.
Can do, if the signature of that method is going to remain fairly stable for a while.
from robe.
Yeah, I think it's not practical to do that, because I'd have to reproduce the logic in robe-call-context
, which works off the buffer contents, which won't be the same as the selected completion candidate. I guess I'd need something like a (robe-parse-call-context str)
...
from robe.
Can do, if the signature of that method is going to remain fairly stable for a while.
It's likely to change at some point, but I'll make sure to let you know.
I guess I'd need something like a (robe-parse-call-context str)
I was thinking you'd just ignore everything surrounding the method name. But if you'd like to at least recognize when the call target is a class, you can do (with-temp-buffer ...)
, insert the repl text after the prompt there, replace the prefix with the completion candidate and then call robe-jump-modules
there.
from robe.
I just released an initial simple version of ac-inf-ruby without any documentation
I like the difference in verbosity. :)
from robe.
Re. the verbosity, yes, I need to give company another try. I switched over for a while several months ago, but eventually reverted, for reasons I don't now recall. And similarly, I'm now on about my 3rd attempt to live with smartparens
instead of paredit.
from robe.
It would be nice if you could recall the reason you went back the last time. Lack of integration with various packages, like Tern?
I've never tried smartparens myself, paredit and autopair work reasonably well so far. Maybe in a couple of years... :)
from robe.
Yep, I wish I could remember. I'll try flipping back so that I can give more useful feedback.
Re smartparens, I've just today gone back to paredit
in lisps, and electric-pair-mode
+ paredit-everywhere
elsewhere. Yesterday I suggested that the author copy the paredit test suite, which he agrees is a good plan. I like the idea of smartparens - and of providing feedback to help it improve - but some of the quirks have been frustrating on a day-to-day basis. I'd rather have something less complex which does 80% of the same thing but with 100% reliability.
from robe.
I'd rather have something less complex which does 80% of the same thing but with 100% reliability.
Same here.
With electric-pair-mode
, I mostly miss the Autopair newline feature, when if point is directly between two parens, it adds two newlines, one before and one after point, and indents the current line. Does smartparens do that?
from robe.
I haven't noticed it doing that, but smartparens was doing a lot of unexpected stuff by default, e.g. if you had:
(foo-b|ar-baz "one")
where |
is point, and you pressed C-k
, you'd get:
("one")
which confused me. There's lots of magic whitespace behaviour too, and special behaviour inside strings. It can all be configured, but I really just want paredit + reasonable pairing.
What finally turned me off was that there's a show-smartparens-mode
which does nice things like highlighting the corresponding end
in a ruby buffer if you have the point on def
. But in certain buffers this became very slow, because the ruby syntax isn't regular enough to make it easy.
Still, give it a try sometime and see what you think.
from robe.
that there's a show-smartparens-mode which does nice things like highlighting the corresponding end
FWIW, Ruby with SMIE enabled integrates with show-paren-mode
and also highlights paired keywords. And does it rather snappily, I'd say.
from robe.
Ooh, shiny! -> dashes off to try it out
from robe.
Works nicely! I've been using mic-paren
for a while, and I'm thinking I might be able to drop that in favour of plain show-paren-mode
now...
from robe.
Related Issues (20)
- Cannot load such file pry HOT 2
- Is there a way to show docs in completions popup/eldoc summary? HOT 1
- Autocompletion not working? HOT 1
- Stuck at cpu 100% HOT 6
- Robe cannot autostart: "No matching directory found" HOT 4
- Robe not working on Ruby 2.7.1 HOT 3
- robe make emacs freeze on 27 on large projects HOT 16
- Non-string path in LOAD_PATH HOT 3
- Emacs freezes when robe is called while byebug is active on console HOT 3
- How to disable robe? HOT 2
- Get search failed message when run robe-jump. HOT 19
- `Can't find the location` when try to search a class defined on current project. (but can in irb) HOT 6
- `find-tag-marker-ring` breaks `robe-jump` on Emacs 28. HOT 2
- Environment variables HOT 1
- Can't jump to the nested module's class in `enh-ruby-mode`, but ruby-mode works HOT 29
- robe-jump returns error file doesnt exists - but it exists HOT 11
- [Help Request] Not robe issue, just need some professional help on crystal-mode. HOT 10
- CPU spikes during rails process buffer completion HOT 7
- Allow for configurable specificity of `robe-jump` entries HOT 9
- Should be possible to change Robe errors buffer from inf-ruby buffer to another buffer HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from robe.