What if there are multiple paths to scan? What if there are ".py", ".lua", ".js" and ".sh" plugins? If the number of paths to scan are `M` and the number of plugin types supported are `N` this design would result in `M*N` scans. Or even worse if those `M` paths consist of `K` `.sublime-package` files resulting in `M*N*K`.

Instead, something like this API would be cleaner:
```go
type (
	// Needs a better name...
	FileExtensionInterest interface {
		// The file extension we are interested in.
		// Possible this should be some other type than string.
		Extension() string

		// Or perhaps instead of the "Extension"
		// function, this would be a lot more flexible?
		InterestedIn(filename string) bool

		// This function needs a better name, but this function
		// is called when a file with the extension of interest
		// is found.
		//
		// The argument types and return type to be decided.
		// But the arguments of the callback should contain
		// all information needed to be able to load
		// data from the file no matter if it is stored
		// on disk, in a zip file or on the web.
		//
		// It wouldn't necessarily load the files here though,
		// the arguments provided should just be enough to
		// allow loading if that is what is wanted.
		Callback( /*TODO: argument types*/ ) /* TODO: return type(s?) */
	}
)

// TODO: Some type or package should have a function like this.
//
// This would add the interface to a list/map or something.
func (someone) RegisterInterest(FileExtensionInterest) /*return "error" perhaps?*/

// Unregister interest
func (someone) UnregisterInterest(FileExtensionInterest) /*return "error" perhaps?*/

// Would scan all registered paths calling the callbacks as suitable
func (someone) filesystemWalk()

// in say sublime.go
func init() {
	someone.RegisterInterest(MyPythonFileInterest{})
}
// in say lua.go
func init() {
	someone.RegisterInterest(MyLuaFileInterest{})
}
// in say js.go
func init() {
	someone.RegisterInterest(MyJSFileInterest{})
}
```
Plugins then wouldn't need to care about the details of all the possible locations possible for plugins to be stored and the backend can efficiently schedule scans to the bare minimum.