Algo Helper
Rozszerzenie do podpowiadania gotowych algorytmów C# po wpisaniu nazwy algorytmu w komentarzu.
Offline
Rozszerzenie ma działać offline. Matcher, lista algorytmów i wszystkie snippety są zapisane lokalnie w projekcie. Kod rozszerzenia nie wywołuje żadnego API, nie wysyła promptów, nie używa Copilota, telemetryki ani requestów HTTP.
Ważne rozróżnienie:
- używanie zainstalowanego rozszerzenia działa bez internetu
- pierwsze budowanie projektu VSIX na świeżym komputerze może wymagać paczek NuGet/VS SDK, jeśli nie są jeszcze w cache albo nie są zainstalowane razem z Visual Studio
- część VS Code nie ma zależności npm, więc sama logika podpowiedzi działa lokalnie od razu
Przykład w edytorze C#:
// quick sort
Albo:
// alg: wyszukiwanie binarne
Po wywołaniu IntelliSense wybierz pozycję alg: ... i zatwierdź Tabem/Enterem. Komentarz zostanie zastąpiony gotową implementacją.
VS Code
Pliki rozszerzenia VS Code są w katalogu głównym:
src/extension.js - provider completion dla komentarzy C#.
src/matcher.js - fuzzy matching nazw algorytmów.
src/algorithms.js - lista algorytmów, aliasów i snippetów.
Uruchomienie developerskie:
npm test
Nie ma tu bundlera ani zależności npm. Otwórz ten folder w VS Code i uruchom konfigurację Run Extension albo naciśnij F5.
Można też użyć komendy:
Algo Helper: Insert Algorithm Snippet
Visual Studio 2019+
Projekt VSIX jest w:
AlgoHelper.VisualStudio/AlgoHelper.VisualStudio.csproj
Gotowy instalator Visual Studio zbudujesz komendą:
.\AlgoHelper.VisualStudio\package-vsix.ps1 -Configuration Release
Wynik pojawi się tutaj:
dist/AlgoHelper.VisualStudio.vsix
W Visual Studio działa to analogicznie:
// nwd
// przez wstawianie
// sito eratostenesa
// bucket_sort
IntelliSense pokaże dopasowania alg: ...; zatwierdzenie wstawia kod.
Obsługiwane algorytmy
Lista obejmuje algorytmy z obrazka i dołączonego pliku, m.in.:
- wyszukiwanie liniowe i binarne
- min/max, suma, średnia, mediana
- NWD, NWW
- Fibonacci, silnia
- sito Eratostenesa
- bubble sort, insertion sort, selection sort, quick sort, merge sort, bucket sort
- anagram, palindrom, odwracanie tekstu, odwracanie liczby/tablicy
- liczby Armstronga, Harshada, Catalana, Fermata, Mersenne'a, Kaprekara, szczęśliwe, doskonałe
- konwersje binarne
- potęgowanie i szybkie potęgowanie modularne
Uwaga do wklejanych snippetów
Niektóre snippety używają Math, List<T>, HashSet<T> lub LINQ. W typowym pliku C# dodaj:
using System;
using System.Collections.Generic;
using System.Linq;