- Rename ScriptEngine, ScriptContext, ScriptInterface, ScriptRequest to
Script::Engine, Script::Context, Script::Interface, Script::Request
- Remove 'Script' prefix from filenames:
ScriptContext.* → Context.*
ScriptInterface.* → Interface.*
ScriptRequest.* → Request.*
ScriptEngine.* → Engine.*
ScriptConversions.* → Conversions.*
ScriptExceptions.* → Exceptions.*
ScriptForward.* → ForwardDeclarations.*
ScriptStats.* → Stats.*
- Update all includes, forward declarations, and friend classes
- Use namespace Script { ... } in .cpp definitions to avoid repetitive
Script:: prefix (keeping global callbacks outside)
- Rename internal implementation structs:
ScriptInterface_impl → Interface_impl
ScriptFunction → Function
- Update copyright year to 2026 in all touched files
- Suppress pre-existing cppcheck warnings (uninitvar, nullPointer, unknown
macro) by adding them to suppressions-list.txt (these are not caused
by this refactor)
Fixes #7516
Linters
Linters for use in CI or by developers. Also providing configurations for IDEs.
cppcheck
suppression-list
The suppression list is ideally empty, restricting to file scope is preferred.
The format for an error suppression is one of: [error id]:[filename]:[line] [error id]:[filename2] [error id]
libraries
Adding library cfg's for other deps could improve cppchecks ability to find issues.
copyright
A linter for checking copyright dates in file headers are up to date.
eslint
For eslint run 'pre-commt run eslint -a'
Installation and IDE integration
Install Node.js and then run 'npm install' in the repo root.
Now you can run eslint as 'npm run-script lint' or if you want eslint to try fix the issues 'npm run-script lint:fix'.
After having installed eslint you might want to add an eslint extension to your editor to get inline warnings and to allow for auto-formatting.