A Sublime Text 2/3 plugin to list related files
Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
screenshots
.gitignore
CHANGELOG.md
Default.sublime-commands
Default.sublime-keymap
Main.sublime-menu
README.md
RelatedFiles.sublime-settings
related_files.py

README.md

Sublime Text 3 - Related Files Plugin

Screenshot

This plugin provides a quick list of related files to the currently open file.

My main use case is to list related files under a Ruby on Rails project. For example, for an opened "app/controllers/examples_controller.rb", related files would be "app/helpers/examples_helper.rb", "app/views/examples/**", and "spec/controllers/examples_controller_spec.rb".

This plugin was inspired by the existing Open Related and Rails Related Files.

I wanted something between the two of them (a quick list of results that could be setup for any kinds of projects, not only Rails), so I created my own.

Key Shortcut

The default shortcut is mapped to "ctrl+super+p". To change it to something more suitable for your needs, you can easily change that by copying the following and replacing the "keys" to your desired key combination:

{ "keys": ["ctrl+super+p"], "command": "related_files"}

Configuration

The plugins comes configured to lookup Rails related files, but you can add your own setups. Let's see an existing example:

// Test/specs for ruby files
".+\/(app|lib)\/(.+).rb":
  [
    "spec/$2_spec.rb",
    "test/$2_test.rb"
  ]

The configuration has two parts: the key, which is a regular expression to match against the currently open file, and a list of globs to map the related files.

You can use the $1, $2, etc. on the glob strings to be replace by the extracted parts from the regex.

In addition to global configs, you can also have per project configs. To add that, in a sublime project file (project-name.sublime-project), add this:

{
  "settings":
  {
    "RelatedFiles": {
      "patterns": {
        // you project patterns
      }
    }
  }
}