Sorbet usage

From wikinotes
  • sorbet-runtime runs with your code
  • sorbet-static reads your code without evaluating it

Install

gem install sorbet         # install srb
gem install sorbet-runtime # sorbet runtime checks
gem install sorbet-static  # sorbet static checks

Commandline

Static typechecking

bundle exec srb tc --help 2>&1 | less -Ri           # show help in less
bundle exec srb tc 2>&1 | grep -C5 ClassICareAbout  # check for errors in specific class

Code

Within your code, syntax is provided by sorbet-runtime.

require "sorbet-runtime"

class Foo
    extend T::Sig

    sig { params(a: String, b: T.nilable(Integer)).void }
    def bar(a, b: nil) = nil
end

Language Server Protocol (LSP)

You can also use sorbet as an LSP.

srb tc --lsp