Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

Commit f03c901

Browse files
committed
Merge pull request #9189 from Mark-Simulacrum/codeinspection-public-access
Change CodeInspection Public API to expose providers
2 parents 9ab6d5b + 12fdf81 commit f03c901

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

src/language/CodeInspection.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ define(function (require, exports, module) {
161161
* @return ?{Array.<{name:string, scanFileAsync:?function(string, string):!{$.Promise}, scanFile:?function(string, string):?{errors:!Array, aborted:boolean}}>} provider
162162
*/
163163
function getProvidersForPath(filePath) {
164-
return _providers[LanguageManager.getLanguageForPath(filePath).getId()];
164+
return _providers[LanguageManager.getLanguageForPath(filePath).getId()].slice(0) || [];
165165
}
166166

167167
/**
@@ -645,9 +645,10 @@ define(function (require, exports, module) {
645645
exports._PREF_ASYNC_TIMEOUT = PREF_ASYNC_TIMEOUT;
646646

647647
// Public API
648-
exports.register = register;
649-
exports.Type = Type;
650-
exports.toggleEnabled = toggleEnabled;
651-
exports.inspectFile = inspectFile;
652-
exports.requestRun = run;
648+
exports.register = register;
649+
exports.Type = Type;
650+
exports.toggleEnabled = toggleEnabled;
651+
exports.inspectFile = inspectFile;
652+
exports.requestRun = run;
653+
exports.getProvidersForPath = getProvidersForPath;
653654
});

test/spec/CodeInspection-test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,23 @@ define(function (require, exports, module) {
166166
});
167167
});
168168

169+
it("should get the correct linter given a file path", function () {
170+
var codeInspector1 = createCodeInspector("text linter 1", successfulLintResult());
171+
var codeInspector2 = createCodeInspector("text linter 2", successfulLintResult());
172+
173+
CodeInspection.register("javascript", codeInspector1);
174+
CodeInspection.register("javascript", codeInspector2);
175+
176+
var providers = CodeInspection.getProvidersForPath("test.js");
177+
expect(providers.length).toBe(2);
178+
expect(providers[0]).toBe(codeInspector1);
179+
expect(providers[1]).toBe(codeInspector2);
180+
});
181+
182+
it("should return an empty array if no providers are registered", function () {
183+
expect(CodeInspection.getProvidersForPath("test.js").length).toBe(0);
184+
});
185+
169186
it("should run two linters", function () {
170187
var codeInspector1 = createCodeInspector("text linter 1", successfulLintResult());
171188
var codeInspector2 = createCodeInspector("text linter 2", successfulLintResult());

0 commit comments

Comments
 (0)