forked from phcode-dev/staging.phcode.dev
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPrefs.js
More file actions
1 lines (1 loc) · 2.75 KB
/
Copy pathPrefs.js
File metadata and controls
1 lines (1 loc) · 2.75 KB
1
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",ENABLE_CODE_FOLDING="Enable code folding",MIN_FOLD_SIZE="Minimum fold size",SAVE_FOLD_STATES="Save fold states",ALWAYS_USE_INDENT_FOLD="Always use indent fold",HIDE_FOLD_BUTTONS="Hide fold triangles",MAX_FOLD_LEVEL="Max fold level",MAKE_SELECTIONS_FOLDABLE="Makes selections foldable";function simplify(folds){if(folds){var res={},range;return Object.keys(folds).forEach(function(line){range=folds[line],res[line]=Array.isArray(range)?range:[[range.from.line,range.from.ch],[range.to.line,range.to.ch]]}),res}}function inflate(folds){if(folds){var ranges={},obj;return Object.keys(folds).forEach(function(line){obj=folds[line],ranges[line]={from:{line:obj[0][0],ch:obj[0][1]},to:{line:obj[1][0],ch:obj[1][1]}}}),ranges}}function getFolds(path){var folds;return inflate(PreferencesManager.getViewState(FOLDS_PREF_KEY,PreferencesManager.STATE_PROJECT_CONTEXT)[path])}function setFolds(path,folds){const allFolds=PreferencesManager.getViewState(FOLDS_PREF_KEY,PreferencesManager.STATE_PROJECT_CONTEXT);allFolds[path]=simplify(folds),PreferencesManager.setViewState(FOLDS_PREF_KEY,allFolds,PreferencesManager.STATE_PROJECT_CONTEXT)}function getSetting(key){return prefs.get(key)}function clearAllFolds(){PreferencesManager.setViewState(FOLDS_PREF_KEY,{})}prefs.definePreference("enabled","boolean",!0,{name:ENABLE_CODE_FOLDING,description:Strings.DESCRIPTION_CODE_FOLDING_ENABLED}),prefs.definePreference("minFoldSize","number",2,{name:MIN_FOLD_SIZE,description:Strings.DESCRIPTION_CODE_FOLDING_MIN_FOLD_SIZE}),prefs.definePreference("saveFoldStates","boolean",!0,{name:SAVE_FOLD_STATES,description:Strings.DESCRIPTION_CODE_FOLDING_SAVE_FOLD_STATES}),prefs.definePreference("alwaysUseIndentFold","boolean",!1,{name:ALWAYS_USE_INDENT_FOLD,description:Strings.DESCRIPTION_CODE_FOLDING_ALWAY_USE_INDENT_FOLD}),prefs.definePreference("hideUntilMouseover","boolean",!1,{name:HIDE_FOLD_BUTTONS,description:Strings.DESCRIPTION_CODE_FOLDING_HIDE_UNTIL_MOUSEOVER}),prefs.definePreference("maxFoldLevel","number",2,{name:MAX_FOLD_LEVEL,description:Strings.DESCRIPTION_CODE_FOLDING_MAX_FOLD_LEVEL}),prefs.definePreference("makeSelectionsFoldable","boolean",!0,{name:MAKE_SELECTIONS_FOLDABLE,description:Strings.DESCRIPTION_CODE_FOLDING_MAKE_SELECTIONS_FOLDABLE}),PreferencesManager.stateManager.definePreference(FOLDS_PREF_KEY,"object",{}),module.exports.getFolds=getFolds,module.exports.setFolds=setFolds,module.exports.getSetting=getSetting,module.exports.clearAllFolds=clearAllFolds,module.exports.prefsObject=prefs});