Wersja: 0.6 Beta
Felix Studio to proste, wieloplatformowe środowisko programistyczne (IDE) dla języka skryptowego FelixScript, zbudowane w całości przy użyciu frameworka Flutter. Aplikacja umożliwia pisanie, uruchamianie i podglądanie wyników skryptów w jednym, zintegrowanym oknie.
Interfejs Felix Studio jest podzielony na trzy główne części:
-
Górny Pasek (App Bar):
- Przycisk "Run": Uruchamia kod wpisany w edytorze. Podczas wykonywania skryptu przycisk jest nieaktywny, a ikona zmienia się na wskaźnik ładowania.
- Ikona Ustawień (⚙️): Otwiera okno, w którym możesz dostosować wygląd aplikacji.
-
Edytor Kodu (górny panel):
- Główne miejsce do pisania skryptów w języku FelixScript.
- Oferuje podświetlanie składni, które ułatwia czytanie kodu.
- Dynamiczna zmiana rozmiaru czcionki: Przytrzymaj klawisz
Ctrli użyj kółka myszy (scroll), aby powiększyć lub zmniejszyć tekst w edytorze.
-
Konsola (dolny panel):
- Wyświetla wynik działania Twojego skryptu (standardowe wyjście).
- Jeśli w kodzie wystąpi błąd, konsola pokaże szczegółowy komunikat błędu, aby ułatwić jego naprawę.
- Podobnie jak w edytorze, możesz tu dynamicznie zmieniać rozmiar czcionki za pomocą
Ctrl + Scroll.
Ta wersja wprowadza kluczowe funkcje personalizacji, które poprawiają komfort pracy:
- Zmiana Motywu (Jasny/Ciemny): W menu ustawień (ikona ⚙️) możesz teraz przełączać się między trybem jasnym i ciemnym. Interfejs aplikacji natychmiast dostosuje swoje kolory.
- Dynamiczna Zmiana Rozmiaru Czcionki: Dostosuj wielkość tekstu w edytorze i konsoli za pomocą skrótu
Ctrl + Scroll, aby dopasować go do swoich preferencji. - Zapisywanie Ustawień: Aplikacja zapamiętuje wybrany motyw oraz rozmiary czcionek, dzięki czemu Twoje preferencje są zachowywane po ponownym uruchomieniu Felix Studio.
- Poprawki Wizualne: Ikony i przyciski dynamicznie dopasowują swoje kolory do wybranego motywu, zapewniając spójny i czytelny wygląd.
Projekt jest starannie podzielony na warstwy, co ułatwia jego rozwój i utrzymanie.
-
Warstwa Logiki (
lib/logic.dart)- Sercem aplikacji jest klasa
FelixController, która zarządza stanem (kod, wynik, status uruchomienia). - Wykorzystuje
ChangeNotifieriProviderdo komunikacji z interfejsem użytkownika. - Metoda
runScript()odpowiada za:- Zapisanie kodu z edytora do pliku tymczasowego (
script.fs). - Uruchomienie wbudowanego interpretera
felixscriptjako osobnego procesu (Process.run). - Przechwycenie i wyświetlenie wyniku lub błędu w konsoli.
- Zapisanie kodu z edytora do pliku tymczasowego (
- Sercem aplikacji jest klasa
-
Interfejs Użytkownika (
lib/ui.dart)- Zbudowany w oparciu o widżety Material Design 3.
- Do stworzenia edytora kodu wykorzystano pakiet
code_text_field, który zapewnia wydajne pole tekstowe z obsługą podświetlania składni. - UI jest w pełni reaktywne – nasłuchuje na zmiany w
FelixControlleri automatycznie aktualizuje swój wygląd (np. blokując przycisk "Run" w trakcie wykonywania skryptu).
-
Podświetlanie Składni (
lib/suggestions.dart)LanguageServicedefiniuje gramatykę języka FelixScript dla silnikahighlight.js(używanego przezcode_text_field).- Reguły podświetlania (słowa kluczowe, komentarze, funkcje) są ładowane z pliku
assets/lang_def.json. - Aplikacja używa niestandardowego motywu kolorystycznego inspirowanego "Atom One Dark".
provider: Do zarządzania stanem i oddzielenia logiki od UI.code_text_field: Podstawa edytora kodu.highlight/flutter_highlight: Silnik podświetlania składni.google_fonts: Dla nowoczesnej czcionkiFira Codew edytorze i konsoli.path: Do bezpiecznego manipulowania ścieżkami plików.
Felix Studio nie jest samodzielnym interpreterem. Działa jako graficzna nakładka (frontend) na binarny plik interpretera felixscript.
- Windows: Oczekuje pliku
felixscript.exew folderzewindows/runner/Release/. - Linux: Oczekuje pliku
felixscriptw folderzelinux/runner/bundle/bin/.
Podczas kompilacji aplikacji Flutter, pliki te muszą być umieszczone w odpowiednich lokalizacjach, aby FelixController mógł je odnaleźć i uruchomić. Proces ten jest częściowo zautomatyzowany przez skrypty budowania CMake.
To jest wczesna wersja projektu. Planowane ulepszenia obejmują:
- Dodanie numeracji linii w edytorze.
- Implementacja eksploratora plików do otwierania i zapisywania skryptów
.fs. - Wprowadzenie zakładek do pracy z wieloma plikami jednocześnie.
- Ulepszenie podpowiedzi składni (autouzupełnianie).
- Dodanie funkcji "Znajdź i zamień".
Projekt stworzony jako demonstracja możliwości Fluttera w budowaniu aplikacji desktopowych.