2015-07-30 9 views
11

Wenn man den Cursor zB in C# auf eine schließende Klammer setzt, gibt es eine kleine ärgerliche Verzögerung, bevor die öffnende Klammer hervorgehoben wird, und man muss warten und warten, bevor man Abkürzungen wie (Strg + Shift + Hoch/Runter) verwenden kann). Es fühlt sich so an, als wäre es aus Gründen jenseits von mir beabsichtigt, also denke ich nicht, dass es ein Fehler ist oder weil mein Computer langsam ist (es ist nicht), aber es macht mich verrückt.Wie bekomme ich Visual Studio 2015, um Klammern, Klammern und Referenzen sofort ohne Verzögerung zu markieren?

Ich bin auf einem frisch installierten PC, also habe ich es nur in einigen Programmiersprachen/Dateiformaten getestet, und das Verhalten tritt nur bei einigen von ihnen auf.

Das verzögerte highligh Verhalten tritt in .cs (c#) und .css Dateien, aber nicht in .js und .html Dateien, hier der Code wird sofort genau highlighed wie ich es will aswell in CS- zu Dateien.

Ich verwende Visual Studio 2015 Community Edition.

+1

Bei einer Neuinstallation von Windows 10, Visual Studios 2015 Ultimate überprüft. Erstellt eine leere Windows Form Application, C#. Ich kann keine erkennbare Verzögerung bei der Auswahl der Endklammer und der Hervorhebung der Öffnungsklammer erzeugen. Vielleicht hat die IDE Probleme, die passenden Klammern zu finden? Seltsam, noch nie gesehen oder gehört, also bin ich neugierig. – ydobonebi

+1

Ich bin auch nicht in der Lage, Ihr Problem zu replizieren. Getestet auf einer umfangreichen C# -Codedatei in der VStudio 2015 Community Edition. Vielleicht gibt es ein niedrigeres Problem? –

+0

Welches Betriebssystem verwenden Sie? –

Antwort

3

ich auch dieses Problem gehabt haben, seit der ersten Installation. Ich kann die Update 1 CTP-Adressen dieses Problem bestätigen, und die Verzögerung ist fast verschwunden

Diese UI Verzögerung tatsächlich wurde als Bugfix ruft, die mit dem Update enthalten waren (vielleicht 1/8 Sekunde jetzt.):

https://support.microsoft.com/en-us/kb/3025135

+0

Yup, kann auch bestätigen. Ich habe VS 2015 wieder installiert und das Update manuell von http://www.microsoft.com/en-us/download/details.aspx?id=49189 heruntergeladen Problem ist weg. – BjarkeCK

+1

1/8 ist nicht das schlechteste, aber es war absolut sofort im Jahr 2013 ... –

1

Ich habe keine endgültige Lösung für Ihr Problem gefunden.
Dies war ein bekannter Fehler in der VS2015 Testversion.

Diese Links diskutiert die Verzögerung (Link in C# bezieht sich btw, nicht c):
https://connect.microsoft.com/VisualStudio/feedback/details/1033540/braces-are-not-highlighted-correctly-in-c

Und es gibt noch ähnliche Probleme für einige VS2015 Community Edition-Nutzer.

http://www.developerteacher.com/msdn/bracket-matching-highlights-not-working-like-i-had-in-2013-express-4227

Ich persönlich denke, Sie mit einem Fehler stecken, und wenn ich Sie wäre, würde ich versuchen Sie folgendes:

  1. Stellen Sie sicher, ich hatte alle früheren Ausgaben von VS. deinstalliert
  2. Versuchen Sie eine Reparatur.
  3. Komplett deinstallieren und neu installieren VS2015, wenn die Reparatur nicht funktioniert
  4. Gehen Sie zurück zu VS2013, wenn es fährt, können Sie es nicht ertragen, und warten, bis VS2015 ein bisschen mehr reif am Weinstock ist.

Eines, was ich mit VS gefunden habe, ist, wenn es spielt bis schmerzhaft es ist, dauert es so lange zu installieren und war der schlimmste Fall, wenn ich die Deinstallation beendet und das Herunterladen alles, die mit der Installation verbunden waren. Es funktioniert jetzt gut. (Dies war nach der Vorschau 2015 und dann zurück bis 2013). Sie können dies auch für VS2015 versuchen und auch einen neuen Download versuchen.

Manchmal sehe ich mir einige Vorschauen an, aber nachdem ich zu oft mit den neuesten Software-Versionen eingesprungen bin und dann mit Muße bereut habe. Ich freue mich jetzt darauf, auf neue Veröffentlichungen warten zu können, bevor ich upgraden kann.

Ein weiterer FYI für Sie zu durchsuchen.

Dies ist ein Link zu Visual Studio 2015 RC fixed bugs and known issues. Es gibt einige Probleme und Hacks vorgeschlagen. (nicht spezifisch für Ihr Problem, aber immer noch vor ein paar Monaten.).

Ich nehme an, Sie wissen, wie man mit den Einstellungen herumspielt. Ich habe das Offensichtliche hinzugefügt, falls es übersehen wird.

Ich habe diesen Screenshot von VS2013 Einstellungen hinzugefügt.

Stellen Sie sicher, dass die automatische Delimeter-Hervorhebung aktiviert ist.

screen shot

Leider konnte ich nicht mehr helfen.

+0

Hallo, vielen Dank für Ihre Recherche und Zeit. Ich habe gerade versucht, VS 2015 wieder auf meinen beiden Maschinen zu installieren. Und das Problem tritt immer noch auf, so dass es jetzt zurück zu VS 2013 – BjarkeCK

+0

@BjarkeCK tut mir leid, das zu hören. Ja, ich hatte ähnliche Probleme. Ich bin mir sicher, dass Sie nicht der Einzige sind, ich würde einen Bericht mit MS einreichen. Es wird bald einen Patch geben, der sich darum kümmern wird. Für mich ist es zu verdächtig, kein Bug zu sein, da es sich um einen bewährten Bug-Pre-Release handelt. Sie haben vielleicht behauptet, es zu reparieren, aber die Reparatur ist fehlerhaft. –

+0

@BjarkeCK Ich frage mich auch über den Unterschied in der Leistung zwischen der Gemeinschaft und bezahlten Ausgaben. –

2

Zum Problem, dass es eine Verzögerung gibt, die die Klammern hervorhebt: Meiner Meinung nach hat das nichts mit einem Fehler zu tun. Ich denke, es dauert eine Weile, da der Code jedes Mal geparst werden muss, wenn Sie etwas ändern, um die Klammern hervorzuheben. Wenn Sie viele Codezeilen in einer Datei haben, ist es offensichtlich, dass es etwas länger dauert als normal.

Hier sind einige Tipps, die Ihnen helfen können:

die Halterung Klicken und STRG + ´ diese bringen Sie direkt mit dem anderen Halter drücken wird. Oder Sie drücken ALT + ´ und es markiert Ihren gesamten Code zwischen Ihren aktuellen Klammern. Sie können die Verknüpfungen von Visual Studio in Werkzeugen nachschlagen -> Optionen -> Umwelt -> Tastatur:

Here are all shortcuts listed and you can modify them as you please

Ich würde jede Programmierung in Visual Studio empfehlen ist die Markierungsfarbe der Anpassung zu ändern Klammer. Werfen Sie einen Blick auf diese:

Tools -> Options -> Environment -> Fonts and Colors

Hier können Sie alle für bestimmte Suchbegriffe verwendet, um die Farben und Formen ändern. Ich persönlich benutze Visual Assist 2015, um meinen Code hervorzuheben (deshalb habe ich hier nichts geändert). Es ist viel schneller als VS selbst und kommt mit viel mehr Funktionen wie Klammern Leitlinien, die Ihnen die Einzugsebene Ihrer Klammern zeigen wird. Werfen Sie einen Blick, vielleicht mögen Sie es:

enter image description here

+1

Hallo, vielen Dank die Tipps. Die Größe des Projekts hat jedoch keinen Einfluss auf die Dauer der Verzögerung. Es ist ungefähr 500ms in einem neu erstellten Konsolenprojekt mit einer Datei, und dasselbe ist in einem 1000 Dateien + Projekt. – BjarkeCK

2

Es geht um 500 ms in einem neu erstellten Konsolenprojekt

500 msec ist eine magische Zahl in .NET. Sie können Einblick in den Quellcode für den C# -Sprachdienst erhalten, der versehentlich (?) Von einem Microsoft-Programmierer auf GitHub bereitgestellt wurde. Relevanteste Datei ist wahrscheinlich this one:

internal interface IBraceMatchingService 
{ 
    Task<BraceMatchingResult?> GetMatchingBracesAsync(Document document, 
     int position, CancellationToken cancellationToken = default(CancellationToken)); 
} 

Oder in anderen Worten, der Klammer-Matching-Service läuft als Hintergrundaufgabe. Solche Tasks werden normalerweise in einem Thread-Pool-Thread ausgeführt und unterliegen der Planung durch den Threadpool-Manager. Hier kommt die magische 500-ms-Zahl ins Spiel. Der Manager versucht, die Anzahl der tp-Threads auf die Anzahl der Prozessorkerne zu beschränken, die auf dem Computer verfügbar sind. Dies ist die effizienteste Methode zum Ausführen von Threads. Wenn die vorhandenen TP-Threads jedoch zu lange dauern, um ihren Job zu beenden, geht der Manager davon aus, dass sie von I/O festgefahren sind und eine zusätzliche Ausführung zulassen. Dies geschieht einmal alle 500 ms.

Also erste Schätzung Ihres Problems ist, dass VS zu viele aktive Thread-Pool-Threads hat und sie nicht rechtzeitig abgeschlossen werden. Verursachen Sie, dass die Klammerzuordnungsaufgabe zu spät ausgeführt wird.


Herauszufinden genau was spezifische Aufgaben sie biegen technisch möglich ist. Ich kann den Erfolg der Community-Edition nicht garantieren, und Sie benötigen eine Menge Kenntnisse darüber, wie Sie Thread-Call-Stacks lesen, um weiter zu kommen. Starten Sie eine andere Instanz von Visual Studio und verwenden Sie Debug> An Prozess anhängen. Wählen Sie "devenv.exe" aus der Liste. Lassen Sie es trundle, während es versucht, PDB-Dateien zu finden, dann verwenden Sie Debug> Break All.

Zuerst suchen Sie nach Debug> Windows> Tasks. Es ist ziemlich unwahrscheinlich, dass du dort etwas sehen wirst, normal ist es, keine zu sehen. Der nächste ist Debug> Windows> Threads. Sie sollten ungefähr 15 aktive Threads zurück in diesem Fenster sehen. Bewegen Sie den Mauszeiger über ihre Standortspalte, um einen Blick auf deren Anrufliste zu werfen. Sinn zu machen, was Sie sehen, ist leider nicht so einfach, es hilft einem Los, wenn Sie vergleichen können, was Sie mit einer anderen Maschine sehen, die dieses Problem nicht hat.

Da Sie dieses Problem auf mehr als einer Maschine haben, besteht ein anderer Ansatz darin, nach einem gemeinsamen Umweltfaktor zu suchen. Zu beachten sind aggressive Anti-Malware, eine Netzwerkverbindung, die zu langsam oder zu unzuverlässig ist, ein schlecht funktionierendes Add-In, das Ihnen gefällt, aber auf einer VS-Version, auf der es nicht getestet wurde, schlecht läuft.

Und bedenken Sie, dass VS2015 nicht genau zur Prime-Time bereit ist. Von allen aktuellen VS-Versionen, die in den letzten 18 Jahren veröffentlicht wurden, ist es wahrscheinlich am wenigsten stabil. Es hat eine Los von schweren internen Änderungen und es gab eine noch nie dagewesene Anzahl von Alpha-und Beta-Versionen mit kritischen Bug-Fixes vor nur ein paar Monaten implementiert. Versuchen Sie es erneut, nachdem Update 1 veröffentlicht wurde.

Verwandte Themen