* Use CodeQL Scanning
* run on windows
Signed-off-by: Martin Kemp <me@martinke.mp>
* Use our build scripts
Signed-off-by: Martin Kemp <me@martinke.mp>
Signed-off-by: Martin Kemp <me@martinke.mp>
Holding ^C made git.exe hang while cmd.exe (Clink) updated the prompt.
The prompt script had three problems:
1. It invoked `git config` every time a prompt was displayed, to
figure out where to skip invoking `git status`. But it even did
that if the current directory wasn't part of a git repo.
2. It invoked `git config` two times for every single prompt, to
attempt to improve performance if the user disables `git status`
coloring. But two times for every single prompt is expensive, so
it has the opposite effect in the general case, and noticeably
degrades performance.
3. It invoked `git config` using a blocking call, instead of using the
async prompt support in Clink. That significantly reduced the
benefit of having used async prompt filtering for `git status`.
Now the `git config` invocations use async prompt filtering, which lets
the prompt display instantaneously. It also now uses a timer to avoid
invoking `git config` repeatedly when new prompts show up in rapid
succession.
Also, the `cmderGitStatusOptIn` variable is no longer leaked into the
Lua global namespace.
These changes resolve the issue: holding ^C is very fast and no longer
causes git.exe to hang.