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

Preferences Code Hints #11130

Merged
merged 10 commits into from
Jun 2, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion src/LiveDevelopment/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,9 @@ define(function main(require, exports, module) {
// "livedev.multibrowser" preference
var PREF_MULTIBROWSER = "multibrowser";
var prefs = PreferencesManager.getExtensionPrefs("livedev");
var multiBrowserPref = prefs.definePreference(PREF_MULTIBROWSER, "boolean", false);
var multiBrowserPref = prefs.definePreference(PREF_MULTIBROWSER, "boolean", false, {
description: Strings.DESCRIPTION_LIVE_DEV_MULTIBROWSER
});

/** Toggles or sets the preference **/
function _togglePref(key, value) {
Expand Down
5 changes: 4 additions & 1 deletion src/brackets.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ define(function (require, exports, module) {
require("view/ThemeManager");
require("thirdparty/lodash");
require("language/XMLUtils");
require("language/JSONUtils");

// DEPRECATED: In future we want to remove the global CodeMirror, but for now we
// expose our required CodeMirror globally so as to avoid breaking extensions in the
Expand Down Expand Up @@ -437,7 +438,9 @@ define(function (require, exports, module) {
}

if (brackets.platform === "win" && !brackets.inBrowser) {
PreferencesManager.definePreference("_windowsScrollFix", "boolean", true).on("change", enableOrDisableWinScrollFix);
PreferencesManager.definePreference("_windowsScrollFix", "boolean", true, {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there some way to exclude a preference?
This is more or less a "hidden" preference that no one should ever need to change himself (and it will also go away at some point), so I'd appreciate it if this pref wasn't shown.
It wouldn't be much of an issue normally, but right now, this pref is the first to show up in the list...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exclude certain preferences from code hints: will add an issue to track this after this is merged.

excludeFromHints: true
}).on("change", enableOrDisableWinScrollFix);
enableOrDisableWinScrollFix();
}

Expand Down
4 changes: 3 additions & 1 deletion src/document/DocumentCommandHandlers.js
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,9 @@ define(function (require, exports, module) {
/** Unique token used to indicate user-driven cancellation of Save As (as opposed to file IO error) */
var USER_CANCELED = { userCanceled: true };

PreferencesManager.definePreference("defaultExtension", "string", "");
PreferencesManager.definePreference("defaultExtension", "string", "", {
excludeFromHints: true
});

/**
* JSLint workaround for circular dependency
Expand Down
12 changes: 9 additions & 3 deletions src/editor/CodeHintManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -252,9 +252,15 @@ define(function (require, exports, module) {
codeHintsEnabled = true;


PreferencesManager.definePreference("showCodeHints", "boolean", true);
PreferencesManager.definePreference("insertHintOnTab", "boolean", false);
PreferencesManager.definePreference("maxCodeHints", "integer", 50);
PreferencesManager.definePreference("showCodeHints", "boolean", true, {
description: Strings.DESCRIPTION_SHOW_CODE_HINTS
});
PreferencesManager.definePreference("insertHintOnTab", "boolean", false, {
description: Strings.DESCRIPTION_INSERT_HINT_ON_TAB
});
PreferencesManager.definePreference("maxCodeHints", "number", 50, {
description: Strings.DESCRIPTION_MAX_CODE_HINTS
});

PreferencesManager.on("change", "showCodeHints", function () {
codeHintsEnabled = PreferencesManager.get("showCodeHints");
Expand Down
87 changes: 72 additions & 15 deletions src/editor/Editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ define(function (require, exports, module) {
PerfUtils = require("utils/PerfUtils"),
PopUpManager = require("widgets/PopUpManager"),
PreferencesManager = require("preferences/PreferencesManager"),
Strings = require("strings"),
TextRange = require("document/TextRange").TextRange,
TokenUtils = require("utils/TokenUtils"),
ValidationUtils = require("utils/ValidationUtils"),
Expand Down Expand Up @@ -126,25 +127,81 @@ define(function (require, exports, module) {
cmOptions[USE_TAB_CHAR] = "indentWithTabs";
cmOptions[WORD_WRAP] = "lineWrapping";

PreferencesManager.definePreference(CLOSE_BRACKETS, "boolean", false);
PreferencesManager.definePreference(CLOSE_TAGS, "Object", { whenOpening: true, whenClosing: true, indentTags: [] });
PreferencesManager.definePreference(DRAG_DROP, "boolean", false);
PreferencesManager.definePreference(HIGHLIGHT_MATCHES, "boolean", false);
PreferencesManager.definePreference(SCROLL_PAST_END, "boolean", false);
PreferencesManager.definePreference(SHOW_CURSOR_SELECT, "boolean", false);
PreferencesManager.definePreference(SHOW_LINE_NUMBERS, "boolean", true);
PreferencesManager.definePreference(SMART_INDENT, "boolean", true);
PreferencesManager.definePreference(SOFT_TABS, "boolean", true);
PreferencesManager.definePreference(CLOSE_BRACKETS, "boolean", false, {
description: Strings.DESCRIPTION_CLOSE_BRACKETS
});
PreferencesManager.definePreference(CLOSE_TAGS, "object", { whenOpening: true, whenClosing: true, indentTags: [] }, {
description: Strings.DESCRIPTION_CLOSE_TAGS,
keys: {
dontCloseTags: {
type: "array",
description: Strings.DESCRIPTION_CLOSE_TAGS_DONT_CLOSE_TAGS
},
whenOpening: {
type: "boolean",
description: Strings.DESCRIPTION_CLOSE_TAGS_WHEN_OPENING
},
whenClosing: {
type: "boolean",
description: Strings.DESCRIPTION_CLOSE_TAGS_WHEN_CLOSING
},
indentTags: {
type: "array",
description: Strings.DESCRIPTION_CLOSE_TAGS_INDENT_TAGS
}
}
});
PreferencesManager.definePreference(DRAG_DROP, "boolean", false, {
description: Strings.DESCRIPTION_DRAG_DROP_TEXT
});
PreferencesManager.definePreference(HIGHLIGHT_MATCHES, "boolean", false, {
description: Strings.DESCRIPTION_HIGHLIGHT_MATCHES,
keys: {
showToken: {
type: "boolean",
description: Strings.DESCRIPTION_HIGHLIGHT_MATCHES_SHOW_TOKEN
},
wordsOnly: {
type: "boolean",
description: Strings.DESCRIPTION_HIGHLIGHT_MATCHES_WORDS_ONLY
}
}
});
PreferencesManager.definePreference(SCROLL_PAST_END, "boolean", false, {
description: Strings.DESCRIPTION_SCROLL_PAST_END
});
PreferencesManager.definePreference(SHOW_CURSOR_SELECT, "boolean", false, {
description: Strings.DESCRIPTION_SHOW_CURSOR_WHEN_SELECTING
});
PreferencesManager.definePreference(SHOW_LINE_NUMBERS, "boolean", true, {
description: Strings.DESCRIPTION_SHOW_LINE_NUMBERS
});
PreferencesManager.definePreference(SMART_INDENT, "boolean", true, {
description: Strings.DESCRIPTION_SMART_INDENT
});
PreferencesManager.definePreference(SOFT_TABS, "boolean", true, {
description: Strings.DESCRIPTION_SOFT_TABS
});
PreferencesManager.definePreference(SPACE_UNITS, "number", DEFAULT_SPACE_UNITS, {
validator: _.partialRight(ValidationUtils.isIntegerInRange, MIN_SPACE_UNITS, MAX_SPACE_UNITS)
validator: _.partialRight(ValidationUtils.isIntegerInRange, MIN_SPACE_UNITS, MAX_SPACE_UNITS),
description: Strings.DESCRIPTION_SPACE_UNITS
});
PreferencesManager.definePreference(STYLE_ACTIVE_LINE, "boolean", false, {
description: Strings.DESCRIPTION_STYLE_ACTIVE_LINE
});
PreferencesManager.definePreference(STYLE_ACTIVE_LINE, "boolean", false);
PreferencesManager.definePreference(TAB_SIZE, "number", DEFAULT_TAB_SIZE, {
validator: _.partialRight(ValidationUtils.isIntegerInRange, MIN_TAB_SIZE, MAX_TAB_SIZE)
validator: _.partialRight(ValidationUtils.isIntegerInRange, MIN_TAB_SIZE, MAX_TAB_SIZE),
description: Strings.DESCRIPTION_TAB_SIZE
});
PreferencesManager.definePreference(UPPERCASE_COLORS, "boolean", false, {
description: Strings.DESCRIPTION_UPPERCASE_COLORS
});
PreferencesManager.definePreference(USE_TAB_CHAR, "boolean", false, {
description: Strings.DESCRIPTION_USE_TAB_CHAR
});
PreferencesManager.definePreference(WORD_WRAP, "boolean", true, {
description: Strings.DESCRIPTION_WORD_WRAP
});
PreferencesManager.definePreference(UPPERCASE_COLORS, "boolean", false);
PreferencesManager.definePreference(USE_TAB_CHAR, "boolean", false);
PreferencesManager.definePreference(WORD_WRAP, "boolean", true);

var editorOptions = Object.keys(cmOptions);

Expand Down
4 changes: 3 additions & 1 deletion src/extensibility/Package.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,9 @@ define(function (require, exports, module) {
NodeConnection = require("utils/NodeConnection"),
PreferencesManager = require("preferences/PreferencesManager");

PreferencesManager.definePreference("proxy", "string", undefined);
PreferencesManager.definePreference("proxy", "string", undefined, {
description: Strings.DESCRIPTION_PROXY
});

var Errors = {
ERROR_LOADING: "ERROR_LOADING",
Expand Down
12 changes: 9 additions & 3 deletions src/extensions/default/CloseOthers/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,15 @@ define(function (require, exports, module) {
var prefs = PreferencesManager.getExtensionPrefs("closeOthers"),
menuEntriesShown = {};

prefs.definePreference("below", "boolean", true);
prefs.definePreference("others", "boolean", true);
prefs.definePreference("above", "boolean", true);
prefs.definePreference("below", "boolean", true, {
description: Strings.DESCRIPTION_CLOSE_OTHERS_BELOW
});
prefs.definePreference("others", "boolean", true, {
description: Strings.DESCRIPTION_CLOSE_OTHERS
});
prefs.definePreference("above", "boolean", true, {
description: Strings.DESCRIPTION_CLOSE_OTHERS_ABOVE
});


/**
Expand Down
20 changes: 8 additions & 12 deletions src/extensions/default/CodeFolding/Prefs.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,34 +11,30 @@ define(function (require, exports, module) {

var ProjectManager = brackets.getModule("project/ProjectManager"),
PreferencesManager = brackets.getModule("preferences/PreferencesManager"),
Strings = brackets.getModule("strings"),
prefs = PreferencesManager.getExtensionPrefs("code-folding"),
FOLDS_PREF_KEY = "code-folding.folds",
// preference key strings are here for now since they are not used in any UI
ENABLE_CODE_FOLDING = "Enable code folding",
MIN_FOLD_SIZE = "Minimum fold size",
MIN_FOLD_SIZE_HELP = "Minimum number of lines to allow in a foldable range",
SAVE_FOLD_STATES = "Save fold states",
SAVE_FOLD_STATES_HELP = "Save fold states to disk when editor is closed and restore the folds when reopened",
ALWAYS_USE_INDENT_FOLD = "Always use indent fold",
ALWAYS_USE_INDENT_FOLD_HELP = "Fall back to using level of indentation as a folding guideline if no range finder is found for the current mode.",
HIDE_FOLD_BUTTONS = "Hide fold triangles",
HIDE_FOLD_BUTTONS_HELP = "Hide fold triangles unless the mouse is over the gutter",
MAX_FOLD_LEVEL = "Max fold level",
MAX_FOLD_LEVEL_HELP = "Used to limit the number of nested folds to find and collapse when View -> Collapse All is called or Alt is held down when collapsing. Should improve performance for large files.";
MAX_FOLD_LEVEL = "Max fold level";

//default preference values
prefs.definePreference("enabled", "boolean", true,
{name: ENABLE_CODE_FOLDING, description: ENABLE_CODE_FOLDING});
{name: ENABLE_CODE_FOLDING, description: Strings.DESCRIPTION_CODE_FOLDING_ENABLED});
prefs.definePreference("minFoldSize", "number", 2,
{name: MIN_FOLD_SIZE, description: MIN_FOLD_SIZE_HELP});
{name: MIN_FOLD_SIZE, description: Strings.DESCRIPTION_CODE_FOLDING_MIN_FOLD_SIZE});
prefs.definePreference("saveFoldStates", "boolean", true,
{name: SAVE_FOLD_STATES, description: SAVE_FOLD_STATES_HELP});
{name: SAVE_FOLD_STATES, description: Strings.DESCRIPTION_CODE_FOLDING_SAVE_FOLD_STATES});
prefs.definePreference("alwaysUseIndentFold", "boolean", false,
{name: ALWAYS_USE_INDENT_FOLD, description: ALWAYS_USE_INDENT_FOLD_HELP});
{name: ALWAYS_USE_INDENT_FOLD, description: Strings.DESCRIPTION_CODE_FOLDING_ALWAY_USE_INDENT_FOLD});
prefs.definePreference("hideUntilMouseover", "boolean", false,
{name: HIDE_FOLD_BUTTONS, description: HIDE_FOLD_BUTTONS_HELP});
{name: HIDE_FOLD_BUTTONS, description: Strings.DESCRIPTION_CODE_FOLDING_HIDE_UNTIL_MOUSEOVER});
prefs.definePreference("maxFoldLevel", "number", 2,
{name: MAX_FOLD_LEVEL, description: MAX_FOLD_LEVEL_HELP});
{name: MAX_FOLD_LEVEL, description: Strings.DESCRIPTION_CODE_FOLDING_MAX_FOLD_LEVEL});

PreferencesManager.stateManager.definePreference(FOLDS_PREF_KEY, "object", {});

Expand Down
4 changes: 3 additions & 1 deletion src/extensions/default/DebugCommands/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,9 @@ define(function (require, exports, module) {
DEBUG_SHOW_ERRORS_IN_STATUS_BAR = "debug.showErrorsInStatusBar",
DEBUG_OPEN_BRACKETS_SOURCE = "debug.openBracketsSource";

PreferencesManager.definePreference(DEBUG_SHOW_ERRORS_IN_STATUS_BAR, "boolean", false);
PreferencesManager.definePreference(DEBUG_SHOW_ERRORS_IN_STATUS_BAR, "boolean", false, {
description: Strings.DESCRIPTION_SHOW_ERRORS_IN_STATUS_BAR
});

function handleShowDeveloperTools() {
brackets.app.showDeveloperTools();
Expand Down
5 changes: 4 additions & 1 deletion src/extensions/default/HealthData/HealthDataManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,15 @@ define(function (require, exports, module) {
var AppInit = brackets.getModule("utils/AppInit"),
PreferencesManager = brackets.getModule("preferences/PreferencesManager"),
UrlParams = brackets.getModule("utils/UrlParams").UrlParams,
Strings = brackets.getModule("strings"),
HealthDataUtils = require("HealthDataUtils"),
uuid = require("thirdparty/uuid");

var prefs = PreferencesManager.getExtensionPrefs("healthData");

prefs.definePreference("healthDataTracking", "boolean", true);
prefs.definePreference("healthDataTracking", "boolean", true, {
description: Strings.DESCRIPTION_HEALTH_DATA_TRACKING
});

var ONE_MINUTE = 60 * 1000,
ONE_DAY = 24 * 60 * ONE_MINUTE,
Expand Down
122 changes: 121 additions & 1 deletion src/extensions/default/JSLint/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,127 @@ define(function (require, exports, module) {
*/
var _lastRunOptions;

prefs.definePreference("options", "object", undefined)
prefs.definePreference("options", "object", undefined, {
description: Strings.DESCRIPTION_JSLINT_OPTIONS,
keys: {
ass: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_ASS
},
bitwise: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_BITWISE
},
browser: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_BROWSER
},
closure: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_CLOSURE
},
"continue": {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_CONTINUE
},
couch: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_COUCH
},
debug: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_DEBUG
},
devel: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_DEVEL
},
eqeq: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_EQEQ
},
es6: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_ES6
},
evil: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_EVIL
},
forin: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_FORIN
},
indent: {
type: "number",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_INDENT
},
maxerr: {
type: "number",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_MAXERR
},
maxlen: {
type: "number",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_MAXLEN
},
newcap: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_NEWCAP
},
node: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_NODE
},
nomen: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_NOMEN
},
passfail: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_PASSFAIL
},
plusplus: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_PLUSPLUS
},
regexp: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_REGEXP
},
rhino: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_RHINO
},
sloppy: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_SLOPPY
},
stupid: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_STUPID
},
sub: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_SUB
},
todo: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_TODO
},
unparam: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_UNPARAM
},
vars: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_VARS
},
white: {
type: "boolean",
description: Strings.DESCRIPTION_JSLINT_OPTIONS_WHITE
}
}
})
.on("change", function (e, data) {
var options = prefs.get("options");
if (!_.isEqual(options, _lastRunOptions)) {
Expand Down
Loading