521 lines
21 KiB
JSON
521 lines
21 KiB
JSON
{
|
||
/*==============================================================================================*\
|
||
|* WORKSPACE: Controls workspace behavior. *|
|
||
\*==============================================================================================*/
|
||
"workspace": {
|
||
"library": [
|
||
"nulllib",
|
||
".vim/figuradocs/src/.vscode/docs",
|
||
".vscode/docs",
|
||
"../../avatars/.vscode/docs",
|
||
"../../../avatars/.vscode/docs",
|
||
"../../../../avatars/.vscode/docs",
|
||
"../../../../../avatars/.vscode/docs",
|
||
"../../../../../../avatars/.vscode/docs"
|
||
],
|
||
|
||
// Figura does not use third-party libraries.
|
||
"checkThirdParty": false,
|
||
"userThirdParty": [],
|
||
|
||
// Modify ignored files
|
||
"ignoreDir": [".**"], // Directories starting with `.` are ignored.
|
||
"useGitIgnore": true, // Ignore the same files as Git.
|
||
"ignoreSubmodules": true, // Git submodules are ignored.
|
||
|
||
// Include all file schemes
|
||
"supportScheme": ["file", "untitled", "git"],
|
||
|
||
// Avoid excessive memory usage.
|
||
"maxPreload": 5000,
|
||
"preloadFileSize": 500
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* RUNTIME: Controls the emulated Lua runtime. *|
|
||
\*==============================================================================================*/
|
||
"runtime": {
|
||
// Figura uses Lua 5.2
|
||
"version": "Lua 5.2",
|
||
|
||
// Change built-in features of Lua to fit Figura's implementation.
|
||
"builtin": {
|
||
"basic": "disable", // Figura reworks and removes many of the functions in this library.
|
||
"bit": "disable", // `bit` is LuaJIT only.
|
||
"bit32": "enable", //
|
||
"builtin": "enable", // TODO: Turn this off if the Lua server ever supports ops on types.
|
||
"coroutine": "disable", // `coroutine` does not exist in Figura.
|
||
"debug": "disable", // `debug` does not exist in Figura.
|
||
"ffi": "disable", // `ffi` is LuaJIT only.
|
||
"io": "disable", // `io` does not exist in Figura.
|
||
"jit": "disable", // `jit` is, you guessed it, LuaJIT only.
|
||
"math": "enable", //
|
||
"os": "disable", // `os` does not exist in Figura.
|
||
"package": "disable", // `package` does not exist in Figura. `require` is reworked.
|
||
"string": "enable", //
|
||
"table": "enable", //
|
||
"table.clear": "disable", // `table.clear` is LuaJIT only.
|
||
"table.new": "disable", // `table.new` is LuaJIT only.
|
||
"utf8": "disable" // `utf8` is Lua 5.3+ only.
|
||
},
|
||
|
||
// Figura's require only allows direct paths.
|
||
"path": ["?.lua"],
|
||
"pathStrict": false,
|
||
|
||
// Internal crap.
|
||
"fileEncoding": "utf8",
|
||
"meta": "${version} ${language} ${encoding}",
|
||
|
||
// Figura does not use non-standard features.
|
||
"nonstandardSymbol": [],
|
||
"plugin": "",
|
||
"pluginArgs": [],
|
||
"special": {},
|
||
"unicodeName": false
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* COMPLETION: Controls auto-completion and suggestion behavior. *|
|
||
\*==============================================================================================*/
|
||
"completion": {
|
||
// Enable completion changes.
|
||
"enable": true,
|
||
|
||
// Modify visible snippets.
|
||
"keywordSnippet": "Both", // Show snippets for both keywords and control blocks.
|
||
"callSnippet": "Disable", // Disable seperate call snippets as they clutter suggestions.
|
||
|
||
// Show parameter names on function suggestions.
|
||
"showParams": true,
|
||
|
||
// Automatically try to `require` words that look like file names.
|
||
"autoRequire": true,
|
||
|
||
// Shows context for hovered function calls by showing the first few lines of the function.
|
||
// You can disable this by setting this to 0. Enable by setting to the amount of visbile lines.
|
||
"displayContext": 0,
|
||
|
||
// The character used as the postfix operator for suggestions.
|
||
"postfix": "@",
|
||
|
||
// The character used as the path seperator of requires.
|
||
"requireSeparator": ".",
|
||
|
||
// Disable word suggestions as they are mostly useless.
|
||
"showWord": "Disable",
|
||
"workspaceWord": false
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* DIAGNOSTICS: Controls active diagnostics and the behavior of those diagnostics. *|
|
||
\*==============================================================================================*/
|
||
"diagnostics": {
|
||
// Enable diagnostics.
|
||
"enable": true,
|
||
|
||
// Slow down diagnostics on files that are not currently active to save resources.
|
||
"workspaceDelay": 5000,
|
||
"workspaceRate": 25,
|
||
|
||
// Sets the severity of diagnostics to better fit Figura's environment.
|
||
// Removing diagnostics from this list does not disable them, use the "disable" list below if
|
||
// you wish to do that instead.
|
||
"severity": {
|
||
// Ambiguity
|
||
"ambiguity-1": "Warning", // Requires ambiguous operators to be ordered with `(...)`.
|
||
"count-down-loop": "Error", // Don't allow for loops that could be infinite.
|
||
"different-requires": "Error", // Requires in Figura are very specific.
|
||
"newfield-call": "Warning", // If parentheses are found at the start of a line, it will...
|
||
"newline-call": "Warning", // ...be treated as a function call for the variable before it.
|
||
|
||
// Await
|
||
"await-in-sync": "Error", // Async functions can only be called in async contexts.
|
||
"not-yieldable": "Error", // `coroutine.yield` can only be used in coroutines.
|
||
|
||
// Code Style
|
||
"codestyle-check": "Information", // Checks code style for consistency.
|
||
"spell-check": "Hint", // Check spelling.
|
||
|
||
// Duplicate
|
||
"duplicate-index": "Warning", // Duplicate table indexes will conflict.
|
||
"duplicate-set-field": "Warning", // Duplicate class indexes will conflict.
|
||
|
||
// Global
|
||
"global-in-nil-env": "Error", // Attempting to make a global with a missing _ENV fails.
|
||
"lowercase-global": "Information", // This is likely caused by not making a variable local.
|
||
"undefined-env-child": "Warning", // Basically `undefined-global`, but for new _ENVs.
|
||
"undefined-global": "Warning", // Detects attempt to use undefined global variables.
|
||
|
||
// Luadoc
|
||
"circle-doc-class": "Error", // Circular references cause a class to be useless.
|
||
"doc-field-no-class": "Error", // `@field`s need a `@class` to work.
|
||
"duplicate-doc-alias": "Warning", // Duplicate `@alias` names may conflict.
|
||
"duplicate-doc-field": "Warning", // Duplicate `@field` names in a class may conflict.
|
||
"duplicate-doc-param": "Warning", // Duplicate `@param` names in a function may conflict.
|
||
"undefined-doc-class": "Warning", // Duplicate `@class` names may conflict.
|
||
"undefined-doc-name": "Error", // Undefined type annotations act like the `table` type.
|
||
"undefined-doc-param": "Warning", // `@param`s need a matching parameter to annotate.
|
||
"unknown-cast-variable": "Error", // Undefined variables cannot be typecasted.
|
||
"unknown-diag-code": "Information", // `@diagnostic` only accepts valid diagnostic codes.
|
||
"unknown-operator": "Error", // Lua cannot have new `@operator`s added to it.
|
||
|
||
// Redefined
|
||
"redefined-local": "Warning", // It is pointless to redefine a local variable.
|
||
|
||
// Strict
|
||
"close-non-object": "Error", // Non-object values cannot be closed.
|
||
"deprecated": "Warning", // Deprecated features are not meant to be used in code.
|
||
"discard-returns": "Warning", // Some functions cannot discard their return values.
|
||
|
||
// Strong
|
||
"no-unknown": "Warning", // If a varaible's type cannot be inferred, it cannot safely be used.
|
||
|
||
// Type Check
|
||
"assign-type-mismatch": "Warning", // Types of both values in an assignment must match.
|
||
"cast-local-type": "Warning", // Casts can only be to matching types.
|
||
"cast-type-mismatch": "Warning", // Casts can only be to matching types.
|
||
"need-check-nil": "Warning", // Require a check if a value is *possibly* nil.
|
||
"param-type-mismatch": "Warning", // Require call arguments to match function parameters.
|
||
"return-type-mismatch": "Warning", // Require functions to return the correct type of value.
|
||
"undefined-field": "Warning", // Undefined fields have no known type and are not safe.
|
||
|
||
// Unbalanced
|
||
"missing-parameter": "Error", // Functions must receive at least the minimum arguments.
|
||
"missing-return": "Warning", // Functions with a `@return` require a return statement.
|
||
"missing-return-value": "Warning", // Functions with a `@return` require a return value.
|
||
"redundant-parameter": "Warning", // Functions must receive at most the maximum arguments.
|
||
"redundant-return-value": "Warning", // Functions must return at most the maximum returns.
|
||
"redundant-value": "Warning", // Unbalanced assignments can cause useless values.
|
||
"unbalanced-assignments": "Warning", // Unbalanced assignments can cause undefined variables.
|
||
|
||
// Unused
|
||
"code-after-break": "Information", // Code after a break statement will never run.
|
||
"empty-block": "Hint", // Empty blocks create clutter.
|
||
"redundant-return": "Warning", // Empty returns at the end of a function are redundant.
|
||
"trailing-space": "Hint", // Disallows trailing spaces in code.
|
||
"unreachable-code": "Information", // If code is unreachable, it is useless.
|
||
"unused-function": "Hint", // Unused functions cause clutter.
|
||
"unused-label": "Hint", // Unused labels cause clutter.
|
||
"unused-local": "Hint", // Unused variables cause clutter.
|
||
"unused-vararg": "Hint" // Unused varargs cause clutter.
|
||
},
|
||
"neededFileStatus": {
|
||
"codestyle-check": "Any"
|
||
},
|
||
|
||
// Diagnostics that are deemed useless in Figura's environment.
|
||
// Remove the `/ /;` before an option to disable it. Re-add it to enable it.
|
||
"disable": [
|
||
// Ambiguity
|
||
//;"ambiguity-1",
|
||
//;"count-down-loop",
|
||
//;"different-requires",
|
||
//;"newfield-call",
|
||
//;"newline-call",
|
||
|
||
// Await
|
||
"await-in-sync", // Nothing in Figura is true async.
|
||
"not-yieldable", // `coroutine.yield` does not exist in Figura.
|
||
|
||
// Code Style
|
||
"codestyle-check", // Code style checking is completely subjective.
|
||
"spell-check", // Who needs spell check? Lmao.
|
||
|
||
// Duplicate
|
||
//;"duplicate-index",
|
||
//;"duplicate-set-field",
|
||
|
||
// Global
|
||
//;"global-in-nil-env",
|
||
//;"lowercase-global",
|
||
//;"undefined-env-child",
|
||
//;"undefined-global",
|
||
|
||
// Luadoc
|
||
//;"circle-doc-class",
|
||
//;"doc-field-no-class",
|
||
//;"duplicate-doc-alias",
|
||
//;"duplicate-doc-field",
|
||
//;"duplicate-doc-param",
|
||
//;"undefined-doc-class",
|
||
//;"undefined-doc-name",
|
||
//;"undefined-doc-param",
|
||
//;"unknown-cast-variable",
|
||
//;"unknown-diag-code",
|
||
//;"unknown-operator",
|
||
|
||
// Redefined
|
||
//;"redefined-local",
|
||
|
||
// Strict
|
||
"close-non-object", // <close> is Lua 5.4+ only.
|
||
//;"deprecated",
|
||
//;"discard-returns",
|
||
|
||
// Strong
|
||
"no-unknown", // Too strict for Figura scripters.
|
||
|
||
// Type Check
|
||
//;"assign-type-mismatch",
|
||
"cast-local-type", // Allow casting as a way of forcibly changing a variable's type.
|
||
"cast-type-mismatch", // Allow casting as a way of forcibly changing a variable's type.
|
||
"need-check-nil", // Too strict for Figura scripters.
|
||
//;"param-type-mismatch",
|
||
//;"return-type-mismatch",
|
||
//;"undefined-field",
|
||
|
||
// Unbalanced
|
||
//;"missing-parameter",
|
||
//;"missing-return",
|
||
//;"missing-return-value",
|
||
//;"redundant-parameter",
|
||
//;"redundant-return-value",
|
||
//;"redundant-value",
|
||
//;"unbalanced-assignments",
|
||
|
||
// Unused
|
||
//;"code-after-break",
|
||
//;"empty-block",
|
||
//;"redundant-return",
|
||
"trailing-space" // Personal preference.
|
||
//;"unreachable-code",
|
||
//;"unused-function",
|
||
//;"unused-label",
|
||
//;"unused-local",
|
||
//;"unused-vararg"
|
||
],
|
||
|
||
// Group severity is not used by the docs.
|
||
"groupSeverity": {
|
||
"ambiguity": "Fallback",
|
||
"await": "Fallback",
|
||
"codestyle": "Fallback",
|
||
"duplicate": "Fallback",
|
||
"global": "Fallback",
|
||
"luadoc": "Fallback",
|
||
"redefined": "Fallback",
|
||
"strict": "Fallback",
|
||
"strong": "Fallback",
|
||
"type-check": "Fallback",
|
||
"unbalanced": "Fallback",
|
||
"unused": "Fallback"
|
||
},
|
||
"groupFileStatus": {
|
||
"ambiguity": "Fallback",
|
||
"await": "Fallback",
|
||
"codestyle": "Fallback",
|
||
"duplicate": "Fallback",
|
||
"global": "Fallback",
|
||
"luadoc": "Fallback",
|
||
"redefined": "Fallback",
|
||
"strict": "Fallback",
|
||
"strong": "Fallback",
|
||
"type-check": "Fallback",
|
||
"unbalanced": "Fallback",
|
||
"unused": "Fallback"
|
||
},
|
||
|
||
// Allow all schemes.
|
||
"disableScheme": [],
|
||
|
||
// Don't run diagnostics on library files and ignored files.
|
||
"ignoredFiles": "Opened",
|
||
"libraryFiles": "Opened",
|
||
|
||
// The docs handle global variables themselves.
|
||
"globals": [],
|
||
|
||
// All local variables must be checked (except for the empty variable "_")
|
||
"unusedLocalExclude": []
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* FORMAT: Controls the formatter and code checking options. *|
|
||
\*==============================================================================================*/
|
||
"format": {
|
||
// Only use the formatter for code checking.
|
||
"enable": false,
|
||
|
||
// Formatter settings.
|
||
"defaultConfig": {
|
||
"align_call_args": "false",
|
||
"align_chained_expression_statement": "false",
|
||
"align_function_define_params": "false",
|
||
"align_table_field_to_first_field": "false",
|
||
"call_arg_parentheses": "keep",
|
||
"class_name_define_style": "pascal_case",
|
||
"continuation_indent_size": "2",
|
||
"continuous_assign_statement_align_to_equal_sign": "true",
|
||
"continuous_assign_table_field_align_to_equal_sign": "true",
|
||
"detect_end_of_line": "true",
|
||
"do_statement_no_indent": "false",
|
||
"enable_check_codestyle": "true",
|
||
"enable_name_style_check": "true",
|
||
"end_of_line": "lf",
|
||
"function_name_define_style": "camel_case",
|
||
"function_param_name_style": "snake_case",
|
||
"global_variable_name_define_style": "upper_case",
|
||
"if_branch_comments_after_block_no_indent": "false",
|
||
"if_condition_no_continuation_indent": "false",
|
||
"indent_size": "2",
|
||
"indent_style": "space",
|
||
"insert_final_newline": "true",
|
||
"keep_line_after_do_statement": "keepLine",
|
||
"keep_line_after_expression_statement": "keepLine",
|
||
"keep_line_after_for_statement": "keepLine",
|
||
"keep_line_after_function_define_statement": "keepLine",
|
||
"keep_line_after_if_statement": "keepLine",
|
||
"keep_line_after_local_or_assign_statement": "keepLine",
|
||
"keep_line_after_repeat_statement": "keepLine",
|
||
"keep_line_after_while_statement": "keepLine",
|
||
"keep_one_space_between_namedef_and_attribute": "true",
|
||
"keep_one_space_between_table_and_bracket": "false",
|
||
"label_no_indent": "false",
|
||
"local_assign_continuation_align_to_first_expression": "false",
|
||
"local_function_name_define_style": "camel_case",
|
||
"local_name_define_style": "snake_case",
|
||
"long_chain_expression_allow_one_space_after_colon": "false",
|
||
"max_continuous_line_distance": "0",
|
||
"max_line_length": "100",
|
||
"module_name_define_style": "same('this')|same(filename, snake_case|pascal_case|camel_case)",
|
||
"quote_style": "double",
|
||
"remove_empty_header_and_footer_lines_in_function": "true",
|
||
"remove_expression_list_finish_comma": "true",
|
||
"require_module_name_style": "off",
|
||
"space_before_function_open_parenthesis": "false",
|
||
"space_before_open_square_bracket": "false",
|
||
"space_inside_function_call_parentheses": "false",
|
||
"space_inside_function_param_list_parentheses": "false",
|
||
"space_inside_square_brackets": "false",
|
||
"statement_inline_comment_space": "1",
|
||
"table_append_expression_no_space": "true",
|
||
"table_field_name_define_style": "snake_case",
|
||
"table_seperator_style": "comma",
|
||
"trailing_table_separator": "smart"
|
||
}
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* HINT: Controls the behavior of inline hints. *|
|
||
\*==============================================================================================*/
|
||
"hint": {
|
||
// Enable inline hints.
|
||
"enable": true,
|
||
|
||
// Show an inline hint at assignment.
|
||
"setType": true,
|
||
|
||
// Parameter settings.
|
||
"paramName": "All", // Show the name of parameters in function calls.
|
||
"paramType": true, // Show the type of parameters in function definitions.
|
||
|
||
// Show a virtual "await" next to called async functions.
|
||
"await": true,
|
||
|
||
// Show virtual number indexes if it may be hard to count them.
|
||
"arrayIndex": "Auto",
|
||
|
||
// Show a virtual semicolon to seperate statements on the same line.
|
||
"semicolon": "Disable"
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* HOVER: Controls the behavior of hover hints. *|
|
||
\*==============================================================================================*/
|
||
"hover": {
|
||
// Enable hover hints.
|
||
"enable": true,
|
||
|
||
// Allows large enum lists to be visible.
|
||
"enumsLimit": 100,
|
||
|
||
// Stops enum lists from making huge inline hints.
|
||
"expandAlias": false,
|
||
|
||
// Allows large tables to be visible.
|
||
"previewFields": 100,
|
||
|
||
// Allow viewing the raw form of a value.
|
||
"viewNumber": true,
|
||
"viewString": true,
|
||
"viewStringMax": 1024
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* TYPE: Controls type casting behavior. *|
|
||
\*==============================================================================================*/
|
||
"type": {
|
||
// Allows casting between `number` and `integer` (since they are the same thing in Lua.)
|
||
"castNumberToInteger": true,
|
||
|
||
// Allow "casting out" nil. (i.e: You can assign `number` to `number|nil`.)
|
||
"weakNilCheck": true,
|
||
|
||
// Disallow forced narrowing of union types. You must explicitly narrow with code.
|
||
"weakUnionCheck": false
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* SEMANTIC: Controls semantic coloring. *|
|
||
\*==============================================================================================*/
|
||
"semantic": {
|
||
// Enable semantic coloring.
|
||
"enable": true,
|
||
|
||
// Enable coloring for type annotations.
|
||
"annotation": true,
|
||
|
||
// VSCode already handles keyword coloring.
|
||
"keyword": false,
|
||
|
||
// Enable coloring for variables.
|
||
"variable": true
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* SIGNATURE HELP: No clue lol. *|
|
||
\*==============================================================================================*/
|
||
"signatureHelp": {
|
||
// Enables this, whatever it is.
|
||
"enable": true
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* SPELL: Controls the spell-check dictionary. *|
|
||
\*==============================================================================================*/
|
||
"spell": {
|
||
// Custom words for spell-check.
|
||
"dict": [
|
||
"figura"
|
||
]
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* TELEMETRY: Big brother is watching. *|
|
||
\*==============================================================================================*/
|
||
"telemetry": {
|
||
// If you wish to send telemetry data, you can enable this.
|
||
"enable": false
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* WINDOW: Controls the VSCode window's behavior. *|
|
||
\*==============================================================================================*/
|
||
"window": {
|
||
// Show workspace loading progress in the taskbar.
|
||
"progressBar": true,
|
||
|
||
// Show a funny little "😺Lua" indicator in the status bar while the Lua server is running.
|
||
"statusBar": true
|
||
},
|
||
|
||
/*==============================================================================================*\
|
||
|* MISC: Controls other features and behaviors. *|
|
||
\*==============================================================================================*/
|
||
"misc": {
|
||
// Startup parameters for the Lua language server.
|
||
"parameters": []
|
||
}
|
||
}
|