Algo Helper
Rozszerzenie do podpowiadania gotowych algorytmow C# po wpisaniu nazwy algorytmu w komentarzu.
Offline
Rozszerzenie dziala offline. Matcher, lista algorytmow i wszystkie snippety sa zapisane lokalnie w projekcie. Kod rozszerzenia nie wywoluje zadnego API, nie wysyla promptow, nie uzywa Copilota, telemetryki ani requestow HTTP.
Wazne rozroznienie:
- uzywanie zainstalowanego rozszerzenia dziala bez internetu
- pierwsze budowanie projektu VSIX na swiezym komputerze moze wymagac paczek NuGet/VS SDK, jesli nie sa jeszcze w cache albo nie sa zainstalowane razem z Visual Studio
- czesc VS Code nie ma zaleznosci npm, wiec sama logika podpowiedzi dziala lokalnie od razu
Przyklad w edytorze C#:
// quick sort
Albo:
// alg: wyszukiwanie binarne
Po wywolaniu IntelliSense wybierz pozycje alg: ... i zatwierdz Tabem/Enterem. Komentarz zostanie zastapiony gotowa implementacja.
VS Code
Pliki rozszerzenia VS Code sa w katalogu glownym:
src/extension.js - provider completion dla komentarzy C#.
src/matcher.js - fuzzy matching nazw algorytmow.
src/algorithms.js - lista algorytmow, aliasow i snippetow.
src/extra-algorithms.js - dodatkowe algorytmy dopisane do katalogu.
Uruchomienie developerskie:
npm test
Nie ma tu bundlera. Otworz ten folder w VS Code i uruchom konfiguracje Run Extension albo nacisnij F5.
Mozna tez uzyc komendy:
Algo Helper: Insert Algorithm Snippet
Visual Studio 2019+
Projekt VSIX jest w:
AlgoHelper.VisualStudio/AlgoHelper.VisualStudio.csproj
Gotowy instalator Visual Studio zbudujesz komenda:
.\AlgoHelper.VisualStudio\package-vsix.ps1 -Configuration Release
Wynik pojawi sie tutaj:
dist/AlgoHelper.VisualStudio-<version>.vsix
W Visual Studio dziala to analogicznie:
// nwd
// przez wstawianie
// sito eratostenesa
// bucket_sort
IntelliSense pokaze dopasowania alg: ...; zatwierdzenie wstawia kod.
Obslugiwane algorytmy
Pelna lista algorytmow widoczna w marketplace:
- Czy liczba jest pierwsza
- NWD
- NWW
- Fibonacci
- Silnia
- Sortowanie babelkowe
- Wyszukiwanie liniowe
- Potegowanie
- Szybkie potegowanie modularne
- Odwracanie liczby
- Dziesietna na binarna
- Suma cyfr
- Odwracanie tekstu
- Liczba Armstronga
- Palindrom liczbowy
- Sito Eratostenesa
- Czy liczba jest potega dwojki
- Najwieksza liczba w tablicy
- Liczenie cyfr
- Kwadrat liczby calkowitej
- Liczba doskonala
- Liczba szczesliwa
- Suma liczb w tablicy
- Liczba Harshada
- Liczby pierwsze w tablicy
- Najmniejsza liczba w tablicy
- Liczba Catalana
- Suma liczb pierwszych do n
- Wyszukiwanie binarne
- Liczba Fermata
- Odwracanie tablicy
- Palindrom tekstowy
- Suma ciagu arytmetycznego
- Srednia liczb w tablicy
- Mediana w tablicy
- Liczba Mersenne'a
- Ciag Collatza
- Liczba trojkatna
- Liczba pentagonalna
- Liczba szesciokatna
- Suma kwadratow
- Liczba Kaprekara
- Suma parzystych liczb
- Liczba narcystyczna
- Binarna na dziesietna
- Sortowanie przez wstawianie
- Sortowanie szybkie
- Liczba harmoniczna
- Wartosc bezwzgledna
- Liczenie wystapien
- Sortowanie przez wybieranie
- Sortowanie przez scalanie
- Sortowanie kubelkowe
- Anagram
- Szyfr Cezara
- Liczby blizniacze
- Rozklad liczby na czynniki pierwsze
- Liczba automorficzna
- Liczba Smitha
- Liczba emirp
- Najwiekszy wspolny dzielnik wielu liczb
- Najmniejsza wspolna wielokrotnosc wielu liczb
- Pierwiastek metoda Newtona
- Liczby zaprzyjaznione
- Liczba obfita
- Liczba deficytowa
- Trojki pitagorejskie
- Wspolczynnik dwumianowy
- Wieze Hanoi
- Ciag Pascala
- Liczby Bella
- Liczby Stirlinga
- Druga najwieksza liczba w tablicy
- Usuwanie duplikatow
- Scalanie dwoch tablic
- Czesc wspolna tablic
- Rotacja tablicy
- Przesuniecie elementow o k pozycji
- Element wiekszosciowy
- Maksymalna suma podtablicy
- Sprawdzenie czy tablica jest posortowana
- Sortowanie przez zliczanie
- Sortowanie grzebieniowe
- Sortowanie Shella
- Sortowanie koktajlowe
- Heap Sort
- Liczenie samoglosek
- Liczenie spolglosek
- Usuwanie spacji
- Zamiana wielkosci liter
- Tekst zawiera tylko cyfry
- Najdluzsze slowo w tekscie
- Najczesciej wystepujacy znak
- Szyfr AtBash
- Szyfr Vigenere'a
- Kod Morse'a
- Kompresja tekstu RLE
- Sprawdzenie nawiasow
- Wyszukiwanie skokowe
- Wyszukiwanie interpolacyjne
- BFS
- DFS
- Algorytm Dijkstry
- Algorytm Floyda-Warshalla
- Algorytm Prima
- Algorytm Kruskala
- Sortowanie topologiczne
- Problem plecakowy
- Najdluzszy wspolny podciag
- Najdluzszy wspolny prefiks
- Odleglosc Levenshteina
- Dynamiczne Fibonacci
- Minimalna liczba monet
- Problem skoczka szachowego
- Problem N-hetmanow
- Dziesietna na osemkowa
- Dziesietna na szesnastkowa
- Osemkowa na dziesietna
- Szesnastkowa na dziesietna
- Konwersja miedzy dowolnymi podstawami
- Dodawanie liczb binarnych
- Generator liczb losowych
- Generator hasel
- Hasla 1
- Hasla 2
- Hasla 3
- Haslo 11 - klasy
- Haslo 22 - klasy
- Haslo 33 - klasy
- React 1A - generator konta
- React 2J - haslo automatyczne
- React 3W - menadzer hasel
- React 4B - formularz hasla
- Sprawdzenie sily hasla
- Walidacja PESEL
- Walidacja NIP
- Walidacja REGON
- Obliczanie wieku z daty urodzenia
- Kalkulator BMI
- Kalkulator procentow
- Kalkulator odsetek skladanych
- Odczyt pliku TXT
- Odczyt pliku TXT linia po linii
- Odczyt wpisow z TXT do listy
- Adapter Android - weterynarz
- Zapis do pliku TXT
Uwaga do wklejanych snippetow
Snippety sa pisane mozliwie prosto, w stylu uczniowskim: zwykle petle, tablice, listy i czytelne zmienne. Niektore uzywaja Math, List<T>, HashSet<T>, StringBuilder, LINQ albo plikow TXT. W typowym pliku C# dodaj:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;