src/language/CodeInspection.js
function getProvidersForPath(filePath) {
        var language            = LanguageManager.getLanguageForPath(filePath).getId(),
            context             = PreferencesManager._buildContext(filePath, language),
            installedProviders  = getProvidersForLanguageId(language),
            preferredProviders,

            prefPreferredProviderNames  = prefs.get(PREF_PREFER_PROVIDERS, context),
            prefPreferredOnly           = prefs.get(PREF_PREFERRED_ONLY, context),

            providers;

        if (prefPreferredProviderNames && prefPreferredProviderNames.length) {
            if (typeof prefPreferredProviderNames === "string") {
                prefPreferredProviderNames = [prefPreferredProviderNames];
            }
            preferredProviders = prefPreferredProviderNames.reduce(function (result, key) {
                var provider = _.find(installedProviders, {name: key});
                if (provider) {
                    result.push(provider);
                }
                return result;
            }, []);
            if (prefPreferredOnly) {
                providers = preferredProviders;
            } else {
                providers = _.union(preferredProviders, installedProviders);
            }
        } else {
            providers = installedProviders;
        }
        return providers;
    }
function getProvidersForPath(filePath) {
        var language            = LanguageManager.getLanguageForPath(filePath).getId(),
            context             = PreferencesManager._buildContext(filePath, language),
            installedProviders  = getProvidersForLanguageId(language),
            preferredProviders,

            prefPreferredProviderNames  = prefs.get(PREF_PREFER_PROVIDERS, context),
            prefPreferredOnly           = prefs.get(PREF_PREFERRED_ONLY, context),

            providers;

        if (prefPreferredProviderNames && prefPreferredProviderNames.length) {
            if (typeof prefPreferredProviderNames === "string") {
                prefPreferredProviderNames = [prefPreferredProviderNames];
            }
            preferredProviders = prefPreferredProviderNames.reduce(function (result, key) {
                var provider = _.find(installedProviders, {name: key});
                if (provider) {
                    result.push(provider);
                }
                return result;
            }, []);
            if (prefPreferredOnly) {
                providers = preferredProviders;
            } else {
                providers = _.union(preferredProviders, installedProviders);
            }
        } else {
            providers = installedProviders;
        }
        return providers;
    }
function getProvidersForPath ( filePath ) { var language = LanguageManager . getLanguageForPath ( filePath ) . getId ( ) , context = PreferencesManager . _buildContext ( filePath , language ) , installedProviders = getProvidersForLanguageId ( language ) , preferredProviders , prefPreferredProviderNames = prefs . get ( PREF_PREFER_PROVIDERS , context ) , prefPreferredOnly = prefs . get ( PREF_PREFERRED_ONLY , context ) , providers ; if ( prefPreferredProviderNames && prefPreferredProviderNames . length ) { if ( typeof prefPreferredProviderNames === "string" ) { prefPreferredProviderNames = [ prefPreferredProviderNames ] ; } preferredProviders = prefPreferredProviderNames . reduce ( function ( result , key ) { var provider = _ . find ( installedProviders , { name : key } ) ; if ( provider ) { result . push ( provider ) ; } return result ; } , [ ] ) ; if ( prefPreferredOnly ) { providers = preferredProviders ; } else { providers = _ . union ( preferredProviders , installedProviders ) ; } } else { providers = installedProviders ; } return providers ; }
Returns a list of provider for given file path, if available.
Decision is made depending on the file extension.

@param {!string} filePath
@return {Array.<{name:string, scanFileAsync:?function(string, string):!{$.Promise}, scanFile:?function(string, string):?{errors:!Array, aborted:boolean}}>}
Returns a list of provider for given file path if available . Decision is made depending on the file extension .