*Add an option to cspell to ignore inexistent files.*
*Cspell discovery on Windows.*
*Glsl file processing & script headers.*
*Sort of includes with targets using multi lines sight_add_target.*
*Include sort broken in child repositories.*
Now we consider that we only prioritize the libraries of the current repository in the includes sort. Thus, a child project will consider sight includes like any other 3rd part library. This simplifies a lot the process. The unit test has been enriched to take that into account.
We also changed the way the root of the repository is searched. We used to rely on `git-rev-parse`, but this is a bit annoying for unit-testing. On top of that, when using `sheldon -i`, we use to fail to sort the includes if we do not run the command **inside** the repository. The new method proposes to look recursively and backward a .sight file in the file tree.
*Sheldon won't work with xml files defined in the same module.*
### test
*Use file inclusion for cspell and add unit test.*
## Enhancement:
### ci
*Update sheldon to make cspell error fatal.*
*Improve spell checking.*
* check all files at once
* improve sight-dict.txt by adding new words
* add exclusion list for files that we doesn't handle yet (cmake, xml, ...)
*Add cmake formater and linter.*
Use [cmake-format](https://cmake-format.readthedocs.io/en/latest/cmake-format.html) to format and check cmake files and [cmake-lint](https://cmake-format.readthedocs.io/en/latest/cmake-lint.html) as linter.
## New features:
### ci
*Add cspell hook.*
- Add cspell.py script to apply cspell on updated files
- Allow to use dictionaries from the sheldon repository and
the checked repository root, located in the .cspell folder
*Add a lint job.*
A lint phase was added, which runs flake8.
Two exceptions were made:
- Error E731 is skipped because I just don't like replacing a one-liner with 6 lines.
- Warning W503 is skipped because one has to choose between W504 or W503. Pick your poison... :smile_cat:
A fix was also made in the licence year replacement. When having a single old date, sheldon just replaced the year as it is, whereas it was supposed to create a range with the old date and the new date, i.e. `2009` should give `2009-2021` and not `2021`. A unit test has been added to avoid future regressions.