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

Commit cc0bb85

Browse files
committed
Merge pull request #11201 from sprintr/move-prefs-description
Move descriptions to their preferences
2 parents 3348ab0 + 2917141 commit cc0bb85

File tree

9 files changed

+86
-74
lines changed

9 files changed

+86
-74
lines changed

src/extensions/default/CSSCodeHints/main.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,14 @@ define(function (require, exports, module) {
3737
TokenUtils = brackets.getModule("utils/TokenUtils"),
3838
StringMatch = brackets.getModule("utils/StringMatch"),
3939
ColorUtils = brackets.getModule("utils/ColorUtils"),
40+
Strings = brackets.getModule("strings"),
4041
CSSProperties = require("text!CSSProperties.json"),
4142
properties = JSON.parse(CSSProperties);
4243

4344

44-
PreferencesManager.definePreference("codehint.CssPropHints", "boolean", true);
45+
PreferencesManager.definePreference("codehint.CssPropHints", "boolean", true, {
46+
description: Strings.DESCRIPTION_CSS_PROP_HINTS
47+
});
4548

4649
// Context of the last request for hints: either CSSUtils.PROP_NAME,
4750
// CSSUtils.PROP_VALUE or null.

src/extensions/default/HTMLCodeHints/main.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,19 @@ define(function (require, exports, module) {
3333
CodeHintManager = brackets.getModule("editor/CodeHintManager"),
3434
HTMLUtils = brackets.getModule("language/HTMLUtils"),
3535
PreferencesManager = brackets.getModule("preferences/PreferencesManager"),
36+
Strings = brackets.getModule("strings"),
3637
HTMLTags = require("text!HtmlTags.json"),
3738
HTMLAttributes = require("text!HtmlAttributes.json"),
3839
tags,
3940
attributes;
4041

42+
PreferencesManager.definePreference("codehint.TagHints", "boolean", true, {
43+
description: Strings.DESCRIPTION_HTML_TAG_HINTS
44+
});
4145

42-
PreferencesManager.definePreference("codehint.TagHints", "boolean", true);
43-
44-
PreferencesManager.definePreference("codehint.AttrHints", "boolean", true);
46+
PreferencesManager.definePreference("codehint.AttrHints", "boolean", true, {
47+
description: Strings.DESCRIPTION_ATTR_HINTS
48+
});
4549

4650
/**
4751
* @constructor

src/extensions/default/HtmlEntityCodeHints/main.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,14 @@ define(function (require, exports, module) {
3434
ExtensionUtils = brackets.getModule("utils/ExtensionUtils"),
3535
HTMLUtils = brackets.getModule("language/HTMLUtils"),
3636
PreferencesManager = brackets.getModule("preferences/PreferencesManager"),
37+
Strings = brackets.getModule("strings"),
3738
HtmlSpecialChars = require("text!SpecialChars.json"),
3839
specialChars;
3940

4041

41-
PreferencesManager.definePreference("codehint.SpecialCharHints", "boolean", true);
42+
PreferencesManager.definePreference("codehint.SpecialCharHints", "boolean", true, {
43+
description: Strings.DESCRIPTION_SPECIAL_CHAR_HINTS
44+
});
4245

4346
/**
4447
* Encodes the special Char value given.

src/extensions/default/PrefsCodeHints/data.json

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/extensions/default/PrefsCodeHints/main.js

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,24 @@ define(function (require, exports, module) {
3838
JSONUtils = brackets.getModule("language/JSONUtils"),
3939
Strings = brackets.getModule("strings"),
4040
ThemeManager = brackets.getModule("view/ThemeManager"),
41+
CodeInspection = brackets.getModule("language/CodeInspection"),
4142
_ = brackets.getModule("thirdparty/lodash"),
42-
data = JSON.parse(require("text!data.json")),
43+
languages = LanguageManager.getLanguages(),
4344
isPrefDocument = false,
4445
isPrefHintsEnabled = false;
4546

47+
// Stores data of preferences used by Brackets and its core/thirdparty extensions.
48+
var data = {
49+
language: {
50+
type: "object",
51+
description: Strings.DESCRIPTION_LANGUAGE
52+
},
53+
path: {
54+
type: "object",
55+
description: Strings.DESCRIPTION_PATH
56+
}
57+
};
58+
4659
var stringMatcherOptions = {
4760
preferPrefixMatches: true
4861
};
@@ -85,7 +98,7 @@ define(function (require, exports, module) {
8598
return (/^\.?brackets\.json$/).test(document.file._name);
8699
}
87100

88-
// Set listeners on preference and editor changes.
101+
// Set listeners on preference, editor and language changes.
89102
PreferencesManager.on("change", "showCodeHints", function () {
90103
isPrefHintsEnabled = _isPrefHintsEnabled();
91104
});
@@ -98,6 +111,9 @@ define(function (require, exports, module) {
98111
}
99112
isPrefHintsEnabled = _isPrefHintsEnabled();
100113
});
114+
LanguageManager.on("languageAdded", function () {
115+
languages = LanguageManager.getLanguages();
116+
});
101117

102118
/*
103119
* Returns a sorted and formatted list of hints with the query substring
@@ -169,11 +185,6 @@ define(function (require, exports, module) {
169185
data[pref].keys = _.clone(preference.keys);
170186
}
171187
});
172-
173-
// Add installed themes to code hints.
174-
data["themes.theme"].values = ThemeManager.getAllThemes().map(function (theme) {
175-
return theme.name;
176-
});
177188
}
178189

179190
/**
@@ -224,7 +235,7 @@ define(function (require, exports, module) {
224235
if (data[ctxInfo.parentKeyName] && data[ctxInfo.parentKeyName].keys) {
225236
keys = data[ctxInfo.parentKeyName].keys;
226237
} else if (ctxInfo.parentKeyName === "language") {
227-
keys = LanguageManager.getLanguages();
238+
keys = languages;
228239
option.type = "object";
229240
} else {
230241
keys = data;
@@ -235,7 +246,7 @@ define(function (require, exports, module) {
235246
var match = StringMatch.stringMatch(key, query, stringMatcherOptions);
236247
if (match) {
237248
match.type = keys[key].type || option.type;
238-
match.description = keys[key].description || Strings[keys[key].string] || null;
249+
match.description = keys[key].description || null;
239250
return match;
240251
}
241252
}
@@ -257,9 +268,15 @@ define(function (require, exports, module) {
257268
} else if (option && option.values && (["number", "string"].indexOf(option.type) !== -1 ||
258269
(option.type === "array" && ctxInfo.isArray))) {
259270
values = option.values;
271+
} else if (ctxInfo.isArray && ctxInfo.keyName === "linting.prefer" && languages[ctxInfo.parentKeyName]) {
272+
values = CodeInspection.getProviderIDsForLanguage(ctxInfo.parentKeyName);
273+
} else if (ctxInfo.keyName === "themes.theme") {
274+
values = ThemeManager.getAllThemes().map(function (theme) {
275+
return theme.name;
276+
});
260277
} else if (ctxInfo.parentKeyName === "language.fileExtensions" ||
261278
ctxInfo.parentKeyName === "language.fileNames") {
262-
values = Object.keys(LanguageManager.getLanguages());
279+
values = Object.keys(languages);
263280
} else {
264281
return null;
265282
}
@@ -269,7 +286,7 @@ define(function (require, exports, module) {
269286
var match = StringMatch.stringMatch(value, query, stringMatcherOptions);
270287
if (match) {
271288
match.type = option.valueType || option.type;
272-
match.description = Strings[option.string] || option.description || null;
289+
match.description = option.description || null;
273290
return match;
274291
}
275292
});

src/extensions/default/StaticServer/StaticServer.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ define(function (require, exports, module) {
3131

3232
var BaseServer = brackets.getModule("LiveDevelopment/Servers/BaseServer").BaseServer,
3333
LiveDevelopmentUtils = brackets.getModule("LiveDevelopment/LiveDevelopmentUtils"),
34-
PreferencesManager = brackets.getModule("preferences/PreferencesManager");
34+
PreferencesManager = brackets.getModule("preferences/PreferencesManager"),
35+
Strings = brackets.getModule("strings");
3536

3637

3738
/**
@@ -41,7 +42,9 @@ define(function (require, exports, module) {
4142
*/
4243
var _prefs = PreferencesManager.getExtensionPrefs("staticserver");
4344

44-
_prefs.definePreference("port", "number", 0);
45+
_prefs.definePreference("port", "number", 0, {
46+
description: Strings.DESCRIPTION_STATIC_SERVER_PORT
47+
});
4548

4649
/**
4750
* @constructor

src/extensions/default/UrlCodeHints/main.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,18 @@ define(function (require, exports, module) {
3737
PreferencesManager = brackets.getModule("preferences/PreferencesManager"),
3838
ProjectManager = brackets.getModule("project/ProjectManager"),
3939
StringUtils = brackets.getModule("utils/StringUtils"),
40-
41-
Data = require("text!data.json"),
40+
Strings = brackets.getModule("strings"),
41+
Data = require("text!data.json"),
4242

4343
urlHints,
4444
data,
4545
htmlAttrs,
4646
styleModes = ["css", "text/x-less", "text/x-scss"];
4747

4848

49-
PreferencesManager.definePreference("codehint.UrlCodeHints", "boolean", true);
49+
PreferencesManager.definePreference("codehint.UrlCodeHints", "boolean", true, {
50+
description: Strings.DESCRIPTION_URL_CODE_HINTS
51+
});
5052

5153
/**
5254
* @constructor

src/language/CodeInspection.js

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,21 @@ define(function (require, exports, module) {
198198
return providers;
199199
}
200200

201+
/**
202+
* Returns an array of the IDs of providers registered for a specific language
203+
*
204+
* @param {!string} languageId
205+
* @return {Array.<string>} Names of registered providers.
206+
*/
207+
function getProviderIDsForLanguage(languageId) {
208+
if (!_providers[languageId]) {
209+
return [];
210+
}
211+
return _providers[languageId].map(function (provider) {
212+
return provider.name;
213+
});
214+
}
215+
201216
/**
202217
* Runs a file inspection over passed file. Uses the given list of providers if specified, otherwise uses
203218
* the set of providers that are registered for the file's language.
@@ -608,11 +623,18 @@ define(function (require, exports, module) {
608623
toggleCollapsed(prefs.get(PREF_COLLAPSED), true);
609624
});
610625

611-
prefs.definePreference(PREF_ASYNC_TIMEOUT, "number", 10000);
626+
prefs.definePreference(PREF_ASYNC_TIMEOUT, "number", 10000, {
627+
description: Strings.DESCRIPTION_ASYNC_TIMEOUT
628+
});
612629

613-
prefs.definePreference(PREF_PREFER_PROVIDERS, "array", []);
630+
prefs.definePreference(PREF_PREFER_PROVIDERS, "array", [], {
631+
description: Strings.DESCRIPTION_LINTING_PREFER,
632+
valueType: "string"
633+
});
614634

615-
prefs.definePreference(PREF_PREFERRED_ONLY, "boolean", false);
635+
prefs.definePreference(PREF_PREFERRED_ONLY, "boolean", false, {
636+
description: Strings.DESCRIPTION_USE_PREFERED_ONLY
637+
});
616638

617639
// Initialize items dependent on HTML DOM
618640
AppInit.htmlReady(function () {
@@ -681,10 +703,11 @@ define(function (require, exports, module) {
681703
exports._PREF_PREFERRED_ONLY = PREF_PREFERRED_ONLY;
682704

683705
// Public API
684-
exports.register = register;
685-
exports.Type = Type;
686-
exports.toggleEnabled = toggleEnabled;
687-
exports.inspectFile = inspectFile;
688-
exports.requestRun = run;
689-
exports.getProvidersForPath = getProvidersForPath;
706+
exports.register = register;
707+
exports.Type = Type;
708+
exports.toggleEnabled = toggleEnabled;
709+
exports.inspectFile = inspectFile;
710+
exports.requestRun = run;
711+
exports.getProvidersForPath = getProvidersForPath;
712+
exports.getProviderIDsForLanguage = getProviderIDsForLanguage;
690713
});

src/nls/root/strings.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,7 @@ define({
714714
"DESCRIPTION_LANGUAGE_FILE_EXTENSIONS" : "Additional mappings from file extension to language name",
715715
"DESCRIPTION_LANGUAGE_FILE_NAMES" : "Additional mappings from file name to language name",
716716
"DESCRIPTION_LINTING_ENABLED" : "True to enable Code Inspection",
717+
"DESCRIPTION_ASYNC_TIMEOUT" : "The time in milliseconds after which asynchronous linters time out",
717718
"DESCRIPTION_LINTING_PREFER" : "Array of linters to run first",
718719
"DESCRIPTION_LIVE_DEV_MULTIBROWSER" : "True to enable experimental Live Preview",
719720
"DESCRIPTION_USE_PREFERED_ONLY" : "True to run providers specified in linting.prefer only",

0 commit comments

Comments
 (0)