Skip to content

wilkolbrzym-coder/Felix_Studio

Repository files navigation

Felix Studio

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.


✨ Jak używać aplikacji?

Interfejs Felix Studio jest podzielony na trzy główne części:

  1. 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.
  2. 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 Ctrl i użyj kółka myszy (scroll), aby powiększyć lub zmniejszyć tekst w edytorze.
  3. 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.

🚀 Update 0.6 - Ustawienia i Personalizacja

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.

🚀 Architektura i Technologia

Projekt jest starannie podzielony na warstwy, co ułatwia jego rozwój i utrzymanie.

Główne Komponenty

  1. Warstwa Logiki (lib/logic.dart)

    • Sercem aplikacji jest klasa FelixController, która zarządza stanem (kod, wynik, status uruchomienia).
    • Wykorzystuje ChangeNotifier i Provider do komunikacji z interfejsem użytkownika.
    • Metoda runScript() odpowiada za:
      • Zapisanie kodu z edytora do pliku tymczasowego (script.fs).
      • Uruchomienie wbudowanego interpretera felixscript jako osobnego procesu (Process.run).
      • Przechwycenie i wyświetlenie wyniku lub błędu w konsoli.
  2. 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 FelixController i automatycznie aktualizuje swój wygląd (np. blokując przycisk "Run" w trakcie wykonywania skryptu).
  3. Podświetlanie Składni (lib/suggestions.dart)

    • LanguageService definiuje gramatykę języka FelixScript dla silnika highlight.js (używanego przez code_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".

Kluczowe Pakiety

  • 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 czcionki Fira Code w edytorze i konsoli.
  • path: Do bezpiecznego manipulowania ścieżkami plików.

⚙️ Jak to działa? Integracja z Interpreterem

Felix Studio nie jest samodzielnym interpreterem. Działa jako graficzna nakładka (frontend) na binarny plik interpretera felixscript.

  • Windows: Oczekuje pliku felixscript.exe w folderze windows/runner/Release/.
  • Linux: Oczekuje pliku felixscript w folderze linux/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.

🛠️ Dalszy Rozwój

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •