Comments (3)
Detecting dynamic methods is tricky. I might be able to make it work in limited cases, but there will always be exceptions. The only 100% reliable solution is to execute the code, which Solargraph intentionally avoids doing.
One alternative is to use YARD directives. Example using the @!method directive:
module MyModule
# @!method another_method(an_argument)
# This method add new functionality
# @param an_argument [SomeType] a specific argument
# @return [SomeType]
def self.included(klass)
klass.class_eval do
def another_method(an_argument)
#Some business code
end
end
end
end
class MyClass
include MyModule
end
kl = MyClass.new
kl. # => another_method appears in suggestions
Note: suggestions from YARD directives will only be available if the file is included in the generated .yardoc directory. By default, YARD only reads the workspace's lib and app directories. That setting can be changed with a .yardopts file. A future version of the Solargraph gem might be able to parse directives locally.
I'm open to other suggestions for improving detection of dynamic methods. It's a hard problem.
from vscode-solargraph.
Very Nice!! I'll try it as soon as possible
from vscode-solargraph.
As of gem version 0.15.0, there are two additions that can help with this feature:
-
Improved macro support. Any
@!method
and@!attribute
macros in your workspace get mapped into completion suggestions. A local yardoc is not required. -
The experimental
Runtime
plugin. Solargraph can run a subprocess that queries your project's classes and modules for "magic" methods. More information is available in the Solargraph README.
from vscode-solargraph.
Related Issues (20)
- Fails to start in VSCode: "[Errno::EBADF] Bad file descriptor - ruby" HOT 1
- Error: spawn solargraph ENOENT
- Error in diagnostics: RuboCop returned invalid data HOT 2
- Poll: is vscode-solargraph reliable/performant for medium-size Rails apps? HOT 2
- Rename Symbol Not Working
- autoformat in vs code deleting comments HOT 2
- Allow Setting the Port of externalServer to a String HOT 1
- Can not read properties of undefined HOT 2
- RuboCop --auto-correct is deprecated; use --autocorrect instead HOT 2
- Conflicting VS Code keybindings to search Ruby documentation HOT 1
- Document query was stuck in Rails project. HOT 1
- No Intellisense for Gems installed in custom home path HOT 1
- Completion menu only shows "Loading..." until I restart Solargraph HOT 3
- Request textDocument/documentHighlight failed. HOT 3
- Logging support unknown langId to enable trace setting
- solargraph not updating on changes HOT 1
- Logo in Visual Studio Marketplace HOT 3
- string arrays as default keyword arguments throws coloring off HOT 2
- It doesn't seem to be working: what theme should I use with Solargraph? HOT 1
- Request textDocument/definition failed when clicking on require 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 vscode-solargraph.