14. Mär 2022
Lesedauer 15 Min.
Das intelligentere IntelliSense?
IntelliCode
Mit IntelliCode fand die KI-unterstützte Codierung Eingang in die Entwicklungsumgebungen von Microsoft. In Visual Studio 2022 sind neue Funktionen hinzugekommen.

Die Entwicklung von Software ist primär ein manueller Prozess. Damit ist die Codierung von neuem Code sowie die Wartung von bestehendem Code gemeint. Die vielen Aufgaben rundherum sind im besten Fall automatisiert, zum Beispiel der Durchlauf von Tests, das Erzeugen einer neuen Version des Projekts und so weiter. Aber selbst durch die Unterstützung moderner Entwicklungsumgebungen mit den zahlreichen Shortcuts, kleineren Automatisierungen und Vorschlägen, zum Beispiel in Form von Snippets, ist das Codieren an sich primär manuelle Tipparbeit.Das führt zu einem kleinen Zwiespalt. Auf der einen Seite sind Entwickler und Entwicklerinnen froh, dass das so ist. Vollautomatisierte Softwareentwicklung, wenn sie denn überhaupt jemals kommt, hätte sicherlich einen immensen Einfluss auf die Arbeitswelt und auf Arbeitsplätze. Dennoch ist jede Hilfe bei der Codierung von Quelltext gerne gesehen. Vorausgesetzt natürlich, sie ist gut gemacht. Aber weniger Code eintippen zu müssen ist seit der Erfindung von Code-Editoren ein wichtiges Ziel. Dabei tippen wir eigentlich auch jetzt schon nicht allzu viel in unserer täglichen Arbeitszeit. Tatsächlich verbringen Entwickler nur einen kleineren Teil des Tages mit dem Tippen von neuem Code oder mit der Wartung von bestehendem.Weniger Zeit für das Tippen aufzuwenden ist trotzdem ein verständlicher Wunsch unter Softwareentwicklern. Codevervollständigungen aller Art leisten hier schon seit Jahrzehnten mehr oder weniger gute Dienste. Die Autovervollständigung wird mittlerweile als wichtiges Asset und als Dienstleistung innerhalb einer Entwicklungsumgebung angesehen. Verschiedene Erweiterungen sollen die Möglichkeiten aktueller IDEs verbessern, um die sich ein eigener Markt entwickelt hat.Das hat man auch bei Microsoft erkannt und bietet Verbesserungen für die hauseigene Codevervollständigung IntelliSense an. IntelliCode ist bereits seit einigen Jahren am Markt und wird mit Visual Studio 2022 sehr aktiv als verbesserter Service der Entwicklungsumgebung beworben.Dieser Artikel schaut auf die Entwicklung von IntelliCode und zeigt mit Fokus auf Visual Studio 2022, was der aktuelle Stand der „intelligenten“ Codevervollständigung ist.
Eine Historie von IntelliCode
Visual Studio IntelliCode wurde bereits im Mai 2018 von Microsoft im Rahmen der Build 2018 vorgestellt. Laut Microsoft ist es die nächste Generation der Entwickler-Produktivität, da dieses Tool eine KI-unterstützte Softwareentwicklung ermöglicht. Auf Basis von bereits existierendem Code und Best Practices werden Vorschläge beim Tippen in den Code-Editor eingebunden, sodass die Codierung von Quelltext schneller vonstattengehen soll. Zur Verfügung gestellt wurde die damals noch experimentelle Erweiterung zunächst für Visual Studio 2017.Ein Jahr später, zur Build 2019, wurde die allgemeine Verfügbarkeit von IntelliCode angekündigt, inklusive einiger Preview-Features, die im Lauf der Zeit finalisiert wurden. Mit Visual Studio 2019 in Version 16.1 kann IntelliCode mit zahlreichen Projekten genutzt werden. Unterstützt werden C#, C++, TypeScript, JavaScript und XAML. Allerdings sind nur die Modelle für C# und XAML generell verfügbar; alles andere ist im Preview-Modus.Auch die Build 2020 hält Neuerungen bereit. Die Modelle hinter IntelliCode werden nicht nur auf öffentlichen GitHub-Repositories trainiert, sondern bieten jetzt auch die Option, Team-Modelle auf Basis der eigenen Projekte zu trainieren. Eine Erweiterung für GitHub Actions ermöglicht es sogar, dieses Training automatisiert nach Commits auf dem neuesten Stand zu halten.Mit Visual Studio 2022 kommen zwei primäre Features hinzu: Vervollständigungen für komplette Codezeilen und Vorschläge für die Quick Actions, die auf repetitiven Tasks im Code basieren, die manuell vom Entwickler ausgeführt werden. Zu beiden Funktionen verrät der Artikel im weiteren Verlauf mehr.Auch für Visual Studio Code existiert IntelliCode, bei dieser IDE in Form einer Erweiterung [1], die bereits über 16 Millionen Mal heruntergeladen wurde, seitdem die erste Version im Juli 2018 veröffentlicht worden war. Interessant ist, dass diese Erweiterung die Sprachen Java, JavaScript, TypeScript, Python und T-SQL unterstützt, C# aber beispielsweise fehlt –möglicherweise ist die Nutzung von C# bei Visual Studio Code zu gering, oder aber C# soll Visual Studio vorbehalten bleiben, um sich bei den beiden IDEs nicht noch mehr zu kannibalisieren.Technischer Hintergrund
IntelliCode nutzt als Datenbasis öffentliche Repositories von Open-Source-Projekten auf GitHub. Diese werden analysiert, um mithilfe von maschinellem Lernen Modelle daraus zu bilden. Mit im Boot ist dabei Microsoft Research, um diese Forschung und Entwicklung voranzutreiben. Darüber hinaus werden lokale Informationen, wie der Verlauf von Dateien, Abhängigkeiten und die Codekomplexität, mit einbezogen, um über lernende Heuristiken Informationen anbieten zu können.Eine wichtige Forschungsanstrengung bei Microsoft Research war es, die neuesten Fortschritte im Bereich Deep Learning für die Modellierung natürlicher Sprache auf die Modellierung von Programmiersprachen zu übertragen. Nachdem Technologien wie Azure Machine Learning und ONNX Runtime bei IntelliCode zum Einsatz kamen, wurde beispielsweise erfolgreich das erste Deep-Learning-Modell für alle IntelliCode-Python-Nutzer in Visual Studio Code ausgeliefert.LSTM-Netzwerke (Long Short Term Memory) sind bis heute die Methode, die IntelliCode antreibt. Darüber hinaus soll in Zukunft das auf Transformer basierende Deep-Learning-Modell für noch längere Codevervollständigungen verbessert werden.IntelliCode in Visual Studio 2022
IntelliCode wird standardmäßig mit jedem Workload installiert, der C#, C++, TypeScript, JavaScript oder XAML in Visual Studio unterstützt. Bei der Installation von Visual Studio 2022 lässt sich dieses Verhalten anpassen, wie Bild 1 und Bild 2 beispielhaft zeigen. IntelliCode kann entweder vollständig oder per Workload deinstalliert werden.
IntelliCode als Einzelkomponentefür die gesamte Visual-Studio-2022-Installation(Bild 1)
Autor

IntelliCode als Komponentebeispielhaft in einem Workload angezeigt(Bild 2)
Autor
Zudem befinden sich einige der IntelliCode-Funktionen noch in der Vorschauphase, was bedeutet, dass es keine Garantie für die zukünftige Unterstützung gibt. Die Vorschaufunktionen sind standardmäßig deaktiviert. Um IntelliCode-Vorschaufunktionen – auch einzeln – zu aktivieren oder zu deaktivieren, existiert unter Extras | Optionen | IntelliCode zu den Vorschaufunktionen eine entsprechende Option.Mit Visual Studio 2022 gibt es einige Neuerungen in IntelliCode, die bisher noch nicht in Visual Studio oder über die Erweiterung in Visual Studio Code zur Verfügung standen. Da das Feature auch unter dem Namen AI-assisted IntelliSense firmiert, wird deutlich, was grundsätzlich möglich ist. Die Codevervollständigung wurde um Funktionen erweitert, die jetzt auch ganze Zeilen betreffen. Dabei ist pro Feature darauf zu achten, unter welchen Bedingungen diese zur Verfügung stehen – häufig nämlich nur für C#.Prinzipiell sind zwei Funktionen neu: die Möglichkeit, eine komplette Zeile zu vervollständigen, und Vorschläge zu Quick Actions, wenn zum Beispiel Code getippt wird oder eine sogenannte Standard-Aktion des Öfteren ausgeführt wird. In beiden Fällen können die Vorschläge von IntelliCode viel Zeit sparen. Allerdings kann es auch ziemlich nervig sein, wenn der fiktive Text bei der Eingabe von Code flackert oder die Vorschläge nicht korrekt sind.
IntelliCode für Codezeilen
Die Einblendungen zur Vervollständigung kompletter Codezeilen basieren zu großen Teilen auf dem aktuellen Kontext, in dem wir den Code tippen. Findet IntelliCode etwas Passendes, wird der nächste Codeabschnitt auf der Grundlage dieses Kontextes vorgeschlagen und als Inline-Text rechts neben dem Cursor angezeigt. Ist der Vorschlag in Ordnung, reicht das Drücken der Tab-Taste aus, um den angezeigten Code zu übernehmen. Passt der Code nicht, können wir einfach weitertippen. Entweder der Vorschlag verschwindet dann komplett, weil der aktuelle Kontext und der eingetippte Code gar keine Resultate bei IntelliCode produzieren, oder der Inline-Text für den Vorschlag passt sich laufend an. Glaubt man den zahlreichen Berichten im Internet in Form von Blogposts, kann das sehr nervig sein. Da dieses Feature ganze Codeabschnitte in Form von Zeilen vorschlägt, ist der eingeblendete Inline-Text sehr umfassend und kann sich zudem bei jedem neuen Zeichen anpassen. Das führt zu sehr vielen Vorschlägen, die halb sichtbar im Editor vor sich hin flackern. Das scheint vielen Entwicklerinnen und Entwicklern nicht besonders zu gefallen.Um diese Vorschläge unterbreiten zu können, verwendet IntelliCode ein umfangreiches Transformationsmodell, das laut Microsoft auf rund einer halben Million öffentlicher Open-Source-Repositories von GitHub trainiert wurde. Dieses Modell wird mit umfangreichem Wissen über den aktuellen Programmierkontext kombiniert und entnimmt diesem Kontext zahlreiche Hinweise. Unter anderem sind dies folgende Informationen:- Variablennamen und -positionen.
- Die Art des Codes, der geschrieben wird.
- Funktionen in nahegelegenem Code.
- Die IntelliSense-Liste an sich. Wenn die Auswahl in dieser Liste verändert wird, kann das Modell mit zusätzlichem Kontext angereichert werden. Dadurch ist es möglich, unterschiedliche Codevervollständigungen anzuschauen, um im Zweifel einen besseren Vorschlag von IntelliCode zu finden und diesen zu nutzen.

Hinweis zur Vervollständigungeiner if-Abfrage auf Basis einer lokalen Variablen(Bild 3)
Autor

Hinweis zurVervollständigungeines Konstruktors auf Basis von Standardeigenschaften der Klasse(Bild 4)
Autor

Hinweiszur Vervollständigungeiner foreach-Schleife auf Basis einer Eigenschaft der Klasse(Bild 5)
Autor

Hinweis zurVervollständigungeiner neuen Eigenschaft auf Basis einer vorherigen Eigenschaft der Klasse(Bild 6)
Autor

Hinweis zur Vervollständigungeines Methodenaufrufs im Kontext einer Auswahl aus der Liste mit Vorschlägen(Bild 7)
Autor
IntelliCode für Quick Actions
Die zweite größere Änderung bei IntelliCode in Visual Studio 2022 betrifft die sogenannten Quick Actions. Damit sind die kleinen Hinweise am linken Rand des Editors gemeint, im Deutschen als Schnellaktionen bekannt. Visual Studio bietet schon seit jeher dafür Icons in Form einer Glühbirne oder eines Schraubenziehers an, um die kontextabhängige Aktion auszuführen. IntelliCode soll hier automatisiert die Verknüpfung herstellen, wenn Code getippt wird beziehungsweise Aktionen manuell auf Code angewandt werden, die als Schnellaktion existieren. Das wird IntelliCode in Zukunft erkennen, um dann hilfreich eingreifen zu können. Die Schnellaktion, die inhaltlich zur manuellen Tätigkeit passt, wird aktuell vorgeschlagen, aber nicht automatisiert ausgeführt. Diese Entscheidung verbleibt beim Entwickler.In seiner aktuellen Form kann IntelliCode eine Schnellaktion für zwei Ausgangsszenarien erkennen und vorschlagen: Konstruktor generieren und Parameter zum Konstruktor hinzufügen. Die unterstützten Szenarien werden in zukünftigen Versionen erweitert. Geplant ist, dass durch IntelliCode Aktionen vorgeschlagen werden, die sowohl Warnungen und Fehler im Code beheben als auch Vorschläge für im Kontext besser passenden Code enthalten.Mithilfe der PROSE-Technologie, auf die im Kasten Ein Thema für die Forschung kurz eingegangen wird, gleicht IntelliCode diese Änderungen mit den üblichen Methoden ab, mit denen Entwickler automatisierbare Codeänderungen manuell durchführen. Bei einer laufenden Codekorrektur oder einem Refactoring präsentiert IntelliCode einen Vorschlag zur Beendigung der Code-Änderung aus der Vervollständigungsliste.Ein Thema für die Forschung
Wie der Abschnitt zum technischen Hintergrund von IntelliCode bereits deutlich gemacht hat, ist die (intelligente) Codevervollständigung ein Forschungsthema, und zwar eines, das es schon eine geraume Zeit gibt. Es ist bei der Entwicklung von Code-Editoren und Entwicklungsumgebungen schnell aufgefallen, dass die Codevervollständigung mit der Anzeige von kontextsensitiven Vorschlägen ein sehr rege genutztes Feature ist. Nicht nur, um zum Beispiel durch ein API der Programmiersprache oder einer externen Bibliothek zu navigieren, sondern auch auf Basis von Typen des eigenen Codes.
Weitere Features von IntelliCode
Wie schon einige Male in diesem Artikel angesprochen, ist IntelliCode nur für C# vollumfänglich verfügbar. Damit ist gemeint, dass die aktuell angebotenen Funktionen nur mit C# und den Workloads, in denen C# zum Einsatz kommen kann, funktionieren. Fertiggestellt ist IntelliCode eher noch nicht, da diese Dienstfunktion im Allgemeinen stetig erweitert werden soll. Bei C# stehen die Teamvervollständigungen, dazu später mehr, Argumentvervollständigungen und das Ableiten des Codestils und Formatierungskonventionen zur Verfügung. Mit der Vervollständigung von Argumenten ist gemeint, dass beim Tippen von Code zuvor definierte Variablen direkt als Argumente angeboten werden, wenn das aus Sicht von IntelliCode im Kontext sinnvoll erscheint. Bild 3 hat diese Möglichkeit bereits an einem Beispiel gezeigt.Unter C++ stehen die Teamvervollständigungen nur als Vorschau zur Verfügung, für XAML, Java, Python, TypeScript und JavaScript laut Website [2] zu IntelliCode noch gar nicht. Bei XAML gibt es das zusätzliche Feature, dass beim Tippen von XAML-Code Steuerelemente vorgeschlagen werden, die im aktuellen Kontext am wahrscheinlichsten verwendet werden. Bei den Eigenschaften wird die Reihenfolge vorgeschlagen, die von uns am wahrscheinlichsten genutzt wird.Insbesondere die Funktion, dass Steuerelemente vorgeschlagen werden, bietet spannende Möglichkeiten in zukünftigen Versionen von IntelliCode. Vorausgesetzt natürlich, das funktioniert auch tatsächlich alles so, wie man es sich bei Microsoft denkt. Steuerelemente vorzuschlagen kann damit über längere Zeit Auswirkungen auf die Gestaltung von Oberflächen haben, wenn es so kommt, dass Vorschläge angenommen werden. Nicht immer und nicht blind versteht sich, aber diese Einflussnahme ist dann möglich. Hier bleibt es spannend abzuwarten, in welche Richtung sich das Ganze entwickelt.Die allgemeinen Vorschläge von IntelliCode, also das erweiterte oder gestützte IntelliSense, wie es von Microsoft genannt wird, sowie die im vorherigen Abschnitt beschriebenen Funktionen fallen unter die „Sicheres Codieren“ genannte Kategorie. Zusätzlich gibt es noch die Kategorie „Probleme schneller finden“, in der von IntelliSense angebotene Unterstützungen zum Refaktorisieren von Code zusammengefasst sind. IntelliCode analysiert dabei die semantische Struktur des eigenen Codes und schlägt passende Änderungen an weiteren Stellen vor, wenn sich zum Beispiel eine Variable ändert. Dieses Feature war in einem ersten Test brauchbar, aber noch ausbaufähig. Es ist denkbar, dass das an der geringen Nutzung der Funktion und des kleinen Testprojekts gelegen hat. Die Funktion an sich scheint aber noch ausbaufähig zu sein. Aktuell wird lediglich C# als Programmiersprache unterstützt.Die dritte Kategorie für IntelliCode-Features heißt „Fokussierte Code Reviews“. Dabei sollen in Zukunft, denn es ist noch keine Funktion dafür verfügbar, bei Code Reviews basierend auf Codeänderungen, Komplexität und Versionsgeschichte Änderungen im Code hervorgehoben werden. Das ist eine sehr interessante Funktion, die viel Potenzial für Unterstützungen in der Praxis bietet. Wieder mit der Einschränkung: wenn es denn funktioniert. Schlechte oder fehlerhafte Hinweise während des Code-Refactoring sind mindestens sehr nervig und im schlimmsten Fall kontraproduktiv oder sogar destruktiv.Automatisierte Editor-Konfigurationen
Generell ist eine Editor-Konfiguration nützlich, um dort Einstellungen hinsichtlich des Coding-Stils zu hinterlegen. Eine solche Datei lässt sich direkt über Visual Studio erstellen, da das Datei-Template vorhanden ist. Unter anderem speichert eine solche .editorconfig-Datei Informationen zur Einrückung, zum Zeichen für das Zeilenende und dergleichen. Es sind zudem mehrere dieser Dateien in Unterverzeichnissen erlaubt, um so für einen Teil des Projekts eine beliebige Anzahl an Einstellungen zu überschreiben. In Bild 8 sind die Einstellungen der .editorconfig-Datei zu sehen.
Die Einstellungenzum Codestil in der grafischen Oberfläche einer EditorConfig-Datei(Bild 8)
Autor
Visual Studio nutzt diese Informationen, um den Codestil automatisch anzupassen, zum Beispiel wenn eine Datei formatiert wird. Für die Sprache C# bietet IntelliCode die Funktion an, dass eine solche EditorConfig-Datei automatisiert aus dem aktuellen Projekt erzeugt und ebenfalls automatisiert auf dem aktuellen Stand gehalten wird. Um eine vorgefertigte Datei zu erstellen, gibt es im Kontextmenü auf der Solution den Menüeintrag, dass eine neue EditorConfig für IntelliCode angelegt wird. Die Einträge dieser erzeugten Datei stammen aus dem aktuellen Projekt und werden von IntelliCode zusammengetragen. Aktuell ist noch keine Unterstützung für Formatierungs- und Stil-Konventionen enthalten und generell wird nur C# unterstützt, in Zukunft soll das Feature aber ausgebaut werden.
Eigene Modelle nutzen und teilen
Eine große Stärke von IntelliCode ist es, eigene Modelle nutzen zu können. Zum Beispiel in einem Team von Entwicklern, die an einem Produkt arbeiten. Diese Modelle lassen sich erstellen, trainieren und ebenso miteinander teilen. Diese Funktionalität ist enorm wichtig, da IntelliCode auf zahlreichen Open-Source-Repositories trainiert wurde. Das ist sicherlich eine gute Basis und kann bereits viel bewirken, allerdings umfassen diese Open-Source-Projekte keine eigenen Typen, Strukturen, Semantiken und dergleichen. Diese sind eben nur in eigenen Projekten zu finden und sollten daher auch IntelliCode zur Verfügung stehen, damit die Qualität der Vorschläge gesteigert werden kann. Dadurch kann IntelliCode die Empfehlungen aus mehreren Modellen generieren, die vorher zusammengeführt wurden:- Das Basismodell für die verwendete Sprache.
- Alle Team-Modelle, die selbst trainiert wurden.
- Alle Team-Modelle, die mit dem Git-Repository verknüpft sind, in dem gerade gearbeitet wird.
Telemetriedaten und Datenschutz
Bei diesen ganzen „intelligenten“ und zum Teil neuen Funktionen bleibt wie immer die Frage im Raum stehen, woher die Daten kommen, beziehungsweise wohin die Daten gehen. Zum Beispiel bei den Modellen, die trainiert werden müssen: Dass Microsoft selbst Modelle trainiert hat und mit ausliefert, ist die eine Sache, aber wenn eigene Modelle erstellt werden, ist die Frage des Datenschutzes nicht unerheblich. Wenn ein Modell aus einem eigenen Repository erstellt wird, analysiert Visual Studio den Code zunächst lokal. Daraus wird eine Datei mit Metadaten als Zusammenfassung generiert, die Informationen zu den Typen und deren Verwendungen enthält. Diese Metadaten werden anschließend zum IntelliCode-Dienst hochgeladen und dort trainiert, um ein auf den eigenen Code zugeschnittenes Modell für Vervollständigungen zu erhalten. Konkrete Informationen über den Code und insbesondere Details wie der Quelltext verlassen laut Microsoft nicht den eigenen Rechner beziehungsweise nicht das eigene Repository. Auf der einen Seite ist das wichtig, auf der anderen Seite liegen die Daten schon auf Azure DevOps beziehungsweise GitHub und sind damit schon in den Händen von Microsoft, um das Szenario einmal weiterzudenken.Zudem erfasst IntelliCode einige anonymisierte Nutzungs- und Fehlerberichtsdaten, um das Produkt zu verbessern, wie es so schön heißt. Es wird kein benutzerdefinierter Code an Microsoft gesendet, aber Informationen über die Nutzung der IntelliCode-Ergebnisse gesammelt. Für Codevorschläge, die auf dem von Microsoft trainierten Basismodell basieren, die Open-Source- oder .NET-Typen und -Member sind, wird erfasst, ob letztendlich ein IntelliCode-Vorschlag ausgewählt wird. Zudem wird der Name des Vorschlags protokolliert. Microsoft verwendet diese Daten, um die Qualität des Basismodells zu überwachen. Bei benutzerdefinierten Modellen wird erfasst, ob ein IntelliCode-Vorschlag ausgewählt wurde, aber die Namen der benutzerdefinierten Typen oder Methoden werden nicht protokolliert. Das ist ein wichtiger Unterschied, da über eine längere Nutzung von IntelliCode mit eigenen Modellen nicht unerhebliche Teile der eigenen Codebasis reproduziert werden könnten. Laut Microsoft soll das nicht möglich sein.Fazit
Die Vorteile von Unterstützungssystemen wie IntelliSense und IntelliCode liegen auf der Hand. Zum einen stellt es eine eingebaute Hilfe ohne nennenswerte Hürde dar, wenn zum Beispiel beim Tippen von Code Vorschläge zu lokalen Variablen, Methoden oder API-Aufrufen des Frameworks und externer Bibliotheken unterbreitet werden. Im besten Fall reduziert das die notwendige Tipparbeit erheblich, was letztendlich Zeit spart.Durch die Erweiterung IntelliCode wurden diese Möglichkeiten schon verbessert und sollen auch in Zukunft, nicht zuletzt durch Visual Studio 2022, deutlich ausgebaut werden. Wenn alles so funktioniert, wie man sich das bei Microsoft vermutlich vorstellt, könnte IntelliCode beim Refactoring von Code unterstützen, da es maßgeschneiderte Änderungsvorschläge macht.Auch für das konsequente Einhalten von Codemustern und -stilen bedeutet es eine Hilfe, da deutlich mehr Informationen aus der lokalen Codebasis gesammelt und genutzt werden. Statt nur alphabetisch geordnete Codevervollständigungstexte zu liefern, ist IntelliCode im besten Fall die nächste Generation von IntelliSense, die unter Berücksichtigung des aktuellen Codekontextes das richtige API für den Entwickler ermittelt.Neben den noch geplanten Features bietet IntelliCode eine solide Grundlage für einen deutlich verbesserten Editor in Visual Studio und Visual Studio Code an. Die Download-Zahlen der Erweiterung für Visual Studio Code zeigen, dass diese Funktionalitäten auf großes Interesse stoßen.Jetzt liegt es zu einem Teil an Visual Studio 2022, die Nutzung weiter auszubauen, Daten darüber zu sammeln und mit weiteren Features für eine noch breite Akzeptanz von IntelliCode zu sorgen. Die Zukunft der „intelligenten“ Codevervollständigung bleibt spannend.Fussnoten
- Visual Studio Marketplace, IntelliCode als Erweiterung für Visual Studio Code, http://www.dotnetpro.de/SL2204VSIntelliCode1
- Offizielle Website zu IntelliCode, https://visualstudio.microsoft.com/de/services/intellicode/
- GitHub-Action zur Automatisierung von IntelliCode Team Completions, http://www.dotnetpro.de/SL2204VSIntelliCode2
- Website zur Forschungsgruppe PROSE von Microsoft, https://www.microsoft.com/en-us/research/group/prose/