e9cd763349
- There was a race when typing too quickly our synchronization mechanism would try and reduce the work that was done to cancel pre-existing requests. So in the scenario when you were to type `<tr` what would happen is that 3 completion requests would fire: 1. Triggered completion for `<` 2. Typing completion for `t` 3. Typing completion for `r` Now when we sped things up we were able to process requests in parallel which meant that we could handle simultaneous requests for `<`, `t` and `r` all at the same time; however, this in turn results in an interesting behavior where if we ask for completion at `r` while `<` and `t` are still active our synchronization mechanism would aggressively cancel the older requests. For completion this is catastrohpic because it would result in a 0 length completion list because HTML does not respect completion requests beyond trigger characters and the beginning of the word. - To fix this issue I added a new mechanism for synchronization which takes a flag `rejectOnNewerParallelRequest` which states do not reject a synchronization request aggressively if this flag is `true`. Now this doesn't mean the requests never get rejected. If there's a batched document update or document close / open this will still reject the document; it just means that on the requesting of synchronization that older completion requests are not rejected eagerly. - Added tests to our projection and synchronization stack to account for this - Ensured that these changes are not breaking changes so marked some bits as virtual. ### Before ![before image](https://i.imgur.com/sZfGaub.gif) ### After ![after image](https://i.imgur.com/5EsJdDm.gif) Fixes #5743 |
||
---|---|---|
.devcontainer | ||
.githooks | ||
.github | ||
.vscode | ||
docs/contributing | ||
eng | ||
src | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
CODE-OF-CONDUCT.md | ||
CONTRIBUTING.md | ||
Directory.Build.props | ||
Directory.Build.targets | ||
LICENSE.txt | ||
NOTICE.txt | ||
NuGet.config | ||
README.md | ||
SECURITY.md | ||
activate.ps1 | ||
activate.sh | ||
azure-pipelines-richnav.yml | ||
azure-pipelines.yml | ||
build.cmd | ||
build.ps1 | ||
build.sh | ||
clean.cmd | ||
clean.ps1 | ||
clean.sh | ||
global.json | ||
restore.cmd | ||
restore.sh | ||
startvs.cmd |
README.md
ASP.NET Core Tooling
ASP.NET Core is an open-source and cross-platform framework for building modern cloud based internet connected applications, such as web apps, IoT apps and mobile backends. This repo contains tools for working on ASP.NET Core apps using the .NET Core Command Line, Visual Studio & Visual Studio Code.
Status
Build | Windows | Linux | MacOS |
---|---|---|---|
Debug | |||
Release |
Get Started
Follow the Getting Started instructions in the ASP.NET Core docs.
Also check out the .NET Homepage for released versions of .NET, getting started guides, and learning resources.
How to Engage, Contribute, and Give Feedback
Some of the best ways to contribute are to try things out, file issues, join in design conversations, and make pull-requests.
- Follow along with the development of ASP.NET Core:
- Community Standup: The community standup is held every week and streamed live to YouTube. You can view past standups in the linked playlist.
- Roadmap: The schedule and milestone themes for ASP.NET Core.
- Check out the contributing page to see the best places to log issues and start discussions.
- Instructions to build ASP.NET Core Tooling source code
Reporting security issues and bugs
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.
Related projects
These are some other repos for related projects:
- ASP.NET Core - the ASP.NET Core framework
- Documentation - documentation sources for https://docs.microsoft.com/aspnet/core/
- Extensions - Logging, configuration, dependency injection, and more.