All Projects → tomoasleep → yoda

tomoasleep / yoda

Licence: MIT license
Experimental: Static Analyzer and Language Server for Ruby

Programming Languages

ruby
36898 projects - #4 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to yoda

Tenkawa Php Language Server
Language server for PHP, with powerful static analysis and type inference.
Stars: ✭ 78 (+225%)
Mutual labels:  autocompletion, language-server
vscode-tenkawa-php
Visual Studio Code extension integrating Tenkawa PHP language server.
Stars: ✭ 28 (+16.67%)
Mutual labels:  autocompletion, language-server
Glyphfriend
Glyphfriend is a Visual Studio Extension to add previews for various icon/glyph fonts to Visual Studio.
Stars: ✭ 157 (+554.17%)
Mutual labels:  autocompletion
anakin-language-server
Yet another Jedi Python language server
Stars: ✭ 27 (+12.5%)
Mutual labels:  language-server
sphinx.nvim
Sphinx integrations for Neovim
Stars: ✭ 64 (+166.67%)
Mutual labels:  autocompletion
Vim You Autocorrect
Why should smartphones get all the fun?
Stars: ✭ 173 (+620.83%)
Mutual labels:  autocompletion
Sublime-GameMaker-Studio-Language-Bundle
A sublime bundle for GameMaker Language (GML)
Stars: ✭ 32 (+33.33%)
Mutual labels:  autocompletion
Laravel Ide Helper
Laravel IDE Helper
Stars: ✭ 11,893 (+49454.17%)
Mutual labels:  autocompletion
sublime-reason
Official Reason plugin for Sublime Text
Stars: ✭ 42 (+75%)
Mutual labels:  language-server
Coc.nvim
Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
Stars: ✭ 18,268 (+76016.67%)
Mutual labels:  autocompletion
LanguageServer.NET
A .NET Standard server-side implementation of Language Server Protocol 2.0/3.x infrastructure library.
Stars: ✭ 78 (+225%)
Mutual labels:  language-server
Hss
An interactive parallel ssh client featuring autocomplete and asynchronous execution.
Stars: ✭ 248 (+933.33%)
Mutual labels:  autocompletion
Orbacle
Program allowing for smart jump-to-definitions, autocompletion, constant renaming and more.
Stars: ✭ 191 (+695.83%)
Mutual labels:  autocompletion
autocomplete-haskell
Atom autocomplete-plus provider for haskell
Stars: ✭ 23 (-4.17%)
Mutual labels:  autocompletion
Modernsearchbar
The famous iOS search bar with auto completion feature implemented.
Stars: ✭ 167 (+595.83%)
Mutual labels:  autocompletion
nvim-config
My neovim config
Stars: ✭ 63 (+162.5%)
Mutual labels:  autocompletion
Athenacli
AthenaCLI is a CLI tool for AWS Athena service that can do auto-completion and syntax highlighting.
Stars: ✭ 151 (+529.17%)
Mutual labels:  autocompletion
Yarn Completion
Bash completion for Yarn
Stars: ✭ 210 (+775%)
Mutual labels:  autocompletion
zsh-yarn-completions
Yarn completions for Z-shell that supports yarn workspaces
Stars: ✭ 35 (+45.83%)
Mutual labels:  autocompletion
UnrealScriptIDE
Auto-completion, Syntax Highlighting, Go to Declaration, Build and Run and more..
Stars: ✭ 86 (+258.33%)
Mutual labels:  autocompletion

Yoda Test

Yoda is a Language Server (http://langserver.org/) for Ruby. Yoda infers signatures of your Ruby program and its dependencies from various data sources (RBS and YARD documentation) and provides autocompletion and code analysis (go-to-definition, code information, etc...).

Note: Yoda is alpha version. Please use with caution. Contributions are welcome!

Supporting Features

Yoda provides these features by analyzing Ruby code and its dependencies in Gemfile.lock with YARD.

  • Code completion (method, constant, variables, etc...)
  • Comment completion (YARD tag, types)
  • Hover code information (method, constant, etc...)
  • Go to definition (method, constant, require file, etc...)

Install VSCode Extension (Recommended)

Yoda can be available as VSCode extension at: https://marketplace.visualstudio.com/items?itemName=tomoasleep.yoda On launch of VSCode, Yoda will be installed automatically.

Other installation methods

Install language server gem

Yoda is hosted on RubyGems.

gem install yoda-language-server

See Instation of Editor Plugin section to install Yoda on your editor.

Yoda can be also used as a cli tool.

$ yoda setup # You must run this command first for your each project.
$ yoda infer path-to-your-code:line_num:char_num # Show information of the code at the specified position.
$ yoda complete <path-to-your-code>:<line-num>:<char-num> # Show completion at the specified position.

Install Editor Plugin

Atom

apm install tomoasleep/yoda

VSCode (from source code)

rake vscode:install

Vim/NeoVim

Please use language server client such as LanguageClient-neovim. Here is a configuration example for LanguageClient-neovim.

let g:LanguageClient_serverCommands = {
    \ 'ruby': ['yoda', 'server'],
    \ }

Emacs

TBW

Internal

YARD utilization

Yoda figures structures of your source codes and library codes with YARD.
Yoda intepret YARD tags such as @return tags and @param tags and infer code types from these information.

Indexing

Yoda built index files for fast inference under <your-project-dir>/.yoda at startup.
These index files contains structures of external sources (gems and standard libraries).
Your project codes are parsed at startup but does not stored in indexes.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/tomoasleep/yoda.

License

The gem is available as open source under the terms of the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].