All user data for FoundryVTT. Includes worlds, systems, modules, and any asset in the "foundryuserdata" directory. Does NOT include the FoundryVTT installation itself.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

103 lines
6.3 KiB

/**
* Defines a set of configuration options for Ace editors
*/
Hooks.once("init", () => {
const namespace = "acelib";
const settings = [];
/**
* Registers a single game setting for this module.
*
* The settings is registered with the module's namespace,
* and the name and hint are assigned translated values
* based on the setting name.
*
* All the settings are world scoped.
*
* @param {string} name - The name of the setting
* @param {type} type - The data type of the setting value.
* @param {object} choices - The choices object
* @param {Number|Boolean|String} def - The default value of the setting.
* @param {Boolean} show - Should this appear in the module settings?
*/
const register = (name, type, choices = undefined, def, show = true) => {
game.settings.register(namespace, name, {
name: `${namespace}.settings.${name}.Name`,
hint: `${namespace}.settings.${name}.Hint`,
scope: "client",
config: true,
type: type,
choices: choices,
default: def ?? type(""),
config: show
});
settings.push(name);
}
/**
* Add a getter to Ace that returns an object containing all the settings
* from the settings array. These can be passed directly to the Ace initialization.
*/
Object.defineProperty(ace, "userSettings", {
get: () => {
return Object.fromEntries(
settings.map(name => [name, game.settings.get(namespace, name)])
)
},
set: () => { throw `ace: Not allowed to re-assign the global instance of ace.userSettings` },
configurable: false
});
register("selectionStyle", String, { "line": "line", "text": "text" }, "text");
register("highlightActiveLine", Boolean, undefined, false);
register("highlightSelectedWord", Boolean, undefined, true);
register("readOnly", Boolean, undefined, false, false);
register("cursorStyle", String, { "ace": "ace", "slim": "slim", "smooth": "smooth", "wide": "wide" }, "smooth");
register("mergeUndoDeltas", String, undefined, "always", false);
register("behavioursEnabled", Boolean, undefined, true, false);
register("wrapBehavioursEnabled", Boolean, undefined, true, false);
register("autoScrollEditorIntoView", Boolean, undefined, undefined, false);
register("showInvisibles", Boolean, undefined, false);
register("displayIndentGuides", Boolean, undefined, true);
register("navigateWithinSoftTabs", Boolean, undefined, true);
register("enableMultiselect", Boolean, undefined, true);
register("highlightGutterLine", Boolean, undefined, true);
register("animatedScroll", Boolean, undefined, true, false);
register("showPrintMargin", Boolean, undefined, false);
register("printMarginColumn", Number, undefined, 80);
register("printMargin", Number, undefined, undefined, false);
register("showFoldWidgets", Boolean, undefined, true);
register("fadeFoldWidgets", Boolean, undefined, true);
register("showLineNumbers", Boolean, undefined, true);
register("showGutter", Boolean, undefined, true);
register("fontSize", Number, undefined, 15);
register("fontFamily", String, undefined, "monospace");
register("scrollPastEnd", Number, undefined, 0.5);
register("fixedWidthGutter", Boolean, undefined, false, false);
register("theme", String, { "ace/theme/ambiance": "ambiance", "ace/theme/chaos": "chaos", "ace/theme/chrome": "chrome", "ace/theme/clouds": "clouds", "ace/theme/clouds_midnight": "clouds_midnight", "ace/theme/cobalt": "cobalt", "ace/theme/crimson_editor": "crimson_editor", "ace/theme/dawn": "dawn", "ace/theme/dracula": "dracula", "ace/theme/dreamweaver": "dreamweaver", "ace/theme/eclipse": "eclipse", "ace/theme/github": "github", "ace/theme/gob": "gob", "ace/theme/gruvbox": "gruvbox", "ace/theme/idle_fingers": "idle_fingers", "ace/theme/iplastic": "iplastic", "ace/theme/katzenmilch": "katzenmilch", "ace/theme/kr_theme": "kr_theme", "ace/theme/kuroir": "kuroir", "ace/theme/merbivore": "merbivore", "ace/theme/merbivore_soft": "merbivore_soft", "ace/theme/mono_industrial": "mono_industrial", "ace/theme/monokai": "monokai", "ace/theme/nord_dark": "nord_dark", "ace/theme/pastel_on_dark": "pastel_on_dark", "ace/theme/solarized_dark": "solarized_dark", "ace/theme/solarized_light": "solarized_light", "ace/theme/sqlserver": "sqlserver", "ace/theme/terminal": "terminal", "ace/theme/textmate": "textmate", "ace/theme/tomorrow": "tomorrow", "ace/theme/tomorrow_night_blue": "tomorrow_night_blue", "ace/theme/tomorrow_night_bright": "tomorrow_night_bright", "ace/theme/tomorrow_night_eighties": "tomorrow_night_eighties", "ace/theme/tomorrow_night": "tomorrow_night", "ace/theme/twilight": "twilight", "ace/theme/vibrant_ink": "vibrant_ink", "ace/theme/xcode": "xcode" }, "ace/theme/chrome");
register("newLineMode", String, { "auto": "auto", "unix": "unix", "windows": "windows" }, "unix");
register("useWorker", Boolean, undefined, true, false);
register("tabSize", Number, undefined, 4);
register("wrap", Boolean, undefined, true);
register("foldStyle", String, { "markbegin": "markbegin", "markbeginend": "markbeginend", "manual": "manual" }, "markbegin");
register("mode", String, { "ace/mode/html": "html", "ace/mode/text": "plain text", "ace/mode/json": "json", "ace/mode/css": "css", "ace/mode/js": "javascript" }, "ace/mode/text");
register("enableBasicAutocompletion", Boolean, undefined, true);
register("enableSnippets", Boolean, undefined, true);
register("enableLiveAutocompletion", Boolean, undefined, true);
register("useElasticTabstops", Boolean, undefined, true);
register("keyboardHandler", String, { "ace/mode/emacs": "emacs", "ace/mode/sublime": "sublime", "ace/mode/vim": "vim", "ace/mode/vscode": "vscode" }, undefined);
register("hScrollBarAlwaysVisible", Boolean, undefined, false);
register("vScrollBarAlwaysVisible", Boolean, undefined, false);
register("maxLines", Number, undefined, undefined, false);
register("minLines", Number, undefined, 10, false);
register("maxPixelHeight", Number, undefined, 0, false);
register("scrollSpeed", Number, undefined, 2);
register("dragDelay", Number, undefined, 0);
register("dragEnabled", Boolean, undefined, true);
register("focusTimeout", Number, undefined, 0, false);
register("tooltipFollowsMouse", Boolean, undefined, true, false);
register("firstLineNumber", Number, undefined, 1);
register("overwrite", Boolean, undefined, false);
register("useSoftTabs", Boolean, undefined, true);
register("indentedSoftWrap", Boolean, undefined, true);
});