More exhaustive Switch File functionality for the C-family
- Total 469
- Win 225
- OS X 109
- Linux 135
|Jul 18||Jul 17||Jul 16||Jul 15||Jul 14||Jul 13||Jul 12||Jul 11||Jul 10||Jul 9||Jul 8||Jul 7||Jul 6||Jul 5||Jul 4||Jul 3||Jul 2||Jul 1||Jun 30||Jun 29||Jun 28||Jun 27||Jun 26||Jun 25||Jun 24||Jun 23||Jun 22||Jun 21||Jun 20||Jun 19||Jun 18||Jun 17||Jun 16||Jun 15||Jun 14||Jun 13||Jun 12||Jun 11||Jun 10||Jun 9||Jun 8||Jun 7||Jun 6||Jun 5||Jun 4|
A simple plugin that “takes over” the menu item in Goto -> Switch File -> Switch Header/Implementation. Actually, it takes over the command that gets invoked by that menu item.
Just use Switch Header/Implementation like you normally would. That is, either from the menu item in Goto -> Switch File -> Switch Header/Implementation, or by its keybinding, whatever that may be.
For example, if your header file lives in
and your implementation file lives in
then this plugin will actually do the switch.
Two Modes of Operation
When you're in folder mode (you have not opened a
then the plugin will traverse parent directories. A sanity limit of going up
three parent directories is in place. You can change this number in the
settings of the plugin, but do not make this number too high, or Sublime might
If your code base looks like this:
$project_path/include/foo/bar.hpp $project_path/include/foo/baz/bar.hpp $project_path/src/bar.cpp
then switching from
src/bar.cpp, you'll most likely end up in
include/foo/bar.hpp, as that's the first good match. This is the downside of
When you're in project mode (you have opened a
then the plugin will assume that the project file is at the root of the
directory, and the search will start there. All candidate files are collected,
and if there's more than one candidate file, a quick panel will pop up asking
you to select the correct file. From that point on the plugin will always
choose your selection for switching. This mode is much more powerful. Use the
power of the sublime project file.
The plugin might come up with false positives. For example, if your code base looks like this:
$project_path/include/awesome/foo.hpp $project_path/include/awesome/bar/foo.hpp $project_path/src/bar/foo.cpp
then switching from
include/awesome/foo.hpp, it will open
src/bar/foo.cpp is probably paired with