Link to your editor - BetterErrors/better_errors GitHub Wiki
Better Errors includes a link to the source code when you're looking at any exception.

Configuring
By default, your $EDITOR environment variable is used to determine which editing application you prefer.
If you haven't set $EDITOR, that would be a good first step for making development easier.
If you prefer that Better Errors use a different editor than the one in your $EDITOR, set the $BETTER_ERRORS_EDITOR environment variable.
It will take precedence.
(But this is supported only by v2.9 and higher.)
Some editors require you to take steps to install their command-line tool.
Then you'll need to modify your ~/.bashrc or ~/.zshrc depending on which shell you use, to set $EDITOR.
If you are using Pow or puma-dev for managing multiple web applications see Running in Puma dev or Pow.
If you are using Vagrant, Docker, or another virtualization mechanism, you may need to configure it to have the correct location of the source files on your machine. See Running on virtual machines.
If your editor is not supported, we strongly recommend against modifying your software project to point to a specific editor. This is because every developer might have different preferences.
Supported editors
Better Errors supports the following editors.
See
BetterErrors::Editor::KNOWN_EDITORSfor more information. If your$EDITORmatches thesniffpattern, the listed editor will be used.
If your editor is not listed, you can instead set
$BETTER_ERRORS_EDITOR_URLto a string like theurls listed there. By doing this, you can customize the URL to anything you want, including cloud editors. (But this is supported only by v2.9 and higher.)
Atom
Atom v1.23 added support for open/file URLs.
Install the Shell Commands from within Atom and add the following to your shell config:
export EDITOR="atom"
Emacs
Add the following to your shell config:
export EDITOR="emacs"
The URL is emacs://open?url=file://%{file}&line=%{line}.
Using Firefox
You'll need to register the emacs:// protocol in Firefox.
Also, Firefox will pass a lot of junk to the command, here's a suggestion for your bin/ folder: https://gist.github.com/nofxx/6987409
IntelliJ IDEA
Add the following to your shell config:
export EDITOR="idea"
The URL is idea://open?file=%{file}&line=%{line}.
MacVIM
Add the following to your shell config:
export EDITOR="vim"
The URL is mvim://open?url=file://%{file}&line=%{line}.
In iTerm
Instructions are in phallstrom/urlscheme_vim_in_iterm.
RubyMine
In newer version of RubyMine you have to enable the Command-Line Launcher. This can be done via the Jetbrains Toolbox App.
Add the following to your shell config:
export EDITOR="rubymine"
The URL is rubymine://open?file=%{file}&line=%{line}.
If this doesn't work, you can instead use the "Forcing a specific editor" method (see below) with 'x-mine://open?file=%{file}&line=%{line}'.
Sublime Text
You'll need to install subl handler or something similar.
Add the following to your shell config:
export EDITOR="subl -w"
(The -w causes the command line tool to wait until you close the file before it continues.
This is necessary for tools like git, where it must wait for you to edit the file before continuing.)
If you installed a sublime URL handler before August 2017, please see this security advisory and remove your old URL handler.
The URL is subl://open?url=file://%{file}&line=%{line}.
TextMate
TextMate-compatible URLs are enabled by default, or if $EDITOR contains "mate".
The URL is txmt://open?url=file://%{file}&line=%{line}.
Add the following to your shell config:
export EDITOR="mate -w"
(The -w causes the command line tool to wait until you close the file before it continues.
This is necessary for tools like git, where it must wait for you to edit the file before continuing.)
Visual Studio Code
Install the command-line tools
Add the following to your shell config (on MacOS put this in ~/.bash_profile :
export EDITOR="code --wait"
(The -w causes the command line tool to wait until you close the file before it continues.
This is necessary for tools like git, where it must wait for you to edit the file before continuing.)
For VS Code remote targets under WSL, the following initializer works (see below):
if defined?(BetterErrors) && (distro_name = ENV['WSL_DISTRO_NAME'])
BetterErrors.editor = "vscode://vscode-remote/wsl+#{distro_name}%{file_unencoded}:%{line}"
end
Editors not supported
Is your preferred editor missing? Please open an Issue or Pull Request.
Panic Nova
Nova does not currently support opening files through a nova:// scheme URL.
Forcing a specific editor
You can configure your Ruby project to force Better Errors to link to a specific editor.
But this is not recommended, since each developer on your project may prefer a different editor.
If you must configure Better Errors this way, add config/initializers/better_errors.rb to your global .gitignore or the project .gitignore file.
Place the following in config/initializers/better_errors.rb:
if defined?(BetterErrors)
BetterErrors.editor = :txmt
end
If you're using an editor that is not supported directly by Better Errors, you can provide a formatting string, for example:
if defined?(BetterErrors)
BetterErrors.editor = "vscode://file/%{file}:%{line}"
end
Or if you need to change the way the string is assembled, you can provide a proc, for example:
if defined?(BetterErrors)
BetterErrors.editor = proc { |file, line|
"vscode://file/%{file}:%{line}" % { file: URI.encode_www_form_component(file), line: line }
}
end